I’m writing a WSDL file and it’s working. However, the output doesn’t look exactly what I like to see. So, I have defined output message like this:
<message name="serviceResponse">
<part name="code" type="xsd:string"/>
<part name="description" type="xsd:string"/>
<part name="results" element="tns:myProperty"/>
</message>
And in <types> tag, I have:
<xsd:element name="myProperty">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="name" type="xsd:string"/>
<xsd:element name="description" type="xsd:string"/>
<xsd:element name="id" type="xsd:int"/>
<xsd:element name="date" type="xsd:date"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
In response, I got:
<SOAP-ENV:serviceResponse>
<code xsi:type="xsd:string">001</code>
<description xsi:type="xsd:string">Successful</description>
<results SOAP-ENC:arrayType="SOAP-ENC:Array[2]" xsi:type="SOAP-ENC:Array">
<item SOAP-ENC:arrayType="xsd:ur-type[7]" xsi:type="SOAP-ENC:Array">
<item xsi:type="xsd:string">John</item>
<item xsi:type="xsd:string">Director</item>
<item xsi:type="xsd:int">21</item>
<item xsi:type="xsd:string">2012-10-16</item>
</item>
<item SOAP-ENC:arrayType="xsd:ur-type[7]" xsi:type="SOAP-ENC:Array">
<item xsi:type="xsd:string">Smith</item>
<item xsi:type="xsd:string">Programmer</item>
<item xsi:type="xsd:int">88</item>
<item xsi:type="xsd:string">2012-10-18</item>
</item>
</results>
</SOAP-ENV:serviceResponse></SOAP-ENV:Body>
I would expected to get something like following within “results” tag, rather than a bunch of “item”s:
<myProperty SOAP-ENC:arrayType="xsd:ur-type[7]" xsi:type="SOAP-ENC:Array">
<name xsi:type="xsd:string">John</name>
<description xsi:type="xsd:string">Director</description>
<id xsi:type="xsd:int">21</id>
<date xsi:type="xsd:string">2012-10-16</date>
</myProperty>
<myProperty SOAP-ENC:arrayType="xsd:ur-type[7]" xsi:type="SOAP-ENC:Array">
<name xsi:type="xsd:string">Smith</name>
<description xsi:type="xsd:string">Programmer</description>
<id xsi:type="xsd:int">88</id>
<date xsi:type="xsd:string">2012-10-18</date>
</myProperty>
Can anyone please shed a light? Thanks
I’ve solved the problem by viewing another post from: WSDL list of complexType HOWTO- define, return from a service?
No DTD definition required. Thanks to so anyway.
What I have done is slightly different. Instead of using an element named “myProperty”, I defined a complexType directly with the name “myProperty”. It just worked.
The output is exactly what I expected: