格式不正确:元素类型 "xs:element" 必须后跟属性规范“>”或“/>”

Not well formed: Element type "xs:element" must be followed by either attribute specifications, ">" or "/>"

我收到一条错误消息说 格式不正确:元素类型 "xs:element" 必须后跟属性规范“>”或“/>”。 全部我的元素标签虽然嵌套正确。无论我做什么,我仍然收到错误。

这是我的 xsd 文件。我得到了一个 xml 文件,并被要求为其开发一个 xsd 文件。

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

下一行缺少双引号

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

正确的代码

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

xsd 文件还有一些其他错误。 在 xs:complexType 标签中 xs:element 是不允许的。 你需要用 xs:sequence 标签包裹整个 "order" 元素,像这样

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

您的直接错误是由于缺少属性的结束引号。

改变

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

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

但是请注意,您还有许多其他错误需要更正。我不会 post 如果不首先自己修复它们,我将付出相当大的努力。