2013-06-04 17 views
7

voglio definire un XSD per un elemento parametro che mi permetterà di definire il parametro nei seguenti modiCome definire XSD per consentire a qualsiasi elemento

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

o

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

Nel il secondo approccio al contenuto xml all'interno dell'elemento parametro non è noto in anticipo, quindi può essere qualsiasi cosa.

Quanto segue è il xsd che ho creato ma non sembra funzionare.

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

Qualsiasi aiuto con questo sarà molto apprezzato. Grazie in anticipo

risposta

24

Sono stato in grado di capirlo dopo aver esaminato le specifiche pubblicandolo qui così qualcun altro potrebbe averne bisogno :). Devi aggiungere processContents="skip" in modo che il contenuto non venga elaborato.

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

Problemi correlati