<?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://soapmsg.provider.jaxws.axis2.apache.org"
    xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" 
    xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" 
    xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" 
    targetNamespace="http://soapmsg.provider.jaxws.axis2.apache.org" 
    xmlns="http://schemas.xmlsoap.org/wsdl/">
  <types>
     	<xsd:schema
			targetNamespace="http://soapmsg.provider.jaxws.axis2.apache.org"
			xmlns:tns="http://soapmsg.provider.jaxws.axis2.apache.org"
			xmlns:xsd="http://www.w3.org/2001/XMLSchema">
			<xsd:complexType name="StringArray">
				<xsd:sequence>
					<xsd:element name="value" type="xsd:string"
						minOccurs="0" maxOccurs="unbounded" />

				</xsd:sequence>
			</xsd:complexType>

			<xsd:element name="inMessage" type="tns:StringArray" />
			<xsd:element name="outMessage" type="tns:StringArray" />
		        <xsd:element name="twoWayExceptionFault" type="xsd:string" />
	</xsd:schema>
    

  </types>
   
  <message name="emptyMessage"/>
  <message name="inMessage">
    <part name="parameters" element="tns:inMessage" />
  </message>
  <message name="outMessage">
    <part name="parameters" element="tns:outMessage" />
  </message>

  <portType name="EchoServiceInterface">
    <operation name="invokeOp">
      <input message="tns:inMessage" />
      <output message="tns:outMessage" />
    </operation>  
  </portType>

  <binding name="EchoServiceSoap" type="tns:EchoServiceInterface">
    <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
    <operation name="invokeOp">
      <soap:operation soapAction="echoString" style="document" />
      <input>
        <soap:body use="literal" />
      </input>
      <output>
        <soap:body use="literal" />
      </output>
    </operation>
  </binding>

  <service name="SoapMessageProviderService">
    <port name="SoapMessageProviderPort" binding="tns:EchoServiceSoap">
      <soap:address location="http://localhost:6060/axis2/services/SoapMessageProviderService" />
    </port>
  </service>

</definitions>
