<!-- ************************************************************** -->
<!-- SimPLIBExt.dtd				V0.1			2000-08-08		-->
<!-- Parts family population 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;

<!-- ************************************************************** -->
<!-- a simplibext document contains a set of families               -->
<!-- specifications			 										-->
<!-- ************************************************************** -->

<!ELEMENT simplibext (family+)>

<!-- ************************************************************** -->
<!-- Supplier identification: content = supplier code			 	-->
<!-- ************************************************************** -->

<!ELEMENT supplier (codebsu)>
<!ATTLIST supplier
    name CDATA #IMPLIED
>

<!ELEMENT codebsu (#PCDATA)>

<!ELEMENT property (#PCDATA)>
<!ATTLIST property
    name CDATA #IMPLIED
>

<!-- ************************************************************** -->
<!-- Family population											 	-->
<!-- ************************************************************** -->

<!ELEMENT family (codebsu, supplier, key_chars, components)>
<!ATTLIST family
	dico_version NMTOKEN #IMPLIED
	cont_version NMTOKEN #IMPLIED
	cont_revision NMTOKEN #IMPLIED
    name CDATA #IMPLIED
>

<!ELEMENT key_chars (property+)>

<!-- ************************************************************** -->
<!-- A component is charaterized by its key properties and a set    -->
<!-- of couples (property, value)                                   -->
<!-- ************************************************************** -->

<!ELEMENT components (component+)>

<!ELEMENT component (caseof?, (value | dependent_value)+)>
<!ATTLIST component
    id ID #IMPLIED
    supplier_id CDATA #IMPLIED
    global_id (TRUE|FALSE) #IMPLIED
    source_class_content NMTOKEN #IMPLIED
>

<!ELEMENT caseof (class)+>
<!ELEMENT class (codebsu, supplier)>
<!ATTLIST class
	version CDATA #IMPLIED
	name CDATA #IMPLIED
>

<!ENTITY % value_type "(simple | level | instance)">

<!ELEMENT value (property, %value_type;)>
<!ATTLIST value
    name CDATA #IMPLIED
>

<!ELEMENT simple (#PCDATA)>

<!ELEMENT level (min | nom | typ | max)*>

<!ELEMENT min (#PCDATA)>
<!ELEMENT nom (#PCDATA)>
<!ELEMENT typ (#PCDATA)>
<!ELEMENT max (#PCDATA)>

<!ELEMENT dependent_value (property, dependency+, %value_type;)>
<!ATTLIST dependent_value
    name CDATA #IMPLIED
>
<!ELEMENT dependency (property, %value_type;)>
<!ATTLIST dependency
    name CDATA #IMPLIED
>

<!ELEMENT instance (EMPTY)>
<!ATTLIST instance
	component IDREF #IMPLIED
>
