在xs:任何类型的XML元素中,命名空间通配符## any还包括#local吗?

时间:2018-04-04 11:06:38

标签: xml xsd wildcard xml-namespaces

在xs:任何类型的XML元素中,命名空间通配符## other还包括#local吗?

据我所知,从以下情况来看,它没有,例如:

https://www.w3.org/TR/xmlschema-1/

https://msdn.microsoft.com/en-us/library/ms256043(v=vs.110).aspx

据我所知,上面第二个链接的定义似乎是分离的:

Elements from any namespace that is not the target namespace of the parent element containing this element can be present.

Elements that are not qualified with a namespace can be present.

这是正确的,我是否理解正确? xs:any类型##other的XML元素中必须没有不合格的元素?

1 个答案:

答案 0 :(得分:2)

##local允许没有名称空间的名称

##other允许名称空间不在目标名称空间

中的名称

您需要非常小心这里的术语。使用诸如“不合格元素”之类的口语术语对您没有帮助,因为规范非常精确地使用术语并假设您知道它们的含义。特别是,我们中的许多人认为“没有命名空间中的名称”在某种特殊的“未命名”或“空”命名空间中,但认为在阅读XSD规范时这是一个错误的错误。当规范说明名称必须在目标命名空间以外的命名空间中时,它意味着(a)它必须在命名空间中(因此排除无命名空间名称 - 与##local匹配的名称)和(b) )该命名空间不能是目标命名空间。