<?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:http="http://schemas.xmlsoap.org/wsdl/http/" 
    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" 
    xmlns:s="http://www.w3.org/2001/XMLSchema" 
    xmlns:tns="http://addressing.provider.jaxws.axis2.apache.org"
    targetNamespace="http://addressing.provider.jaxws.axis2.apache.org"
    xmlns="http://schemas.xmlsoap.org/wsdl/">
  <types>
     	<xsd:schema
			targetNamespace="http://addressing.provider.jaxws.axis2.apache.org"
			xmlns:tns="http://addressing.provider.jaxws.axis2.apache.org"
			xmlns:xsd="http://www.w3.org/2001/XMLSchema">

			<xsd:element name="inMessage" type="xsd:string" />
			<xsd:element name="outMessage" type="xsd:string" />
	</xsd:schema>
    

  </types>
   
  <message name="inMessage">
    <part name="parameters" element="tns:inMessage" />
  </message>
  <message name="outMessage">
    <part name="parameters" element="tns:outMessage" />
  </message>

  <portType name="AddressingProviderInterface">
    <operation name="hello">
      <input message="tns:inMessage" name="In" />
      <output message="tns:outMessage" name="Out" />
    </operation>  
  </portType>

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

  <service name="AddressingProviderService">
    <port name="AddressingProviderPort" binding="tns:AddressingProviderBinding">
      <soap:address location="http://localhost:6060/axis2/services/AddressingProviderService" />
    </port>
  </service>

</definitions>
