代码之家  ›  专栏  ›  技术社区  ›  Thomas

XML:通过XML Schema强制两个元素的子结构

  •  -1
  • Thomas  · 技术社区  · 14 年前

    是否有可能(如果有,如何)使用XML模式强制文档中的两个元素 必须

    <foo>
      <bar1>
        <baz>hello, world</baz>
      </bar1>
      <bar2>
        <baz>hello, world</baz>
      </bar2>
    </foo>
    

    钥匙 正确的道路?

    谢谢!

    1 回复  |  直到 14 年前
        1
  •  0
  •   marc_s Anurag    14 年前

    当然-定义一个 <xs:complexType> 它表示bar1和bar2节点的“内容”,并使用它定义两个元素:

    <xs:schema id="foo" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema">
      <xs:element name="foo">
        <xs:complexType>
          <xs:element name="bar1" type="subbar" />
          <xs:element name="bar2" type="subbar" />
        </xs:complexType>
      </xs:element>
      <xs:complexType name="subbar">
         <xs:sequence>
            <xs:element name="baz" type="xs:string" minOccurs="0" />
         </xs:sequence>
      </xs:complexType>
    </xs:schema>