Discussions
Categories
Groups
Community Home
Categories
INTERNAL ENABLEMENT
POPULAR
PUBLIC CLOUD
PRIVATE CLOUD
Quick Links
MY LINKS
HELPFUL TIPS
Back to website
Home
Intelligence (Analytics)
Problem with fragmented wsdl schema
paul ra.
I created a web service in websphere and tried to access it from BIRT but without success. The WSDL could be read and the services were listed but the service parameters were empty.<br />
<br />
After a bit of trial and error, I found out that BIRT does not read fragmented schemas correctly.<br />
<br />
Original WSDL<br />
<br />
<pre class='_prettyXprint _lang-auto _linenums:0'>
<?xml version="1.0" encoding="UTF-8"?><!-- Generated by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is JAX-WS RI 2.1.6 in JDK 6. --><definitions name="QueryService" targetNamespace="http://ws/" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://ws/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<types>
<xsd:schema>
<xsd:import namespace="http://ws/" schemaLocation="QueryService_schema1.xsd"/>
</xsd:schema>
</types>
<message name="Q1">
<part element="tns:Q1" name="parameters"/>
</message>
<message name="Q1Response">
<part element="tns:Q1Response" name="parameters"/>
</message>
<portType name="QueryDelegate">
<operation name="Q1">
<input message="tns:Q1"/>
<output message="tns:Q1Response"/>
</operation>
</portType>
<binding name="QueryPortBinding" type="tns:QueryDelegate">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="Q1">
<soap:operation soapAction=""/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
</binding>
<service name="QueryService">
<port binding="tns:QueryPortBinding" name="QueryPort">
<soap:address location="http://localhost:9088/Test_JAX_WS_Web/QueryService"/>
</port>
</service>
</definitions>
</pre>
<br />
Original Schema<br />
<br />
<pre class='_prettyXprint _lang-auto _linenums:0'>
<?xml version="1.0" encoding="UTF-8"?><xs:schema targetNamespace="http://ws/" version="1.0" xmlns:tns="http://ws/" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="Q1" type="tns:Q1"/>
<xs:element name="Q1Response" type="tns:Q1Response"/>
<xs:complexType name="Q1">
<xs:sequence>
<xs:element minOccurs="0" name="arg0" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="Q1Response">
<xs:sequence>
<xs:element minOccurs="0" name="return" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
</pre>
<br />
BIRT seems to have difficulty handling the type reference and cannot determine the input parameters or the return type. I edited the schema file and BIRT was able to get all information.<br />
<br />
Edited schema<br />
<br />
<pre class='_prettyXprint _lang-auto _linenums:0'>
<?xml version="1.0" encoding="UTF-8"?><xs:schema targetNamespace="http://ws/" version="1.0" xmlns:tns="http://ws/" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="Q1">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="arg0" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Q1Response">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="return" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
</pre>
<br />
This works. BIRT is able to list the parameters correctly. <br />
<br />
Is this a bug? Is there a workaround?<br />
<br />
Thanks <br />
<br />
Paul
Find more posts tagged with
Comments
There are no comments yet