xsd:include和xsd:import有什么区别?

xsd:includexsd:import什么区别? 你什么时候用一个而不是另一个,什么时候可能不重要?

includeimport的根本区别在于,您必须使用import来引用位于不同目标名称空间中的声明或定义,并且必须使用include来引用同一个目标名称空间中(或将要)的声明或定义。

资料来源: https : //web.archive.org/web/20070804031046/http : //xsd.stylusstudio.com/2002Jun/post08016.htm

使用xsd:include相同或不带名称空间引入XSD。

使用xsd:import不同的命名空间引入XSD。

另一个区别是<import>允许通过引用另一个名称空间来导入。 <include>仅允许通过引用预期包含模式的URI来导入。 这绝对是与intra-intra命名空间导入不同的另一个区别。

例如,xml模式validation器可能已经知道名称空间的所有模式的位置。 特别是考虑到通过URI引用XML命名空间可能会在不同的系统上出现问题,在这些系统上,classpath://什么都不指定,或者http://不允许,或者某个URI不指向与它相同的事物另一个系统。

有效和无效import的代码示例,包括:

有效:

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

无效:

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

我也对此感兴趣。 我发现的唯一解释是, xsd:include用于内部命名空间包含,而xsd:import用于内部命名空间包含。

include ”Component – 此组件将外部架构文档的所有声明和定义引入当前架构。 外部模式文档必须与当前模式具有相同的目标名称空间 。 “include”组件通常用于通过扩展现有的模式文档来构build新的模式。

导入 ”组件 – 除了包含的模式文档具有不同的目标名称空间之外,此组件提供与“包含”组件相同的function。 “导入”组件通常用于通过从其他名称空间借用现有模式文档中的元素声明来构build新模式。

include元素和import元素之间的区别在于,import元素允许从具有不同目标命名空间的模式文档引用模式组件,而include元素则添加来自具有相同目标命名空间的其他模式文档的模式组件(或者没有指定的目标命名空间)到包含的模式。 简而言之,导入元素允许您使用任何模式的模式组件; include元素允许您将包含模式的所有组件添加到包含模式。

使用xsd:include将外部模式文档的所有声明和定义引入当前模式。

使用xsd:import从不同的名称空间引入XSD,并通过扩展现有的模式文档来构build新的模式。