【问题标题】:How to define XSD to allow any element如何定义 XSD 以允许任何元素
【发布时间】:2013-06-04 12:21:11
【问题描述】:

我想为参数元素定义一个 xsd,这将允许我以以下方式定义参数

<parameter name="save.type" value="attribute" />

<parameter name="payload">
        <p:AdderProcessRequest xmlns:p="http://wso2.org/bps/sample">
            <!--Exactly 1 occurrence -->
            <x xmlns="http://wso2.org/bps/sample">{@xvalue}</x>
            <!--Exactly 1 occurrence -->
            <y xmlns="http://wso2.org/bps/sample">{@yvalue}</y>
        </p:AdderProcessRequest>
</parameter>

在第二种方法中,参数元素中的 xml 内容事先是未知的,因此它可以是任何东西。

以下是我创建的 xsd,但它似乎不起作用。

<xs:element name="parameter" maxOccurs="unbounded" minOccurs="0">
    <xs:complexType>
        <xs:sequence>
            <xs:any minOccurs="0"/>
        </xs:sequence>
        <xs:attribute type="xs:string" name="name" use="optional"/>
        <xs:attribute type="xs:string" name="value" use="optional"/>
    </xs:complexType>
</xs:element>

对此的任何帮助将不胜感激。 在此先感谢

【问题讨论】:

    标签: xml xsd


    【解决方案1】:

    在查看了此处发布的规格后,我能够弄清楚它,因此其他人可能需要它:)。您必须添加 processContents="skip" 以便内容不会被处理。

    <xs:element name="parameter" maxOccurs="unbounded" minOccurs="0">
    <xs:complexType>
        <xs:sequence>
            <xs:any processContents="skip" minOccurs="0"/>
        </xs:sequence>
        <xs:attribute type="xs:string" name="name" use="optional"/>
        <xs:attribute type="xs:string" name="value" use="optional"/>
    </xs:complexType>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多