我是 XML Schema 的新手,并且遇到了将许多前缀绑定到xsd:schema
根元素中的各种名称空间的模式文档,并且还导入了此类模式的子集。在 XML Schema 文档的其余部分,他们很乐意使用绑定在xsd:schema
元素中的所有前缀(无论是否导入)。
那么命名空间的 animport
比“只是”将该命名空间绑定到前缀意味着什么?
从我读到的Definitive XML Schema书(第 66 页):
导入用于告诉处理器您将引用来自其他命名空间的组件
在我的理解中,这也是绑定的作用,那么有什么区别呢?
具体例子
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:vr="http://www.ivoa.net/xml/VOResource/v1.0"
xmlns:ssap="http://www.ivoa.net/xml/SSA/v1.0"
xmlns:vm="http://www.ivoa.net/xml/VOMetadata/v0.1"
targetNamespace="http://www.ivoa.net/xml/SSA/v1.0"
elementFormDefault="unqualified"
attributeFormDefault="unqualified"
version="1.0pr2">
<xs:import namespace="http://www.ivoa.net/xml/VOResource/v1.0"
schemaLocation="http://www.ivoa.net/xml/VOResource/v1.0"/>
<!-- ... rest of the schema document follows -->
http://www.ivoa.net/xml/VOResource/v1.0
上述架构文档中的命名空间既绑定到vr前缀,又被导入。其他命名空间只绑定到某些前缀而不是导入。文档的其余部分使用来自vr(绑定和导入)和ssa(绑定但未导入)前缀的组件。有什么不同?