Hi,
We have a WSDL containing one doc/lit operation. References to the XSD's
are defined in <types> using <xs:include>.
This WSDL is stored as such in our SCM (e.g. CVS), as well as the
referenced XSD's. The fact that the XSD's are separate files makes XSD
authoring easier for us.
However, when the WSDL is published as an Axis2 webservice WSDL (so
available through http://.../services/TestService?wsdl), we want the
xs:include to be replaced by the actual content when published.
The reason why we don't want xs:include in the published WSDL
- it avoids the necessity to have the XSD's in the directory where the
J2EE container JVM was started
- it avoids a hassle for clients that want to generate the stubs based
on the published WSDL (http://.../services/TestService?wsdl), because
each client (Axis1, Axis2, WebLogic8.1 client, .NET 2.0, ...) seems to
interpret the schemaLocation attribute of <xs:include> differently
QUESTION
Is there a way in Axis2 to have an on-the-fly transformation of the
xs:include references to the actual content of the XSD's in our WSDL? I
suppose this should be done during WSDL2Java or one of the other Axis2
ANT tasks. If it's not available as a standard feature, is there an
AXIS2 API that we could extend/override to get the behaviour we want?
Best regards,
Davy Toch
----------------------------------------------------------------
- Disclaimer: http://www.minfin.fgov.be/disclaimer.htm
<?xml version="1.0" encoding="UTF-8"?>
<definitions
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
xmlns:ipp="http://www.test.be/test"
targetNamespace="http://www.test.be/test"
name="TestService">
<types>
<xs:schema targetNamespace="http://www.test.be/test">
<xs:include schemaLocation="Request.xsd"/>
<xs:include schemaLocation="Response.xsd"/>
</xs:schema>
</types>
<message name="TestService_Request">
<part name="request" element="ipp:Request"/>
</message>
<message name="TestService_Response">
<part name="response" element="ipp:Response"/>
</message>
<portType name="Test">
<operation name="requestTest">
<input message="ipp:TestService_Request"/>
<output message="ipp:TestService_Response"/>
</operation>
</portType>
<binding name="TestBinding" type="ipp:Test">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="requestTest">
<soap:operation soapAction="urn:requestTest"/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
</binding>
<service name="TestService">
<port name="TestPort" binding="ipp:TestBinding">
<soap:address location="http://tobedefined"/>
</port>
</service>
</definitions>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]