我有一个包含多个未知标签的 XML 文件,其中包含应添加验证的已知标签。
<root>
<child>
<template id="abc"/>
</child>
<child>
<random>
<template id="abc"/>
</random>
</child>
</root>
随机标签表示一个未知的随机标签,由 表示xs:any
,我移至 XSD 1.1 以允许:
<xs:choice>
<xs:element name="child" type="xs:string">
<xs:complexType>
<xs:sequence>
<xs:element name="template" type="xs:string">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="id" use="optional">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[a-z]"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:any/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:any/>
</xs:choice>
我的问题是模板和子项等已知标签出现在未知标签内,以及已知和未知标签的未知层次结构下。
有没有办法xs:any
可以包含已知标签或为已知标签添加验证并忽略层次结构,因此可以在任何层次结构下检查已知标签内的错误?
欢迎使用 XSD 1.1 或 XSD 1.0 中的任何解决方案。