<!-- ************************************************************** -->
<!-- SimPLIBDic.dtd					V1.0			2001-02-10		-->
<!-- Parts family dictionary description							-->
<!-- LISI/ENSMA - TOSHIBA                                           -->
<!--																-->
<!-- Copyright (c) 2001 LISI/ENSMA - TOSHIBA 						-->
<!-- All Rights Reserved.											-->
<!-- ************************************************************** -->

<!ENTITY % ISOlat1 PUBLIC
  "ISO 8879:1986//ENTITIES Added Latin 1//EN//XML"
  "http://www.ascc.net/xml/resource/entities/ISO/ISOlat1.pen" >
%ISOlat1;

<!ENTITY % ISOlat2 PUBLIC
  "ISO 8879:1986//ENTITIES Added Latin 2//EN//XML"
  "http://www.ascc.net/xml/resource/entities/ISO/ISOlat2.pen" >
%ISOlat2;

<!ENTITY % ISOnum PUBLIC
  "ISO 8879:1986//ENTITIES Numeric and Special Graphic//EN//XML"
  "http://www.ascc.net/xml/resource/entities/ISO/ISOnum.pen" >
%ISOnum;

<!ENTITY % ISOtech PUBLIC
  "ISO 8879:1986//ENTITIES General Technical//EN//XML"
  "http://www.ascc.net/xml/resource/entities/ISO/ISOtech.pen" >
%ISOtech;

<!ENTITY % ISOgrk1 PUBLIC
  "ISO 9573-15:1993//ENTITIES Greek Letters//EN//XML"
  "http://www.ascc.net/xml/resource/entities/ISO/ISOgrk1.pen" >
%ISOgrk1;

<!ENTITY % ISOgrk2 PUBLIC
  "ISO 9573-15:1993//ENTITIES Monotoniko Greek//EN//XML"
  "http://www.ascc.net/xml/resource/entities/ISO/ISOgrk2.pen" >
%ISOgrk2;


<!ENTITY % ISOgrk3 PUBLIC
  "ISO 8879:1986//ENTITIES Greek Symbols//EN//XML"
  "http://www.ascc.net/xml/resource/entities/ISO/ISOgrk3.pen" >
%ISOgrk3;

<!-- ************************************************************** -->
<!-- An XML file corresponds to 1 responsible supplier and      	-->
<!-- optionaly referenced suppliers									-->
<!-- ************************************************************** -->

<!ELEMENT simplibdic (responsiblesupplier, supplier*, (class | property)*)>
<!ATTLIST simplibdic
    language NMTOKEN #REQUIRED
>

<!-- ************************************************************** -->
<!-- Supplier definition: only the organization name is required 	-->
<!-- ************************************************************** -->

<!ELEMENT responsiblesupplier (supplier)>

<!ELEMENT supplier (codebsu, supplier_name?)>
<!ATTLIST supplier
    id ID #REQUIRED
	identification CDATA #IMPLIED
>
<!ELEMENT supplier_name (#PCDATA)>
<!ELEMENT codebsu (#PCDATA)>

<!-- ************************************************************** -->
<!-- CONCEPT INFORMATION: optional definition, note, remark 		-->
<!-- ************************************************************** -->

<!ENTITY % information "(
                    definition?,
                    note?,
                    remark?)">
<!ELEMENT definition (#PCDATA)>
<!ELEMENT note (#PCDATA)>
<!ELEMENT remark (#PCDATA)>

<!-- ************************************************************** -->
<!-- NAMES: the PLIB item_names. Only the name is mandatory         -->
<!-- ************************************************************** -->

<!ENTITY % names "( name,
					short_name?,
					synonymous?)">
<!ELEMENT name (#PCDATA)>
<!ELEMENT short_name (#PCDATA)>
<!ELEMENT synonymous (#PCDATA)>

<!-- ************************************************************** -->
<!-- PLIB concepts information and names may be given in different  -->
<!-- languages. Therefore they will be gathered in a  				-->
<!-- translatable_description section 								-->
<!-- ************************************************************** -->

<!ELEMENT description (%names;, %information;)>
<!ATTLIST description
    language NMTOKEN #IMPLIED
>

<!-- ************************************************************** -->
<!-- CLASS DEFINITION 												-->
<!-- ************************************************************** -->

<!ELEMENT class (codebsu, description*)>
<!ATTLIST class
	id ID #REQUIRED
    supplier IDREF #IMPLIED
	nature (COMPONENT | ITEM | MATERIAL | FEATURE) "COMPONENT"
	version NMTOKEN #IMPLIED
	superclass IDREF #IMPLIED
	drawing CDATA #IMPLIED
    described_by IDREFS #IMPLIED
    caseof IDREFS #IMPLIED
>

<!-- ************************************************************** -->
<!-- PROPERTY DEFINITION 											-->
<!-- ************************************************************** -->

<!ELEMENT property (codebsu, description*, symbol?, (domain | unit)?)>
<!ATTLIST property
	id ID #REQUIRED
	class IDREF #REQUIRED
	nature (CHARACTERISTIC | CONTEXT | DEPENDENT) "CHARACTERISTIC"
	version NMTOKEN #IMPLIED
	figure CDATA #IMPLIED
	depends_on IDREFS #IMPLIED
>

<!ELEMENT symbol (#PCDATA)>

<!-- ************************************************************** -->
<!-- DOMAINS DEFINITION 											-->
<!-- ************************************************************** -->

<!ENTITY % number_type "real | integer">
<!ENTITY % simple_type "(%number_type; | boolean | string | enumeration)">

<!ELEMENT boolean EMPTY>
<!ATTLIST boolean
	format CDATA #IMPLIED
>

<!ELEMENT string EMPTY>
<!ATTLIST string
	format CDATA #IMPLIED
>

<!ELEMENT real EMPTY>
<!ATTLIST real
	format CDATA #IMPLIED
	nature (CURRENCY | MEASURE) "MEASURE"
	unit CDATA #IMPLIED
>

<!ELEMENT integer EMPTY>
<!ATTLIST integer
	format CDATA #IMPLIED
	nature (CURRENCY | MEASURE) "MEASURE"
	unit CDATA #IMPLIED
>

<!ELEMENT enumeration (enum_id)+>
<!ATTLIST enumeration
    format CDATA #IMPLIED
    nature (CODE | INTEGER) "CODE"
>

<!ELEMENT enum_id   (code, meanings*)>

<!ELEMENT code (#PCDATA)>
<!ELEMENT meanings (%names;)>
<!ATTLIST meanings
    language NMTOKEN #IMPLIED
>

<!ENTITY % complex_type "(level | instance)">

<!ELEMENT level (data_type, levels)>
<!ELEMENT data_type (%number_type;)>

<!ELEMENT levels (min | max | nom | typ)*>
<!ELEMENT min EMPTY>
<!ELEMENT max EMPTY>
<!ELEMENT nom EMPTY>
<!ELEMENT typ EMPTY>

<!ELEMENT instance EMPTY>
<!ATTLIST instance
	class IDREF #IMPLIED
>

<!ELEMENT domain (%simple_type; | %complex_type;)>

<!ELEMENT unit (#PCDATA)>
