"Any number of these elements - in any order"的 XML 架构构造

标签 xml xsd schema

我需要创建一个看起来像这样的 XML 模式:

<xs:element name="wrapperElement">
<xs:complexType>
    <xs:sequence>
        <xs:element type="el1">
        <xs:element type="el2">
    </xs:sequence>

    <xs:WhatGoesHere?>
        <xs:element type="el3"> 
        <xs:element type="el4">
        <xs:element type="el5">
    </xs:WhatGoesHere?>

    <xs:sequence>
        <xs:element type="el6">
        <xs:element type="el7">
    </xs:sequence>
</xs:complexType>
</xs:element>

我需要的是“WhatGoesHere”的替代品,这样任意数量的 el3、el4 和 el5 可以以任意顺序出现。例如它可以包含 {el3, el3, el5, el3}

关于如何解决这个问题有什么想法吗?

最佳答案

您希望 xs:choice 具有出现约束:

<xs:element name="wrapperElement">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="e11"/>
      <xs:element name="el2"/>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element name="el3"/>
        <xs:element name="el4"/>
        <xs:element name="el5"/>
      </xs:choice>
      <xs:element name="el6"/>
      <xs:element name="el7"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>

关于 "Any number of these elements - in any order"的 XML 架构构造,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31847/

相关文章:

xml - 获取 XSLT for-each 循环中元素(迭代)的总数

c++ - XML Schema 到 C++ 类

java - 仅在 jaxb 中枚举限制默认值

数据库架构设计 - 提高归档能力的技巧?

c# - 我如何在 .Net 中使用其他/更现代的模式验证?

xml - 如何从所有 .xml 文件中删除所有包含字符串的行?

python - NLTK 的 XMLCorpusReader 可以用于多文件语料库吗?

database - 文档数据库中模式更改的模式

java - 在 java 中解析 XML 时没有工作 ID 属性

sql - XML 模式中的任何元素都会阻止 XQuery