<?xml version="1.0" encoding="UTF-8"?>
<definitions
    name="CarRental"
    targetNamespace="http://www.capeclear.com/CarRental.wsdl"
    xmlns="http://schemas.xmlsoap.org/wsdl/"
    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
    xmlns:tns="http://www.capeclear.com/CarRental.wsdl"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:xsd1="http://www.capeclear.com/CarRental.xsd">
    <types>
        <xsd:schema
            targetNamespace="http://www.capeclear.com/CarRental.xsd"
            xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
            xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
            xmlns:xsd="http://www.w3.org/2001/XMLSchema">
            <xsd:complexType name="Name">
                <xsd:sequence>
                    <xsd:element
                        maxOccurs="1"
                        minOccurs="1"
                        name="name"
                        nillable="true"
                        type="xsd:string"/>
                </xsd:sequence>
            </xsd:complexType>
            <xsd:complexType name="UKAddress">
                <xsd:complexContent>
                    <xsd:extension base="xsd1:Address">
                        <xsd:sequence>
                            <xsd:element
                                maxOccurs="1"
                                minOccurs="1"
                                name="postCode"
                                nillable="true"
                                type="xsd:string"/>
                        </xsd:sequence>
                    </xsd:extension>
                </xsd:complexContent>
            </xsd:complexType>
            <xsd:complexType name="Person">
                <xsd:sequence>
                    <xsd:element
                        maxOccurs="1"
                        minOccurs="1"
                        name="name"
                        nillable="true"
                        type="xsd1:Name"/>
                    <xsd:element
                        maxOccurs="1"
                        minOccurs="1"
                        name="address"
                        nillable="true"
                        type="xsd1:Address"/>
                </xsd:sequence>
            </xsd:complexType>
            <xsd:complexType name="CustomerStateHolder">
                <xsd:sequence>
                    <xsd:element
                        maxOccurs="1"
                        minOccurs="1"
                        name="cardNo"
                        nillable="true"
                        type="xsd:string"/>
                    <xsd:element maxOccurs="1" minOccurs="1" name="version" type="xsd:int"/>
                    <xsd:element
                        maxOccurs="1"
                        minOccurs="1"
                        name="person"
                        nillable="true"
                        type="xsd1:Person"/>
                </xsd:sequence>
            </xsd:complexType>
            <xsd:complexType name="ReservationStateHolder">
                <xsd:sequence>
                    <xsd:element
                        maxOccurs="1"
                        minOccurs="1"
                        name="reservationNumber"
                        nillable="true"
                        type="xsd:string"/>
                    <xsd:element
                        maxOccurs="1"
                        minOccurs="1"
                        name="startDate"
                        nillable="true"
                        type="xsd:string"/>
                    <xsd:element
                        maxOccurs="1"
                        minOccurs="1"
                        name="endDate"
                        nillable="true"
                        type="xsd:string"/>
                    <xsd:element
                        maxOccurs="1"
                        minOccurs="1"
                        name="carType"
                        nillable="true"
                        type="xsd:string"/>
                    <xsd:element
                        maxOccurs="1"
                        minOccurs="1"
                        name="customerName"
                        nillable="true"
                        type="xsd:string"/>
                </xsd:sequence>
            </xsd:complexType>
            <xsd:complexType name="Address">
                <xsd:sequence>
                    <xsd:element
                        maxOccurs="1"
                        minOccurs="1"
                        name="address"
                        nillable="true"
                        type="xsd:string"/>
                </xsd:sequence>
            </xsd:complexType>
            <xsd:complexType name="USAddress">
                <xsd:complexContent>
                    <xsd:extension base="xsd1:Address">
                        <xsd:sequence>
                            <xsd:element
                                maxOccurs="1"
                                minOccurs="1"
                                name="zipCode"
                                nillable="true"
                                type="xsd:string"/>
                        </xsd:sequence>
                    </xsd:extension>
                </xsd:complexContent>
            </xsd:complexType>
        </xsd:schema>
    </types>
    <message name="removeCustomer">
        <part name="name" type="xsd:string"/>
    </message>
    <message name="getReservation">
        <part name="reservationNumber" type="xsd:string"/>
    </message>
    <message name="setReservation">
        <part name="reservation" type="xsd1:ReservationStateHolder"/>
    </message>
    <message name="setReservationResponse">
        <part name="return" type="xsd:string"/>
    </message>
    <message name="setCustomerResponse">   </message>
    <message name="removeCustomerResponse">   </message>
    <message name="getCustomerResponse">
        <part name="return" type="xsd1:CustomerStateHolder"/>
    </message>
    <message name="getReservationResponse">
        <part name="return" type="xsd1:ReservationStateHolder"/>
    </message>
    <message name="setCustomer">
        <part name="customer" type="xsd1:CustomerStateHolder"/>
    </message>
    <message name="getCustomer">
        <part name="name" type="xsd:string"/>
    </message>
    <message name="pingRequest1">   </message>
    <message name="pingResponse1">
        <part name="arg1" type="xsd:string"/>
    </message>
    <portType name="ReservationAgentBean">
        <operation name="setCustomer">
            <input message="tns:setCustomer"/>
            <output message="tns:setCustomerResponse"/>
        </operation>
        <operation name="getCustomer">
            <input message="tns:getCustomer"/>
            <output message="tns:getCustomerResponse"/>
        </operation>
        <operation name="removeCustomer">
            <input message="tns:removeCustomer"/>
            <output message="tns:removeCustomerResponse"/>
        </operation>
        <operation name="getReservation">
            <input message="tns:getReservation"/>
            <output message="tns:getReservationResponse"/>
        </operation>
        <operation name="setReservation">
            <input message="tns:setReservation"/>
            <output message="tns:setReservationResponse"/>
        </operation>
        <operation name="ping">
            <input message="tns:pingRequest1"/>
            <output message="tns:pingResponse1"/>
        </operation>
    </portType>
    <binding name="ReservationAgentBeanBinding" type="tns:ReservationAgentBean">
        <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
        <operation name="setCustomer">
            <soap:operation
                soapAction="capeconnect:CarRental:ejb/ReservationAgentBean#setCustomer"/>
            <input>
                <soap:body
                    encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
                    namespace="capeconnect:CarRental:ejb/ReservationAgentBean"
                    use="encoded"/>
            </input>
            <output>
                <soap:body
                    encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
                    namespace="capeconnect:CarRental:ejb/ReservationAgentBean"
                    use="encoded"/>
            </output>
        </operation>
        <operation name="getCustomer">
            <soap:operation
                soapAction="capeconnect:CarRental:ejb/ReservationAgentBean#getCustomer"/>
            <input>
                <soap:body
                    encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
                    namespace="capeconnect:CarRental:ejb/ReservationAgentBean"
                    use="encoded"/>
            </input>
            <output>
                <soap:body
                    encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
                    namespace="capeconnect:CarRental:ejb/ReservationAgentBean"
                    use="encoded"/>
            </output>
        </operation>
        <operation name="removeCustomer">
            <soap:operation
                soapAction="capeconnect:CarRental:ejb/ReservationAgentBean#removeCustomer"/>
            <input>
                <soap:body
                    encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
                    namespace="capeconnect:CarRental:ejb/ReservationAgentBean"
                    use="encoded"/>
            </input>
            <output>
                <soap:body
                    encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
                    namespace="capeconnect:CarRental:ejb/ReservationAgentBean"
                    use="encoded"/>
            </output>
        </operation>
        <operation name="getReservation">
            <soap:operation
                soapAction="capeconnect:CarRental:ejb/ReservationAgentBean#getReservation"/>
            <input>
                <soap:body
                    encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
                    namespace="capeconnect:CarRental:ejb/ReservationAgentBean"
                    use="encoded"/>
            </input>
            <output>
                <soap:body
                    encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
                    namespace="capeconnect:CarRental:ejb/ReservationAgentBean"
                    use="encoded"/>
            </output>
        </operation>
        <operation name="setReservation">
            <soap:operation
                soapAction="capeconnect:CarRental:ejb/ReservationAgentBean#setReservation"/>
            <input>
                <soap:body
                    encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
                    namespace="capeconnect:CarRental:ejb/ReservationAgentBean"
                    use="encoded"/>
            </input>
            <output>
                <soap:body
                    encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
                    namespace="capeconnect:CarRental:ejb/ReservationAgentBean"
                    use="encoded"/>
            </output>
        </operation>
        <operation name="ping">
            <soap:operation soapAction="capeconnect:CarRental:ReservationAgentBean#ping"/>
            <input>
                <soap:body
                    encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
                    namespace="http://www.capeclear.com/CarRental/binding"
                    use="encoded"/>
            </input>
            <output>
                <soap:body
                    encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
                    namespace="http://www.capeclear.com/CarRental/binding"
                    use="encoded"/>
            </output>
        </operation>
    </binding>
    <service name="CarRental">
        <documentation>CarRental</documentation>
        <port binding="tns:ReservationAgentBeanBinding" name="ReservationAgentBean">
            <soap:address location="http://localhost:8000/ccx/CarRental"/>
        </port>
    </service>
</definitions>