如何定义XSD以允许任何元素

pul*_*thi 9 xml xsd

我想为参数元素定义一个xsd,它允许我以下面的方式定义参数

<parameter name="save.type" value="attribute" />
Run Code Online (Sandbox Code Playgroud)

要么

<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>
Run Code Online (Sandbox Code Playgroud)

在第二种方法中,参数元素中的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>
Run Code Online (Sandbox Code Playgroud)

任何帮助都将非常感激.提前致谢

pul*_*thi 26

经过在这里发布的规格,我能够弄明白,所以其他人可能需要它:).您必须添加,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>
Run Code Online (Sandbox Code Playgroud)