A more concrete example to back the question:

 

End Configuration:

<jaxws:endpoint

  id="helloWorld"

  implementor="com.sandbox.service.HelloWorldImpl"

  address="/HelloWorld">

  <jaxws:schemaLocations>

 
<jaxws:schemaLocation>file:///D:/apps/CXFProto/schemas/domain.xsd</jaxws
:schemaLocation>

  </jaxws:schemaLocations>

</jaxws:endpoint>

 

WSDL generated:

<wsdl:definitions name="HelloWorldImplService"
targetNamespace="http://service.sandbox.com/";
xmlns:ns1="http://cxf.apache.org/bindings/xformat";
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/";
xmlns:tns="http://service.sandbox.com/";
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";
xmlns:xsd="http://www.w3.org/2001/XMLSchema";>

            <wsdl:types>

                        <xsd:schema attributeFormDefault="unqualified"
elementFormDefault="qualified"
targetNamespace="http://service.sandbox.com/";
xmlns:cs="http://www.sandbox.com/components";
xmlns:sb="http://service.sandbox.com/";
xmlns:xsd="http://www.w3.org/2001/XMLSchema";>

                                    <xsd:import
namespace="http://www.sandbox.com/components"/>

                                    <xsd:include
schemaLocation="fields.xsd"/>

                                    <xsd:complexType name="domainType">

                                                <xsd:complexContent>

 
<xsd:extension base="cs:componentType">

 
<xsd:sequence>

 
<xsd:element minOccurs="0" name="foo" type="xsd:string"/>

 
</xsd:sequence>

 
</xsd:extension>

                                                </xsd:complexContent>

                                    </xsd:complexType>

                                    <xsd:element name="sayHi"
type="sb:sayHi"/>

                                    <xsd:complexType name="sayHi">

                                                <xsd:sequence>

                                                            <xsd:element
minOccurs="0" name="arg0" type="xsd:string"/>

                                                </xsd:sequence>

                                    </xsd:complexType>

                                    <xsd:element name="sayHiResponse"
type="sb:sayHiResponse"/>

                                    <xsd:complexType
name="sayHiResponse">

                                                <xsd:sequence>

                                                            <xsd:element
minOccurs="0" name="return" type="xsd:string"/>

                                                </xsd:sequence>

                                    </xsd:complexType>

                        </xsd:schema>

            </wsdl:types>

...

</wsdl:definitions>

 

 

Is it possible to have the schemaLocation attribute on xsd:import be
generated with the location of the imported schema.  

 

<xsd:import namespace="http://www.sandbox.com/components";
schemaLocation="http://localhost:8080/CXFProto/services/HelloWorldServic
e?xsd='components.xsd' " />

 

Thanks,

Murtaza.

 

-----Original Message-----
From: Murtaza Goga [mailto:[EMAIL PROTECTED] 
Sent: Friday, September 19, 2008 12:46 PM
To: [email protected]
Subject: WSDL Schema Imports

 

Is there a way to configure the endpoint and the CXFServlet so that a

client consuming a dynamically generated WSDL receives all the imported

and included schemas.   

 

The generated WSDL only generates the schema import with the namespace

without the schemaLocation.  I was hoping to have the WSDL writer render

the schemaLocation value relative to the Servlet so that the client

consuming the WSDL can look it up.  Added a jax-ws-catalog as well to

resolve some of the relative paths on the imports.  

 

 

 

Any configuration ideas would be appreciated.

 

 

 

Using CXF 2.1.2 to prototype this.

 

 

 

Thanks,

 

Murtaza. 

 

 

 

Reply via email to