2010-11-18 13 views
1

Kennt jemand etwas über die so genannte „Unique Particle Attribution“ Einschränkung in XML-Schema und warum es durch diese verletzt werden könnte:XML Schema Eindeutige Partikel-Zuordnung

<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> 

Der Fehler vom Laufen XJC wird wie folgt

[ERROR] cos-nonambig:: "http://www.w3.org/ns/SMIL ": Metadaten und" http://www.w3.org/ns/SMIL": Metadaten (oder Elemente aus deren Substitutionsgruppe) verletzen "Unique Partikel-Zuordnung". Bei der Validierung für dieses Schema würde für diese beiden Partikel die Ambiguität erstellt.

Das Schema wird aus der SMIL 3.0-DTD mit Hilfe von trans generiert.

+0

Trang ist nicht immer perfekt und XSD hat einige Einschränkungen :(Können Sie den entsprechenden Teil der ursprünglichen DTD posten? Kann ich sehen, warum der Fehler auftritt, aber das Original könnte nützlich sein, um es zu lösen! –

Antwort

4

Wenn die Validierung auf ein Element smil: metadata stoßen würde, kann sie nicht wissen, ob dies mit dem ersten oder dem zweiten Teil der äußeren Sequenz übereinstimmt. Und XML-Schema lässt diese Mehrdeutigkeit nicht zu.

Siehe Anhang H der XML-Schema-Empfehlung, Teil 1.