如何在XSD中指定递归元素结构?

时间:2016-07-07 14:31:49

标签: xml xsd

我有下一个XML:

<Property path="something">

          <Property path=".id">
            <Property path=".id1">
              <Property path=".id2">
                <Property path=".id3>
                  <![CDATA["data"]]>
                </Property>
              </Property>
            </Property>
          </Property>

          <Property path=".id4">
            <![CDATA["data"]]>
          </Property >

        </Property>

我应该在XSD中写什么才能让我拥有尽可能多的属性节点。我不想这样写:

<xs:element name="Property">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="Property" maxOccurs="unbounded" minOccurs="0">
          <xs:complexType mixed="true">
            <xs:sequence>

...

忽略XML的验证。这只是一个例子。

1 个答案:

答案 0 :(得分:0)

要构建嵌套Property元素的递归结构,请通过@ref返回其内容模型中的父元素:

<xs:element name="Property">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Property" maxOccurs="unbounded" minOccurs="0">
    <!-- ... -->