XSD 수준에서 문서의 다른 요소의 존재 여부를 기준으로 요소 요구 사항을 정의 할 수 있습니까?XSD 및 요소 존재 요구 사항 또는 기타 옵션
예를 들어 <id />
요소가있을 때마다 <firstname />
요소를 제공해야합니다. 그렇지 않으면 첫 번째 이름은 선택 사항입니다.
XSD 수준에서이를 적용 할 수없는 경우 두 요소를 선택적으로 만들고 다른 수준의 검사를 통해 요구 사항을 적용해야합니까?
옵션을 환영합니다.
XSD 수준에서 문서의 다른 요소의 존재 여부를 기준으로 요소 요구 사항을 정의 할 수 있습니까?XSD 및 요소 존재 요구 사항 또는 기타 옵션
예를 들어 <id />
요소가있을 때마다 <firstname />
요소를 제공해야합니다. 그렇지 않으면 첫 번째 이름은 선택 사항입니다.
XSD 수준에서이를 적용 할 수없는 경우 두 요소를 선택적으로 만들고 다른 수준의 검사를 통해 요구 사항을 적용해야합니까?
옵션을 환영합니다.
XSD 수준에서는 적용 할 수 없습니다.
두 요소 모두 선택 사항으로 만들고 응용 프로그램 아키텍처에서 요구 사항을 다른 수준으로 적용하면 나에게 좋은 옵션이라고 생각됩니다.
다음은 DTD에서 수행되는 예제입니다. (참고 :. 테스트 인스턴스의 Xerces를 사용하는 산소 XML 편집기를()를 사용하여 검증되었다)
DTD (test.dtd) 여기
<?xml version="1.0" encoding="UTF-8"?> <!ELEMENT user ((firstname?|(firstname,id)),lastname)> <!ELEMENT firstname (#PCDATA)> <!ELEMENT lastname (#PCDATA)> <!ELEMENT id (#PCDATA)>
이 (유효 및 무효) 몇 가지 예제 XML 인스턴스입니다 :
유효한
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE user SYSTEM "test.dtd">
<user>
<firstname/>
<id/>
<lastname/>
</user>
잘못된
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE user SYSTEM "test.dtd">
<user>
<id/>
<lastname/>
</user>
유효한
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE user SYSTEM "test.dtd">
<user>
<firstname/>
<lastname/>
</user>
나는이가 (pmartin 말한 것처럼) XSD와 함께 할 수 있다고 생각하지 않습니다,하지만이 DTD 수행 할 수 있습니다. 관심이 있다면 알려주고 예제를 게시하겠습니다. –
@DevNull : 물론, 질문 제목에 옵션을 묻는 질문이 있기 때문에 DTD의 예를 게시하고 그 정보는 향후 방문자에게 유용합니다. 제목을 보완하기 위해 "옵션 환영"질문 문안을 개정했습니다. 감사. –