Какая разница между xsd: include и xsd: import?

В чем разница между xsd:include и xsd:import? Когда вы будете использовать один вместо другого, и когда это может не иметь значения?

Ответ 1

Фундаментальное различие между include и import заключается в том, что вы должны использовать import для ссылки на объявления или определения, которые находятся в другом целевом пространстве имен, и вы должны использовать include для ссылки на объявления или определения, которые (или будет) в том же целевом пространстве имен.

Источник: https://web.archive.org/web/20070804031046/http://xsd.stylusstudio.com/2002Jun/post08016.htm

Ответ 2

Используйте xsd: include, чтобы добавить XSD из того же или без пространства имен.

Используйте xsd: import, чтобы добавить XSD из другого пространства имен.

Ответ 3

Другое отличие состоит в том, что <import> позволяет импортировать, обращаясь к другому пространству имен. <include> разрешает импортировать, ссылаясь на URI планируемой схемы include. Это определенно другая разница, чем импорт внутри пространства.

Например, валидатор схемы xml уже может уже знать расположение всех схем по пространству имен. Особенно учитывая, что обращение к пространствам имен XML по URI может быть проблематичным для разных систем, где classpath://ничего не значит или где http://не разрешено, или где некоторый URI не указывает на то же, что и на другая система.

Пример кода действительного и недопустимого импорта и включает в себя:

Действительно:

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

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

Invalid:

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

Ответ 4

Меня это тоже интересует. Единственное объяснение, которое я нашел, заключается в том, что xsd:include используется для включений внутри пространства имен, а xsd:import - для включения пространства имен между именами.

Ответ 5

" включить" Компонент - этот компонент приносит все декларации и определения внешнего документа схемы в текущую схему. Документ внешней схемы должен иметь одно и то же пространство имен как текущую схему. Компоненты "включить" обычно используются для создания новой схемы путем расширения существующих документов схемы.

" import" Компонент. Этот компонент предлагает те же функции, что и компонент include, за исключением того, что в документе с включенной схемой указано другое целевое пространство имен. Компоненты "импорт" обычно используются для построения новой схемы путем заимствования объявлений элементов из существующих документов схемы из других пространств имен.

Ответ 6

Разница между элементом include и элементом импорта заключается в том, что элемент импорта позволяет ссылаться на компоненты схемы из документов схемы с разными целевыми пространствами имен, а элемент include добавляет компоненты схемы из других документов схемы, которые имеют одно и то же пространство имен задач (или нет указанного пространства имен задач) в содержащую схему. Короче говоря, элемент импорта позволяет использовать компоненты схемы из любой схемы; элемент include позволяет вам добавить все компоненты включенной схемы в содержащую схему.

Ответ 7

Использование xsd: include приводит все декларации и определения внешнего документа схемы в текущую схему.

Используйте xsd: import, чтобы добавить XSD из другого пространства имен и использоваться для создания новой схемы путем расширения существующих документов схемы.