<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

<!--
  ~ 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.
  -->

<xs:schema version="1.0" targetNamespace="http://wsgen.sample.jaxws.axis2.apache.org" xmlns:xs="http://www.w3.org/2001/XMLSchema">

  <xs:element name="echoString" type="ns1:echoString" xmlns:ns1="http://wsgen.sample.jaxws.axis2.apache.org"/>

  <xs:complexType name="echoString">
    <xs:sequence>
      <xs:element name="arg0" type="xs:string" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <xs:element name="echoStringResponse" type="ns2:echoStringResponse" xmlns:ns2="http://wsgen.sample.jaxws.axis2.apache.org"/>

  <xs:complexType name="echoStringResponse">
    <xs:sequence>
      <xs:element name="return" type="xs:string" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
</xs:schema>

