You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by "Ferguson, Hamish" <Ha...@sabre-holdings.com> on 2004/03/19 17:09:34 UTC

Exception using wsdl2java using a wsdl with imported schema

Hello, 

I am trying to include schema's into my wsdl but am running into a few problems and was hoping someone out there has the  solution.

I'll outline what I'm trying to do.

1) Take an axis generated wsdl and parse it through a java app I have written that adds application specific constraint's to
the <schema> defined in the <wsdl:types> section.

2) Extract and remove the modified schema's from the <wsdl:types> section and write them to individual .xsd files

3) add import's in the wsdl file referring to the schema's I extracted.  

4) add the <wsdlFile>myWSDL.wsdl</wsdlFile> entry into myWSDD.wsdd file so that AXIS uses my wsdl file.

Now for the problem part:

When I try to run wsdl2java I get the following exception:

        [java] java.io.IOException: Element {http://mywebservice.sabre.com/cruise}CategoryAvailability is referenced but not  defined.
        [java] 	at org.apache.axis.wsdl.symbolTable.SymbolTable.checkForUndefined(SymbolTable.java:527)
        [java] 	at org.apache.axis.wsdl.symbolTable.SymbolTable.add(SymbolTable.java:422)
        [java] 	at org.apache.axis.wsdl.symbolTable.SymbolTable.populate(SymbolTable.java:408)
        [java] 	at org.apache.axis.wsdl.symbolTable.SymbolTable.populate(SymbolTable.java:393)
        [java] 	at org.apache.axis.wsdl.gen.Parser$WSDLRunnable.run(Parser.java:245)
        [java] 	at java.lang.Thread.run(Thread.java:534)


I think Axis only imports schema's when a element in the wsdl has a namespace that has NOT already been declared and matches  the namespace defined in the <import namespace="  ...... >  part.  This is a guess, as when I change the namespace of the 
object that is giving me the error ( CategoryAvailability in this case )

FROM

<wsdl:message name="CategoryAvailabilityRequest">
  <wsdl:part element="impl:CategoryAvailability" name="parameters"/> 
</wsdl:message>


TO

<wsdl:message name="CategoryAvailabilityRequest">
  <wsdl:part element="MYIMPL:CategoryAvailability" name="parameters"/> 
</wsdl:message>

where MYIMPL a different namespace from impl, but MYIMPL ns is the same as the ns of the schema I am trying to import.
This gets me past the first exception, but, of course I end up with all sorts of binding errors, but it kind of does lead me  to believe that if a namespace is already defined ( i.e impl="http://mywebservice.sabre.com/cruise" ) and you try to import  something with the same namespace from an .xsd file AXIS won't load it.


I have tried this on both 1.1 and 1.2alpha


I have included my wsdl file and the main schema file that has the definitions where I am seeing the problem.

If anyone can provide some insight and/or advice, I'd appreciate it.

Thanks, 

Hamish.



HERE IS THE WSDL




<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions targetNamespace="http://mywebservice.sabre.com/cruise" 
 xmlns:apachesoap="http://xml.apache.org/xml-soap" 
 xmlns:impl="http://mywebservice.sabre.com/cruise" 
 xmlns:intf="http://mywebservice.sabre.com/cruise" 
 xmlns:tns1="urn:displaybooking:datatypes:communications:cruise:sabre:com" 
 xmlns:tns10="urn:cabinavailability:datatypes:communications:cruise:sabre:com" 
 xmlns:tns11="urn:sailingavailability:datatypes:communications:cruise:sabre:com" 
 xmlns:tns12="urn:cabinhold:datatypes:communications:cruise:sabre:com" 
 xmlns:tns13="http://exceptions.communications.cruise.sabre.com" 
 xmlns:tns14="http://www.w3.org/1999/XMLSchema" 
 xmlns:tns2="urn:createrevisebooking:datatypes:communications:cruise:sabre:com" 
 xmlns:tns3="urn:rateoptionavailability:datatypes:communications:cruise:sabre:com" 
 xmlns:tns4="urn:statementandpricing:datatypes:communications:cruise:sabre:com" 
 xmlns:tns5="urn:cancelbooking:datatypes:communications:cruise:sabre:com" 
 xmlns:tns6="urn:diningavailability:datatypes:communications:cruise:sabre:com" 
 xmlns:tns7="urn:datatypes:communications:cruise:sabre:com" 
 xmlns:tns8="urn:transportationavailability:datatypes:communications:cruise:sabre:com" 
 xmlns:tns9="urn:categoryavailability:datatypes:communications:cruise:sabre:com" 
 xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" 
 xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" 
 xmlns:xsd="http://www.w3.org/2001/XMLSchema">

<import location="cabinavailability.xsd" namespace="urn:cabinavailability:datatypes:communications:cruise:sabre:com"/>
<import location="cabinhold.xsd" namespace="urn:cabinhold:datatypes:communications:cruise:sabre:com"/>
<import location="cancelbooking.xsd" namespace="urn:cancelbooking:datatypes:communications:cruise:sabre:com"/>
<import location="categoryavailability.xsd" namespace="urn:categoryavailability:datatypes:communications:cruise:sabre:com"/>
<import location="control.xsd" namespace="urn:datatypes:communications:cruise:sabre:com"/>
<import location="createrevisebooking.xsd" namespace="urn:createrevisebooking:datatypes:communications:cruise:sabre:com"/>
<import location="cruiseapi.xsd" namespace="http://exceptions.communications.cruise.sabre.com"/>
<import location="diningavailability.xsd" namespace="urn:diningavailability:datatypes:communications:cruise:sabre:com"/>
<import location="displaybooking.xsd" namespace="urn:displaybooking:datatypes:communications:cruise:sabre:com"/>
<import location="exceptions.xsd" namespace="http://exceptions.communications.cruise.sabre.com"/>
<import location="rateoptionavailability.xsd"  namespace="urn:rateoptionavailability:datatypes:communications:cruise:sabre:com"/>
<import location="sailingavailability.xsd" namespace="urn:sailingavailability:datatypes:communications:cruise:sabre:com"/>
<import location="statementandpricing.xsd" namespace="urn:statementandpricing:datatypes:communications:cruise:sabre:com"/>
<import location="transportationavailability.xsd"  namespace="urn:transportationavailability:datatypes:communications:cruise:sabre:com"/>

<wsdl:message name="SailingAvailabilityRequest">
  <wsdl:part element="impl:SailingAvailability" name="parameters"/> 
  </wsdl:message>
<wsdl:message name="RateOptionAvailabilityResponse">
  <wsdl:part element="impl:RateOptionAvailabilityResponse" name="parameters"/> 
  </wsdl:message>
<wsdl:message name="TransportationAvailabilityRequest">
  <wsdl:part element="impl:TransportationAvailability" name="parameters"/> 
  </wsdl:message>
<wsdl:message name="DisplayBookingResponse">
  <wsdl:part element="impl:DisplayBookingResponse" name="parameters"/> 
  </wsdl:message>
<wsdl:message name="CabinAvailabilityResponse">
  <wsdl:part element="impl:CabinAvailabilityResponse" name="parameters"/> 
  </wsdl:message>
<wsdl:message name="CabinHoldResponse">
  <wsdl:part element="impl:CabinHoldResponse" name="parameters"/> 
  </wsdl:message>
<wsdl:message name="CancelBookingResponse">
  <wsdl:part element="impl:CancelBookingResponse" name="parameters"/> 
  </wsdl:message>
<wsdl:message name="CreateReviseBookingResponse">
  <wsdl:part element="impl:CreateReviseBookingResponse" name="parameters"/> 
  </wsdl:message>
<wsdl:message name="TransportationAvailabilityResponse">
  <wsdl:part element="impl:TransportationAvailabilityResponse" name="parameters"/> 
  </wsdl:message>
<wsdl:message name="DiningAvailabilityRequest">
  <wsdl:part element="impl:DiningAvailability" name="parameters"/> 
  </wsdl:message>
<wsdl:message name="CancelBookingRequest">
  <wsdl:part element="impl:CancelBooking" name="parameters"/> 
  </wsdl:message>
<wsdl:message name="DisplayBookingRequest">
  <wsdl:part element="impl:DisplayBooking" name="parameters"/> 
  </wsdl:message>
<wsdl:message name="SailingAvailabilityResponse">
  <wsdl:part element="impl:SailingAvailabilityResponse" name="parameters"/> 
  </wsdl:message>
<wsdl:message name="CategoryAvailabilityRequest">
  <wsdl:part element="impl:CategoryAvailability" name="parameters"/> 
  </wsdl:message>
<wsdl:message name="DiningAvailabilityResponse">
  <wsdl:part element="impl:DiningAvailabilityResponse" name="parameters"/> 
  </wsdl:message>
<wsdl:message name="StatementandPricingRequest">
  <wsdl:part element="impl:StatementandPricing" name="parameters"/> 
  </wsdl:message>
<wsdl:message name="CruiseException">
  <wsdl:part element="impl:fault" name="fault"/> 
  </wsdl:message>
<wsdl:message name="CategoryAvailabilityResponse">
  <wsdl:part element="impl:CategoryAvailabilityResponse" name="parameters"/> 
  </wsdl:message>
<wsdl:message name="CreateReviseBookingRequest">
  <wsdl:part element="impl:CreateReviseBooking" name="parameters"/> 
  </wsdl:message>
<wsdl:message name="CabinAvailabilityRequest">
  <wsdl:part element="impl:CabinAvailability" name="parameters"/> 
  </wsdl:message>
<wsdl:message name="StatementandPricingResponse">
  <wsdl:part element="impl:StatementandPricingResponse" name="parameters"/> 
  </wsdl:message>
<wsdl:message name="CabinHoldRequest">
  <wsdl:part element="impl:CabinHold" name="parameters"/> 
  </wsdl:message>
<wsdl:message name="RateOptionAvailabilityRequest">
  <wsdl:part element="impl:RateOptionAvailability" name="parameters"/> 
  </wsdl:message>
<wsdl:portType name="CruiseCommunicationAPI">
<wsdl:operation name="SailingAvailability" parameterOrder="">
  <wsdl:input message="impl:SailingAvailabilityRequest" name="SailingAvailabilityRequest"/> 
  <wsdl:output message="impl:SailingAvailabilityResponse" name="SailingAvailabilityResponse"/> 
  <wsdl:fault message="impl:CruiseException" name="CruiseException"/> 
  </wsdl:operation>
<wsdl:operation name="RateOptionAvailability" parameterOrder="">
  <wsdl:input message="impl:RateOptionAvailabilityRequest" name="RateOptionAvailabilityRequest"/> 
  <wsdl:output message="impl:RateOptionAvailabilityResponse" name="RateOptionAvailabilityResponse"/> 
  <wsdl:fault message="impl:CruiseException" name="CruiseException"/> 
  </wsdl:operation>
<wsdl:operation name="CategoryAvailability" parameterOrder="">
  <wsdl:input message="impl:CategoryAvailabilityRequest" name="CategoryAvailabilityRequest"/> 
  <wsdl:output message="impl:CategoryAvailabilityResponse" name="CategoryAvailabilityResponse"/> 
  <wsdl:fault message="impl:CruiseException" name="CruiseException"/> 
  </wsdl:operation>
<wsdl:operation name="TransportationAvailability" parameterOrder="">
  <wsdl:input message="impl:TransportationAvailabilityRequest" name="TransportationAvailabilityRequest"/> 
  <wsdl:output message="impl:TransportationAvailabilityResponse" name="TransportationAvailabilityResponse"/> 
  <wsdl:fault message="impl:CruiseException" name="CruiseException"/> 
  </wsdl:operation>
<wsdl:operation name="CabinAvailability" parameterOrder="">
  <wsdl:input message="impl:CabinAvailabilityRequest" name="CabinAvailabilityRequest"/> 
  <wsdl:output message="impl:CabinAvailabilityResponse" name="CabinAvailabilityResponse"/> 
  <wsdl:fault message="impl:CruiseException" name="CruiseException"/> 
  </wsdl:operation>
<wsdl:operation name="DiningAvailability" parameterOrder="">
  <wsdl:input message="impl:DiningAvailabilityRequest" name="DiningAvailabilityRequest"/> 
  <wsdl:output message="impl:DiningAvailabilityResponse" name="DiningAvailabilityResponse"/> 
  <wsdl:fault message="impl:CruiseException" name="CruiseException"/> 
  </wsdl:operation>
<wsdl:operation name="CabinHold" parameterOrder="">
  <wsdl:input message="impl:CabinHoldRequest" name="CabinHoldRequest"/> 
  <wsdl:output message="impl:CabinHoldResponse" name="CabinHoldResponse"/> 
  <wsdl:fault message="impl:CruiseException" name="CruiseException"/> 
  </wsdl:operation>
<wsdl:operation name="StatementandPricing" parameterOrder="">
  <wsdl:input message="impl:StatementandPricingRequest" name="StatementandPricingRequest"/> 
  <wsdl:output message="impl:StatementandPricingResponse" name="StatementandPricingResponse"/> 
  <wsdl:fault message="impl:CruiseException" name="CruiseException"/> 
  </wsdl:operation>
<wsdl:operation name="CreateReviseBooking" parameterOrder="">
  <wsdl:input message="impl:CreateReviseBookingRequest" name="CreateReviseBookingRequest"/> 
  <wsdl:output message="impl:CreateReviseBookingResponse" name="CreateReviseBookingResponse"/> 
  <wsdl:fault message="impl:CruiseException" name="CruiseException"/> 
  </wsdl:operation>
<wsdl:operation name="DisplayBooking" parameterOrder="">
  <wsdl:input message="impl:DisplayBookingRequest" name="DisplayBookingRequest"/> 
  <wsdl:output message="impl:DisplayBookingResponse" name="DisplayBookingResponse"/> 
  <wsdl:fault message="impl:CruiseException" name="CruiseException"/> 
  </wsdl:operation>
<wsdl:operation name="CancelBooking" parameterOrder="">
  <wsdl:input message="impl:CancelBookingRequest" name="CancelBookingRequest"/> 
  <wsdl:output message="impl:CancelBookingResponse" name="CancelBookingResponse"/> 
  <wsdl:fault message="impl:CruiseException" name="CruiseException"/> 
  </wsdl:operation>
  </wsdl:portType>
<wsdl:binding name="CruiseAPISoapBinding" type="impl:CruiseCommunicationAPI">
  <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> 
<wsdl:operation name="SailingAvailability">
  <wsdlsoap:operation soapAction=""/> 
<wsdl:input name="SailingAvailabilityRequest">
  <wsdlsoap:body namespace="http://mywebservice.sabre.com/cruise" use="literal"/> 
  </wsdl:input>
<wsdl:output name="SailingAvailabilityResponse">
  <wsdlsoap:body namespace="http://mywebservice.sabre.com/cruise" use="literal"/> 
  </wsdl:output>
<wsdl:fault name="CruiseException">
  <wsdlsoap:fault name="CruiseException" use="literal"/> 
  </wsdl:fault>
  </wsdl:operation>
<wsdl:operation name="RateOptionAvailability">
  <wsdlsoap:operation soapAction=""/> 
<wsdl:input name="RateOptionAvailabilityRequest">
  <wsdlsoap:body namespace="http://mywebservice.sabre.com/cruise" use="literal"/> 
  </wsdl:input>
<wsdl:output name="RateOptionAvailabilityResponse">
  <wsdlsoap:body namespace="http://mywebservice.sabre.com/cruise" use="literal"/> 
  </wsdl:output>
<wsdl:fault name="CruiseException">
  <wsdlsoap:fault name="CruiseException" use="literal"/> 
  </wsdl:fault>
  </wsdl:operation>
<wsdl:operation name="CategoryAvailability">
  <wsdlsoap:operation soapAction=""/> 
<wsdl:input name="CategoryAvailabilityRequest">
  <wsdlsoap:body namespace="http://mywebservice.sabre.com/cruise" use="literal"/> 
  </wsdl:input>
<wsdl:output name="CategoryAvailabilityResponse">
  <wsdlsoap:body namespace="http://mywebservice.sabre.com/cruise" use="literal"/> 
  </wsdl:output>
<wsdl:fault name="CruiseException">
  <wsdlsoap:fault name="CruiseException" use="literal"/> 
  </wsdl:fault>
  </wsdl:operation>
<wsdl:operation name="TransportationAvailability">
  <wsdlsoap:operation soapAction=""/> 
<wsdl:input name="TransportationAvailabilityRequest">
  <wsdlsoap:body namespace="http://mywebservice.sabre.com/cruise" use="literal"/> 
  </wsdl:input>
<wsdl:output name="TransportationAvailabilityResponse">
  <wsdlsoap:body namespace="http://mywebservice.sabre.com/cruise" use="literal"/> 
  </wsdl:output>
<wsdl:fault name="CruiseException">
  <wsdlsoap:fault name="CruiseException" use="literal"/> 
  </wsdl:fault>
  </wsdl:operation>
<wsdl:operation name="CabinAvailability">
  <wsdlsoap:operation soapAction=""/> 
<wsdl:input name="CabinAvailabilityRequest">
  <wsdlsoap:body namespace="http://mywebservice.sabre.com/cruise" use="literal"/> 
  </wsdl:input>
<wsdl:output name="CabinAvailabilityResponse">
  <wsdlsoap:body namespace="http://mywebservice.sabre.com/cruise" use="literal"/> 
  </wsdl:output>
<wsdl:fault name="CruiseException">
  <wsdlsoap:fault name="CruiseException" use="literal"/> 
  </wsdl:fault>
  </wsdl:operation>
<wsdl:operation name="DiningAvailability">
  <wsdlsoap:operation soapAction=""/> 
<wsdl:input name="DiningAvailabilityRequest">
  <wsdlsoap:body namespace="http://mywebservice.sabre.com/cruise" use="literal"/> 
  </wsdl:input>
<wsdl:output name="DiningAvailabilityResponse">
  <wsdlsoap:body namespace="http://mywebservice.sabre.com/cruise" use="literal"/> 
  </wsdl:output>
<wsdl:fault name="CruiseException">
  <wsdlsoap:fault name="CruiseException" use="literal"/> 
  </wsdl:fault>
  </wsdl:operation>
<wsdl:operation name="CabinHold">
  <wsdlsoap:operation soapAction=""/> 
<wsdl:input name="CabinHoldRequest">
  <wsdlsoap:body namespace="http://mywebservice.sabre.com/cruise" use="literal"/> 
  </wsdl:input>
<wsdl:output name="CabinHoldResponse">
  <wsdlsoap:body namespace="http://mywebservice.sabre.com/cruise" use="literal"/> 
  </wsdl:output>
<wsdl:fault name="CruiseException">
  <wsdlsoap:fault name="CruiseException" use="literal"/> 
  </wsdl:fault>
  </wsdl:operation>
<wsdl:operation name="StatementandPricing">
  <wsdlsoap:operation soapAction=""/> 
<wsdl:input name="StatementandPricingRequest">
  <wsdlsoap:body namespace="http://mywebservice.sabre.com/cruise" use="literal"/> 
  </wsdl:input>
<wsdl:output name="StatementandPricingResponse">
  <wsdlsoap:body namespace="http://mywebservice.sabre.com/cruise" use="literal"/> 
  </wsdl:output>
<wsdl:fault name="CruiseException">
  <wsdlsoap:fault name="CruiseException" use="literal"/> 
  </wsdl:fault>
  </wsdl:operation>
<wsdl:operation name="CreateReviseBooking">
  <wsdlsoap:operation soapAction=""/> 
<wsdl:input name="CreateReviseBookingRequest">
  <wsdlsoap:body namespace="http://mywebservice.sabre.com/cruise" use="literal"/> 
  </wsdl:input>
<wsdl:output name="CreateReviseBookingResponse">
  <wsdlsoap:body namespace="http://mywebservice.sabre.com/cruise" use="literal"/> 
  </wsdl:output>
<wsdl:fault name="CruiseException">
  <wsdlsoap:fault name="CruiseException" use="literal"/> 
  </wsdl:fault>
  </wsdl:operation>
<wsdl:operation name="DisplayBooking">
  <wsdlsoap:operation soapAction=""/> 
<wsdl:input name="DisplayBookingRequest">
  <wsdlsoap:body namespace="http://mywebservice.sabre.com/cruise" use="literal"/> 
  </wsdl:input>
<wsdl:output name="DisplayBookingResponse">
  <wsdlsoap:body namespace="http://mywebservice.sabre.com/cruise" use="literal"/> 
  </wsdl:output>
<wsdl:fault name="CruiseException">
  <wsdlsoap:fault name="CruiseException" use="literal"/> 
  </wsdl:fault>
  </wsdl:operation>
<wsdl:operation name="CancelBooking">
  <wsdlsoap:operation soapAction=""/> 
<wsdl:input name="CancelBookingRequest">
  <wsdlsoap:body namespace="http://mywebservice.sabre.com/cruise" use="literal"/> 
  </wsdl:input>
<wsdl:output name="CancelBookingResponse">
  <wsdlsoap:body namespace="http://mywebservice.sabre.com/cruise" use="literal"/> 
  </wsdl:output>
<wsdl:fault name="CruiseException">
  <wsdlsoap:fault name="CruiseException" use="literal"/> 
  </wsdl:fault>
  </wsdl:operation>
  </wsdl:binding>
<wsdl:service name="CruiseCommunicationAPIService">
<wsdl:port binding="impl:CruiseAPISoapBinding" name="CruiseAPI">
  <wsdlsoap:address location="http://localhost:8080/CruiseWebServices_1.0Alpha/services/CruiseAPI"/> 
  </wsdl:port>
  </wsdl:service>
  </wsdl:definitions>



HERE IS cruiseapi.xsd


<?xml version="1.0" encoding="UTF-8"?>
<schema elementFormDefault="qualified" targetNamespace="http://mywebservice.sabre.com/cruise"  xmlns="http://www.w3.org/2001/XMLSchema" xmlns:tns1="urn:displaybooking:datatypes:communications:cruise:sabre:com"  xmlns:tns10="urn:cabinavailability:datatypes:communications:cruise:sabre:com"  xmlns:tns11="urn:sailingavailability:datatypes:communications:cruise:sabre:com"  xmlns:tns12="urn:cabinhold:datatypes:communications:cruise:sabre:com"  xmlns:tns13="http://exceptions.communications.cruise.sabre.com"  xmlns:tns2="urn:createrevisebooking:datatypes:communications:cruise:sabre:com"  xmlns:tns3="urn:rateoptionavailability:datatypes:communications:cruise:sabre:com"  xmlns:tns4="urn:statementandpricing:datatypes:communications:cruise:sabre:com"  xmlns:tns5="urn:cancelbooking:datatypes:communications:cruise:sabre:com"  xmlns:tns6="urn:diningavailability:datatypes:communications:cruise:sabre:com"  xmlns:tns7="urn:datatypes:communications:cruise:sabre:com"  xmlns:tns8="urn:transportationavailability:datatypes:communications:cruise:sabre:com"  xmlns:tns9="urn:categoryavailability:datatypes:communications:cruise:sabre:com"  xmlns:xsd="http://www.w3.org/2001/XMLSchema"><xsd:import namespace="urn:datatypes:communications:cruise:sabre:com"  schemaLocation="control.xsd"/><xsd:import namespace="urn:cancelbooking:datatypes:communications:cruise:sabre:com"  schemaLocation="cancelbooking.xsd"/><xsd:import namespace="urn:displaybooking:datatypes:communications:cruise:sabre:com"  schemaLocation="displaybooking.xsd"/><xsd:import  namespace="urn:createrevisebooking:datatypes:communications:cruise:sabre:com"  schemaLocation="createrevisebooking.xsd"/><xsd:import  namespace="urn:statementandpricing:datatypes:communications:cruise:sabre:com"  schemaLocation="statementandpricing.xsd"/><xsd:import namespace="urn:cabinhold:datatypes:communications:cruise:sabre:com"  schemaLocation="cabinhold.xsd"/><xsd:import namespace="urn:diningavailability:datatypes:communications:cruise:sabre:com"  schemaLocation="diningavailability.xsd"/><xsd:import  namespace="urn:cabinavailability:datatypes:communications:cruise:sabre:com"  schemaLocation="cabinavailability.xsd"/><xsd:import  namespace="urn:transportationavailability:datatypes:communications:cruise:sabre:com"  schemaLocation="transportationavailability.xsd"/><xsd:import  namespace="urn:categoryavailability:datatypes:communications:cruise:sabre:com"  schemaLocation="categoryavailability.xsd"/><xsd:import  namespace="urn:rateoptionavailability:datatypes:communications:cruise:sabre:com"  schemaLocation="rateoptionavailability.xsd"/><xsd:import namespace="http://exceptions.communications.cruise.sabre.com"  schemaLocation="exceptions.xsd"/><xsd:import namespace="urn:sailingavailability:datatypes:communications:cruise:sabre:com"  schemaLocation="sailingavailability.xsd"/>
<element name="SailingAvailability">
<complexType>
<sequence>
  <element name="in0" type="tns11:SailingAvailabilityRequest"/> 
  </sequence>
  </complexType>
  </element>
<element name="SailingAvailabilityResponse">
<complexType>
<sequence>
  <element name="SailingAvailabilityReturn" type="tns11:SailingAvailabilityResponse"/> 
  </sequence>
  </complexType>
  </element>
  <element name="fault" type="tns13:CruiseException"/> 
<element name="RateOptionAvailability">
<complexType>
<sequence>
  <element name="in0" type="tns3:RateOptionAvailabilityRequest"/> 
  </sequence>
  </complexType>
  </element>
<element name="RateOptionAvailabilityResponse">
<complexType>
<sequence>
  <element name="RateOptionAvailabilityReturn" type="tns3:RateOptionAvailabilityResponse"/> 
  </sequence>
  </complexType>
  </element>
<element name="CategoryAvailability">
<complexType>
<sequence>
  <element name="in0" type="tns9:CategoryAvailabilityRequest"/> 
  </sequence>
  </complexType>
  </element>
<element name="CategoryAvailabilityResponse">
<complexType>
<sequence>
  <element name="CategoryAvailabilityReturn" type="tns9:CategoryAvailabilityResponse"/> 
  </sequence>
  </complexType>
  </element>
<element name="TransportationAvailability">
<complexType>
<sequence>
  <element name="in0" type="tns8:TransportationAvailabilityRequest"/> 
  </sequence>
  </complexType>
  </element>
<element name="TransportationAvailabilityResponse">
<complexType>
<sequence>
  <element name="TransportationAvailabilityReturn" type="tns8:TransportationAvailabilityResponse"/> 
  </sequence>
  </complexType>
  </element>
<element name="CabinAvailability">
<complexType>
<sequence>
  <element name="in0" type="tns10:CabinAvailabilityRequest"/> 
  </sequence>
  </complexType>
  </element>
<element name="CabinAvailabilityResponse">
<complexType>
<sequence>
  <element name="CabinAvailabilityReturn" type="tns10:CabinAvailabilityResponse"/> 
  </sequence>
  </complexType>
  </element>
<element name="DiningAvailability">
<complexType>
<sequence>
  <element name="in0" type="tns6:DiningAvailabilityRequest"/> 
  </sequence>
  </complexType>
  </element>
<element name="DiningAvailabilityResponse">
<complexType>
<sequence>
  <element name="DiningAvailabilityReturn" type="tns6:DiningAvailabilityResponse"/> 
  </sequence>
  </complexType>
  </element>
<element name="CabinHold">
<complexType>
<sequence>
  <element name="in0" type="tns12:CabinHoldRequest"/> 
  </sequence>
  </complexType>
  </element>
<element name="CabinHoldResponse">
<complexType>
<sequence>
  <element name="CabinHoldReturn" type="tns12:CabinHoldResponse"/> 
  </sequence>
  </complexType>
  </element>
<element name="StatementandPricing">
<complexType>
<sequence>
  <element name="in0" type="tns4:StatementandPricingRequest"/> 
  </sequence>
  </complexType>
  </element>
<element name="StatementandPricingResponse">
<complexType>
<sequence>
  <element name="StatementandPricingReturn" type="tns4:StatementandPricingResponse"/> 
  </sequence>
  </complexType>
  </element>
<element name="CreateReviseBooking">
<complexType>
<sequence>
  <element name="in0" type="tns2:CreateReviseBookingRequest"/> 
  </sequence>
  </complexType>
  </element>
<element name="CreateReviseBookingResponse">
<complexType>
<sequence>
  <element name="CreateReviseBookingReturn" type="tns2:CreateReviseBookingResponse"/> 
  </sequence>
  </complexType>
  </element>
<element name="DisplayBooking">
<complexType>
<sequence>
  <element name="in0" type="tns1:DisplayBookingRequest"/> 
  </sequence>
  </complexType>
  </element>
<element name="DisplayBookingResponse">
<complexType>
<sequence>
  <element name="DisplayBookingReturn" type="tns1:DisplayBookingResponse"/> 
  </sequence>
  </complexType>
  </element>
<element name="CancelBooking">
<complexType>
<sequence>
  <element name="in0" type="tns5:CancelBookingRequest"/> 
  </sequence>
  </complexType>
  </element>
<element name="CancelBookingResponse">
<complexType>
<sequence>
  <element name="CancelBookingReturn" type="tns5:CancelBookingResponse"/> 
  </sequence>
  </complexType>
  </element>
  </schema>

Re: Exception using wsdl2java using a wsdl with imported schema

Posted by Chris Haddad <ha...@apache.org>.
Hamish,

the message references namespace 'impl',
element="impl:CategoryAvailability" , but you don't have an element of
this type defined. the CategoryAvailability element is most likely mapped
to the namespace related to the tsn9 prefix.....

if schema types are factored out into discrete and separate namespaces,
then the references must be updated as well.


/Chris



On Fri, 19 Mar 2004, Ferguson, Hamish wrote:

> Hello,
>
> I am trying to include schema's into my wsdl but am running into a few problems and was hoping someone out there has the  solution.
>
> I'll outline what I'm trying to do.
>
> 1) Take an axis generated wsdl and parse it through a java app I have written that adds application specific constraint's to
> the <schema> defined in the <wsdl:types> section.
>
> 2) Extract and remove the modified schema's from the <wsdl:types> section and write them to individual .xsd files
>
> 3) add import's in the wsdl file referring to the schema's I extracted.
>
> 4) add the <wsdlFile>myWSDL.wsdl</wsdlFile> entry into myWSDD.wsdd file so that AXIS uses my wsdl file.
>
> Now for the problem part:
>
> When I try to run wsdl2java I get the following exception:
>
>         [java] java.io.IOException: Element {http://mywebservice.sabre.com/cruise}CategoryAvailability is referenced but not  defined.
>         [java] 	at org.apache.axis.wsdl.symbolTable.SymbolTable.checkForUndefined(SymbolTable.java:527)
>         [java] 	at org.apache.axis.wsdl.symbolTable.SymbolTable.add(SymbolTable.java:422)
>         [java] 	at org.apache.axis.wsdl.symbolTable.SymbolTable.populate(SymbolTable.java:408)
>         [java] 	at org.apache.axis.wsdl.symbolTable.SymbolTable.populate(SymbolTable.java:393)
>         [java] 	at org.apache.axis.wsdl.gen.Parser$WSDLRunnable.run(Parser.java:245)
>         [java] 	at java.lang.Thread.run(Thread.java:534)
>
>
> I think Axis only imports schema's when a element in the wsdl has a namespace that has NOT already been declared and matches  the namespace defined in the <import namespace="  ...... >  part.  This is a guess, as when I change the namespace of the
> object that is giving me the error ( CategoryAvailability in this case )
>
> FROM
>
> <wsdl:message name="CategoryAvailabilityRequest">
>   <wsdl:part element="impl:CategoryAvailability" name="parameters"/>
> </wsdl:message>
>
>
> TO
>
> <wsdl:message name="CategoryAvailabilityRequest">
>   <wsdl:part element="MYIMPL:CategoryAvailability" name="parameters"/>
> </wsdl:message>
>
> where MYIMPL a different namespace from impl, but MYIMPL ns is the same as the ns of the schema I am trying to import.
> This gets me past the first exception, but, of course I end up with all sorts of binding errors, but it kind of does lead me  to believe that if a namespace is already defined ( i.e impl="http://mywebservice.sabre.com/cruise" ) and you try to import  something with the same namespace from an .xsd file AXIS won't load it.
>
>
> I have tried this on both 1.1 and 1.2alpha
>
>
> I have included my wsdl file and the main schema file that has the definitions where I am seeing the problem.
>
> If anyone can provide some insight and/or advice, I'd appreciate it.
>
> Thanks,
>
> Hamish.
>
>
>
> HERE IS THE WSDL
>
>
>
>
> <?xml version="1.0" encoding="UTF-8"?>
> <wsdl:definitions targetNamespace="http://mywebservice.sabre.com/cruise"
>  xmlns:apachesoap="http://xml.apache.org/xml-soap"
>  xmlns:impl="http://mywebservice.sabre.com/cruise"
>  xmlns:intf="http://mywebservice.sabre.com/cruise"
>  xmlns:tns1="urn:displaybooking:datatypes:communications:cruise:sabre:com"
>  xmlns:tns10="urn:cabinavailability:datatypes:communications:cruise:sabre:com"
>  xmlns:tns11="urn:sailingavailability:datatypes:communications:cruise:sabre:com"
>  xmlns:tns12="urn:cabinhold:datatypes:communications:cruise:sabre:com"
>  xmlns:tns13="http://exceptions.communications.cruise.sabre.com"
>  xmlns:tns14="http://www.w3.org/1999/XMLSchema"
>  xmlns:tns2="urn:createrevisebooking:datatypes:communications:cruise:sabre:com"
>  xmlns:tns3="urn:rateoptionavailability:datatypes:communications:cruise:sabre:com"
>  xmlns:tns4="urn:statementandpricing:datatypes:communications:cruise:sabre:com"
>  xmlns:tns5="urn:cancelbooking:datatypes:communications:cruise:sabre:com"
>  xmlns:tns6="urn:diningavailability:datatypes:communications:cruise:sabre:com"
>  xmlns:tns7="urn:datatypes:communications:cruise:sabre:com"
>  xmlns:tns8="urn:transportationavailability:datatypes:communications:cruise:sabre:com"
>  xmlns:tns9="urn:categoryavailability:datatypes:communications:cruise:sabre:com"
>  xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
>  xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
>  xmlns:xsd="http://www.w3.org/2001/XMLSchema">
>
> <import location="cabinavailability.xsd" namespace="urn:cabinavailability:datatypes:communications:cruise:sabre:com"/>
> <import location="cabinhold.xsd" namespace="urn:cabinhold:datatypes:communications:cruise:sabre:com"/>
> <import location="cancelbooking.xsd" namespace="urn:cancelbooking:datatypes:communications:cruise:sabre:com"/>
> <import location="categoryavailability.xsd" namespace="urn:categoryavailability:datatypes:communications:cruise:sabre:com"/>
> <import location="control.xsd" namespace="urn:datatypes:communications:cruise:sabre:com"/>
> <import location="createrevisebooking.xsd" namespace="urn:createrevisebooking:datatypes:communications:cruise:sabre:com"/>
> <import location="cruiseapi.xsd" namespace="http://exceptions.communications.cruise.sabre.com"/>
> <import location="diningavailability.xsd" namespace="urn:diningavailability:datatypes:communications:cruise:sabre:com"/>
> <import location="displaybooking.xsd" namespace="urn:displaybooking:datatypes:communications:cruise:sabre:com"/>
> <import location="exceptions.xsd" namespace="http://exceptions.communications.cruise.sabre.com"/>
> <import location="rateoptionavailability.xsd"  namespace="urn:rateoptionavailability:datatypes:communications:cruise:sabre:com"/>
> <import location="sailingavailability.xsd" namespace="urn:sailingavailability:datatypes:communications:cruise:sabre:com"/>
> <import location="statementandpricing.xsd" namespace="urn:statementandpricing:datatypes:communications:cruise:sabre:com"/>
> <import location="transportationavailability.xsd"  namespace="urn:transportationavailability:datatypes:communications:cruise:sabre:com"/>
>
> <wsdl:message name="SailingAvailabilityRequest">
>   <wsdl:part element="impl:SailingAvailability" name="parameters"/>
>   </wsdl:message>
> <wsdl:message name="RateOptionAvailabilityResponse">
>   <wsdl:part element="impl:RateOptionAvailabilityResponse" name="parameters"/>
>   </wsdl:message>
> <wsdl:message name="TransportationAvailabilityRequest">
>   <wsdl:part element="impl:TransportationAvailability" name="parameters"/>
>   </wsdl:message>
> <wsdl:message name="DisplayBookingResponse">
>   <wsdl:part element="impl:DisplayBookingResponse" name="parameters"/>
>   </wsdl:message>
> <wsdl:message name="CabinAvailabilityResponse">
>   <wsdl:part element="impl:CabinAvailabilityResponse" name="parameters"/>
>   </wsdl:message>
> <wsdl:message name="CabinHoldResponse">
>   <wsdl:part element="impl:CabinHoldResponse" name="parameters"/>
>   </wsdl:message>
> <wsdl:message name="CancelBookingResponse">
>   <wsdl:part element="impl:CancelBookingResponse" name="parameters"/>
>   </wsdl:message>
> <wsdl:message name="CreateReviseBookingResponse">
>   <wsdl:part element="impl:CreateReviseBookingResponse" name="parameters"/>
>   </wsdl:message>
> <wsdl:message name="TransportationAvailabilityResponse">
>   <wsdl:part element="impl:TransportationAvailabilityResponse" name="parameters"/>
>   </wsdl:message>
> <wsdl:message name="DiningAvailabilityRequest">
>   <wsdl:part element="impl:DiningAvailability" name="parameters"/>
>   </wsdl:message>
> <wsdl:message name="CancelBookingRequest">
>   <wsdl:part element="impl:CancelBooking" name="parameters"/>
>   </wsdl:message>
> <wsdl:message name="DisplayBookingRequest">
>   <wsdl:part element="impl:DisplayBooking" name="parameters"/>
>   </wsdl:message>
> <wsdl:message name="SailingAvailabilityResponse">
>   <wsdl:part element="impl:SailingAvailabilityResponse" name="parameters"/>
>   </wsdl:message>
> <wsdl:message name="CategoryAvailabilityRequest">
>   <wsdl:part element="impl:CategoryAvailability" name="parameters"/>
>   </wsdl:message>
> <wsdl:message name="DiningAvailabilityResponse">
>   <wsdl:part element="impl:DiningAvailabilityResponse" name="parameters"/>
>   </wsdl:message>
> <wsdl:message name="StatementandPricingRequest">
>   <wsdl:part element="impl:StatementandPricing" name="parameters"/>
>   </wsdl:message>
> <wsdl:message name="CruiseException">
>   <wsdl:part element="impl:fault" name="fault"/>
>   </wsdl:message>
> <wsdl:message name="CategoryAvailabilityResponse">
>   <wsdl:part element="impl:CategoryAvailabilityResponse" name="parameters"/>
>   </wsdl:message>
> <wsdl:message name="CreateReviseBookingRequest">
>   <wsdl:part element="impl:CreateReviseBooking" name="parameters"/>
>   </wsdl:message>
> <wsdl:message name="CabinAvailabilityRequest">
>   <wsdl:part element="impl:CabinAvailability" name="parameters"/>
>   </wsdl:message>
> <wsdl:message name="StatementandPricingResponse">
>   <wsdl:part element="impl:StatementandPricingResponse" name="parameters"/>
>   </wsdl:message>
> <wsdl:message name="CabinHoldRequest">
>   <wsdl:part element="impl:CabinHold" name="parameters"/>
>   </wsdl:message>
> <wsdl:message name="RateOptionAvailabilityRequest">
>   <wsdl:part element="impl:RateOptionAvailability" name="parameters"/>
>   </wsdl:message>
> <wsdl:portType name="CruiseCommunicationAPI">
> <wsdl:operation name="SailingAvailability" parameterOrder="">
>   <wsdl:input message="impl:SailingAvailabilityRequest" name="SailingAvailabilityRequest"/>
>   <wsdl:output message="impl:SailingAvailabilityResponse" name="SailingAvailabilityResponse"/>
>   <wsdl:fault message="impl:CruiseException" name="CruiseException"/>
>   </wsdl:operation>
> <wsdl:operation name="RateOptionAvailability" parameterOrder="">
>   <wsdl:input message="impl:RateOptionAvailabilityRequest" name="RateOptionAvailabilityRequest"/>
>   <wsdl:output message="impl:RateOptionAvailabilityResponse" name="RateOptionAvailabilityResponse"/>
>   <wsdl:fault message="impl:CruiseException" name="CruiseException"/>
>   </wsdl:operation>
> <wsdl:operation name="CategoryAvailability" parameterOrder="">
>   <wsdl:input message="impl:CategoryAvailabilityRequest" name="CategoryAvailabilityRequest"/>
>   <wsdl:output message="impl:CategoryAvailabilityResponse" name="CategoryAvailabilityResponse"/>
>   <wsdl:fault message="impl:CruiseException" name="CruiseException"/>
>   </wsdl:operation>
> <wsdl:operation name="TransportationAvailability" parameterOrder="">
>   <wsdl:input message="impl:TransportationAvailabilityRequest" name="TransportationAvailabilityRequest"/>
>   <wsdl:output message="impl:TransportationAvailabilityResponse" name="TransportationAvailabilityResponse"/>
>   <wsdl:fault message="impl:CruiseException" name="CruiseException"/>
>   </wsdl:operation>
> <wsdl:operation name="CabinAvailability" parameterOrder="">
>   <wsdl:input message="impl:CabinAvailabilityRequest" name="CabinAvailabilityRequest"/>
>   <wsdl:output message="impl:CabinAvailabilityResponse" name="CabinAvailabilityResponse"/>
>   <wsdl:fault message="impl:CruiseException" name="CruiseException"/>
>   </wsdl:operation>
> <wsdl:operation name="DiningAvailability" parameterOrder="">
>   <wsdl:input message="impl:DiningAvailabilityRequest" name="DiningAvailabilityRequest"/>
>   <wsdl:output message="impl:DiningAvailabilityResponse" name="DiningAvailabilityResponse"/>
>   <wsdl:fault message="impl:CruiseException" name="CruiseException"/>
>   </wsdl:operation>
> <wsdl:operation name="CabinHold" parameterOrder="">
>   <wsdl:input message="impl:CabinHoldRequest" name="CabinHoldRequest"/>
>   <wsdl:output message="impl:CabinHoldResponse" name="CabinHoldResponse"/>
>   <wsdl:fault message="impl:CruiseException" name="CruiseException"/>
>   </wsdl:operation>
> <wsdl:operation name="StatementandPricing" parameterOrder="">
>   <wsdl:input message="impl:StatementandPricingRequest" name="StatementandPricingRequest"/>
>   <wsdl:output message="impl:StatementandPricingResponse" name="StatementandPricingResponse"/>
>   <wsdl:fault message="impl:CruiseException" name="CruiseException"/>
>   </wsdl:operation>
> <wsdl:operation name="CreateReviseBooking" parameterOrder="">
>   <wsdl:input message="impl:CreateReviseBookingRequest" name="CreateReviseBookingRequest"/>
>   <wsdl:output message="impl:CreateReviseBookingResponse" name="CreateReviseBookingResponse"/>
>   <wsdl:fault message="impl:CruiseException" name="CruiseException"/>
>   </wsdl:operation>
> <wsdl:operation name="DisplayBooking" parameterOrder="">
>   <wsdl:input message="impl:DisplayBookingRequest" name="DisplayBookingRequest"/>
>   <wsdl:output message="impl:DisplayBookingResponse" name="DisplayBookingResponse"/>
>   <wsdl:fault message="impl:CruiseException" name="CruiseException"/>
>   </wsdl:operation>
> <wsdl:operation name="CancelBooking" parameterOrder="">
>   <wsdl:input message="impl:CancelBookingRequest" name="CancelBookingRequest"/>
>   <wsdl:output message="impl:CancelBookingResponse" name="CancelBookingResponse"/>
>   <wsdl:fault message="impl:CruiseException" name="CruiseException"/>
>   </wsdl:operation>
>   </wsdl:portType>
> <wsdl:binding name="CruiseAPISoapBinding" type="impl:CruiseCommunicationAPI">
>   <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
> <wsdl:operation name="SailingAvailability">
>   <wsdlsoap:operation soapAction=""/>
> <wsdl:input name="SailingAvailabilityRequest">
>   <wsdlsoap:body namespace="http://mywebservice.sabre.com/cruise" use="literal"/>
>   </wsdl:input>
> <wsdl:output name="SailingAvailabilityResponse">
>   <wsdlsoap:body namespace="http://mywebservice.sabre.com/cruise" use="literal"/>
>   </wsdl:output>
> <wsdl:fault name="CruiseException">
>   <wsdlsoap:fault name="CruiseException" use="literal"/>
>   </wsdl:fault>
>   </wsdl:operation>
> <wsdl:operation name="RateOptionAvailability">
>   <wsdlsoap:operation soapAction=""/>
> <wsdl:input name="RateOptionAvailabilityRequest">
>   <wsdlsoap:body namespace="http://mywebservice.sabre.com/cruise" use="literal"/>
>   </wsdl:input>
> <wsdl:output name="RateOptionAvailabilityResponse">
>   <wsdlsoap:body namespace="http://mywebservice.sabre.com/cruise" use="literal"/>
>   </wsdl:output>
> <wsdl:fault name="CruiseException">
>   <wsdlsoap:fault name="CruiseException" use="literal"/>
>   </wsdl:fault>
>   </wsdl:operation>
> <wsdl:operation name="CategoryAvailability">
>   <wsdlsoap:operation soapAction=""/>
> <wsdl:input name="CategoryAvailabilityRequest">
>   <wsdlsoap:body namespace="http://mywebservice.sabre.com/cruise" use="literal"/>
>   </wsdl:input>
> <wsdl:output name="CategoryAvailabilityResponse">
>   <wsdlsoap:body namespace="http://mywebservice.sabre.com/cruise" use="literal"/>
>   </wsdl:output>
> <wsdl:fault name="CruiseException">
>   <wsdlsoap:fault name="CruiseException" use="literal"/>
>   </wsdl:fault>
>   </wsdl:operation>
> <wsdl:operation name="TransportationAvailability">
>   <wsdlsoap:operation soapAction=""/>
> <wsdl:input name="TransportationAvailabilityRequest">
>   <wsdlsoap:body namespace="http://mywebservice.sabre.com/cruise" use="literal"/>
>   </wsdl:input>
> <wsdl:output name="TransportationAvailabilityResponse">
>   <wsdlsoap:body namespace="http://mywebservice.sabre.com/cruise" use="literal"/>
>   </wsdl:output>
> <wsdl:fault name="CruiseException">
>   <wsdlsoap:fault name="CruiseException" use="literal"/>
>   </wsdl:fault>
>   </wsdl:operation>
> <wsdl:operation name="CabinAvailability">
>   <wsdlsoap:operation soapAction=""/>
> <wsdl:input name="CabinAvailabilityRequest">
>   <wsdlsoap:body namespace="http://mywebservice.sabre.com/cruise" use="literal"/>
>   </wsdl:input>
> <wsdl:output name="CabinAvailabilityResponse">
>   <wsdlsoap:body namespace="http://mywebservice.sabre.com/cruise" use="literal"/>
>   </wsdl:output>
> <wsdl:fault name="CruiseException">
>   <wsdlsoap:fault name="CruiseException" use="literal"/>
>   </wsdl:fault>
>   </wsdl:operation>
> <wsdl:operation name="DiningAvailability">
>   <wsdlsoap:operation soapAction=""/>
> <wsdl:input name="DiningAvailabilityRequest">
>   <wsdlsoap:body namespace="http://mywebservice.sabre.com/cruise" use="literal"/>
>   </wsdl:input>
> <wsdl:output name="DiningAvailabilityResponse">
>   <wsdlsoap:body namespace="http://mywebservice.sabre.com/cruise" use="literal"/>
>   </wsdl:output>
> <wsdl:fault name="CruiseException">
>   <wsdlsoap:fault name="CruiseException" use="literal"/>
>   </wsdl:fault>
>   </wsdl:operation>
> <wsdl:operation name="CabinHold">
>   <wsdlsoap:operation soapAction=""/>
> <wsdl:input name="CabinHoldRequest">
>   <wsdlsoap:body namespace="http://mywebservice.sabre.com/cruise" use="literal"/>
>   </wsdl:input>
> <wsdl:output name="CabinHoldResponse">
>   <wsdlsoap:body namespace="http://mywebservice.sabre.com/cruise" use="literal"/>
>   </wsdl:output>
> <wsdl:fault name="CruiseException">
>   <wsdlsoap:fault name="CruiseException" use="literal"/>
>   </wsdl:fault>
>   </wsdl:operation>
> <wsdl:operation name="StatementandPricing">
>   <wsdlsoap:operation soapAction=""/>
> <wsdl:input name="StatementandPricingRequest">
>   <wsdlsoap:body namespace="http://mywebservice.sabre.com/cruise" use="literal"/>
>   </wsdl:input>
> <wsdl:output name="StatementandPricingResponse">
>   <wsdlsoap:body namespace="http://mywebservice.sabre.com/cruise" use="literal"/>
>   </wsdl:output>
> <wsdl:fault name="CruiseException">
>   <wsdlsoap:fault name="CruiseException" use="literal"/>
>   </wsdl:fault>
>   </wsdl:operation>
> <wsdl:operation name="CreateReviseBooking">
>   <wsdlsoap:operation soapAction=""/>
> <wsdl:input name="CreateReviseBookingRequest">
>   <wsdlsoap:body namespace="http://mywebservice.sabre.com/cruise" use="literal"/>
>   </wsdl:input>
> <wsdl:output name="CreateReviseBookingResponse">
>   <wsdlsoap:body namespace="http://mywebservice.sabre.com/cruise" use="literal"/>
>   </wsdl:output>
> <wsdl:fault name="CruiseException">
>   <wsdlsoap:fault name="CruiseException" use="literal"/>
>   </wsdl:fault>
>   </wsdl:operation>
> <wsdl:operation name="DisplayBooking">
>   <wsdlsoap:operation soapAction=""/>
> <wsdl:input name="DisplayBookingRequest">
>   <wsdlsoap:body namespace="http://mywebservice.sabre.com/cruise" use="literal"/>
>   </wsdl:input>
> <wsdl:output name="DisplayBookingResponse">
>   <wsdlsoap:body namespace="http://mywebservice.sabre.com/cruise" use="literal"/>
>   </wsdl:output>
> <wsdl:fault name="CruiseException">
>   <wsdlsoap:fault name="CruiseException" use="literal"/>
>   </wsdl:fault>
>   </wsdl:operation>
> <wsdl:operation name="CancelBooking">
>   <wsdlsoap:operation soapAction=""/>
> <wsdl:input name="CancelBookingRequest">
>   <wsdlsoap:body namespace="http://mywebservice.sabre.com/cruise" use="literal"/>
>   </wsdl:input>
> <wsdl:output name="CancelBookingResponse">
>   <wsdlsoap:body namespace="http://mywebservice.sabre.com/cruise" use="literal"/>
>   </wsdl:output>
> <wsdl:fault name="CruiseException">
>   <wsdlsoap:fault name="CruiseException" use="literal"/>
>   </wsdl:fault>
>   </wsdl:operation>
>   </wsdl:binding>
> <wsdl:service name="CruiseCommunicationAPIService">
> <wsdl:port binding="impl:CruiseAPISoapBinding" name="CruiseAPI">
>   <wsdlsoap:address location="http://localhost:8080/CruiseWebServices_1.0Alpha/services/CruiseAPI"/>
>   </wsdl:port>
>   </wsdl:service>
>   </wsdl:definitions>
>
>
>
> HERE IS cruiseapi.xsd
>
>
> <?xml version="1.0" encoding="UTF-8"?>
> <schema elementFormDefault="qualified" targetNamespace="http://mywebservice.sabre.com/cruise"  xmlns="http://www.w3.org/2001/XMLSchema" xmlns:tns1="urn:displaybooking:datatypes:communications:cruise:sabre:com"  xmlns:tns10="urn:cabinavailability:datatypes:communications:cruise:sabre:com"  xmlns:tns11="urn:sailingavailability:datatypes:communications:cruise:sabre:com"  xmlns:tns12="urn:cabinhold:datatypes:communications:cruise:sabre:com"  xmlns:tns13="http://exceptions.communications.cruise.sabre.com"  xmlns:tns2="urn:createrevisebooking:datatypes:communications:cruise:sabre:com"  xmlns:tns3="urn:rateoptionavailability:datatypes:communications:cruise:sabre:com"  xmlns:tns4="urn:statementandpricing:datatypes:communications:cruise:sabre:com"  xmlns:tns5="urn:cancelbooking:datatypes:communications:cruise:sabre:com"  xmlns:tns6="urn:diningavailability:datatypes:communications:cruise:sabre:com"  xmlns:tns7="urn:datatypes:communications:cruise:sabre:com"  xmlns:tns8="urn:transportationavailability:datatypes:communications:cruise:sabre:com"  xmlns:tns9="urn:categoryavailability:datatypes:communications:cruise:sabre:com"  xmlns:xsd="http://www.w3.org/2001/XMLSchema"><xsd:import namespace="urn:datatypes:communications:cruise:sabre:com"  schemaLocation="control.xsd"/><xsd:import namespace="urn:cancelbooking:datatypes:communications:cruise:sabre:com"  schemaLocation="cancelbooking.xsd"/><xsd:import namespace="urn:displaybooking:datatypes:communications:cruise:sabre:com"  schemaLocation="displaybooking.xsd"/><xsd:import  namespace="urn:createrevisebooking:datatypes:communications:cruise:sabre:com"  schemaLocation="createrevisebooking.xsd"/><xsd:import  namespace="urn:statementandpricing:datatypes:communications:cruise:sabre:com"  schemaLocation="statementandpricing.xsd"/><xsd:import namespace="urn:cabinhold:datatypes:communications:cruise:sabre:com"  schemaLocation="cabinhold.xsd"/><xsd:import namespace="urn:diningavailability:datatypes:communications:cruise:sabre:com"  schemaLocation="diningavailability.xsd"/><xsd:import  namespace="urn:cabinavailability:datatypes:communications:cruise:sabre:com"  schemaLocation="cabinavailability.xsd"/><xsd:import  namespace="urn:transportationavailability:datatypes:communications:cruise:sabre:com"  schemaLocation="transportationavailability.xsd"/><xsd:import  namespace="urn:categoryavailability:datatypes:communications:cruise:sabre:com"  schemaLocation="categoryavailability.xsd"/><xsd:import  namespace="urn:rateoptionavailability:datatypes:communications:cruise:sabre:com"  schemaLocation="rateoptionavailability.xsd"/><xsd:import namespace="http://exceptions.communications.cruise.sabre.com"  schemaLocation="exceptions.xsd"/><xsd:import namespace="urn:sailingavailability:datatypes:communications:cruise:sabre:com"  schemaLocation="sailingavailability.xsd"/>
> <element name="SailingAvailability">
> <complexType>
> <sequence>
>   <element name="in0" type="tns11:SailingAvailabilityRequest"/>
>   </sequence>
>   </complexType>
>   </element>
> <element name="SailingAvailabilityResponse">
> <complexType>
> <sequence>
>   <element name="SailingAvailabilityReturn" type="tns11:SailingAvailabilityResponse"/>
>   </sequence>
>   </complexType>
>   </element>
>   <element name="fault" type="tns13:CruiseException"/>
> <element name="RateOptionAvailability">
> <complexType>
> <sequence>
>   <element name="in0" type="tns3:RateOptionAvailabilityRequest"/>
>   </sequence>
>   </complexType>
>   </element>
> <element name="RateOptionAvailabilityResponse">
> <complexType>
> <sequence>
>   <element name="RateOptionAvailabilityReturn" type="tns3:RateOptionAvailabilityResponse"/>
>   </sequence>
>   </complexType>
>   </element>
> <element name="CategoryAvailability">
> <complexType>
> <sequence>
>   <element name="in0" type="tns9:CategoryAvailabilityRequest"/>
>   </sequence>
>   </complexType>
>   </element>
> <element name="CategoryAvailabilityResponse">
> <complexType>
> <sequence>
>   <element name="CategoryAvailabilityReturn" type="tns9:CategoryAvailabilityResponse"/>
>   </sequence>
>   </complexType>
>   </element>
> <element name="TransportationAvailability">
> <complexType>
> <sequence>
>   <element name="in0" type="tns8:TransportationAvailabilityRequest"/>
>   </sequence>
>   </complexType>
>   </element>
> <element name="TransportationAvailabilityResponse">
> <complexType>
> <sequence>
>   <element name="TransportationAvailabilityReturn" type="tns8:TransportationAvailabilityResponse"/>
>   </sequence>
>   </complexType>
>   </element>
> <element name="CabinAvailability">
> <complexType>
> <sequence>
>   <element name="in0" type="tns10:CabinAvailabilityRequest"/>
>   </sequence>
>   </complexType>
>   </element>
> <element name="CabinAvailabilityResponse">
> <complexType>
> <sequence>
>   <element name="CabinAvailabilityReturn" type="tns10:CabinAvailabilityResponse"/>
>   </sequence>
>   </complexType>
>   </element>
> <element name="DiningAvailability">
> <complexType>
> <sequence>
>   <element name="in0" type="tns6:DiningAvailabilityRequest"/>
>   </sequence>
>   </complexType>
>   </element>
> <element name="DiningAvailabilityResponse">
> <complexType>
> <sequence>
>   <element name="DiningAvailabilityReturn" type="tns6:DiningAvailabilityResponse"/>
>   </sequence>
>   </complexType>
>   </element>
> <element name="CabinHold">
> <complexType>
> <sequence>
>   <element name="in0" type="tns12:CabinHoldRequest"/>
>   </sequence>
>   </complexType>
>   </element>
> <element name="CabinHoldResponse">
> <complexType>
> <sequence>
>   <element name="CabinHoldReturn" type="tns12:CabinHoldResponse"/>
>   </sequence>
>   </complexType>
>   </element>
> <element name="StatementandPricing">
> <complexType>
> <sequence>
>   <element name="in0" type="tns4:StatementandPricingRequest"/>
>   </sequence>
>   </complexType>
>   </element>
> <element name="StatementandPricingResponse">
> <complexType>
> <sequence>
>   <element name="StatementandPricingReturn" type="tns4:StatementandPricingResponse"/>
>   </sequence>
>   </complexType>
>   </element>
> <element name="CreateReviseBooking">
> <complexType>
> <sequence>
>   <element name="in0" type="tns2:CreateReviseBookingRequest"/>
>   </sequence>
>   </complexType>
>   </element>
> <element name="CreateReviseBookingResponse">
> <complexType>
> <sequence>
>   <element name="CreateReviseBookingReturn" type="tns2:CreateReviseBookingResponse"/>
>   </sequence>
>   </complexType>
>   </element>
> <element name="DisplayBooking">
> <complexType>
> <sequence>
>   <element name="in0" type="tns1:DisplayBookingRequest"/>
>   </sequence>
>   </complexType>
>   </element>
> <element name="DisplayBookingResponse">
> <complexType>
> <sequence>
>   <element name="DisplayBookingReturn" type="tns1:DisplayBookingResponse"/>
>   </sequence>
>   </complexType>
>   </element>
> <element name="CancelBooking">
> <complexType>
> <sequence>
>   <element name="in0" type="tns5:CancelBookingRequest"/>
>   </sequence>
>   </complexType>
>   </element>
> <element name="CancelBookingResponse">
> <complexType>
> <sequence>
>   <element name="CancelBookingReturn" type="tns5:CancelBookingResponse"/>
>   </sequence>
>   </complexType>
>   </element>
>   </schema>
>