[oXygen-user] Oxygenxml Editor WSDL Analyzer question

David Brown david at davidwbrown.name
Wed Nov 23 09:46:26 CST 2011


Hello oxygenxml, I have a publicly available WSDL to consume using my
SOAP client. 

The SOAP client must use either wsdl2java or wsimport to generate the
Java stubs in the client such that the service operations exposed by the
port can be invoked against the remote WS.

However, wsdl2java and wsimport both fail in this task because of
duplicate 'any' attributes in sequence nodes using different namespaces
for the operation: getDataTable:

******************************************************************
<s:sequence>
  <s:any minOccurs="0" maxOccurs="unbounded" namespace="http://www.w3.org/2001/XMLSchema" processContents="lax" />
  <s:any minOccurs="0" namespace="urn:schemas-microsoft-com:xml-diffgram-v1" processContents="lax" />
</s:sequence>
******************************************************************

Using the same WSDL in the oxygenxml editor WSDL analyzer I get
satisfactory SOAP requests and responses:

******************************************************************
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:ns0="http://tempuri.org/">
    <SOAP-ENV:Header/>
    <SOAP-ENV:Body>
        <ns0:GetDataTable>
            <ns0:SQL>select sqrt(2)</ns0:SQL>
        </ns0:GetDataTable>
    </SOAP-ENV:Body>
</SOAP-ENV:Envelope>
******************************************************************
******************************************************************
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <soap:Body>
        <GetDataTableResponse xmlns="http://tempuri.org/">
            <GetDataTableResult>
                <xs:schema id="NewDataSet" xmlns=""
xmlns:xs="http://www.w3.org/2001/XMLSchema"
                    xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
                    <xs:element name="NewDataSet"
msdata:IsDataSet="true"
                        msdata:MainDataTable="Data"
msdata:UseCurrentLocale="true">
                        <xs:complexType>
                            <xs:choice minOccurs="0"
maxOccurs="unbounded">
                                <xs:element name="Data">
                                    <xs:complexType>
                                        <xs:sequence>
                                            <xs:element name="Column1"
type="xs:double"
                                                minOccurs="0"/>
                                        </xs:sequence>
                                    </xs:complexType>
                                </xs:element>
                            </xs:choice>
                        </xs:complexType>
                    </xs:element>
                </xs:schema>
                <diffgr:diffgram
xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"

xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
                    <DocumentElement xmlns="">
                        <Data diffgr:id="Data1" msdata:rowOrder="0">
                            <Column1>1.4142135623730952</Column1>
                        </Data>
                    </DocumentElement>
                </diffgr:diffgram>
            </GetDataTableResult>
        </GetDataTableResponse>
    </soap:Body>
</soap:Envelope>
*********************************************************************

The question them becomes how does the WSDL analyzer clean up the WSDL
on-the-fly to get a satisfactory soap client result?

How can I use the editor to fix the WSDL in terms of injecting
<jaxb:property> to rename or otherwise fix the WSDL to behave in a
well-formed fashion?

Please advise, David.




More information about the oXygen-user mailing list