2010-09-29 83 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 ......我不确定。)然后我调整了结果。