2010-02-05 6 views
4

다음과 같은 몇 가지 XSD가 있습니다.임의의 순서로 요소의 범위를 허용하는 XSD를 어떻게 지정합니까?

<element name="a"> 
    <complexType> 
    <sequence> 
     <element name="b" type="t:typ" minOccurs="1" maxOccurs="unbounded" /> 
     <element name="c" type="t:typ" minOccurs="1" maxOccurs="unbounded" /> 
    </sequence> 
    </complexType> 
</element> 

시퀀스 대신 태그 b와 c가 임의의 순서로 뒤죽박죽이되도록 변경할 수 있습니다. 나는 어떻게 이것을 유효하게 만들 것인가? ..

<a> 
    <b /> 
    <c /> 
    <b /> 
    <c /> 
    <b /> 
    <b /> 
</a> 

'all'옵션은 유망한 것으로 들리지만 각 자식 요소를 하나만 허용하는 것으로 보인다.

+0

시퀀스가 ​​수행 할 수 있지만 구성 파일 용입니다. 사용자가 특정 순서로 요소를 넣지 않아도 쉽게 편집 할 수 있도록하고 싶습니다. – izb

답변

4

난 당신이 원하는 생각? 이 같은? (테스트 안 함)

<element name="a"> 
    <complexType> 
    <sequence maxOccurs="unbounded" minOccurs="0"> 
     <choice> 
     <element name="b" type="t:typ" /> 
     <element name="c" type="t:typ" /> 
     </choice> 
    </sequence> 
    </complexType> 
</element> 
+0

흥미로운 접근! 은 자식 요소 중 하나만 허용하기 때문에 작동하지 않을 것이라고 생각했지만 - 의 maxOccurs = unbounded가 아마도 트릭을 수행합니다! –

+0

일하는 것 같아서 고마워 :) 다음 문제는 선택 사항 중 하나만을 하나의 인스턴스로 제한하려고하는 것입니다. 또 다른 질문은, 메타 링크입니다. – izb

0

당신이 선택 요소의 무제한의 순서를 시도 할 수 :

관련 문제