2010-11-18 29 views
1

誰もがXMLスキーマで、いわゆる「ユニークなパーティクル帰属」制約について何を知っていますし、なぜこのによって侵害される可能性があります。次のようにXJCを実行しているから、エラーがあるXML Schemaのユニークなパーティクル帰属制約

<xs:complexType name="SMIL.switch.content"> 
    <xs:sequence> 
     <xs:choice minOccurs="0" maxOccurs="unbounded"> 
     <xs:element ref="smil:metadata"/> 
     <xs:element ref="SMIL.switch-control"/> 
     </xs:choice> 
     <xs:choice> 
     <xs:choice> 
      <xs:sequence maxOccurs="unbounded"> 
      <xs:choice maxOccurs="unbounded"> 
       <xs:element ref="SMIL.timecontainer.class"/> 
       <xs:element ref="SMIL.media-object"/> 
      </xs:choice> 
      <xs:choice minOccurs="0" maxOccurs="unbounded"> 
       <xs:element ref="smil:metadata"/> 
       <xs:element ref="SMIL.switch-control"/> 
      </xs:choice> 
      </xs:sequence> 
      <xs:choice minOccurs="0" maxOccurs="unbounded"> 
      <xs:element ref="smil:metadata"/> 
      <xs:element ref="SMIL.switch-control"/> 
      </xs:choice> 
     </xs:choice> 
     <xs:sequence minOccurs="0" maxOccurs="unbounded"> 
      <xs:element ref="smil:layout"/> 
      <xs:choice minOccurs="0" maxOccurs="unbounded"> 
      <xs:element ref="smil:metadata"/> 
      <xs:element ref="SMIL.switch-control"/> 
      </xs:choice> 
     </xs:sequence> 
     </xs:choice> 
    </xs:sequence> 
    </xs:complexType> 

[ERROR] COS-nonambig: "http://www.w3.org/ns/SMIL ":メタデータと" http://www.w3.org/ns/SMIL":メタデータ(またはその置換グループの要素 ) "のユニークなパーティクル帰属" を違反しています。このスキーマに対する検証中に、あいまいさ がこれらの2つのパーティクルに対して作成されます。

スキーマは、trangを使用してSMIL 3.0 DTDから生成されます。

+0

トランは常に完璧ではないとXSDは、いくつかの制限があります:(あなたは、元のDTDの関連部分を投稿することができますか?エラーが発生した理由を私は見ることができますオリジナルはそれを解決するのに便利かもしれません! –

答えて

4

検証でsmil:metadata要素が見つかると、これが外側のシーケンスの最初の選択部分または2番目の選択部分と一致するかどうかを知ることができません。 XMLスキーマはこのあいまいさを許容しません。 XML Schema勧告の

参照付録H、パート1