xml - example - Wie definiere ich XSD um ein beliebiges Element zu erlauben?



xml schema erstellen (1)

Ich möchte ein xsd für ein Parameterelement definieren, das es mir erlaubt, den Parameter auf die folgenden Weisen zu definieren

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

oder

<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>

Bei der zweiten Methode ist der XML-Inhalt innerhalb des Parameterelements nicht bekannt, daher kann es alles sein.

Das Folgende ist die xsd ich erstellt, aber es scheint nicht zu funktionieren.

<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>

Jede Hilfe mit diesem wird sehr geschätzt. Danke im Voraus

https://src-bin.com


Answer #1

Ich konnte es herausfinden, nachdem ich die Spezifikationen durchgesehen hatte, um es hier zu veröffentlichen, damit jemand anderes es brauchen könnte. Sie müssen processContents="skip" hinzufügen, damit der Inhalt nicht verarbeitet wird.

<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>





xsd