Web Services Eventing (WS-Eventing) - Schema

See details in the news story "BEA, Microsoft, and Tibco Release Web Services Eventing (WS-Eventing) Specification."


From: Web Services Eventing (WS-Eventing)
January 2004
Appendix I: XML Schema
A non-normative copy of the XML Schema description for WS-Eventing
<xs:schema
    targetNamespace='http://schemas.xmlsoap.org/ws/2004/01/eventing'
    xmlns:tns='http://schemas.xmlsoap.org/ws/2004/01/eventing'
    xmlns:s11='http://schemas.xmlsoap.org/soap/envelope/'
    xmlns:s12='http://www.w3.org/2003/05/soap-envelope'
    xmlns:wsa='http://schemas.xmlsoap.org/ws/2003/03/addressing'
    xmlns:wsp='http://schemas.xmlsoap.org/ws/2002/12/policy'
    xmlns:xs='http://www.w3.org/2001/XMLSchema'
    elementFormDefault='qualified'
    blockDefault='#all' >
  <xs:import
      namespace='http://schemas.xmlsoap.org/soap/envelope/'
      schemaLocation='http://schemas.xmlsoap.org/soap/envelope/' />
  <xs:import
      namespace='http://www.w3.org/2003/05/soap-envelope'
      schemaLocation='http://www.w3.org/2003/05/soap-envelope' />
  <xs:import
      namespace='http://schemas.xmlsoap.org/ws/2003/03/addressing'
      schemaLocation='http://schemas.xmlsoap.org/ws/2003/03/addressing' />
  <xs:import
      namespace='http://schemas.xmlsoap.org/ws/2002/12/policy'
      schemaLocation='http://schemas.xmlsoap.org/ws/2002/12/policy' />
<!--
  <xs:import namespace='http://www.w3.org/XML/1998/namespace' /> 
-->
  <xs:element name='Subscribe' >
    <xs:complexType>
      <xs:sequence>
        <xs:element ref='tns:NotifyTo' />
        <xs:element ref='tns:EndTo' minOccurs='0' />
        <xs:element ref='tns:Expires' minOccurs='0' />
        <xs:element ref='tns:Filter' minOccurs='0' />
        <xs:any namespace='##other'
                processContents='lax'
                minOccurs='0'
                maxOccurs='unbounded' />
      </xs:sequence>
      <xs:anyAttribute namespace='##other' processContents='lax' />
    </xs:complexType>
  </xs:element>
  <xs:element name='SubscribeTo' type='wsa:EndpointReferenceType' />
  <xs:element name='NotifyTo' type='wsa:EndpointReferenceType' />
  <xs:element name='EndTo' type='wsa:EndpointReferenceType' />
  <xs:element name='Expires' >
    <xs:simpleType>
      <xs:union
        memberTypes='xs:dateTime tns:NonNegativeDurationType' />
    </xs:simpleType>
  </xs:element>
  <xs:simpleType name='NonNegativeDurationType' >
    <xs:restriction base='xs:duration' >
      <xs:minInclusive value='P0Y0M0DT0H0M0S' />
    </xs:restriction>
  </xs:simpleType>
  <xs:element name='Filter' type='wsp:MessagePredicateAssertion' />
  <xs:element name='SupportedDialect' type='xs:anyURI' />
  <xs:element name='SubscribeResponse' >
    <xs:complexType>
      <xs:sequence>
        <xs:element ref='tns:Id' />
        <xs:element ref='tns:Expires' />
        <xs:any namespace='##other'
                processContents='lax'
                minOccurs='0'
                maxOccurs='unbounded' />
      </xs:sequence>
      <xs:anyAttribute namespace='##other' processContents='lax' />
    </xs:complexType>
  </xs:element>
  <xs:element name='Id' type='xs:anyURI' />
  <xs:element name='Renew' >
    <xs:complexType>
      <xs:sequence>
        <xs:element ref='tns:Id' />
        <xs:element ref='tns:Expires' minOccurs='0' />
        <xs:any namespace='##other'
                processContents='lax'
                minOccurs='0'
                maxOccurs='unbounded' />
      </xs:sequence>
      <xs:anyAttribute namespace='##other' processContents='lax' />
    </xs:complexType>
  </xs:element>
  <xs:element name='RenewResponse' >
    <xs:complexType>
      <xs:sequence>
        <xs:element ref='tns:Expires' />
        <xs:any namespace='##other'
                processContents='lax'
                minOccurs='0'
                maxOccurs='unbounded' />
      </xs:sequence>
      <xs:anyAttribute namespace='##other' processContents='lax' />
    </xs:complexType>
  </xs:element>
  <xs:element name='Unsubscribe' >
    <xs:complexType>
      <xs:sequence>
        <xs:element ref='tns:Id' />
        <xs:any namespace='##other'
                processContents='lax'
                minOccurs='0'
                maxOccurs='unbounded' />
      </xs:sequence>
      <xs:anyAttribute namespace='##other' processContents='lax' />
    </xs:complexType>
  </xs:element>
  
  <!-- count(/s:Envelope/s:Body/*) = 0 for Unsubscribe response -->
  <xs:element name='SubscriptionEnd' >
    <xs:complexType>
      <xs:sequence>
        <xs:element ref='tns:Id' />
        <xs:element ref='tns:Code' />
        <xs:element ref='tns:Reason' minOccurs='0' />
        <xs:any namespace='##other'
                processContents='lax'
                minOccurs='0'
                maxOccurs='unbounded' />
      </xs:sequence>
      <xs:attribute ref='s11:actor' />
      <xs:attribute ref='s11:mustUnderstand' />
      <xs:attribute ref='s12:relay' />
      <xs:attribute ref='s12:role' />
      <xs:attribute ref='s12:mustUnderstand' />
      <xs:anyAttribute namespace='##other' processContents='lax' />
    </xs:complexType>
  </xs:element>
  <xs:element name='Code' >
    <xs:simpleType>
      <xs:restriction base='xs:QName' >
        <xs:enumeration value='tns:Unsubscribed' />
        <xs:enumeration value='tns:Expired' />
        <xs:enumeration value='tns:NotifyToFailure' />
        <xs:enumeration value='tns:SourceCanceling' />
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
  <xs:element name='Reason' >
    <xs:complexType>
      <xs:simpleContent>
        <xs:extension base='xs:string' >
<!-- should be defined here but omitted because my validator complains
          <xs:attribute ref='xml:lang' use='required' />
-->
        </xs:extension>
      </xs:simpleContent>
    </xs:complexType>
  </xs:element>
  <!-- No constraint on s:Envelope/s:Body/ for SubscriptionEnd -->
</xs:schema>

Copyright Notice

(c) 2004 BEA Systems Inc., Microsoft Corporation, TIBCO Software Inc. All rights reserved.

From: http://msdn.microsoft.com/ws/2004/01/ws-eventing.

BEA Systems, Microsoft, and TIBCO Software (collectively, the "Authors") hereby grant you permission to copy and display this specification (the "Specification"), in any medium without fee or royalty, provided that you include the following on ALL copies of the Specification, or portions thereof, that you make:

1. A link or URL to the Specification at this location.

2. The copyright notice as shown in the Specification.

EXCEPT FOR THE COPYRIGHT LICENSE GRANTED ABOVE, THE AUTHORS DO NOT GRANT, EITHER EXPRESSLY OR IMPLIEDLY, A LICENSE TO ANY INTELLECTUAL PROPERTY, INCLUDING PATENTS, THEY OWN OR CONTROL.

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

The Specification may change before final release and you are cautioned against relying on the content of this Specification.

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

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