xsd - XML 模式中的订单定义

标签 xsd

我想定义第一个元素是特定类型,后面的元素是任意顺序的一些元素。像这样:

<node>
<!-- always at first -->
<node-data>
...
</node-data>

<!-- other nodes in any order-->
<node3></node3>
<node1></node1>
<node2></node2>
</node>

我无法使用<xsd:sequence>因为它会强制所有节点按顺序排列。

感谢您的帮助。抱歉我的英语不好。

最佳答案

一个好的起始布局可能如下所示:

<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="node">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="node-data"/>
        <xs:choice minOccurs="0" maxOccurs="unbounded">         
          <xs:element name="node3" />
          <xs:element name="node1" />
          <xs:element name="node2" />
        </xs:choice>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

然后,您可以细化类型,在选择下添加更多节点等。如果您想支持通配符,则需要使用 xs:any

关于xsd - XML 模式中的订单定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10016044/

相关文章:

java - 当我尝试通过 gradle 进行 jaxb 绑定(bind)时,为什么无法解析 XSD 模式

java - 尝试使用 JAXB(xjc) 从架构生成类时出现错误

xml - 使用 XML 架构验证自定义日期时间

java - JAXB:编码时多态性和忽略类作为类型

java - 制作 SOAP 响应显示带有 xsd 文件的自定义对象列表

java - 如何从 xsd 模式生成 xml?

java - 以编程方式将 use ="required"字段添加到 XML 架构属性

具有未定义内容的 XSD 元素

xml - 验证时的 DTD 信息和相关错误(XSD 模式)——它们可以被忽略吗?

java - 使用 JAXB : [ERROR] Unexpected <xsd:element> appears with an XSD file 时出现问题