Ultimamente ho interagito con una manciata di API SOAP di diversi sistemi aziendali e sono un po 'perplesso che spesso i WSDL sembrano indicare che dovrebbero ricevere dati XML come una "stringa". Ad esempio, un WSDL indica che il servizio prevede dati conformi al seguente snippet di XSD per alcune operazioni:
...
<s:element name="PostSomeData">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="Data" type="s:string"/>
</s:sequence>
</s:complexType>
</s:element>
...
<wsdl:message name="PostNewhireRecordSoapIn">
<wsdl:part name="parameters" element="tns:PostSomeData"/>
</wsdl:message>
...
Quando in realtà il contenuto del tag Data stesso deve contenere qualche XML, di solito con caratteri di escape o come Dati carattere ( <![CDATA[<SomeStructuredData>...</SomeStructuredData>]]>
) che aderisce ad uno schema che può essere o non essere fornito.
Cosa dà? Perché c'è una propensione per le API da progettare in modo tale che i webservices SOAP si aspettino xsd: string? Sembra che. se userò SOAP, dovrei descrivere la struttura dell'XML previsto piuttosto che definire il webservice come se si aspettasse una stringa di XML .