2017-04-12 5 views
0

Ich versuche, xsd für unter Seifenumschlag zu schreiben. Aber ich sage "cos-Element-konsistent. Fehler für Typen '#AnonType_process' Mehrere Elemente mit dem Namen 'calc', mit verschiedenen Arten, erscheinen in der Modellgruppe."xsd - Mehrere Elemente mit dem gleichen Namen mit verschiedenen Typen

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
    <xs:element name="process"> 
    <xs:complexType> 
     <xs:sequence> 
     <xs:element name="calc" type="wsInput"/> 
     <xs:element name="calc" type="wsCalc"/> 
     </xs:sequence> 
    </xs:complexType> 
    </xs:element> 

    <xs:complexType name="wsInput"> 
    <xs:sequence> 
     <xs:element type="xs:string" name="fieldName" minOccurs="0"/> 
     <xs:element type="xs:string" name="value" minOccurs="0"/> 
    </xs:sequence> 
    </xs:complexType> 

    <xs:complexType name="wsCalc"> 
    <xs:sequence> 
     <xs:element type="xs:string" name="txnAmt" minOccurs="0"/> 
    </xs:sequence> 
    </xs:complexType> 

</xs:schema> 

unten meine erwartete Seife umhüllen, um im Seifenklienten zu erzeugen.

<S:Envelope> 
<S:Body> 
<ns2:process xmlns:ns2="http://soap.com/"> 
// List of calc input fields will be here 
<calc xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="ns2:wsInput"> 
      <fieldName>DATE</fieldName> 
      <value>20170101</value> 
     </calc> 

// List of output/result fields will be here 
<calc xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="ns2:wsCalc"> 
      <txnAmt>100.00</txnAmt> 
     </calc > 
</ns2:process 
</S:Body> 
</S:Envelope> 

Bitte jemand gibt mir Eingang diese Art der Anforderung zu erreichen.

Antwort

1

Sie benötigen <xs:choice>. So etwas wie

<xs:element name="process"> 
    <xs:choice> 
    <xs:element name="calc1" type="wsInput"> 
    <xs:element name="calc2" type="wsCalc"> 

Beachten Sie, dass Elemente haben unterschiedliche Namen, weil you can't define sibling with different types

+0

@ ADS Aber ich brauche . Gleicher Elementname, aber anderer Typ. Bitte schauen Sie über meine Seifenhülle. – Easy2DownVoteHard2Ans

+0

Bitte geben Sie mir einige Eingaben, um dies zu erreichen, ich bin hier hilflos. – Easy2DownVoteHard2Ans

+1

@ Easy2DownVoteHard2Ans Sie können ** das nicht tun – ADS

Verwandte Themen