2013-11-01 4 views
0

"xsi : schemaLocation ="속성에서 .xsd 위치를 지정하지 않고 내 xml의 유효성을 검사 할 수있는 옵션이 있는지 묻고 싶습니다.XML 스키마, schemaLocation 속성에서 .xsd 파일 숨기기

예 : my xml 파일 의 schemaLocation =

<?xml version="1.0" ?> 
<test:XMLFile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
      xmlns:test="http://test/" 
      xsi:schemaLocation="http://test/" {relative/absolute path}/Test.xsd"> 
    <Data> TEST </Data> 
</test:XMLFile> 

나는 그렇게 XSI를 숨길 수있는 다른 옵션이 보안상의 이유로 .XSD 위치를 숨기려는 "HTTP가 : // 테스트 /"{상대/절대 경로} /Test.xsd를?

lib 또는 심지어 파서에 .xsd를 포함시킬 수 있습니까?

건배,

J. 절대적으로

답변

1

예. xsi : schemaLocation에서 스키마를 식별 할 필요는 없으며 많은 사람들은이를 나쁜 습관이라고 생각합니다. (다른 부분을 제외하고는 유효성 검사가 필요한 경우 문서 내용을 신뢰할 수 없다는 것을 의미하므로 올바른 스키마를 가리키는 이유는 무엇입니까?)

불행히도 귀하의 처리 환경이지만 대부분의 유효성 검사기는 원본 문서와 스키마를 독립적으로 지정할 수있는 API와 명령 줄 인터페이스를 모두 제공 할 것이라고 생각합니다.

xsi : schemaLocation이 유용 할 수있는 주요 사례는 제작 도구를 사용하여 입력 할 때 유효성을 검사하는 경우입니다.

+0

모두 해당됩니다. 심지어 저작 도구조차 xsi : schemaLocation없이 원칙적으로 할 수 있습니다. 예를 들어, Emacs nxml 모드는 외부 문서의 스키마 연관을 추적합니다. 더 많은 XSD 편집자가 그 일을 할 수 있기를 바랍니다. –

관련 문제