<?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"
    xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl"
    
    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>
      <wsaw:UsingAddressing required="true" /> 
    
  </binding>

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

</definitions>
