<?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.
 
-->

<!--
(c) 2004 BEA Systems Inc., Computer Associates International, Inc.,
International Business Machines Corporation, Microsoft Corporation,
Inc., SAP AG, Sun Microsystems, and webMethods. All rights reserved. 

Permission to copy and display the WS-MetadataExchange Specification
(the "Specification"), in any medium without fee or royalty is hereby
granted, provided that you include the following on ALL copies of the
Specification that you make:

1.	A link or URL to the Specification at this location.
2.	The copyright notice as shown in the Specification.

BEA Systems, Computer Associates, IBM, Microsoft, SAP, Sun, and
webMethods (collectively, the "Authors") each agree to grant you a
license, under royalty-free and otherwise reasonable,
non-discriminatory terms and conditions, to their respective essential
patent claims that they deem necessary to implement the
WS-MetadataExchange Specification.

THE SPECIFICATION IS PROVIDED "AS IS," AND THE AUTHORS MAKE NO
REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING, BUT NOT
LIMITED TO, WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
PURPOSE, NON-INFRINGEMENT, OR TITLE; THAT THE CONTENTS OF THE
SPECIFICATION ARE SUITABLE FOR ANY PURPOSE; NOR THAT THE
IMPLEMENTATION OF SUCH CONTENTS WILL NOT INFRINGE ANY THIRD PARTY
PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.

THE AUTHORS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL,
INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF OR RELATING TO ANY
USE OR DISTRIBUTION OF THE SPECIFICATIONS.

The name and trademarks of the Authors may NOT be used in any manner,
including advertising or publicity pertaining to the Specifications or
their contents without specific, written prior permission. Title to
copyright in the Specifications will at all times remain with the
Authors.

No other rights are granted by implication, estoppel or otherwise.
-->

<xs:schema
    targetNamespace="http://schemas.xmlsoap.org/ws/2004/09/mex" 
    xmlns:tns="http://schemas.xmlsoap.org/ws/2004/09/mex" 
    xmlns:wsa="http://www.w3.org/2005/08/addressing" 
    xmlns:xs="http://www.w3.org/2001/XMLSchema" 
    elementFormDefault="qualified" >

  <xs:import
      namespace="http://www.w3.org/2005/08/addressing" 
      schemaLocation="WS-Addressing-2005_08.xsd" />

  <!-- Get Metadata request -->
  <xs:element name='GetMetadata' >
    <xs:complexType>
      <xs:sequence>
        <xs:element ref='tns:Dialect' minOccurs='0' />
        <xs:element ref='tns:Identifier' minOccurs='0' />
      </xs:sequence>
      <xs:anyAttribute namespace='##other' processContents='lax' />
    </xs:complexType>
  </xs:element>

  <xs:element name='Dialect' type='xs:anyURI' />
  <xs:element name='Identifier' type='xs:anyURI' />

  <!-- Get Metadata response -->
  <xs:element name='Metadata' >
    <xs:complexType>
      <xs:sequence>
        <xs:element ref='tns:MetadataSection'
                    minOccurs='0'
                    maxOccurs='unbounded' />
      </xs:sequence>
      <xs:anyAttribute namespace='##other' processContents='lax' />
    </xs:complexType>
  </xs:element>

  <xs:element name='MetadataSection' >
    <xs:complexType>
      <xs:choice>
        <xs:any namespace='##other'
                processContents='lax'
                minOccurs='0'
                maxOccurs='unbounded' />
        <xs:element ref='tns:MetadataReference' />
        <xs:element ref='tns:Location' />
      </xs:choice>
      <xs:attribute name='Dialect' type='xs:anyURI' use='required' />
      <xs:attribute name='Identifier' type='xs:anyURI' />
      <xs:anyAttribute namespace='##other' processContents='lax' />
    </xs:complexType>
  </xs:element>

  <xs:element name='MetadataReference'
              type='wsa:EndpointReferenceType' />

  <xs:element name='Location'
              type='xs:anyURI' />

  <!-- count(/s:Envelope/s:Body/*) = 0 for Get request -->

  <!-- Get Response returns xs:any -->

  <xs:complexType name='AnyXmlType' >
    <xs:sequence>
      <xs:any namespace='##any' processContents='lax' />
    </xs:sequence>
    <xs:anyAttribute namespace='##any' processContents='lax' />
  </xs:complexType>

</xs:schema>
