XML模式-名称空间选择歧义



我将以下选择序列作为XML模式的一部分。理想情况下,我想要一个序列:

  1. 必须严格解析my:namespace中的元素。
  2. 在解析/验证过程中,应该跳过任何其他命名空间的元素,##targetNamespacemy:namespace除外。
<xs:sequence>
<xs:choice>
<xs:any namespace="my:namespace"/>
<xs:any namespace="##other" processContents="skip"/>
</xs:choice>
</xs:sequence>

当然,这个模式是无效的:my:namespace##other的成员,所以解析是不明确的。尝试使用此模式会产生唯一的粒子属性冲突。还有其他方法可以实现我所描述的吗?

XSD 1.1允许xs:any具有包含或排除的名称空间的显式列表。

很多问题都遵循"can I do this in xsd"的模式。并得到答案"是的,但你需要XSD 1.1"……

最新更新