2014-04-18 2 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> 많은 가운데에서 하나를을 선택합니다. 중첩 된 선택 항목이 있습니다. 구문 분석기는 중첩 선택에 선언 된 요소가 반복되어 Unique Particle Attribution 제약 조건을 위반하므로 모호성이 있다고 불평합니다.

예 : 첫 번째 중첩 choiceA를 선택하고, 두 번째는 A 선택하면, 당신은 당신의 외부 choice이 불법적 인 상황이있을 것이다 :

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

당신 중첩 된 선택을 할 수 있습니다 두 개의 동일한 요소 선언이 아닌 복수의 A 요소를 허용합니다.

바깥 쪽 choicesequence으로 바꾼 경우 코드가 작동합니다.

질문에 세부 사항을 추가하면이 답변을 개선하여 더 나은 대안을 제시 할 수 있습니다.

+0

과 중복되는 것으로 보입니다.이 질문을 검토해주십시오. http://stackoverflow.com/questions/23149300/nested -choice-element-in-xml-schema이 질문의 해결책을 알려주십시오. 저를 도와주세요. –

+0

@ C-M-Sperberg-McQueen의 답변에서 위에 언급 한 페이지의 설명을 참조하십시오. – helderdarocha