<?xml version="1.0" encoding="UTF-8"?>

<!--
  ~ Licensed to the Apache Software Foundation (ASF) under one
  ~ or more contributor license agreements. See the NOTICE file
  ~ distributed with this work for additional information
  ~ regarding copyright ownership. The ASF licenses this file
  ~ to you under the Apache License, Version 2.0 (the
  ~ "License"); you may not use this file except in compliance
  ~ with the License. You may obtain a copy of the License at
  ~
  ~ http://www.apache.org/licenses/LICENSE-2.0
  ~
  ~ Unless required by applicable law or agreed to in writing,
  ~ software distributed under the License is distributed on an
  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  ~ KIND, either express or implied. See the License for the
  ~ specific language governing permissions and limitations
  ~ under the License.
  -->

<definitions xmlns:dns="http://ws.apache.org/axis2/jibx/customer/data"
   xmlns="http://schemas.xmlsoap.org/wsdl/"
   xmlns:xsd="http://www.w3.org/2001/XMLSchema"
   xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
   xmlns:tns="http://ws.apache.org/axis2/jibx/customer/wsdl"
   targetNamespace="http://ws.apache.org/axis2/jibx/customer/wsdl">
  
  <types>
    <xsd:schema>
      <xsd:import schemaLocation="customer.xsd"
          namespace="http://ws.apache.org/axis2/jibx/customer/data"/>
    </xsd:schema>
  </types>

  <message name="EchoRequest">
    <part name="parameters" element="dns:customer"/>
  </message>
  <message name="EchoResponse">
    <part name="result" element="dns:customer"/>
  </message>
  
  <portType name="EchoCustomer">
    <operation name="echo">
      <input message="tns:EchoRequest"/>
      <output message="tns:EchoResponse"/>
    </operation>
  </portType>

  <binding name="EchoCustomerBinding" type="tns:EchoCustomer">
    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
    <operation name="echo">
      <soap:operation soapAction="echo"/>
      <input>
        <soap:body use="literal"/>
      </input>
      <output>
        <soap:body use="literal"/>
      </output>
    </operation>
  </binding>

  <service name="EchoCustomerService">
    <port name="EchoCustomerPort" binding="tns:EchoCustomerBinding">
      <soap:address location="http://127.0.0.1:5555/axis2/services/EchoCustomerService"/>
    </port>
  </service>
  
</definitions>
