<?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.
-->
<wsdl:definitions xmlns:types="http://apache.org/camel/cxf/mtom_feature/types" 
		  xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
		  xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" 
          xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"
		  xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" 
		  xmlns:tns="http://apache.org/camel/cxf/mtom_feature" 
		  name="jaxws mtom feature"
		  targetNamespace="http://apache.org/camel/cxf/mtom_feature">

    <wsdl:types>
	<schema xmlns="http://www.w3.org/2001/XMLSchema" 
		xmlns:xmime="http://www.w3.org/2005/05/xmlmime" 
		targetNamespace="http://apache.org/camel/cxf/mtom_feature/types"
		elementFormDefault="qualified">
	    <complexType name="DetailType">
		<sequence>
		    <element name="photo" type="base64Binary"></element>
		    <element name="image" type="base64Binary" xmime:expectedContentTypes="image/jpeg"></element>
		</sequence>
	    </complexType>
	    <element name="Detail" type="types:DetailType"></element>
	    <element name="DetailResponse" type="types:DetailType"></element>
	    <element name="data" type="base64Binary"></element>
	</schema>
    </wsdl:types>

    <wsdl:message name="echoDataIn">
	<wsdl:part name="data" element="types:data"></wsdl:part>
    </wsdl:message>

    <wsdl:message name="echoDataOut">
	<wsdl:part name="data" element="types:data"></wsdl:part>
    </wsdl:message>

    <wsdl:message name="DetailIn">
	<wsdl:part name="data" element="types:Detail"></wsdl:part>
    </wsdl:message>

    <wsdl:message name="DetailOut">
	<wsdl:part name="data" element="types:DetailResponse"></wsdl:part>
    </wsdl:message>

    <wsdl:portType name="Hello">
	<wsdl:operation name="echoData">
	    <wsdl:input message="tns:echoDataIn"></wsdl:input>
	    <wsdl:output message="tns:echoDataOut"></wsdl:output>
	</wsdl:operation>

	<wsdl:operation name="Detail">
	    <wsdl:input message="tns:DetailIn"></wsdl:input>
	    <wsdl:output message="tns:DetailOut"></wsdl:output>
	</wsdl:operation>

    </wsdl:portType>

    <wsdl:binding name="HelloBinding" type="tns:Hello">
	<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"></soap:binding>

	<wsdl:operation name="echoData">
	    <soap:operation soapAction=""></soap:operation>
	    <wsdl:input>
		<soap:body use="literal"></soap:body>
	    </wsdl:input>
	    <wsdl:output>
		<soap:body use="literal"></soap:body>
	    </wsdl:output>
	</wsdl:operation>

	<wsdl:operation name="Detail">
	    <soap:operation soapAction=""></soap:operation>
	    <wsdl:input>
		<soap:body use="literal"></soap:body>
	    </wsdl:input>
	    <wsdl:output>
		<soap:body use="literal"></soap:body>
	    </wsdl:output>
	</wsdl:operation>

    </wsdl:binding>
    
    <wsdl:binding name="HelloBinding12" type="tns:Hello">
        <soap12:binding transport="http://www.w3.org/2003/05/soap/bindings/HTTP/" style="document" /> 
	    <wsdl:operation name="echoData">
	        <soap12:operation soapAction="echoDataAction"/>
	        <wsdl:input>
		        <soap12:body use="literal"/>
	        </wsdl:input>
	        <wsdl:output>
		        <soap12:body use="literal"/>
	        </wsdl:output>
	    </wsdl:operation>

	    <wsdl:operation name="Detail">
	        <soap12:operation soapAction="DetailAction"/>
	        <wsdl:input>
		        <soap12:body use="literal"/>
	        </wsdl:input>
	        <wsdl:output>
		        <soap12:body use="literal"/>
	        </wsdl:output>
	    </wsdl:operation>
    </wsdl:binding>

    <wsdl:service name="HelloService">
	<wsdl:port name="HelloPort" binding="tns:HelloBinding">
	    <soap:address location="http://localhost:9091/jaxws-mtom/hello"></soap:address>
	</wsdl:port>
    </wsdl:service>
    
    <wsdl:service name="HelloService12">
	    <wsdl:port name="HelloPort" binding="tns:HelloBinding12">
	        <soap12:address location="http://localhost:9091/jaxws-mtom/hello"/>
	    </wsdl:port>
    </wsdl:service>

</wsdl:definitions>