导入XSD以获取http://www.w3.org/2001/XMLSchema命名空间?

时间:2015-04-17 23:41:49

标签: xml xsd namespaces

在引用另一个XSD中的定义时,我们使用" import"对于另一个名称空间不同的XSD,并使用" include"对于同一命名空间中的另一个XSD。

也就是说,在使用之前我们不需要导入xmlns:xsd="http://www.w3.org/2001/XMLSchema。为什么?我想知道XSD架构是如何为应用程序提供的 - 哪个文件包含这个XSD?是因为它已经在应用程序的类路径中吗?

同样,我想知道如果我们创建的其他模式将在应用程序的类路径中,我们是否需要进行导入或包含?

1 个答案:

答案 0 :(得分:2)

xmlns:xsd="http://www.w3.org/2001/XMLSchema 名称空间声明 xsd 名称空间前缀 http://www.w3.org/2001/XMLSchema 名称空间URI 。这个特殊的命名空间定义了XML Schema中使用的词汇表;它与通过xsd:importxsd:include带来的用户XSD无关。

相关:有XML Schema schema v1.0(或v1.1),可用于验证XSD,但XSD处理器可以有自己的验证方法,但不一定必须阅读XML Schema架构。

还相关xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance声明将xsihttp://www.w3.org/2001/XMLSchema-instance命名空间关联,并且适用于XML规范定义的多个属性:xsi:typexsi:nilxsi:schemaLocationxsi:noNamespaceSchemaLocation

这些都不需要用户导入或包含。

是的,XSD必须明确导入或包含所有其他包含所需组件的XSD;没有自动导入或包含与任何类路径相关联的这些XSD。