假设我有以下 xml 文档:
<root xmlns:p="uri:myNamespace">
<p:tagA>
<p:tagB />
</p:tagA>
</root>
tagB 只能在 tagA 内。我可以编写一个 xsd 来验证:
<xsd:schema ... targetNamespace="uri:myNamespace" elementFormDefault="qualified">
<xsd:element name="tagA">
<xsd:complexType>
<xsd:element name="tagB" type="..." />
</xsd:complexType>
</xsd:element>
</xsd:schema>
现在问题来了:我想忽略外部命名空间之间的任何标签:
<root xmlns:p="uri:myNamespace">
<p:tagA>
<whatever />
<foo>
<bar>
<p:tagB />
</bar>
</foo>
</p:tagA>
</root>
如您所见, tagB 现在嵌套在没有命名空间的其他标签中。
是否有可能(如何?)编写一个 XSD,它仍然强制tagA
我的命名空间中的唯一标签是 atagB
但中间可能有其他命名空间的任何标签?