Hello everyone,
I'm currently trying to set up an xMII BLS transaction as a web service provider, but have run into an issue with the WSDL generated by xMII. We're using an unpatched install of xMII 11.5.2 b64.
The transaction takes a single numeric input parameter and generates a sample Rowset with three columns (ID, Item, Value) and as many Rows as specified in the input parameter. In the XML output, a typical Row node thus looks like this:
<Row> <ID>1</ID> <Item>Item1</Item> <Value>6</Value> </Row>
In my opinion, the WSDL obtained via http://<servername>/Lighthammer/WSDLGen/<transaction> seems to be malformed. In the WSDL's <schema> section, the <Row> node of the service response is specified as follows:
<s:complexType name="Row"> <s:sequence id="RowSequence"> <s:element maxOccurs="1" minOccurs="1" name="OutRowsetsXML" type="s:string"/> </s:sequence> </s:complexType>
To me, this says that the <Row> node of the XML output should contain a XML element with a name of "OutRowsetsXML" and string content. (Coincidentally(?), OutRowsetsXML is the name of the Transaction Output property). In my opinion, this is incorrect.
As a result of this, our web services consumer fails to validate the SOAP response against the schema in the WSDL and fails. Using the soapUI diagnostic tool, I can see that the transaction does indeed return the output I expect - but validation again fails because the schema of the SOAP response does not match the schema in the WSDL.
If I manually change the WSDL to properly describe the output document, everything works and the SOAP response is validated properly (see below for the modified WSDL segment).
<s:complexType name="Row"> <s:sequence id="RowSequence"> <s:element maxOccurs="1" minOccurs="1" name="ID" type="s:string"/> <s:element maxOccurs="1" minOccurs="1" name="Item" type="s:string"/> <s:element maxOccurs="1" minOccurs="1" name="Value" type="s:string"/> </s:sequence> </s:complexType>
Has anyone come across this issue before, or knows what needs to be done so that the schema in the WSDL accurately describes the output? I've tried to assign a Reference Document to the transaction output property in BLS Editor but this didn't resolve the issue either....
Thanks in advance for any input