<?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://ws.binding.sca.tuscany.apache.org/doclit" 
                         xmlns:tns="http://ws.binding.sca.tuscany.apache.org/doclit" 
                         xmlns:tns2="http://helloworld/external" 
                         xmlns:xs="http://www.w3.org/2001/XMLSchema">
                         
  <xs:import namespace="http://helloworld/external" schemaLocation="./HelloWorldImplService-doclit2.xsd"/>

  <xs:element name="Exception" type="tns:Exception"/>

  <xs:element name="getGreetings" type="xs:string"/>
  
  <xs:element name="getGreetingsResponse" type="xs:string"/>

  <xs:element name="getGreetingsComplex" type="tns2:foo"/>

  <xs:element name="getGreetingsComplexResponse" type="tns2:foo"/>

  <xs:element name="getGreetingsException" type="xs:string"/>

  <xs:element name="getGreetingsExceptionResponse" type="xs:string"/>

  <xs:complexType name="Exception">
    <xs:sequence>
      <xs:element name="message" type="xs:string" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
  
</xs:schema>


