代码之家  ›  专栏  ›  技术社区  ›  magol Nathaniel Roark

允许随机顺序的XSD架构

  •  5
  • magol Nathaniel Roark  · 技术社区  · 14 年前

    我尝试设计一个XSD模式,允许元素以随机顺序排列,并使maxOccurs=“unbounded”。

    我的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 回复  |  直到 14 年前
        1
  •  5
  •   LarsH    14 年前

    你想要的 <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粘贴到Oxygen XML编辑器中,并使用“工具”>“生成/转换模式”,输入=示例XML文档来实现这一点的。(可在封面下使用Trang…我不确定。)然后我调整了结果。