key() 함수를 사용하여 메타 데이터를 가져 오는 스타일 시트가 있다고 가정 해 보겠습니다. 즉 우리는이 같은 인스턴스 문서가 :XML 스키마에서 제한/열거 대신 key/keyref를 사용할 수 있습니까?
<items>
<item type="some_type"/>
<item type="another_type"/>
</items>
및 추가 데이터 테이블은 우리가 처리하는 동안 항목과 연결하려는 :
<item-meta>
<item type="some_type" meta="foo"/>
<item type="another_type" meta="bar"/>
<item type="yet_another_type" meta="baz"/>
</item-meta>
마지막으로
, 우리가에 스키마 유효성 검사를 수행한다고 가정 유형 - 속성을 항목 - 메타에서 발생하는 유형 세트로 제한하는 인스턴스 문서. 따라서 스키마에서 제한/열거 대신 key/keyref를 사용하려고합니다. 이것은 제한/열거를 사용하려면 유효한 유형 속성의 별도 목록을 작성해야하기 때문입니다.
그러나 key/keyref가 실제로 작동하는 것처럼 보이지 않습니다. (MSXML 6.0을 사용하여) 스키마 키의 selector가 xpath 인수에 document() 함수를 허용하지 않는 것처럼 보였으므로 항목 메타 데이터가 외부 파일에 표시되는지 또는 외부 메타 데이터에 표시되는지는 확인할 수 없습니다. 스키마 파일 자체. 열쇠를 찾을 수있는 곳은 인스턴스 문서뿐입니다.
우리가 실제로 유효한 유형의 목록을 갖고 싶지 않다면 사전 검증 변환을 수행하고 item-meta 항목을 가져온 다음 유효성 검사를 수행 한 다음 원본 변환을 수행해야합니다. XML 스키마와 스타일 시트를 비교적 직접적으로 사용해야하는 것은 너무 복잡해 보입니다.
더 좋은 방법이 있습니까?