xsd : include와 xsd : import의 차이점은 무엇입니까?


답변:


205

사이의 근본적인 차이 includeimport사용한다는 것입니다 import에 선언 또는 정의를 참조 할 다른 대상 네임 스페이스와 사용합니다 include에서 선언되거나 (또는 예정) 정의를 참조하는 동일한 대상 네임 스페이스.

출처 : https://web.archive.org/web/20070804031046/http://xsd.stylusstudio.com/2002Jun/post08016.htm



@Pops가 참조하는 stylusstudio 포스트는 여기에 있습니다 : web.archive.org/web/20140831005739/http://xsd.stylusstudio.com/...
tony19


19

또 다른 차이점은 <import>다른 네임 스페이스를 참조하여 가져올 수 있다는 것 입니다. <include>의도 된 포함 스키마의 URI를 참조하여 가져 오기만 허용합니다. 이는 내부 네임 스페이스 가져 오기와는 또 다른 차이점입니다.

예를 들어, XML 스키마 유효성 검사기는 이미 네임 스페이스별로 모든 스키마의 위치를 ​​알고있을 수 있습니다 . 특히 URI로 XML 네임 스페이스를 참조하는 것은 classpath : //가 아무 의미가 없거나 http : //가 허용되지 않거나 일부 URI가 동일한 URI를 가리 키지 않는 다른 시스템에서 문제가 될 수 있다는 점을 고려 다른 시스템.

유효하고 유효하지 않은 수입 코드 샘플 :

유효한:

<xsd:import namespace="some/name/space"/>
<xsd:import schemaLocation="classpath://mine.xsd"/>

<xsd:include schemaLocation="classpath://mine.xsd"/>

유효하지 않습니다 :

<xsd:include namespace="some/name/space"/>

URI가 아닌 위치 URL로 XML 네임 스페이스를 참조하는 것을 의미한다고 생각합니다 . 네임 스페이스 URI (예 :의 속성 )는 항상 정상이며 식별자 (텍스트 만 해석되고 해석되지 않음) 로 간주되는 반면, URI가 아닌 URL은 일반적으로 처리되어 해결되어야합니다. 실제로 Java 특정 URL 체계 는 아무 의미가 없습니다. 그러나이 깔끔한 선택 옆에 이것은 귀중한 의견입니다. 감사합니다. namespace<xs:import>schemaLocationclasspath:
ddevienne

7

나는 이것에도 관심이 있습니다. 내가 찾은 유일한 설명은 xsd:include네임 스페이스 내부 포함에 사용되는 반면 네임 스페이스 내부 포함에 xsd:import대한 것입니다.


0

MSDN 에서 직접 인용 : <xsd : import> 요소, 비고 섹션

사이의 차이 요소와 수입 요소 즉 수입 요소가 다른 대상 네임 스페이스와 스키마 문서에서 스키마 구성 요소에 대한 참조를 허용하고이 포함 요소가 동일한 대상 네임 스페이스 (또는 지정된 대상 네임 스페이스가 다른 스키마 문서에서 스키마 구성 요소를 추가 )를 포함하는 스키마에 추가합니다. 간단히 말해 import 요소를 사용하면 모든 스키마에서 스키마 구성 요소를 사용할 수 있습니다. 는 포함 요소는 당신이 포함 된 스키마에 포함 된 스키마의 모든 구성 요소를 추가 할 수 있습니다.


-3

xsd : include를 사용하면 외부 스키마 문서의 모든 선언과 정의를 현재 스키마로 가져옵니다.

xsd : import를 사용하여 다른 네임 스페이스에서 XSD를 가져오고 기존 스키마 문서를 확장하여 새 스키마를 작성하는 데 사용됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.