我将以下选择序列作为XML模式的一部分。理想情况下,我想要一个序列:
- 必须严格解析
my:namespace
中的元素。 - 在解析/验证过程中,应该跳过任何其他命名空间的元素,
##targetNamespace
和my: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"……