2012-01-18 5 views
2

XSD에이 기능이 있는지 잘 모르겠지만 어떻게해야하는지 알 수 없습니다. 제출 유형이 "submit_one"인 경우 보고서의 값은 A, B 또는 C 만 가능합니다. 제출 유형이 "submit_two"인 경우 보고서의 값은 X, Y 또는 Z 일 수 있습니다. XML 스키마 정의 파일? XSD 요소 종속성 제한

은 모두이 스키마를 사용하여 유효한 XML 파일이 될 것입니다.
<submission type="submit_one"> 
    <reports> 
     <report>A</report> 
     <report>B</report> 
    </reports> 
</submission> 

<submission type="submit_two"> 
    <reports> 
     <report>X</report> 
     <report>Y</report> 
    </reports> 
</reports> 

당신이 두 개의 별도의 "제출"종류의 하나 "제한 - 세트"에 대한 하나를 정의 할 필요가 수행 할 유효성 검사의 종류에 대한 유효한 XML

<submission type="submit_one"> 
    <reports> 
     <report>X</report> 
     <report>Z</report> 
    </reports> 
</submission> 

답변

3

만 XSD 1.0을하고있는 경우, 그것은 불가능합니다. XSD 1.0 프로세서와 Schematron 엔진을 결합하고자한다면, 그렇게 할 수 있습니다.

XSD 1.1 프로세서에 액세스 할 수있는 경우 < xsd : assert />를 사용하여 해결하거나 대체 유형을 사용할 수 있습니다. 자세한 내용은 here을 참조하십시오.

0

일이 아닌 것 다른 하나.

불행히도 이렇게하면 당신은 스키마에서 같은 위치에 두 개의 서로 다른 유형에서 동일한 노드 이름을 공유 할 수 없습니다.

+0

아, 그건 내 문제입니다. 노드 이름이 같아야합니다. 내 XSD는 이와 같은 두통을 만드는 정부가 만든 스키마의 유효성 검사를 시도하고 있습니다. – Spidy