xml - 允许随机排序的 XSD 架构

标签 xml xsd xsd-validation

我尝试设计一个 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>

最佳答案

你想要<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……我不确定。)然后我调整了结果。

关于xml - 允许随机排序的 XSD 架构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3820323/

相关文章:

xml - 在 Axis2 中使用 XML 1.1

java - 使用 Metro 编码 JAXB 类时忽略 schemaLocation

XSD 验证错误 - 同一定义中引用的复杂类型

javascript - 获取 nodeValue 时输出为 null

java - 从 spring MVC Controller 返回 xml 文件

python - 如何在 Python 中获取 XML 根元素的内容?

java - XML 架构以无序模式显示元素

c# - 在 XSD 中表示一对重复的 XML 元素

xml - 元素类型 xs :element must be terminated by the matching end-tag </xs:element>