<?xml version='1.0' encoding='UTF-8' ?>
<!--
(c) 2004 Advanced Micro Devices, Inc., Dell, Inc., Intel Corporation, Microsoft Corporation, and Sun Microsystems, Inc. All rights reserved.

Permission to copy and display WS-Management, which includes its associated WSDL and Schema files and any other associated metadata (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 one of the Co-Developers websites.
2.	The copyright notice as shown in the Specification.

Microsoft, Intel, AMD, Dell, and Sun (collectively, the "Co-Developers") each agree upon request to grant you a license, provided you agree to be bound by such license, under royalty-free and otherwise reasonable, non-discriminatory terms and conditions to their respective patent claims that would necessarily be infringed by an implementation of the Specification and solely to the extent necessary to comply with the Specification.

THE SPECIFICATION IS PROVIDED "AS IS," AND THE CO-DEVELOPERS 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 CO-DEVELOPERS 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 Co-Developers 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 Co-Developers.

No other rights are granted by implication, estoppel or otherwise.
-->

<xs:schema
    targetNamespace="http://schemas.xmlsoap.org/ws/2004/10/management"
    xmlns:tns="http://schemas.xmlsoap.org/ws/2004/10/management" 
    xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" 
    xmlns:wsen="http://schemas.xmlsoap.org/ws/2004/09/enumeration"
    xmlns:xs="http://www.w3.org/2001/XMLSchema" 
    elementFormDefault="qualified"
    blockDefault="#all">

  <xs:import
      namespace="http://schemas.xmlsoap.org/ws/2004/08/addressing" />
  <xs:import
      namespace="http://schemas.xmlsoap.org/ws/2004/09/enumeration" />

  <!-- General-use types -->
  <xs:complexType name="KeyType">
    <xs:simpleContent>
      <xs:extension base="xs:string">
        <xs:attribute name="Name" type="xs:token" />
        <xs:anyAttribute namespace="##other" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
  
  <xs:complexType name="FlagType">
    <!-- Allow for "soap:mustUnderstand" if the flag is a header -->
    <xs:anyAttribute namespace="##other" processContents="lax" />
  </xs:complexType>

  <!-- Addressing elements -->
  <xs:element name="System" type="xs:anyURI" />
  <xs:element name="ResourceURI" type="xs:anyURI" />
  <xs:element name="Key" type="tns:KeyType" />

  <!-- Headers; note that all are defined so that soap:MustUnderstand may be
       added if desired. -->
  <xs:element name="OperationTimeout">
    <xs:complexType>
      <xs:simpleContent>
        <xs:extension base="wsen:PositiveDurationType">
          <xs:anyAttribute namespace="##other" processContents="lax" />
        </xs:extension>
      </xs:simpleContent>
    </xs:complexType>
  </xs:element>

  <xs:element name="Locale">
    <xs:complexType>
      <xs:attribute name="lang" type="xs:language" />
      <xs:anyAttribute namespace="##other" processContents="lax" />
    </xs:complexType>
  </xs:element>

  <xs:element name="NoCache" type="tns:FlagType" />
  <xs:element name="SummaryPermitted" type="tns:FlagType" />
  <xs:element name="ReturnResource" type="tns:FlagType" />

  <xs:element name="NewKeys">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="Key" type="tns:KeyType" maxOccurs="unbounded" />
      </xs:sequence>
      <xs:anyAttribute namespace="##other" processContents="lax" />
    </xs:complexType>
  </xs:element>

  <!-- WS-Eventing: batched delivery mode -->
  <xs:element name="MaxItems" type="xs:positiveInteger" />
  <xs:element name="MaxTime" type="wsen:PositiveDurationType" />
  <xs:element name="MaxCharacters" type="xs:positiveInteger" />

  <xs:complexType name="BatchedEventType">
    <xs:sequence>
      <xs:any minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
    <xs:attribute name="Action" type="xs:anyURI" />
  </xs:complexType>

  <xs:element name="Events">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="Event" type="tns:BatchedEventType" maxOccurs="unbounded" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <!-- WS-Eventing: pull delivery mode -->
  <xs:element name="EnumerationContext" type="wsen:EnumerationContextType" />

  <!-- WS-Eventing: trap delivery mode -->
  <xs:element name="MulticastAddress" type="wsa:EndpointReferenceType" />

  <!-- WS-Eventing: resumable subscriptions -->
  <xs:complexType name="ResumptionContextType">
    <xs:complexContent mixed="true">
      <xs:restriction base="xs:anyType">
        <xs:sequence>
          <xs:any namespace="##other" processContents="lax"
              minOccurs="0" maxOccurs="unbounded" />
        </xs:sequence>
        <xs:anyAttribute namespace="##other" processContents="lax" />
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:simpleType name="ResumeFromType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="earliest" />
      <xs:enumeration value="next" />
      <xs:enumeration value="context" />
    </xs:restriction>
  </xs:simpleType>

  <xs:element name="ResumeAt">
    <xs:complexType>
      <xs:complexContent mixed="true">
        <xs:extension base="tns:ResumptionContextType">
          <xs:attribute name="From" type="tns:ResumeFromType" />
          <xs:attribute name="AllowResumption" type="xs:boolean" />
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>

  <xs:element name="Resumed" type="tns:FlagType" />
  <xs:element name="ResumptionContext" type="tns:ResumptionContextType" />
</xs:schema>
