2013-05-02 4 views
1

파일을 XSD 스키마와 대조하여 xmllint 도구를 사용하고 있습니다. 의 schemaLocation 속성 :이 도구가은 실제로 사용 된 xsi : schemaLocation입니까?

xmllint --noout --schema foo.xsd bar.xml 

로 호출 ... 그리고 XML 파일의 XSI에서 XSD 파일을 검색 할 수있는 옵션을 포함하지 않는 것으로 나타납니다. 또한, relevant w3.org specs에는 다음과 같은 것이있다 :

이러한 힌트의 존재 xsi : schemaLocation]은 프로세서가 인용 된 스키마 문서를 얻거나 사용할 것을 요구하지 않으며 프로세서는 적절한 방법으로 얻은 다른 스키마를 자유롭게 사용하거나 전혀 스키마를 사용하지 않아도됩니다. 의 schemaLocation 속성 (소프트) 문서 금액 :

그래서 연습에 XSI는 말을 공평? 또한 들어오는 XML 문서에서 응용 프로그램에 유효성을 검사하는 방법을 알리는 것이 좋지 않기 때문에 이점이 보이지 않습니다.

답변

1

XSD 위치 힌트, 의 schemaLocation의 noNamespaceSchemaLocation는 거의 참, (내가 그것을 본 적이) 생산 환경에서 사용되지 않습니다.

개인적으로는 개발 단계 동안 사용 된 금형의 편리한 방법으로 본다. 유효성 확인, IntelliSense 등에 XSD가 사용되어야 하는지를 나타내는 상호 운용 가능한 방법으로 간주됩니다.

다른 XSD 파일을보다 잘 설명하기 위해 XML 파일 (샘플)을 구성한다고 가정 해보십시오. 내가 보았던 것에서 사람들은 스키마 위치 힌트 (상대 URI)를 사용하고, 전체 세트 (XSD, XML 등)를 압축 한 다음 아카이브를 소비자에게 발송합니다. 이 방법을 사용하면 사람들이 사용하는 개발 도구와 상관없이 "상호 운용"될 가능성이 더 커집니다. 예를 들어, MS Visual Studio는 특정 XML 파일과 관련된 스키마를 보유하는 내부 및 독점 스토리지를 유지 관리합니다. "메타 데이터"는 xsi 스키마 위치 힌트와 동일한 방식으로 다른 도구로 이식 할 수 없습니다.

나는 스키마 힌트 힌트를 실제로 "고급"으로 사용했기 때문에이 힌트를 읽고 인텔리 센스 및 유효성 검사 메시지를 동적으로 조정하는 데 많은 시간을 소비합니다.

2

신뢰할 수 없기 때문에 들어오는 문서의 유효성을 검사 할 때 들어오는 문서를 신뢰하여 스키마를 식별하는 대신 유효성 검사에 사용할 스키마를 말하고 싶습니다.

그럼에도 불구하고 xsi : schemaLocation은 매우 광범위하게 사용되며 대부분의 도구에서 지원됩니다. 필자는 본질적으로 저자가 스키마 유효성 검사의 도움을받지 않고 자신의 권리를 얻을 수 있다고 믿지 않는 저작 환경에서 가장 이해하기 쉽다고 생각합니다.

그러나 스키마를 문서의 마크 업을 설명하고 사람들이 이해하는 데 도움이되는 것으로 생각하면 의미가 있습니다. 다음은지도상의 패널과 같습니다. 기호의 의미를 설명합니다. 문서에서 사용 된 표기법에 대한 안내입니다.