2012-02-05 44 views
1

我想創建一個XML模式 - 一個XSD文件 - 應用於XML文檔。 讓我們考慮以下XML文檔:XML Schema + complexType元素+替代序列

<root> 
    <a /> 
    <b /> 
    <c /> 
    <a /> 
    <a /> 
    <b /> 
</root> 

凡下列所需的約束得到尊重:

  1. <根>是根元素。
  2. < a>,< b>和< c>元素可能會出現無限次數。
  3. < 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> 

回答

0

所以,你的根模式是:A,B,C:從這些當中反覆的可能選擇。是嗎?操作詞是選擇的選擇。也許我錯過了一些東西,但答案似乎很明顯。