我想创建一个 XML Schema(一个 XSD 文件)以应用于 XML 文档。让我们考虑以下 XML 文档:
<root>
<a />
<b />
<c />
<a />
<a />
<b />
</root>
在遵守以下所需约束的情况下:
- <root> 是根元素。
- < a >、< b > 和 < c > 元素可以出现无数次。
- <a>、<b> 和<c> 元素未分组。例如,一个元素可以在 < b > 元素之前和之后。
如果我必须创建一个 XML 模式以应用于示例 XML 文档,我将从以下开始:
<?xml version="1.0" encoding="utf-8"?>
<xs:schema targetNamespace="http://doesnotmatter.com/"
xmlns="http://doesnotmatter.com/"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="root"
min="1"
max="1">
<complexType>
<!-- ? -->
</complexType>
</xs:element>
</xs:schema>
我不知道如何在我的架构中填充 < complexType > 元素。
由于第三个约束,我不能使用 <sequence> 元素。
我怎样才能实现我的架构以尊重所有 3 个约束。
编辑
选择元素是我的问题的基石。
这是与上述我的需求相对应的 XML 模式:
<?xml version="1.0" encoding="utf-8"?>
<xs:schema targetNamespace="http://doesnotmatter.com/"
xmlns="http://doesnotmatter.com/"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="root">
<xs:complexType>
<xs:choice maxOccurs="unbounded">
<xs:element name="a" />
<xs:element name="b" />
<xs:element name="c" />
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>