2014-10-14 4 views
0

XML을 준수해야하는 XSD를 받았습니다. XSD에는 고유 한 ID 제약 조건이 없습니다.분리 xs : 요소와 고유 한 것

아래 예에서 고유 ID 제약 조건을 한 줄에 추가했습니다.

<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xs:element name="Passengers"> <xs:complexType> <xs:choice maxOccurs="unbounded"> <xs:element ref="passenger"/> </xs:choice> </xs:complexType> <xs:unique name="PassengerUniqueSequnceNo"> <xs:selector xpath="./passenger"/> <xs:field xpath="@SequenceNo"/> </xs:unique> </xs:element> <xs:element name="passenger"> <xs:complexType> <xs:sequence> <xs:element name="FullName" type="xs:string"/> </xs:sequence> <xs:attribute name="SequenceNo" type="xs:int"/> </xs:complexType> </xs:element> </xs:schema>

나는 줄을 추가 할 필요가 없습니다 싶습니다. 목표는 XSD의 정의 변경을 최소화하고, 다른 파일에 제약 조건을 추가 한 다음이를 가져 와서/포함하는 것입니다.

누구나 알고 계십니까?

답변

0

XSD 1.1은 XS를 사용할 수 있습니다. (하지만 여전히 변하지 요소 선언의 부분을 반복해야 할 것이다) 재정의 요소 선언을 무시

그렇지 않으면를 추가하는 XSLT 변환을 쓰기 유효성 검증을 위해 스키마를 사용하기 전에 스키마에 대한 제한 조건.

고유성 제약 조건을 확인하는 유효성 검사기 (예 : XSLT와 같은 기술 사용)를 작성하고 스키마 유효성 검사를 수행 한 후이를 별도의 패스로 실행하십시오.

+0

감사합니다. 두 번째 옵션은 좋은 옵션 인 것 같습니다. –