2010-11-18 5 views
1

사람은 XML 스키마에서 소위 "독특한 입자 저작자"제약 조건에 대해 아무것도 알고 있나요과이에 의해 침해 될 이유 :XML 스키마 독특한 입자 저작자 제약

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

다음 실행 XJC에서 오류가 될 때 :

[ERROR] COS-nonambig "http://www.w3.org/ns/SMIL"메타 데이터 "http://www.w3.org/ns/SMIL"메타 데이터 (또는 치환기의 요소 ) '순 입자 저작자 "를 위반. 이 스키마에 대한 유효성 검사 중에이 두 입자에 대해 모호성 이 작성됩니다.

스키마는 trang을 사용하여 SMIL 3.0 DTD에서 생성됩니다.

+0

트랑 항상 완벽하지 및 XSD가 몇 가지 제한 사항이 있습니다 :(원래 DTD의 관련 부분을 게시 할 수 있습니까? 내가 볼 수 있습니다 하지만 원본은 그것을 해결하기 위해 편리 할 수 ​​있습니다! –

답변

4

유효성 검사가 smil : metadata 요소를 발견하면이 시퀀스가 ​​외부 시퀀스의 첫 번째 선택 부분 또는 두 번째 선택 부분과 일치하는지 여부를 알 수 없습니다. XML 스키마는 이러한 모호성을 허용하지 않습니다. 오류가 발생하는 이유 XML 스키마 권고의

부록 H, 1 부