2010-09-29 51 views
5

我嘗試設計一個XSD模式,允許元素以隨機順序並具有maxOccurs =「unbounded」。允許隨機順序的XSD模式

我的XML:

<root> 
    <key></key> 
    <group></group> 
    <group> 
    <key></key> 
    <key></key> 
    <group> 
     <key></key> 
     <key></key> 
    </group> 
    </group> 
    <key></key> 
    <key></key> 
    <group> 
    <key></key> 
    <key></key> 
    <key></key> 
    </group> 
    <key></key> 
</root> 
+1

您能向我們展示您到目前爲止的管理?你在談論哪些元素?我猜你的模型允許'group'元素包含'key'和'group'元素,並且你希望'root'具有相同的模型。是對的嗎? – 2010-09-29 12:03:44

+0

是的,這是我想要的。 – magol 2010-09-29 12:55:13

回答

5

你想<xs:choice>

<?xml version="1.0" encoding="UTF-8"?> 
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
    <xs:complexType name="groupType"> 
     <xs:choice minOccurs="0" maxOccurs="unbounded"> 
     <xs:element name="group" type="groupType"/> 
     <xs:element name="key"/> 
     </xs:choice> 
    </xs:complexType> 

    <xs:element name="root" type="groupType" /> 
</xs:schema> 

我粘貼示例XML成氧氣XML編輯器,並使用了這個 「工具>生成/轉換模式」,與input =您的示例XML文檔。 (它可能會在封面下使用Trang ......我不確定。)然後我調整了結果。