2014-07-11 73 views
0

爲什麼我的XSD不適用於遵循XML結構? 它說'無效的內容被發現以元素'權利'開始。在這一點上,預計沒有任何兒童因素。XSD驗證包含序列和屬性的元素

XML:

<Root>... 
    <Rights Status="xxx" Date="2009-02-03T00:00:00"> 
     <Right> 
     <Amount>9999</Amount> 
     <AmountCovered>888</AmountCovered> 
     </Right> 
     <Right> 
     <Amount>8888</Amount> 
     <AmountCovered>777</AmountCovered> 
     </Right> 
     ... 
    </Rights> 
    ... 

XSD:

<xs:element name="Rights" minOccurs="0"> 
    <xs:complexType> 
     <xs:sequence> 
     <xs:element name="Right" maxOccurs="unbounded"> 
      <xs:complexType> 
       <xs:all> 
        <xs:element name="Amount" type="xs:string" minOccurs="0" /> 
        <xs:element name="AmountCovered" type="xs:string" minOccurs="0" /> 
       </xs:all> 
      </xs:complexType> 
     </xs:element> 
     </xs:sequence> 
     <xs:attribute name="Status" use="optional" type="xs:string" /> 
     <xs:attribute name="Date" use="optional" type="xs:dateTime" /> 
    </xs:complexType> 
</xs:element> 

回答

0

問題是根元素<Rights>不能一個minOccurs指定= 「0」
除去的minOccurs在<xs:element name="Rights">或包裹另一根元素<Rights>

XSD:
<?xml version="1.0" encoding="UTF-8" ?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="root"> <xs:complexType> <xs:sequence> <xs:element name="Rights" minOccurs="0"> ... </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:schema>

+0

您好我剛編輯我的代碼,是不是根元素,所以這個問題必須somwhere其他 – jlp

+0

@jlp OK,你的XSD實際工作中的W3C驗證。 – chainkite