<?xml version="1.0" encoding="UTF-8"?>
<!-- 
DMTF - Distributed Management Task Force, Inc. - http://www.dmtf.org

Document number: DSP8034
Date: 2010-02-19
Version: 1.0.0
Document status: DMTF Standard

Title: WS-Management Addressing XML Schema

Document type: Specification (W3C XML Schema)
Document language: E

Abstract: XML Schema for WS-Management Addressing.

Contact group: DMTF WS-Management Work Group, wsman-chair@dmtf.org

Copyright (C) 2008,2009, 2010 Distributed Management Task Force, Inc. (DMTF).
All rights reserved.  DMTF is a not-for-profit association of industry
members dedicated to promoting enterprise and systems management and
interoperability.  Members and non-members may reproduce DMTF
specifications and documents 
provided that correct attribution is given.  As DMTF specifications may
be revised from time to time, the particular version and release date
should always be noted.  Implementation of certain elements of this
standard or proposed standard may be subject to third party patent
rights, including provisional patent rights (herein "patent rights").
DMTF makes no representations to users of the standard as to the
existence of such rights, and is not responsible to recognize, disclose,
or identify any or all such third party patent right, owners or
claimants, nor for any incomplete or inaccurate identification or
disclosure of such rights, owners or claimants.  DMTF shall have no
liability to any party, in any manner or circumstance, under any legal
theory whatsoever, for failure to recognize, disclose, or identify any
such third party patent rights, or for such party's reliance on the
standard or incorporation thereof in its product, protocols or testing
procedures.  DMTF shall have no liability to any party implementing
such standard, whether such implementation is foreseeable or not, nor
to any patent owner or claimant, and shall have no liability or
responsibility for costs or losses incurred if a standard is withdrawn
or modified after publication, and shall be indemnified and held
harmless by any party implementing the standard from any and all claims
of infringement by a patent owner for such implementations.  For
information about patents held by third-parties which have notified the
DMTF that, in their opinion, such patent may relate to or impact
implementations of DMTF standards, visit
http://www.dmtf.org/about/policies/disclosures.php.

Change log:
1.0.0 - 2009-11-01 - Work in progress release
1.0.0 - 2010-02-19 - DMTF Standard release
  -->
<xs:schema 
  targetNamespace="http://schemas.xmlsoap.org/ws/2004/08/addressing" 
  xmlns:xs="http://www.w3.org/2001/XMLSchema" 
  xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" 
  elementFormDefault="qualified" blockDefault="#all">

  <!-- //////////////////// Addressing //////////////////// -->
  <!-- Endpoint reference -->
  <xs:element name="EndpointReference" type="wsa:EndpointReferenceType"/>
  <xs:complexType name="EndpointReferenceType">
    <xs:sequence>
      <xs:element name="Address" type="wsa:AttributedURI"/>
      <xs:element name="ReferenceProperties" 
        type="wsa:ReferencePropertiesType" minOccurs="0"/>
      <xs:element name="ReferenceParameters" 
        type="wsa:ReferenceParametersType" minOccurs="0"/>
      <xs:element name="PortType" type="wsa:AttributedQName" minOccurs="0"/>
      <xs:element name="ServiceName" type="wsa:ServiceNameType" minOccurs="0"/>
      <xs:any namespace="##other" processContents="lax" minOccurs="0" 
        maxOccurs="unbounded">
        <xs:annotation>
          <xs:documentation>
           If "Policy" elements from namespace 
           "http://schemas.xmlsoap.org/ws/2002/12/policy#policy" are used, 
           they must appear first (before any extensibility elements).
          </xs:documentation>
        </xs:annotation>
      </xs:any>
    </xs:sequence>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>
  <xs:complexType name="ReferencePropertiesType">
    <xs:sequence>
      <xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ReferenceParametersType">
    <xs:sequence>
      <xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ServiceNameType">
    <xs:simpleContent>
      <xs:extension base="xs:QName">
        <xs:attribute name="PortName" type="xs:NCName"/>
        <xs:anyAttribute namespace="##other" processContents="lax"/>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
  <!-- Message information header blocks -->
  <xs:element name="MessageID" type="wsa:AttributedURI"/>
  <xs:element name="RelatesTo" type="wsa:Relationship"/>
  <xs:element name="To" type="wsa:AttributedURI"/>
  <xs:element name="Action" type="wsa:AttributedURI"/>
  <xs:element name="From" type="wsa:EndpointReferenceType"/>
  <xs:element name="ReplyTo" type="wsa:EndpointReferenceType"/>
  <xs:element name="FaultTo" type="wsa:EndpointReferenceType"/>
  <xs:complexType name="Relationship">
    <xs:simpleContent>
      <xs:extension base="xs:anyURI">
        <xs:attribute name="RelationshipType" type="xs:QName" use="optional"/>
        <xs:anyAttribute namespace="##other" processContents="lax"/>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
  <xs:simpleType name="RelationshipTypeValues">
    <xs:restriction base="xs:QName">
      <xs:enumeration value="wsa:Reply"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:element name="ReplyAfter" type="wsa:ReplyAfterType"/>
  <xs:complexType name="ReplyAfterType">
    <xs:simpleContent>
      <xs:extension base="xs:nonNegativeInteger">
        <xs:anyAttribute namespace="##other"/>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
  <xs:element name="RetryAfter" type="wsa:RetryAfterType"/>
  <xs:complexType name="RetryAfterType">
    <xs:simpleContent>
      <xs:extension base="xs:nonNegativeInteger">
        <xs:anyAttribute namespace="##other"/>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
  <xs:simpleType name="FaultSubcodeValues">
    <xs:restriction base="xs:QName">
      <xs:enumeration value="wsa:InvalidMessageInformationHeader"/>
      <xs:enumeration value="wsa:MessageInformationHeaderRequired"/>
      <xs:enumeration value="wsa:DestinationUnreachable"/>
      <xs:enumeration value="wsa:ActionNotSupported"/>
      <xs:enumeration value="wsa:EndpointUnavailable"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:attribute name="Action" type="xs:anyURI"/>
  <!-- Common declarations and definitions -->
  <xs:complexType name="AttributedQName">
    <xs:simpleContent>
      <xs:extension base="xs:QName">
        <xs:anyAttribute namespace="##other" processContents="lax"/>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
  <xs:complexType name="AttributedURI">
    <xs:simpleContent>
      <xs:extension base="xs:anyURI">
        <xs:anyAttribute namespace="##other" processContents="lax"/>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
</xs:schema>
