2009-09-10 5 views
13

XSD에서 이것을 표현할 수 있습니까?XML 스키마 (XSD) - 특정 요소에 특정 값이 있으면 다른 요소가 있어야하며 그 반대의 경우도 마찬가지입니다.

예 : 하나의 요소는 EmployedMoreThanThirteenWeeks라는 필수 bool 요소이며 값이 false로 설정된 경우 스키마에 EmploymentDate라는 다른 요소의 존재를 요구해야합니다. 그리고 값이 참이면 다른면에서는 EmploymentDate 요소를 거부해야하지만 이상적으로는 선택적인 것으로 받아 들일 수 있습니다.

답변

7

아니요. XSD는 관계가 아닌 구조 및 데이터 형식을 정의합니다. 요소 사이에 키 참조를 추가 할 수는 있지만 유효하지 않은 값을 나타내는 유효하지 않은 노드를 막지는 못합니다.

XML 파일의 유효성을 검사하여 오류 보고서를 생성하는 XSLT 파일 (XML 스타일 시트)을 만들 수 있습니다.

+2

스키마 1.0에서 "아니오"는 정답입니다. Schematron 또는 XML 스키마 1.1은 솔루션을 제공합니다. http://www.xfront.com/ExtendingSchemas.html http://www.ibm.com/developerworks/library/x-xml11pt2/ –

0

스키마는 구조 (트리) 만 검증하고 값 (VALUES)은 검증하지 않기 때문에 XSD CANT가 그렇게한다고 생각합니다 (값 형식을 확인할 수는 있지만). 다른 유효성 검사 방법을 고려해야합니다.

관련 문제