2017-09-19 6 views
-2

Je reçois une erreur en disant Pas bien formé: Le type d'élément "xs: element" doit être suivi de l'une ou l'autre des spécifications d'attribut, ">" ou "/>". Tous mes tags d'élément sont bien imbriqués. Peu importe ce que je fais, je reçois toujours l'erreur.Pas bien formé: le type d'élément "xs: element" doit être suivi des spécifications d'attribut, ">" ou "/>"

Ceci est mon fichier xsd. On m'a donné un fichier xml, et on m'a demandé de développer un fichier xsd pour cela.

<?xml version="1.0" encoding="utf-8"?> 
 
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
 
<xs:element name="createSalesOrder"> 
 
    <xs:complexType minOccurs="1" maxOccurs="unbounded"> 
 
    <xs:element name="order"> 
 
\t <xs:complexType> 
 
\t <xs:sequence minOccurs="1" maxOccurs="unbounded"> 
 
\t 
 
\t <xs:element name="orderSource"> 
 
\t  <xs:simpleType> 
 
\t \t <xs:sequence minOccurs="1" maxOccurs="unbounded"> 
 
\t \t <xs:restriction base="xs:string"> 
 
\t  <xs:maxLength value="30"/> 
 
\t \t </xs:restriction> 
 
\t \t </xs:sequence> 
 
\t \t </xs:simpleType> 
 
\t </xs:element> 
 
\t  
 
\t <xs:element name="purchaseOrder"> 
 
\t <xs:simpleType> 
 
\t \t <xs:sequence minOccurs="1" maxOccurs="unbounded"> 
 
\t \t <xs:restriction base="xs:string"> 
 
\t  <xs:maxLength value="20"/> 
 
\t \t </xs:restriction> 
 
\t \t </xs:sequence> 
 
\t \t </xs:simpleType> 
 
\t </xs:element> 
 
\t  
 
\t <xs:element name="purchaseOrderType"> 
 
\t <xs:simpleType> 
 
\t \t <xs:sequence minOccurs="1" maxOccurs="unbounded"> 
 
\t \t <xs:restriction base="xs:string"> 
 
\t  <xs:maxLength value="5"/> 
 
\t \t </xs:restriction> 
 
\t \t </xs:sequence> 
 
\t \t </xs:simpleType> 
 
\t </xs:element> 
 
\t  
 
\t <xs:element name="purchaseOrderType"> 
 
\t <xs:simpleType> 
 
\t \t <xs:sequence minOccurs="1" maxOccurs="unbounded"> 
 
\t \t <xs:restriction base="xs:date"/> 
 
\t \t </xs:sequence> 
 
\t \t </xs:simpleType> 
 
\t </xs:element> 
 
\t  
 
\t  <xs:element name="orderType"> 
 
\t <xs:simpleType> 
 
\t \t <xs:sequence minOccurs="1" maxOccurs="unbounded"> 
 
\t \t <xs:restriction base="xs:string"> 
 
\t  <xs:maxLength value="10"/> 
 
\t \t </xs:restriction> 
 
\t \t </xs:sequence> 
 
\t \t </xs:simpleType> 
 
\t </xs:element> 
 
\t  
 
\t <xs:element name="orderExpiry"> 
 
\t <xs:simpleType> 
 
\t \t <xs:sequence minOccurs="1" maxOccurs="unbounded"> 
 
\t \t <xs:restriction base="xs:integer"> 
 
\t  <xs:minInclusive value="1"/> 
 
\t \t <xs:maxInclusive value="5"/> 
 
\t \t </xs:restriction> 
 
\t \t </xs:sequence> 
 
\t \t </xs:simpleType> 
 
\t </xs:element> 
 
\t  
 
\t <xs:element name="orderConsumerReferenceId"> 
 
\t <xs:simpleType> 
 
\t \t <xs:sequence minOccurs="1" maxOccurs="unbounded"> 
 
\t \t <xs:restriction base="xs:string"> 
 
\t \t <xs:maxLength value="20"/> 
 
\t \t </xs:restriction> 
 
\t \t </xs:sequence> 
 
\t \t </xs:simpleType> 
 
\t </xs:element> 
 
\t  
 
\t <xs:element name="orderSourceReferenceId"> 
 
\t <xs:simpleType> 
 
\t \t <xs:sequence minOccurs="1" maxOccurs="unbounded"> 
 
\t \t <xs:restriction base="xs:integer"> 
 
\t \t <xs:pattern value="\d{8}"/> 
 
\t \t </xs:restriction> 
 
\t \t </xs:sequence> 
 
\t \t </xs:simpleType> 
 
\t </xs:element> 
 
\t  
 
\t <xs:element name="shipping"> 
 
\t  <xs:complexType> 
 
\t \t <xs:sequence> 
 
\t \t <xs:element name="requestedDate" type="xs:dateTime"/> 
 
\t \t <xs:element name="shipmentOrigin" type="xs:boolean"/> 
 
\t \t </xs:sequence> 
 
\t \t </xs:complexType> 
 
\t </xs:element> 
 
\t  
 
\t <xs:element name="orderCurrency"> 
 
\t  <xs:complexType> 
 
\t \t <xs:sequence> 
 
\t \t <xs:element name="currenyCode" type="xs:string" default="EUR"/> 
 
\t \t <xs:element name="currencyExchangeRate" type="xs:integer"> 
 
\t \t <xs:simpleType minOccurs="1"> 
 
\t \t  <xs:restriction> 
 
\t \t \t <xs:enumeration value="1"/> 
 
\t \t \t </xs:restriction> 
 
\t \t </xs:simpleType> 
 
\t \t </xs:element> 
 
\t \t </xs:sequence> 
 
\t \t </xs:complexType> 
 
\t </xs:element> 
 
\t  
 
\t <xs:element name="partner"> 
 
\t  <xs:complexType> 
 
\t \t <xs:sequence> 
 
\t \t <xs:element name="partnerRole" type="xs:string"/> 
 
\t \t <xs:element name="partnerId"/> 
 
\t \t <xs:element name="communicationLanguageCode" type="xs:string"/> 
 
\t \t <xs:element name="address" minOccurs="0" maxOccurs="unbounded"> 
 
\t \t <xs:complexType> 
 
\t \t  <xs:sequence> 
 
\t \t \t <xs:all> 
 
\t \t  <xs:element name="name" type="xs:string"/> 
 
\t \t \t </xs:all> 
 
\t \t \t <xs:element name="value" type="xs:string"> 
 
\t \t \t <xs:restriction> 
 
\t \t \t <xs:maxLength value="50"/> 
 
\t \t \t </xs:restriction> 
 
\t \t \t </xs:element> 
 
\t \t \t </xs:sequence> 
 
\t \t </xs:complexType> 
 
\t \t </xs:element> 
 
\t \t </xs:sequence> 
 
\t \t </xs:complexType> 
 
\t </xs:element> 
 
\t  
 
\t <xs:element name="salesOrganization"> 
 
\t  <xs:simpleType> 
 
\t \t <xs:restriction base="xs:string"> 
 
\t \t <xs:maxLength value="10"/> 
 
\t \t </xs:restriction> 
 
\t \t </xs:simpleType> 
 
\t </xs:element> 
 
\t <xs:element name="distributionChannel"> 
 
\t  <xs:simpleType> 
 
\t \t <xs:restriction base="xs:string"> 
 
\t \t <xs:pattern value="[A-Z][A-Z]"/> 
 
\t \t </xs:restriction> 
 
\t \t </xs:simpleType> 
 
\t </xs:element> 
 
\t <xs:element name="division"> 
 
\t  <xs:simpleType> 
 
\t \t <xs:restriction base="xs:integer"> 
 
\t \t <xs:maxLength value="2"/> 
 
\t \t </xs:restriction> 
 
\t \t </xs:simpleType> 
 
\t </xs:element> 
 
\t <xs:element name="orderTerm" minOccurs="1" maxOccurs="unbounded"> 
 
\t  <xs:complexType> 
 
\t \t <xs:sequence> 
 
\t \t <xs:element name="name" type="xs:string"/> 
 
\t \t <xs:element name="value" type="xs:string"/> 
 
\t \t </xs:sequence> 
 
\t \t </xs:complexType> 
 
\t </xs:element> 
 
\t <xs:element name="lineItem" minOccurs="0"> 
 
\t  <xs:complexType> 
 
\t \t <xs:sequence> 
 
\t \t <xs:element name="lineId" type="xs:integer"/> 
 
\t \t <xs:element name="parentLineId"> 
 
\t \t <xs:simpleType> 
 
\t \t  <xs:restriction base="xs:string"> 
 
\t \t \t <xs:maxLength value="12"/> 
 
\t \t \t </xs:restriction> 
 
\t \t </xs:simpleType> 
 
\t \t </xs:element> 
 
\t \t <xs:element name="materialFlowType type="xs:integer"/> 
 
\t \t <xs:element name="material" minOccurs="1" type="xs:string"/> 
 
\t \t <xs:element name="materialDescription" minOccurs="0"> 
 
\t \t <xs:simpleType> 
 
\t \t  <xs:restriction base="xs:string"> 
 
\t \t \t <xs:maxLength value="20"/> 
 
\t \t \t </xs:restriction> 
 
\t \t </xs:simpleType> 
 
\t \t </xs:element> 
 
\t \t <xs:element name="orderedQuantity" minOccurs="1" type="xs:integer"/> 
 
\t \t <xs:element name="configuration"> 
 
\t \t <xs:complexType> 
 
\t \t  <xs:sequence> 
 
\t \t \t <xs:element name="instanceId"> 
 
\t \t \t <xs:simpleType> 
 
\t \t \t <xs:restriction base="xs:integer"> 
 
\t \t \t  <xs:maxLength value="20"/> 
 
\t \t \t </xs:restriction> 
 
\t \t \t </xs:simpleType> 
 
\t \t \t </xs:element> 
 
\t \t \t <xs:element name="parentInstanceId"> 
 
\t \t \t <xs:simpleType> 
 
\t \t \t <xs:restriction base="xs:integer"> 
 
\t \t \t  <xs:maxLength value="20"/> 
 
\t \t \t </xs:restriction> 
 
\t \t \t </xs:simpleType> 
 
\t \t \t </xs:element> 
 
\t \t \t <xs:element name="quantity" value="xs:integer"/> 
 
\t \t \t <xs:element name="objectKey"> 
 
\t \t \t <xs:simpleKey> 
 
\t \t \t <xs:restriction base="xs:string"> 
 
\t \t \t  <xs:maxLength value="25"/> 
 
\t \t \t </xs:restriction> 
 
\t \t \t </xs:simpleKey> 
 
\t \t \t </xs:element> 
 
\t \t \t <xs:element name="characteristics" maxOccurs="unbounded"> 
 
\t \t \t <xs:complexType> 
 
\t \t \t <xs:sequence> 
 
\t \t \t  <xs:element name="type" minOccurs="1"> 
 
\t \t \t \t <xs:simpleType> 
 
\t \t \t \t <xs:restriction base="xs:string"> 
 
\t \t \t \t <xs:maxLength value="15"/> 
 
\t \t \t \t </xs:restriction> 
 
\t \t \t \t </xs:simpleType> 
 
\t \t \t \t </xs:element> 
 
\t \t \t \t <xs:element name="value" minOccurs="1"> 
 
\t \t \t \t <xs:simpleType> 
 
\t \t \t \t <xs:restriction value="xs:string"> 
 
\t \t \t \t <xs:maxLength value="20"/> 
 
\t \t \t \t </xs:restriction> 
 
\t \t \t \t </xs:simpleType> 
 
\t \t \t \t </xs:element> 
 
\t \t \t </xs:sequence> 
 
\t \t \t </xs:complexType> 
 
\t \t \t </xs:element> 
 
\t \t \t </xs:sequence> 
 
\t \t </xs:complexType> 
 
\t \t </xs:element> 
 
\t \t <xs:element name="price"> 
 
\t \t <xs:complexType> 
 
\t \t  <xs:sequence> 
 
\t \t \t <xs:element name="name" minOccurs="1" maxOccurs="1"> 
 
\t \t \t <xs:simpleType> 
 
\t \t \t <xs:restriction base="xs:string"> 
 
\t \t \t  <xs:maxlength value="15"/> 
 
\t \t \t </xs:restriction> 
 
\t \t \t </xs:simpleType> 
 
\t \t \t </xs:element> 
 
\t \t \t <xs:element name="value" type="xs:decimal"/> 
 
\t \t \t <xs:element name="currencyCode" type="xs:string" default="EUR" minOccurs="1" maxOccurs="1"> 
 
\t \t \t <xs:simpleType> 
 
\t \t \t <xs:restriction> 
 
\t \t \t  <xs:maxLength value="3"/> 
 
\t \t \t </xs:restriction> 
 
\t \t \t </xs:simpleType> 
 
\t \t \t </xs:element> 
 
\t \t \t </xs:sequence> 
 
\t \t </xs:complexType> 
 
\t \t </xs:element> 
 
\t \t <xs:element name="shippingDate"> 
 
\t \t <xs:complexType> 
 
\t \t  <xs:sequence> 
 
\t \t \t <xs:element name="name"> 
 
\t \t \t <xs:simpleType> 
 
\t \t \t <xs:restriction base="xs:string"> 
 
\t \t \t  <xs:maxLength value="15"/> 
 
\t \t \t </xs:restriction> 
 
\t \t \t </xs:simpleType> 
 
\t \t \t </xs:element> 
 
\t \t \t <xs:element name="value" type="xs:dateTime"/> 
 
\t \t \t </xs:sequence> 
 
\t \t </xs:complexType> 
 
\t \t </xs:element> 
 
\t \t <xs:element name="shipmentOrigin" type="xs:string"/> 
 
\t \t </xs:sequence> 
 
\t \t </xs:complexType> 
 
\t </xs:element> 
 
\t <xs:element name="callBackUrl" type="xs:string"/> 
 
\t </xs:sequence> 
 
\t </xs:complexType> 
 
\t </xs:element> 
 
    </xs:complexType> 
 
    </xs:element> 
 
</xs:schema>

Répondre

1

Un guillemet manquant dans la ligne suivante

<xs:element name="materialFlowType type="xs:integer"/> 

code correct

<xs:element name="materialFlowType" type="xs:integer"/> 

Vous avez une erreur supplémentaire avec le fichier XSD. Dans une balise xs: complexType, l'élément xs: n'est pas autorisé. Vous avez besoin d'envelopper élément entier « de commande » avec xs: étiquette de séquence comme celui-ci

<xs:sequence> 
    <xs:element name="order">.....</xs:element> 
</xs:sequence> 
0

Votre erreur immédiate est due à une citation fermante manquante sur un attribut.

changement

<xs:element name="materialFlowType type="xs:integer"/> 

à

<xs:element name="materialFlowType" type="xs:integer"/> 

Sachez, cependant, que vous avez un grand nombre d'erreurs supplémentaires pour corriger. Je ne posterais pas toute la séquence sans d'abord faire un effort considérable pour les réparer vous-même.