WSDL liste de complexType HOWTO - définir, le retour d'un service?
Comment définissez-vous une liste de type complexe éléments WSDL?
J'ai une assez simple WSDL avec 2 types complexes
<xsd:complexType name="itemProperty">
<xsd:all>
<xsd:element name="name" type="xsd:string" />
<xsd:element name="value" type="xsd:string" />
<xsd:element name="type" type="xsd:string" />
</xsd:all>
</xsd:complexType>
Alors que je suis en train de faire une liste de ce complexType comme ceci:
<xsd:complexType name="itemPropertyList">
<xsd:complexContent>
<xsd:restriction base="SOAP-ENC:Array">
<xsd:sequence>
<xsd:element name="item" type="tns:itemProperty"
maxOccurs="unbounded" minOccurs="0" />
</xsd:sequence>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
J'ai l'intention d'utiliser cette liste
<message name="getListRequest"></message>
<message name="getListResponse">
<part name="return" type="tns:itemPropertyList" />
</message>
<operation name="getList">
<documentation>Returns an array.</documentation>
<input message="tns:getListRequest" />
<output message="tns:getListResponse" />
</operation>
Au lieu d'une liste d'éléments de type itemProperty, je reçois cette réponse, peu importe ce que les variations que j'ai essayé (y compris le remplacement de l'élément de base, avec la chaîne explicite éléments)
<SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body>
<ns1:getListResponse>
<return SOAP-ENC:arrayType="ns2:Map[1]" xsi:type="SOAP-ENC:Array">
<item xsi:type="ns2:Map">
<item>
<key xsi:type="xsd:string">name</key>
<value xsi:type="xsd:string">name_4c3b38b0b77ae</value>
</item>
<item>
<key xsi:type="xsd:string">value</key>
<value xsi:type="xsd:string">name_4c3b38b0b77ee</value>
</item>
<item>
<key xsi:type="xsd:string">type</key>
<value xsi:type="xsd:string">name_4c3b38b0b782b</value>
</item>
</item>
</return>
</ns1:getListResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Des idées? Qu'est-ce que ce ns2:Carte de la chose? Il a été me hante depuis plus d'une semaine!
OriginalL'auteur cdanea | 2010-07-12
Vous devez vous connecter pour publier un commentaire.
Résolu.
J'ai utilisé l'AXE modèle de fourniture de listes. L'élargissement des espaces de noms les attributs à inclure certains codages supplémentaires. Je ne sais pas qui a fait le tour, j'ai juste ajouté autant que possible lors de la résolution des conflits avec l'aide de l'éclipse de l'éditeur de WSDL.
Aussi, j'ai ajouté 2 attributs supplémentaires pour déclarer qualifié les attributs de forme et des éléments dans le schéma
Au lieu de compter sur la ComplexType déclaration, pour faire un "nillable" la surabondance de la séquence d'un type complexe dans mon schéma, je suis passé à déclarer un élément comme ceci:
Puis, lors de la définition de la partie du message pour l'opération, j'ai utilisé
au lieu de
Ce qui a entraîné une correcte enveloppeur de retour:
OriginalL'auteur