Try inserting a <types> section in your document and build a <schema> that imports the xsds. IIRC, you do not need a targetNamespace attribute on the schema "wrapper" element.
<wsdl:Definition ...>
<types>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:import namespace = "urn:cabinavailability:datatypes:communications:cruise:sabre:com" schemaLocation = "cabinavailability.xsd" />
...the rest...
</types> ... <wsdl:Definition ...>
Jim Murphy Mindreef, Inc.
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:transpor
tationavailability: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:crui se: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>