2017-02-19 4 views
1

私は私のXSDドキュメントに次のエラーを取得発生しますXSD:エラー:要素「属性は」紛失、無効である、またはあまりにも頻繁に

Element 'attribute' is invalid, misplaced, or occurs too often.

をし、私はその理由は分かりません。

<?xml version="1.0" encoding="UTF-8"?> 
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
    <xs:element name="bookcollection"> 
    <xs:complexType> 
     <xs:sequence> 
     <xs:element name="book" maxOccurs="unbounded"> 
      <xs:complexType mixed="true"> 
      <xs:sequence> 
       <xs:element name="name" type="xs:string"/> 
       <xs:element name="image" type="xs:anyURI"/> 
       <xs:element name="quantity" type="xs:string"/> 
       <xs:element name="price"> 
       <xs:complexType> 
        <xs:simpleContent> 
        <xs:extension base="xs:decimal"/> 
        <xs:attribute name="currency" default="EUR" 
            maxOccurs="unbounded"/> 
        <xs:simpleType> 
         <xs:restriction base="xs:string"> 
         <xs:enumeration value="EUR"/> 
         <xs:enumeration value="DOLLARS"/> 
         <xs:enumeration value="ISK"/> 
         </xs:restriction> 
        </xs:simpleType> 
        </xs:simpleContent> 
       </xs:complexType> 
       </xs:element> 
       <xs:element name="shipping" type="xs:string"/> 
      </xs:sequence> 
      </xs:complexType> 
     </xs:element> 
     </xs:sequence> 
    </xs:complexType> 
    </xs:element> 
</xs:schema> 

答えて

2

、そのエラーを訂正することは、現在表示されていないことの後に、xs:extensionxs:attribute要素を移動するには:ここで

は私のXSDファイルがあります。

次のエラーは、xs:simpleTypexs:attributeに移動して修正することができます。現在は表示されていません。

は全体で、以下のXSDは、両方の修正が適用されており、それ以上の誤差がありません:あなたは本当に、bookの子要素間のテキストを許可し、そのxs:complexType宣言からmixed="true"を削除する場合を除き

<?xml version="1.0" encoding="UTF-8"?> 
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
    <xs:element name="bookcollection"> 
    <xs:complexType> 
     <xs:sequence> 
     <xs:element name="book" maxOccurs="unbounded"> 
      <xs:complexType mixed="true"> 
      <xs:sequence> 
       <xs:element name="name" type="xs:string"/> 
       <xs:element name="image" type="xs:anyURI"/> 
       <xs:element name="quantity" type="xs:string"/> 
       <xs:element name="price"> 
       <xs:complexType> 
        <xs:simpleContent> 
        <xs:extension base="xs:decimal"> 
         <xs:attribute name="currency" default="EUR"> 
         <xs:simpleType> 
          <xs:restriction base="xs:string"> 
          <xs:enumeration value="EUR"/> 
          <xs:enumeration value="DOLLARS"/> 
          <xs:enumeration value="ISK"/> 
          </xs:restriction> 
         </xs:simpleType> 
         </xs:attribute> 
        </xs:extension> 
        </xs:simpleContent> 
       </xs:complexType> 
       </xs:element> 
       <xs:element name="shipping" type="xs:string"/> 
      </xs:sequence> 
      </xs:complexType> 
     </xs:element> 
     </xs:sequence> 
    </xs:complexType> 
    </xs:element> 
</xs:schema> 

最後の注意を、 。

+0

ありがとう@kjhughes! – JavaApprentice

関連する問題