【问题标题】:XML Schema for type that can contain zero or more 'x' elements and zero or one 'y' element anywhere?可以在任何地方包含零个或多个“x”元素和零个或一个“y”元素的类型的 XML 模式?
【发布时间】:2011-11-12 20:39:14
【问题描述】:

我希望我的名为subquery 的元素能够包含零个或多个insert 元素,以及零个或一个subquery 元素。这些元素可以在任何地方。这些将是有效的subquery 元素:

<subquery>
    <subquery>...</subquery>
</subquery>

<subquery>
    <insert />
    <insert />
</subquery>

<subquery>
    <insert />
    <subquery>...</subquery>
    <insert />
</subquery>

<subquery>
    <subquery>...</subquery>
    <insert />
    <insert />
</subquery>

<subquery>
    <insert />
    <insert />
    <insert />
    <subquery>...</subquery>
</subquery>

我尝试了很多方法,但无法获得有效的架构。当我在 All 中使用 maxOccurs="unbounded" 表示 insert 的类型时,Liquid XML Studio 告诉我 maxOccurs 必须为 0 或 1。也无法将其作为序列工作。

这可能吗?

【问题讨论】:

    标签: xml xsd


    【解决方案1】:

    这个模型不会做吗?:insert* (subquery, insert*)?

      <xs:element name="subquery">
        <xs:complexType>
          <xs:sequence>
             <xs:element ref="insert" minOccurs="0" maxOccurs="unbounded"/>
             <xs:sequence minOccurs="0">
                <xs:element ref="subquery"/>
                <xs:element ref="insert" minOccurs="0" maxOccurs="unbounded"/>
             </xs:sequence>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    

    【讨论】:

      【解决方案2】:
      <?xml version="1.0" encoding="UTF-8"?>
      <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
        <xs:element name="subqueries">
          <xs:complexType>
            <xs:sequence>
              <xs:element maxOccurs="unbounded" ref="subquery"/>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="subquery">
          <xs:complexType mixed="true">
            <xs:choice minOccurs="0" maxOccurs="unbounded">
              <xs:element ref="subquery"/>
              <xs:element ref="insert"/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name="insert">
          <xs:complexType/>
        </xs:element>
      </xs:schema>
      

      这就够了吗? (我添加了一个根元素子查询。)

      干杯, 维姆

      【讨论】:

      • subquery 中不允许有多个subquery 吗?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多