<?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:s1="http://soapinterop.org/xsd" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:s0="http://soapinterop.org/" xmlns:s3="http://soapinterop.org/echoheader/" xmlns:soap12enc="http://www.w3.org/2002/06/soap-envelope" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:s2="http://soapinterop.org" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" targetNamespace="http://soapinterop.org/" xmlns="http://schemas.xmlsoap.org/wsdl/">
  <types>
    <s:schema elementFormDefault="qualified" targetNamespace="http://soapinterop.org/">
      <s:import namespace="http://soapinterop.org/xsd" />
      <s:import namespace="http://soapinterop.org/echoheader/" />
      
      
      
      <s:element name="echoChoice">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="inputChoice" type="s1:ChoiceComplexType" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="echoChoiceResponse">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="return" type="s1:ChoiceComplexType" />
          </s:sequence>
        </s:complexType>
      </s:element>
      
    
      
    </s:schema> 

    <s:schema elementFormDefault="qualified" targetNamespace="http://soapinterop.org/xsd">
      <s:import namespace="http://soapinterop.org/" />

    <s:complexType name="ChoiceComplexType">
        <s:sequence>
          
	<s:element minOccurs="1" maxOccurs="1" name="NonChoiceIntValue" type="s:int" />
	
	<s:choice minOccurs="1" maxOccurs="1">
            <s:element minOccurs="0" maxOccurs="1" name="IntValue" type="s:int" />
            <s:element minOccurs="0" maxOccurs="1" name="StringValue" type="s:string" />
          </s:choice>

	<s:element minOccurs="1" maxOccurs="1" name="NonChoiceStringValue" type="s:string" />

        </s:sequence>
      </s:complexType>
    </s:schema>
 
  </types>
  
  
  
  <message name="echoChoiceSoapIn">
    <part name="parameters" element="s0:echoChoice" />
  </message>
  <message name="echoChoiceSoapOut">
    <part name="parameters" element="s0:echoChoiceResponse" />
  </message>
  
  <portType name="ChoiceTestSoap">
    
    
    <operation name="echoChoice">
      <input message="s0:echoChoiceSoapIn" />
      <output message="s0:echoChoiceSoapOut" />
    </operation>
    
  </portType>
  

  <binding name="ChoiceTestSoap" type="s0:ChoiceTestSoap">
    <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
    
    <operation name="echoChoice">
      <soap:operation soapAction="SimpleChoiceTest#echoChoice" style="document" />
      <input>
        <soap:body use="literal" />
      </input>
      <output>
        <soap:body use="literal" />
      </output>
    </operation>
    
  </binding>
  
<binding name="ChoiceTestSoap12" type="s0:ChoiceTestSoap">
    <soap12:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
    
    
    <operation name="echoChoice">
      <soap12:operation soapAction="Choice#echoChoice" style="document" />
      <input>
        <soap12:body use="literal" />
      </input>
      <output>
        <soap12:body use="literal" />
      </output>
    </operation>
    
  </binding>
  
<service name="ChoiceTest">
    <documentation>These operations implement DOC/LIT SOAP operations, for interop testing. Please email johnko@microsoft.com with any questions/coments.</documentation>
    <port name="ChoiceTestSoap" binding="s0:ChoiceTestSoap">
      <soap:address location="http://localhost:90/axis/Choice" />
    </port>
    <port name="ChoiceTestSoap12" binding="s0:ChoiceTestSoap12">
      <soap12:address location="http://localhost:90/axis/Choice" />
    </port>
  </service>
</definitions>
