xsd:include和xsd:import之间有什么区别?什么时候你会用一种而不是另一种,什么时候它可能无关紧要?
include和import之间的基本区别在于,必须使用import引用位于不同目标名称空间中的声明或定义,而必须使用include引用位于(或将位于)同一目标名称空间中的声明或定义。
来源:https://web.archive.org/web/20070804031046/http: / / xsd.stylusstudio.com/2002Jun/post08016.htm
直接引用MSDN: <xsd:import> Element,备注section
The difference between the include element and the import element is that import element allows references to schema components from schema documents with different target namespaces and the include element adds the schema components from other schema documents that have the same target namespace (or no specified target namespace) to the containing schema. In short, the import element allows you to use schema components from any schema; the include element allows you to add all the components of an included schema to the containing schema.
另一个区别是<import>允许通过引用另一个名称空间进行导入。<include>只允许通过引用包含模式的URI来导入。这显然是与内部名称空间间导入的另一个区别。
例如,xml模式验证器可能已经通过名称空间知道了所有模式的位置。特别是考虑到在不同的系统上通过URI引用XML名称空间可能存在问题,其中classpath://没有任何意义,或者不允许使用http://,或者某些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"/>
使用xsd:include将外部模式文档的所有声明和定义带入当前模式。
使用xsd:import从不同的名称空间引入一个xsd,用于通过扩展现有模式文档来构建一个新模式。
推荐文章
- xsd:include和xsd:import之间有什么区别?
- 用XPath按属性值选择Element
- 谷歌协议缓冲区vs json vs XML
- 如何在Android中获得一个RadioGroup的选定索引
- XML Schema minOccurs / maxOccurs默认值
- XPath根据子元素的值选择元素
- 用java解析DOM的规范化——它是如何工作的?
- c++最好的开放XML解析器是什么?
- XPath:从子节点获取父节点
- 如何在Python中使用XPath ?
- 错误:不允许匹配“[xX][mM][lL]”的处理指令目标
- 如何使用PHP动态生成XML文件?
- 如何改变线的颜色在EditText
- 在strings.xml中从另一个字符串引用一个字符串?
- XML属性vs XML元素