2014-04-18 63 views
1

XSD代碼:讓錯誤 - 的複雜類型定義「匿名」的內容模型是模糊XSD架構錯誤:複雜的類型定義「匿名」的內容模型不明確而multipal選擇

<xs:element name="data"> 
      <xs:complexType> 
       <xs:choice> 
        <xs:choice minOccurs="0" maxOccurs="unbounded"> 
         <xs:element name="A"/> 
         <xs:element name="B"/> 
         <xs:element name="C"/> 
         <xs:element name="D"/> 
         <xs:element name="EE"/> 
        </xs:choice> 
        <xs:choice minOccurs="0" maxOccurs="unbounded"> 
         <xs:element name="A"/> 
         <xs:element name="B"/> 
         <xs:element name="C"/> 
         <xs:element name="D"/> 
         <xs:element name="FF"/> 
        </xs:choice> 
       </xs:choice> 
      </xs:complexType> 
     </xs:element> 
+0

這是預期的行爲。在同一個上下文中不能有兩個相同的元素聲明。你期望驗證什麼?請添加更多細節,以便我們可以提出更好的解決方案。 – helderdarocha

+1

看起來是http://stackoverflow.com/questions/23149300/nested-choice-element-in-xml-schema –

回答

1

<xs:choice>其中多選一個。你有嵌套的選擇。解析器抱怨說存在歧義,因爲您在neste選項中聲明瞭重複元素,違反了約束條件Unique Particle Attribution

例子:如果第一個嵌套choice選擇A,而第二個還選擇A,你會在你的外choice這種非法的情況:

<xs:choice> 
    <xs:element name="A"/> 
    <xs:element name="A"/> 
</xs:choice> 

可以一個嵌套選擇並接受多個A元素,但不是兩個相同的元素聲明。

如果將外部choice替換爲sequence,則您的代碼將起作用。

如果您在問題中添加更多詳細信息,可以改進此答案以向您展示更好的備選方案。

+0

的副本請問您可以查看這個問題http://stackoverflow.com/questions/23149300/nested -choice-element-in-xml-schema我想解決這個問題請幫助我。 –

+0

請參閱@ C-M-Sperberg-McQueen在上面提到的那個頁面中的解釋。 – helderdarocha