2012-04-16 2 views
2

xml : lang 속성을 가진 여러 요소가 포함 된 내 xml 문서가 있습니다.XSD에서 xml : lang 값 제한/열거

속성 값에 허용되는 값을 제한하고 싶습니다. 즉 "en-US, en-CA"만 허용합니다.

나는 제한을 추가하는 시도했지만 값이 참조되기 때문에 유효 될 것 같지 않습니다 :

<xs:element name="translation"> 
<xs:complexType> 
    <xs:sequence> 
    <xs:element ref="name" /> 
    </xs:sequence> 
    <xs:attribute ref="xml:lang" use="required"/> 
</xs:complexType> 
</xs:element> 

가져올 수있는 공간이 충분히 어려웠다 내가 찾을 수 없습니다 받기 그것에 제한/열거를 추가하는 방법에 대한 좋은 자원 = (

답변

1

불행하게도, 그것을 달성하는 쉬운 방법이 없다가. 당신이 옵션은 사용 명확하지 않습니다.

A) 빠른 (더러운 방법이다 로컬 컴퓨터에서 원본 xml.xsd를 복사하십시오. xml : lang 속성에 대해 원하는 정의를 갖도록 xml.xsd 파일을 편집하십시오. 일부 일반 메커니즘 (예 : 매달려있는 유형을 사용하려는 경우 카탈로그)을 사용하거나 수정 된 파일에 xsd : import를 사용하여 스택/툴링에 수정 된 정의를 사용하도록 지시합니다. 일부 도구는 xml.xsd의 내부 캐시 된 복사본을 사용할만큼 고집적 일 수 있기 때문에 일부 경우에는 작동하지 않을 수도 있습니다. 스택을 표시하지 않았기 때문에 주석을 달 수 없습니다.

xsd : redefine은 입자 및 입자 그룹에 대해서만 작동하므로 간단하게 XSD 1.0에서이를 수행 할 수 없습니다. xml : lang은 xsd : 언어 유형이므로, 다시 정의하여 원하는 열거 형으로 만 제한 할 방법이 없습니다.

xsd : XSD 1.1의 override는 제한되지 않은 대체를 허용합니다. 불행히도 새로운 XSD 버전의 주류 구현을 보게되어 놀라실 것입니다.

+0

로컬 컴퓨터에 xml.xsd를 복사하는 것은 내가하고있는 일이지만 부적절한 것으로 생각됩니다. 불행한 점은 유형에 대해 열거 할 수는 없지만 매우 도움이되는 설명에 감사드립니다! xmllint를 현재 유효성 검사에 사용 중입니다. – Jimmerz28

관련 문제