<?xml version="1.0" encoding="utf-8"?>
<!-- XML Schema schema for PartsRelation documents -->
<!DOCTYPE xsd:Schema SYSTEM "http://www.w3.org/2001/XMLSchema.dtd">
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
   <xsd:element name="NOTE" type="xsd:string" />

   <xsd:element name="PartsRelation">    <!-- Racine PartsRlations-->
      <xsd:complexType>        <!-- de type complexe -->  
         <xsd:sequence>        <!-- séquence de -->  
            <xsd:element ref="NOTE" minOccurs="0" />   <!-- elmt NOTE optionel -->    
            <xsd:element name="PartTuple" type="PartTupleType"
            minOccurs="0" maxOccurs="unbounded" />
                        <!-- 0 ou +r elmt PartTuple de type PartTupleType -->  
         </xsd:sequence>
      </xsd:complexType>
   </xsd:element>

   <xsd:complexType name="PartTupleType">  <!-- Définition du type PartTupleType --> 

      <xsd:sequence>
         <xsd:element name="PNUM" type="PartNum" />   <!-- type utilisateur --> 
         <xsd:element name="PNAME" type="xsd:string" />
         <xsd:element name="WEIGHT">      <!-- type de WEIGHT donné inline -->
            <xsd:simpleType>
               <xsd:restriction base="xsd:decimal">  <!-- ss-ens de decimal --> 
                  <xsd:totalDigits value="5" />
                  <xsd:fractionDigits value="1" fixed="true" />
                  <xsd:minInclusive value="0.1" />  <!-- 0.1, 0.2, ... 9999.9 --> 
               </xsd:restriction>
            </xsd:simpleType>
         </xsd:element>
         <xsd:element ref="NOTE" minOccurs="0" />
      </xsd:sequence>

      <xsd:attribute name="CITY" type="City" />    <!-- autres types utilisateur --> 

      <xsd:attribute name="COLOR" type="Color" default="Red" />

   </xsd:complexType>

   <!-- définitions types utilisateur --> 
   <xsd:simpleType name="PartNum">
      <xsd:restriction base="xsd:string">
         <xsd:pattern value="P[0-9]{1,3}" />   <!-- valeurs définies par exp. régulière -->   
      </xsd:restriction>
   </xsd:simpleType>

   <xsd:simpleType name="Color">  
      <xsd:restriction base="xsd:string">     <!-- valeurs type Color énumérées -->
         <xsd:enumeration value="Red" />
         <xsd:enumeration value="Green" />
         <xsd:enumeration value="Blue" />
      </xsd:restriction>
   </xsd:simpleType>

   <xsd:simpleType name="City">
      <xsd:restriction base="xsd:string">   <!-- valeurs type City énumérées --> 
         <xsd:enumeration value="London" />
         <xsd:enumeration value="Oslo" />
         <xsd:enumeration value="Paris" />
      </xsd:restriction>
   </xsd:simpleType>
</xsd:schema>

