В чем разница между xsd: include и xsd: import? - PullRequest
180 голосов
/ 01 марта 2010

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

Ответы [ 6 ]

186 голосов
/ 01 марта 2010

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

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

47 голосов
/ 16 апреля 2014

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

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

17 голосов
/ 10 февраля 2015

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

Например, средство проверки 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"/>
8 голосов
/ 01 марта 2010

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

0 голосов
/ 14 апреля 2016

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

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

0 голосов
/ 07 февраля 2014

Прямая цитата из MSDN: Элемент, раздел примечаний

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...