1
我想創建一個XML模式 - 一個XSD文件 - 應用於XML文檔。 讓我們考慮以下XML文檔:XML Schema + complexType元素+替代序列
<root>
<a />
<b />
<c />
<a />
<a />
<b />
</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>元素在我的架構。
由於第3個約束,我無法使用< 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>