<?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 targetNamespace="http://rpclit.test.org"
  xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" 
  xmlns:tns="http://rpclit.test.org" 
  xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
  xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" 
  xmlns:intf="http://schema.rpclit.test.org" 
  xmlns:impl="http://schema.rpclit.test.org" 
  xmlns:apachesoap="http://xml.apache.org/xml-soap" 
  xmlns="http://schemas.xmlsoap.org/wsdl/">

  <types>
    <schema xmlns="http://www.w3.org/2001/XMLSchema" 
      targetNamespace="http://schema.rpclit.test.org" 
      xmlns:xsd="http://www.w3.org/2001/XMLSchema">
      <!-- <element name="elementString"> -->
        <simpleType name="elementString">
          <restriction base="xsd:string">
            <enumeration value="A"/>
            <enumeration value="B"/>
            <enumeration value="C"/>
          </restriction>
        </simpleType>
      <!-- </element> -->
    </schema>
  </types>

  <wsdl:message name="echoStringRequest">
    <wsdl:part name="pString" type="intf:elementString"/>
  </wsdl:message>
  <wsdl:message name="echoStringResponse">
    <wsdl:part name="pString" type="intf:elementString"/>
  </wsdl:message>

  <wsdl:portType name="PortType">
    <wsdl:operation name="echoString">
      <wsdl:input name="echoStringRequest" message="tns:echoStringRequest"/>
      <wsdl:output name="echoStringResponse" message="tns:echoStringResponse"/>
    </wsdl:operation>
  </wsdl:portType>

  <wsdl:binding name="Binding" type="tns:PortType">
    <wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
    <wsdl:operation name="echoString">
      <wsdlsoap:operation soapAction=""/>
      <wsdl:input name="echoStringRequest">
        <wsdlsoap:body
          namespace="http://rpclit.test.org"
          use="literal"/>
      </wsdl:input>
      <wsdl:output name="echoStringResponse">
        <wsdlsoap:body
          namespace="http://rpclit.test.org"
          use="literal"/>
      </wsdl:output>
    </wsdl:operation>
  </wsdl:binding>

  <wsdl:service name="RPCLitEnumService">
    <wsdl:port name="Port" binding="tns:Binding">
      <wsdlsoap:address location="http://localhost:6060/axis2/services/RPCLitEnumService"/>
    </wsdl:port>
  </wsdl:service>

  
</wsdl:definitions>
