XML模式嵌套到任何元素中的子元素



我正在尝试为这个XML结构编写XML Schema:

<castle>
    <parameters>
        <firstParameter>text</firstParameter>
        <secondParameter>
            <list>
                <item>a</item>
                <item>b</item>
                <item>c</item>
            </list>
        </secondParameter>
        <thirdParameter>
            <array>
                <item>a</item>
                <item>b</item>
                <item>c</item>
            </array>
        </thirdParameter>
        <fourthParameter>
            <parameters>
                <firstParameter>text</firstParameter>
                <secondParameter>
                    <list>
                        <item>a</item>
                        <item>b</item>
                        <item>c</item>
                    </list>
                </secondParameter>
            </parameters>
        </fourthParameter>
    </parameters>
</castle>

我不知道如何用任何名称指定元素。我实际的XSD是这样的:

<xs:element name="parameters">
  <xs:complexType>
    <xs:choice maxOccurs="unbounded" minOccurs="0">
      <xs:any processContents="skip" namespace="##targetNamespace"/>
    </xs:choice>
  </xs:complexType>
</xs:element>

但是它跳过嵌套参数级别的验证。你知道怎么写得更具体吗?

跳过验证,因为您已经通过使用xsd:anyprocessContents="skip"告诉它这样做。其他控制点是

  • 设置"processContents"为"lax"表示元素声明
  • 设置processContentsstrict表示该元素
  • 使用XSD 1.1在xsd:any元素上创建断言。

如果您通过限制或参数化它们的名称来固定参数下允许的元素,则可以获得更多的限制。

相关内容

最新更新