<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="PIECE">
    <xs:complexType>
      <xs:sequence>
        
        <xs:element name="Reference_Piece">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:maxLength value="30" />
                </xs:restriction>
            </xs:simpleType>
        </xs:element>
        <xs:element type="xs:int" name="Code_Type_Piece"/>
        <xs:element name="Date_Piece">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:pattern value="\d{2}[/]\d{2}[/]\d{4}" />
                    <xs:length value="10"/>
                </xs:restriction>
            </xs:simpleType>  
        </xs:element>
        <xs:element name="Date_Periode" minOccurs="0">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:pattern value="\d{2}[/]\d{2}[/]\d{4}" />
                    <xs:length value="10"/>
                </xs:restriction>
            </xs:simpleType>  
        </xs:element>
        <xs:element name="Code_Tiers_Emetteur">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:maxLength value="20" />
                </xs:restriction>
            </xs:simpleType>
        </xs:element>
        <xs:element name="Nom_Tiers_Emetteur" minOccurs="0">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:maxLength value="50" />
                </xs:restriction>
            </xs:simpleType>
        </xs:element>
        <xs:element name="Code_Site_Emetteur" minOccurs="0">
             <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:maxLength value="20" />
                </xs:restriction>
            </xs:simpleType>
        </xs:element>
        <xs:element name="Nom_Site_Emetteur" minOccurs="0"/>
        <xs:element name="Code_Site_Destinataire">
             <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:maxLength value="20" />
                </xs:restriction>
            </xs:simpleType>
        </xs:element>
        <xs:element name="Nom_Site_Destinataire" minOccurs="0"/>
        <xs:element name="Date_Echeance" minOccurs="0">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:pattern value="\d{2}[/]\d{2}[/]\d{4}" />
                    <xs:length value="10"/>
                </xs:restriction>
            </xs:simpleType>  
        </xs:element>
        <xs:element type="xs:int" name="Code_Type_Echeance" minOccurs="0"/>
        <xs:element name="Intitule_Type_Echeance" minOccurs="0">
             <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:maxLength value="30" />
                </xs:restriction>
            </xs:simpleType>
        </xs:element>
        <xs:element type="xs:int" name="Code_Mode_Reglement" minOccurs="0"/>
        <xs:element name="Intitule_Mode_Reglement" minOccurs="0">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:maxLength value="30" />
                </xs:restriction>
            </xs:simpleType>
        </xs:element>
        <xs:element type="xs:int" name="Code_Transporteur" minOccurs="0"/>
        <xs:element name="Nom_Transporteur" minOccurs="0">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:maxLength value="50" />
                </xs:restriction>
            </xs:simpleType>
        </xs:element>
        <xs:element type="xs:int" name="Code_ATC" minOccurs="0"/>
        <xs:element name="Nom_ATC" minOccurs="0">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:maxLength value="503050" />
                </xs:restriction>
            </xs:simpleType>
        </xs:element>
        <xs:element type="xs:string" name="Commentaire" minOccurs="0"/>
            
        <xs:element name="LIVRAISON" minOccurs="0">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="Reference_Piece">
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:maxLength value="20" />
                    </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="Code_Tiers">
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:maxLength value="20" />
                    </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="Nom_Tiers" minOccurs="0">
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:maxLength value="50" />
                    </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="Code_Site">
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:maxLength value="20" />
                    </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="Nom_Site" minOccurs="0">
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:maxLength value="50" />
                    </xs:restriction>
                </xs:simpleType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>

        <xs:element name="FACTURATION" minOccurs="0">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="Reference_Piece">
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:maxLength value="20" />
                    </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="Code_Tiers">
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:maxLength value="20" />
                    </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="Nom_Tiers" minOccurs="0">
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:maxLength value="50" />
                    </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="Code_Site">
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:maxLength value="20" />
                    </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="Nom_Site" minOccurs="0">
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:maxLength value="50" />
                    </xs:restriction>
                </xs:simpleType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>

        <xs:element name="LIGNESDETAILS">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="LIGNEDETAIL" maxOccurs="unbounded">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="Reference_Piece">
                        <xs:simpleType>
                            <xs:restriction base="xs:string">
                                <xs:maxLength value="20" />
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:element>
                    <xs:element name="Reference_Piece_Origine" minOccurs="0">
                        <xs:simpleType>
                            <xs:restriction base="xs:string">
                                <xs:maxLength value="20" />
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:element>
                    <xs:element name="Nature_Ligne">
                        <xs:simpleType>
                            <xs:restriction base="xs:token">
                                <xs:enumeration value="800" />
                                <xs:enumeration value="100" />
                                <xs:enumeration value="300" />
                                <xs:enumeration value="700" />
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:element>
                    <xs:element type="xs:boolean" name="Rattachement_Article"/>
                    <xs:element type="xs:int" name="Code"/>
                    <xs:element name="Intitule" minOccurs="0">
                        <xs:simpleType>
                            <xs:restriction base="xs:string">
                                <xs:maxLength value="80" />
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:element>
                    <xs:element type="xs:decimal" name="Quantite"/>
                    <xs:element type="xs:int" name="Code_Base_Prix" minOccurs="0"/>
                    <xs:element type="xs:decimal" name="Prix_Unitaire" minOccurs="0"/>
                    <xs:element type="xs:boolean" name="Gratuit" minOccurs="0" default="0"/>
                    <xs:element type="xs:boolean" name="Type_Prix" minOccurs="0" default="0"/>
                    <xs:element type="xs:boolean" name="Majoration" minOccurs="0" default="0"/>
                    <xs:element type="xs:short" name="Type_Stockage" minOccurs="0"/>
                    <xs:element name="Date_Debut" minOccurs="0">
                        <xs:simpleType>
                            <xs:restriction base="xs:string">
                                <xs:pattern value="\d{2}[/]\d{2}[/]\d{4}" />
                                <xs:length value="10"/>
                            </xs:restriction>
                        </xs:simpleType>  
                    </xs:element>
                    <xs:element name="Date_Fin" minOccurs="0">
                        <xs:simpleType>
                            <xs:restriction base="xs:string">
                                <xs:pattern value="\d{2}[/]\d{2}[/]\d{4}" />
                                <xs:length value="10"/>
                            </xs:restriction>
                        </xs:simpleType>  
                    </xs:element>
                    <xs:element type="xs:int" name="Code_Transporteur" minOccurs="0"/>
                    <xs:element name="Nom_Transporteur" minOccurs="0">
                        <xs:simpleType>
                            <xs:restriction base="xs:string">
                                <xs:maxLength value="50" />
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:element>
                    <xs:element type="xs:int" name="Code_Type_Echeance" minOccurs="0"/>
                    <xs:element name="Intitule_Type_Echeance" minOccurs="0">
                        <xs:simpleType>
                            <xs:restriction base="xs:string">
                                <xs:maxLength value="30" />
                            </xs:restriction>
                        </xs:simpleType>
                    </xs:element>
                    <xs:element name="Date_Echeance" minOccurs="0">
                        <xs:simpleType>
                            <xs:restriction base="xs:string">
                                <xs:pattern value="\d{2}[/]\d{2}[/]\d{4}" />
                                <xs:length value="10"/>
                            </xs:restriction>
                        </xs:simpleType>  
                    </xs:element>
                    <xs:element type="xs:decimal" name="Taux_TVA" minOccurs="0"/>
                    <xs:element type="xs:decimal" name="Montant_HT" minOccurs="0"/>
                    <xs:element type="xs:decimal" name="Montant_TVA" minOccurs="0"/>
                    <xs:element type="xs:decimal" name="Montant_TTC" minOccurs="0"/>
                    <xs:element type="xs:string" name="Commentaire" minOccurs="0"/>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>

      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>