Re: issue 6401/6661: combined proposal

It should be noted that this proposal takes the form of a new version of 
WS-Eventing. The new material is confined to Appendix A where it 
replaces the original Appendix A.

- gp

On 8/24/2009 11:23 AM, Gilbert Pilz wrote:
> Attached (or inlined as the case may be) is draft 6 of a proposal for 
> issues 6401/6661. This proposal allows for the use of both the 
> EventDescriptions element and Format-specific Notification WSDLs. 
> There are still some open issues with this version of the proposal, 
> but these can be worked out by the WG. Note that, as per our agreement 
> at the last F2F, the section that describes the binding of 
> wse:EventDescriptions to a Unwrapped Notification WSDL has been marked 
> "TBD".
>
> Thanks to Ram, Wu, and Li for their help and feedback. Thanks to their 
> input I think we've got something in which the combination of 
> EventDescriptions and Notification WSDLs offers some value beyond 
> merely serving as a political compromise.
>
> - gp
>
> ------------------------------------------------------------------------
>
> ?xml version="1.0" encoding="UTF-8"?>
>
>
>   Web Services Eventing (WS-Eventing)
>
>
>     Editor's Draft $Date: 2009/08/05 02:09:23 $
>
> Latest version:
>     http://www.w3.org/TR/ws-eventing <http://www.w3.org/TR/ws-eventing>
> Previous version:
>     http://www.w3.org/TR/2009/WD-ws-eventing-20090317
> Editors:
>     Doug Davis, IBM
>     Ashok Malhotra, Oracle
>     Katy Warr, IBM
>     Wu Chou, Avaya
>
> Copyright <http://www.w3.org/Consortium/Legal/ipr-notice#Copyright> © 
> 2009 W3C <http://www.w3.org/>^® (MIT <http://www.csail.mit.edu/>, 
> ERCIM <http://www.ercim.org/>, Keio <http://www.keio.ac.jp/>), All 
> Rights Reserved. W3C liability 
> <http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer>, 
> trademark 
> <http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks> and 
> document use <http://www.w3.org/Consortium/Legal/copyright-documents> 
> rules apply.
>
> ------------------------------------------------------------------------
>
>
>     Abstract
>
> This specification describes a protocol that allows Web services to 
> subscribe to or accept subscriptions for event notification messages.
>
>
>     Status of this Document
>
> *This document is an editors' copy that has no official standing.*
>
>
>     Table of Contents
>
> 1 Composable Architecture <#composable>
> 2 Introduction <#intro>
>    2.1 Requirements <#reqs>
>    2.2 Delivery <#Delivery>
>    2.3 Notification Formats <#NotificationFormats>
>    2.4 Subscription Managers <#SubMgr>
>    2.5 Example <#example>
> 3 Notations and Terminology <#notterms>
>    3.1 Notational Conventions <#conventions>
>    3.2 Considerations on the Use of Extensibility Points <#extensions>
>    3.3 XML Namespaces <#namespaces>
>    3.4 Terminology <#terms>
>    3.5 Compliance <#compliance>
> 4 Subscription Messages <#SubMsgs>
>    4.1 Subscribe <#Subscribe>
>    4.2 Renew <#Renew>
>    4.3 GetStatus <#GetStatus>
>    4.4 Unsubscribe <#Unsubscribe>
>    4.5 Subscription End <#SubscriptionEnd>
> 5 Notifications <#Notifications>
> 6 Faults <#Faults>
>    6.1 Fault Detail RetryAfter Element <#FaultDetailRetryElement>
>    6.2 InvalidExpirationTime <#InvalidExpirationTime>
>    6.3 UnsupportedExpirationType <#UnsupportedExpirationType>
>    6.4 FilteringNotSupported <#FilteringNotSupported>
>    6.5 FilteringRequestedUnavailable <#FilteringRequestedUnavailable>
>    6.6 EventSourceUnableToProcess <#EventSourceUnableToProcess>
>    6.7 UnableToRenew <#UnableToRenew>
>    6.8 InvalidMessage <#InvalidMessage>
>    6.9 DeliveryFormatRequestUnavailable 
> <#DeliveryFormatRequestedUnavailable>
>    6.10 EmptyFilter <#EmptyFilter>
>    6.11 UnusableEPR <#UnusableEPR>
> 7 Security Considerations <#Security>
>    7.1 Message Security <#MessageSecurity>
>    7.2 Access Control <#AccessControl>
> 8 Implementation Considerations <#ImplConsideration>
> 9 Acknowledgements <#acks>
> 10 References <#refs>
>
>
>       Appendices
>
> A Advertising Event Information <#advertising>
>    A.1 Event Types <#EventTypes>
>    A.2 Event Descriptions <#EventDescriptions>
>       A.2.1 Retrieving Event Descriptions <#RetrievingEventDescriptions>
>       A.2.2 Bindings for Event Descriptions <#BindingEventDescriptions>
>          A.2.2.1 Binding for Unwrapped Notifications 
> <#BindingUnwrappedNotifications>
>          A.2.2.2 Binding for Wrapped Notifications 
> <#BindingWrappedNotifications>
>    A.3 Notification WSDLs <#NotificationWSDLs>
>       A.3.1 Retrieving Notification WSDLs <#RetrievingNotificationWSDLs>
>    A.4 Multiple Event Information Metadata Sections 
> <#MultipleEventInfoMetadata>
> B XML Schema <#Schema>
> C WSDL <#WSDL>
> D WSDL for Standard Wrapped Delivery <#wrappedWSDL>
> E XML Schema for EventDescriptions <#EventDescripSchema>
> F Change Log <#changelog>
>
> ------------------------------------------------------------------------
>
>
>     1 Composable Architecture
>
> By using the XML, SOAP [SOAP 1.1] <#SOAP11>, [SOAP 1.2] <#SOAP121>, 
> and WSDL [WSDL 1.1] <#WSDL11> extensibility models, the Web service 
> specifications (WS-*) are designed to be composed with each other to 
> provide a rich set of tools to provide security in the Web services 
> environment. This specification specifically relies on other Web 
> service specifications to provide secure, reliable, and/or transacted 
> message delivery and to express Web service and client policy.
>
>
>     2 Introduction
>
> Web services often want to receive messages when events occur in other 
> services and applications. A mechanism for registering interest is 
> needed because the set of Web services interested in receiving such 
> messages is often unknown in advance or will change over time. This 
> specification defines a protocol for one Web service (called a 
> "subscriber") to register interest (called a "subscription") with 
> another Web service (called an "event source") in receiving messages 
> about events (called "notifications"). The subscriber may manage the 
> subscription by interacting with a Web service (called the 
> "subscription manager") designated by the event source.
>
> To improve robustness, a subscription may be leased by an event source 
> to a subscriber, and the subscription expires over time. The 
> subscription manager provides the ability for the subscriber to renew 
> or cancel the subscription before it expires.
>
> There are many mechanisms by which event sources may deliver events to 
> event sinks. This specification provides an extensible way for 
> subscribers to identify the delivery mechanism they prefer.
>
>
>       2.1 Requirements
>
> This specification intends to meet the following requirements:
>
>    *
>
>       Define means to create and delete event subscriptions.
>
>    *
>
>       Define expiration for subscriptions and allow them to be renewed.
>
>    *
>
>       Define how one Web service can subscribe on behalf of another.
>
>    *
>
>       Define how an event source delegates subscription management to
>       another Web service.
>
>    *
>
>       Allow subscribers to specify how notifications should be delivered.
>
>    *
>
>       Leverage other Web service specifications for secure, reliable,
>       transacted message delivery.
>
>    *
>
>       Support complex eventing topologies that allow the originating
>       event source and the final event sink to be decoupled.
>
>    *
>
>       Provide extensibility for more sophisticated and/or currently
>       unanticipated subscription scenarios.
>
>    *
>
>       Support a variety of encoding formats, including (but not
>       limited to) both SOAP 1.1 [SOAP 1.1] <#SOAP11> and SOAP 1.2
>       [SOAP 1.2] <#SOAP121> Envelopes.
>
>
>       2.2 Delivery
>
> This specification defines a method for transmitting notifications 
> from the event source to the event sink through the use of the 
> wse:NotifyTo element. Other methods or combination of methods may be 
> defined through the use of delivery extensions.
>
>
>       2.3 Notification Formats
>
> This specification specifies two delivery formats: wrapped and 
> unwrapped. Use of wrapped format indicates that notification messages 
> should be contained in a wrapper element defined by this 
> specification. Use of unwrapped format indicates that notification 
> messages are not contained in a wrapper element.
>
> Filtering occurs prior to any formatting of notification messages. 
> This ensures that regardless of what type of formatting might occur, 
> the same Filter dialect/expression can be used to subset the event 
> stream.
>
>
>       2.4 Subscription Managers
>
> In some scenarios the event source itself manages the subscriptions it 
> has created. In other scenarios, for example a geographically 
> distributed publish-and-subscribe system, it may be useful to delegate 
> the management of a subscription to another Web service. To support 
> this flexibility, the response to a subscription request to an event 
> source will include the EPR of a service that the subscriber may 
> interact with to manage this subscription. This EPR should be the 
> target for future requests to renew or cancel the subscription. It may 
> address the same Web service (Address and ReferenceParameters) as the 
> event source itself, or it may address some other Web service to which 
> the event source has delegated management of this subscription; 
> however, the full subscription manager EPR (Address and Reference 
> Parameters) must be unique for each subscription.
>
> We use the term "subscription manager" in this specification to refer 
> to the Web service that manages the subscription, whether it is the 
> event source itself or some separate Web service.
>
>
>       2.5 Example
>
> Example 2-1 <#Table1> lists a hypothetical request to create a 
> subscription for storm warnings.
>
> Example 2-1: Hypothetical request to create a subscription
> (01) <s12:Envelope
> (02)     xmlns:s12="http://www.w3.org/2003/05/soap-envelope"
> (03)     xmlns:wsa="http://www.w3.org/2005/08/addressing"
> (04)     xmlns:wse="http://www.w3.org/2009/02/ws-evt"
> (05)     xmlns:ew="http://www.example.com/warnings" >
> (06)   <s12:Header>
> (07)     <wsa:Action>
> (08)       http://www.w3.org/2009/02/ws-evt/Subscribe
> (09)     </wsa:Action>
> (10)     <wsa:MessageID>
> (11)       uuid:d7c5726b-de29-4313-b4d4-b3425b200839
> (12)     </wsa:MessageID>
> (13)     <wsa:ReplyTo>
> (14)      <wsa:Address>http://www.example.com/MyEventSink</wsa:Address>
> (15)     </wsa:ReplyTo>
> (16)     <wsa:To>http://www.example.org/oceanwatch/EventSource</wsa:To>
> (17)   </s12:Header>
> (18)   <s12:Body>
> (19)     <wse:Subscribe>
> (20)       <wse:Delivery>
> (21)         <wse:NotifyTo>
> (22)           <wsa:Address>
> (23)             http://www.example.com/MyEventSink/OnStormWarning
> (24)           </wsa:Address>
> (25)           <wsa:ReferenceParameters>
> (26)             <ew:MySubscription>2597</ew:MySubscription>
> (27)           </wsa:ReferenceParameters>
> (28)         </wse:NotifyTo>
> (29)       </wse:Delivery>
> (30)     </wse:Subscribe>
> (31)   </s12:Body>
> (32) </s12:Envelope>
>
> Lines (07-09) in Example 2-1 <#Table1> indicate the message is a 
> request to create a subscription, and line (16) indicates that it is 
> sent to a hypothetical event source of ocean events.
>
> While lines (13-15) indicate where a reply should be sent, lines 
> (20-29) indicate where and how notifications should be delivered; 
> there is no requirement that these match. The absence of any 
> extensions to the wse:Delivery or wse:NotifyTo elements indicates that 
> notifications should be sent as SOAP messages to the endpoint 
> described in lines (21-28). Note that lines (25-27) illustrate a 
> typical pattern where the event sink lists a reference parameter (line 
> 26) that identifies the subscription and will be included in each 
> notification.
>
> Example 2-2 <#Table2> lists a hypothetical response to the request in 
> Example 2-1 <#Table1>.
>
> Example 2-2: Hypothetical response to a subscribe request
> (01) <s12:Envelope
> (02)     xmlns:s12="http://www.w3.org/2003/05/soap-envelope"
> (03)     xmlns:wsa="http://www.w3.org/2005/08/addressing"
> (04)     xmlns:wse="http://www.w3.org/2009/02/ws-evt"
> (05)     xmlns:ow="http://www.example.org/oceanwatch" >
> (06)   <s12:Header>
> (07)     <wsa:Action>
> (08)       http://www.w3.org/2009/02/ws-evt/SubscribeResponse
> (09)     </wsa:Action>
> (10)     <wsa:RelatesTo>
> (11)       uuid:d7c5726b-de29-4313-b4d4-b3425b200839
> (12)     </wsa:RelatesTo>
> (13)     <wsa:To>http://www.example.com/MyEventSink</wsa:To>
> (14)   </s12:Header>
> (15)   <s12:Body>
> (16)     <wse:SubscribeResponse>
> (17)       <wse:SubscriptionManager>
> (18)         <wsa:Address>
> (19)           http://www.example.org/oceanwatch/SubscriptionManager
> (20)         </wsa:Address>
> (21)         <wsa:ReferenceParameters>
> (22)           <ow:MyId>
> (23)             28
> (24)           </ow:MyId>
> (25)         </wsa:ReferenceParameters>
> (26)       </wse:SubscriptionManager>
> (27)       <wse:Expires>P0Y0M0DT30H0M0S</wse:Expires>
> (28)     </wse:SubscribeResponse>
> (29)   </s12:Body>
> (30) </s12:Envelope>
>
> Lines (07-09) in Example 2-2 <#Table2> indicate this message is a 
> response to a request to create a subscription, and lines (10-12) 
> indicate that it is a response to the request in Example 2-1 
> <#Table1>. lines (17-26) provide the subscription manager EPR for this 
> subscription, and line (27) indicates the subscription will expire in 
> 30 hours unless renewed.
>
>
>     3 Notations and Terminology
>
> This section specifies the notations, namespaces, and terminology used 
> in this specification.
>
>
>       3.1 Notational Conventions
>
> The keywords "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 
> "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 
> document are to be interpreted as described in RFC 2119 [RFC2119] 
> <#RFC2119>.
>
> This specification uses the following syntax to define normative 
> outlines for messages:
>
>    *
>
>       The syntax appears as an XML instance, but values in italics
>       indicate data types instead of values.
>
>    *
>
>       Characters are appended to elements and attributes to indicate
>       cardinality:
>
>          o
>
>             "?" (0 or 1)
>
>          o
>
>             "*" (0 or more)
>
>          o
>
>             "+" (1 or more)
>
>    *
>
>       The character "|" is used to indicate a choice between
>       alternatives.
>
>    *
>
>       The characters "(" and ")" are used to indicate that contained
>       items are to be treated as a group with respect to cardinality
>       or choice.
>
>    *
>
>       The characters "[" and "]" are used to call out references and
>       property names.
>
>    *
>
>       Ellipsis (i.e. "...") indicate a point of extensibility.
>
>    *
>
>       XML namespace prefixes (see Table 3-1 <#Table3>) are used to
>       indicate the namespace of the element being defined.
>
> In addition to Message Information Header properties [WS-Addressing] 
> <#AddrCore>, this specification uses the following properties to 
> define messages:
>
> *[Headers]*
>
>     Unordered message headers.
>
> *[Action]*
>
>     The value to be used for the wsa:Action URI.
>
> *[Body]*
>
>     A message body.
>
> These properties bind to a SOAP Envelope as follows:
>
> <s:Envelope>
>   <s:Header>
>     *[Headers]*
>     <wsa:Action>*[Action]*</wsa:Action>
>     ...
>   </s:Header>
>   <s:Body>*[Body]*</s:Body>
> </s:Envelope>
>
>
>       3.2 Considerations on the Use of Extensibility Points
>
> The elements defined in this specification MAY be extended at the 
> points indicated by their outlines and schema. Implementations MAY add 
> child elements and/or attributes at the indicated extension points but 
> MUST NOT contradict the semantics of the parent and/or owner, 
> respectively. If a receiver does not recognize an extension, the 
> receiver SHOULD ignore that extension. Senders MAY indicate the 
> presence of an extension that has to be understood through the use of 
> a corresponding SOAP Header with a soap:mustUnderstand attribute with 
> the value "1".
>
> Extension elements and attributes MUST NOT use the Web Services 
> Eventing namespace URI.
>
>
>       3.3 XML Namespaces
>
> The XML namespace URI that MUST be used by implementations of this 
> specification is:
>
> http://www.w3.org/2009/02/ws-evt
>
> Table 3-1 <#Table3> lists XML namespaces that are used in this 
> specification. The choice of any namespace prefix is arbitrary and not 
> semantically significant.
>
> Table 3-1: Prefixes and XML namespaces used in this specification 
> Prefix  XML Namespace  Specification(s)
> s  (Either SOAP 1.1 or 1.2)  (Either SOAP 1.1 or 1.2)
> s11  http://schemas.xmlsoap.org/soap/envelope/ 
> <http://schemas.xmlsoap.org/soap/envelope/>  SOAP 1.1 [SOAP 1.1] 
> <#SOAP11>
> s12  http://www.w3.org/2003/05/soap-envelope 
> <http://www.w3.org/2003/05/soap-envelope>  SOAP 1.2 [SOAP 1.2] <#SOAP121>
> wsdl  http://schemas.xmlsoap.org/wsdl/ 
> <http://schemas.xmlsoap.org/wsdl/>  WSDL [WSDL 1.1] <#WSDL11>
> wsa  http://www.w3.org/2005/08/addressing 
> <http://www.w3.org/2005/08/addressing>  WS-Addressing [WS-Addressing] 
> <#AddrCore>
> wse  http://www.w3.org/2009/02/ws-evt 
> <http://www.w3.org/2009/02/ws-evt>  This specification
> xs  http://www.w3.org/2001/XMLSchema 
> <http://www.w3.org/2001/XMLSchema>  XML Schema [XML Schema, Part 1] 
> <#XMLSchema1>, [XML Schema, Part 2] <#XMLSchema2>
>
> The working group intends to update the value of the Web Services 
> Eventing namespace URI each time a new version of this document is 
> published until such time that the document reaches Candidate 
> Recommendation status. Once it has reached Candidate Recommendation 
> status, the working group intends to maintain the value of the Web 
> Services Eventing namespace URI that was assigned in the Candidate 
> Recommendation unless significant changes are made that impact the 
> implementation or break post-CR implementations of the specification. 
> Also see http://www.w3.org/2001/tag/doc/namespaceState.html 
> <http://www.w3.org/2001/tag/doc/namespaceState.html> and 
> http://www.w3.org/2005/07/13-nsuri <http://www.w3.org/2005/07/13-nsuri>.
>
>
>       3.4 Terminology
>
> Event Source
>
>     A Web service that sends notifications and accepts requests to
>     create subscriptions.
>
> Event Sink
>
>     A Web service that receives notifications.
>
> Notification
>
>     A one-way message sent to indicate that an event, or events, have
>     occurred.
>
> Subscriber
>
>     A Web service that sends requests to create, renew, and/or delete
>     subscriptions.
>
> Subscription Manager
>
>     A Web service that accepts requests to manage, get the status of,
>     renew, and/or delete subscriptions on behalf of an event source.
>
>
>       3.5 Compliance
>
> An implementation is not compliant with this specification if it fails 
> to satisfy one or more of the MUST or REQUIRED level requirements 
> defined herein. A SOAP Node MUST NOT use the XML namespace identifier 
> for this specification (listed in *3.3 XML Namespaces* <#namespaces>) 
> within SOAP Envelopes unless it is compliant with this specification.
>
> Normative text within this specification takes precedence over the XML 
> Schema and WSDL descriptions, which in turn take precedence over 
> outlines, which in turn take precedence over examples.
>
> All messages defined by this specification MUST be sent to a Web 
> service that is addressable by an EPR (see [WS-Addressing] <#AddrCore>).
>
>
>     4 Subscription Messages
>
> To create, renew, and delete subscriptions, subscribers send request 
> messages to event sources and subscription managers.
>
> When an event source accepts a request to create a subscription, it 
> typically does so for a given amount of time, although an event source 
> may accept an indefinite subscription with no time-based expiration. 
> If the subscription manager accepts a renewal request, it updates that 
> amount of time. During that time, notifications are delivered by the 
> event source to the requested event sink. An event source may support 
> filtering to limit notifications that are delivered to the event sink; 
> if it does, and a subscribe request contains a filter, the event 
> source sends only notifications that match the requested filter. The 
> event source sends notifications until one of the following happens: 
> the subscription manager accepts an unsubscribe request for the 
> subscription; the subscription expires without being renewed; or the 
> event source cancels the subscription prematurely. In this last case, 
> the event source makes a best effort to indicate why the subscription 
> ended.
>
> In the absence of reliable messaging at the application layer (e.g. 
> [WS-ReliableMessaging] <#WSReliableMessaging>), messages defined 
> herein are delivered using the quality of service of the underlying 
> transport(s) and on a best-effort basis at the application layer.
>
>
>       4.1 Subscribe
>
> To create a subscription, a subscriber sends a request message of the 
> following form to an event source:
>
> *[Action]*
>   http://www.w3.org/2009/02/ws-evt/Subscribe
>
> *[Body]*
>   <wse:Subscribe ...>
>     <wse:EndTo> /endpoint-reference/ </wse:EndTo> ?
>     <wse:Delivery ...> /xs:any/* </wse:Delivery>
>     <wse:Format Name="/xs:anyURI/"? > /xs:any/* </wse:Format> ?
>     <wse:Expires> (/xs:dateTime/ | /xs:duration/) </wse:Expires> ?
>     <wse:Filter Dialect="/xs:anyURI/"? ...> /xs:any/* </wse:Filter> ?
>     /xs:any/*
>   </wse:Subscribe>
>
> The following describes additional, normative constraints on the 
> outline listed above:
>
> *[Body]*/wse:Subscribe/wse:EndTo
>
>     Where to send a SubscriptionEnd message if the subscription is
>     terminated unexpectedly. (See *4.5 Subscription End*
>     <#SubscriptionEnd>.) If present, this element MUST be of type
>     wsa:EndpointReferenceType. Default is not to send this message.
>     The endpoint to which the EndTo EPR refers MUST support the
>     SubcriptionEndPortType portType.
>
>     Note, subscribers wishing to correlate SubscriptionEnd messages
>     with the subscription to which they apply MAY wish to add a
>     distinguishing reference parameter to the EndTo EPR.
>
> *[Body]*/wse:Subscribe/wse:Delivery
>
>     This element contains the information necessary to convey
>     notification messages from the event source to the event sink in a
>     manner required by the subscriber. This element MUST contain at
>     least one child element.
>
> *[Body]*/wse:Subscribe/wse:Delivery/wse:NotifyTo
>
>     This specification defines one OPTIONAL element, wse:NotifyTo, to
>     be used as a child of the wse:Delivery element. When present this
>     element indicates that notifications MUST be sent to the
>     EndpointReference identified by this element.
>
> *[Body]*/wse:Subscribe/wse:Format
>
>     This optional element contains the delivery format to be used for
>     notification messages sent in relation to this subscription.
>     Implied value is
>     "http://www.w3.org/2009/02/ws-evt/DeliveryFormats/Unwrap", which
>     indicates that unwrapped delivery should be used. See Section *2.3
>     Notification Formats* <#NotificationFormats> for details.
>
>     If the event source does not support the requested delivery
>     format, the request MUST generate a
>     wse:DeliveryFormatRequestedUnavailable fault indicating that the
>     requested delivery format is not supported.
>
> *[Body]*/wse:Subscribe/wse:Format@Name="http://www.w3.org/2009/02/ws-evt/DeliveryFormats/Unwrap" 
>
>
>     Indicate the unwrapped event delivery format.
>
> *[Body]*/wse:Subscribe/wse:Format@Name="http://www.w3.org/2009/02/ws-evt/DeliveryFormats/Wrap" 
>
>
>     Indicate the wrapped event delivery format.
>
> *[Body]*/wse:Subscribe/wse:Expires
>
>     Requested expiration time for the subscription. (No implied
>     value.) The event source defines the actual expiration and is not
>     constrained to use a time less or greater than the requested
>     expiration. The expiration time may be a specific time or a
>     duration from the subscription's creation time. Both specific
>     times and durations are interpreted based on the event source's
>     clock.
>
>     If this element does not appear, then the request is for a
>     subscription that will not expire. That is, the subscriber is
>     requesting the event source to create a subscription with an
>     indefinite lifetime. If the event source grants such a
>     subscription, it may be terminated by the subscriber using an
>     Unsubscribe request, or it may be terminated by the event source
>     at any time for reasons such as connection termination, resource
>     constraints, or system shut-down.
>
>     If the expiration time is either a zero duration or a specific
>     time that occurs in the past according to the event source, then
>     the request MUST fail, and the event source MUST generate a
>     wse:InvalidExpirationTime fault indicating that an invalid
>     expiration time was requested.
>
>     Some event sources may not have a "wall time" clock available, and
>     so are only able to accept durations as expirations. If such a
>     source receives a Subscribe request containing a specific time
>     expiration, then the request MAY fail; if so, the event source
>     MUST generate a wse:UnsupportedExpirationType fault indicating
>     that an unsupported expiration type was requested.
>
> *[Body]*/wse:Subscribe/wse:Filter
>
>     A Boolean expression in some dialect, either as a string or as an
>     XML fragment (see *[[Body]/wse:Subscribe/wse:Filter/@Dialect
>     <#Dialect>]*). If the expression evaluates to false for a
>     notification, the notification MUST NOT be sent to the event sink.
>     Implied value is an expression that always returns true. If the
>     event source does not support filtering, then a request that
>     specifies a filter MUST fail, and the event source MUST generate a
>     wse:FilteringNotSupported fault indicating that filtering is not
>     supported.
>
>     If the event source supports filtering but cannot honor the
>     requested filtering, the request MUST fail, and the event source
>     MUST generate a wse:FilteringRequestedUnavailable fault indicating
>     that the requested filter dialect is not supported.
>
>     It is possible for a Subscribe request to contain a filter that
>     will never evaluate to true for the lifetime of the Subscription.
>     If an Event Source detects this condition it MUST generate a
>     wse:EmptyFilter fault in response to the Subscribe request message.
>
> *[Body]*/wse:Subscribe/wse:Filter/@Dialect
>
>     Implied value is "http://www.w3.org/TR/1999/REC-xpath-19991116".
>
>     While an XPath predicate expression provides great flexibility and
>     power, alternate filter dialects may be defined. For instance, a
>     simpler, less powerful dialect might be defined for
>     resource-constrained implementations, or a new dialect might be
>     defined to support filtering based on data not included in the
>     notification message itself. If desired, a filter dialect could
>     allow the definition of a composite filter that contained multiple
>     filters from other dialects.
>
> *[Body]*/wse:Subscribe/wse:Filter/@Dialect=" 
> http://www.w3.org/TR/1999/REC-xpath-19991116 
> <http://www.w3.org/TR/1999/REC-xpath-19991116>"
>
>     Value of *[Body]*/wse:Subscribe/wse:Filter is an XPath [XPath 1.0]
>     <#XPath1> predicate expression (PredicateExpr); the context of the
>     expression is:
>
>        *
>
>           Context Node: the root of the event XML.
>
>        *
>
>           Context Position: 1.
>
>        *
>
>           Context Size: 1.
>
>        *
>
>           Variable Bindings: None.
>
>        *
>
>           Function Libraries: Core Function Library [XPath 1.0]
>           <#XPath1>.
>
>        *
>
>           Namespace Declarations: The [in-scope namespaces] property
>           [XML Infoset] <#XMLInfoset> of /s:Envelope/s:Body/*/wse:Filter.
>
> Other message information headers defined by WS-Addressing 
> [WS-Addressing] <#AddrCore> MAY be included in the request and 
> response messages, according to the usage and semantics defined in 
> WS-Addressing.
>
> Other components of the outline above are not further constrained by 
> this specification.
>
> If included within the Subscribe request message, the wse:NotifyTo and 
> wse:EndTo SHOULD have some cursory validity checking performed before 
> the Subscribe response is returned. While not all errors can be 
> detected prior to sending a message to those EPRs, some obvious ones 
> can be detected. For example, an unsupported transport specified 
> within the wsa:Address IRI. Detecting these errors during Subscribe 
> processing will lessen the chances of the subscriber creating an 
> unusable subscription. If this check is performed and a problem is 
> detected then the event source MUST generate a wse:UnusableEPR fault 
> rather than returning the SubscribeResponse message.
>
> If the event source accepts a request to create a subscription, it 
> MUST reply with a response of the following form:
>
> *[Action]*
>   http://www.w3.org/2009/02/ws-evt/SubscribeResponse
>
> *[Body]*
>   <wse:SubscribeResponse ...>
>     <wse:SubscriptionManager>
>       /wsa:EndpointReferenceType/
>     </wse:SubscriptionManager>
>     <wse:Expires>(/xs:dateTime/ | /xs:duration/)</wse:Expires>
>     /xs:any/*
>   </wse:SubscribeResponse>
>
> The following describes additional, normative constraints on the 
> outline listed above:
>
> *[Body]*/wse:SubscribeResponse/wse:SubscriptionManager
>
>     The EPR of the subscription manager for this subscription.
>
>     In some cases, it is convenient for all EPRs issued by a single
>     event source to address a single Web service and use a reference
>     parameter to distinguish among the active subscriptions.
>
> *[Body]*/wse:SubscribeResponse/wse:Expires
>
>     The expiration time assigned by the event source. The expiration
>     time MAY be either an absolute time or a duration but SHOULD be of
>     the same type as the requested expiration (if any).
>
>     If this element does not appear, then the subscription will not
>     expire. That is, the subscription has an indefinite lifetime. It
>     may be terminated by the subscriber using an Unsubscribe request,
>     or it may be terminated by the event source at any time for
>     reasons such as connection termination, resource constraints, or
>     system shut-down.
>
> Other components of the outline above are not further constrained by 
> this specification.
>
> If the event source chooses not to accept a subscription, the request 
> MUST fail, and the event source MUST generate a 
> wse:EventSourceUnableToProcess fault indicating that the request was 
> not accepted.
>
> Example 4-1 <#Table4> lists another hypothetical request to create a 
> subscription.
>
> Example 4-1: Second hypothetical request to create a subscription
> (01) <s12:Envelope 
> (02)     xmlns:s12="http://www.w3.org/2003/05/soap-envelope"
> (03)     xmlns:wsa="http://www.w3.org/2005/08/addressing"
> (04)     xmlns:wse="http://www.w3.org/2009/02/ws-evt"
> (05)     xmlns:ew="http://www.example.com/warnings" >
> (06)   <s12:Header>
> (07)     <wsa:Action>
> (08)       http://www.w3.org/2009/02/ws-evt/Subscribe
> (09)     </wsa:Action>
> (10)     <wsa:MessageID>
> (11)       uuid:e1886c5c-5e86-48d1-8c77-fc1c28d47180
> (12)     </wsa:MessageID>
> (13)     <wsa:ReplyTo>
> (14)      <wsa:Address>http://www.example.com/MyEvEntsink</wsa:Address>
> (15)      <wsa:ReferenceParameters>
> (16)        <ew:MySubscription>2597</ew:MySubscription>
> (17)      </wsa:ReferenceParameters>
> (18)     </wsa:ReplyTo>
> (19)     <wsa:To>http://www.example.org/oceanwatch/EventSource</wsa:To>
> (20)   </s12:Header>
> (21)   <s12:Body>
> (22)     <wse:Subscribe>
> (23)       <wse:EndTo>
> (24)         <wsa:Address>
> (25)           http://www.example.com/MyEventSink
> (26)         </wsa:Address>
> (27)         <wsa:ReferenceParameters>
> (28)           <ew:MySubscription>2597</ew:MySubscription>
> (29)         </wsa:ReferenceParameters>
> (30)       </wse:EndTo>
> (31)       <wse:Delivery>
> (32)         <wse:NotifyTo>
> (33)           <wsa:Address>
> (34)             http://www.other.example.com/OnStormWarning
> (35)           </wsa:Address>
> (36)           <wsa:ReferenceParameters>
> (37)             <ew:MySubscription>2597</ew:MySubscription>
> (38)           </wsa:ReferenceParameters>
> (39)         </wse:NotifyTo>
> (40)       </wse:Delivery>
> (41)       <wse:Expires>2004-06-26T21:07:00.000-08:00</wse:Expires>
> (42)       <wse:Filter xmlns:ow="http://www.example.org/oceanwatch" >
> (43)         /*/ow:Speed/[node() &gt; 50]
> (44)       </wse:Filter>
> (45)     </wse:Subscribe>
> (46)   </s12:Body>
> (47) </s12:Envelope>
>
> Like the request in Example 2-1 <#Table1>, lines (07-09) of Example 
> 4-1 <#Table4> indicate the message is a request to create a 
> subscription. Line (19) indicates that it is sent to a hypothetical 
> event source of ocean events.
>
> Lines (13-18) indicate where to send the response to this request, 
> lines (23-30) indicate where to send a SubscriptionEnd message if 
> necessary, and lines (31-34) indicate how and where to send 
> notifications.
>
> Line (41) indicates the event sink would prefer to have the 
> subscription expire on 26 June 2004 at 9:07 PM Pacific time.
>
> Lines (42-44) indicate the event sink only wants weather reports where 
> the speed of wind is greater than 50.
>
> Example 4-2 <#Table5> lists a hypothetical response to the request in 
> Example 4-1 <#Table4>.
>
> Example 4-2: Hypothetical response to second subscribe request
> (01) <s12:Envelope 
> (02)     xmlns:s12="http://www.w3.org/2003/05/soap-envelope"
> (03)     xmlns:wsa="http://www.w3.org/2005/08/addressing"
> (04)     xmlns:wse="http://www.w3.org/2009/02/ws-evt"
> (05)     xmlns:ew="http://www.example.com/warnings"
> (06)     xmlns:ow="http://www.example.org/oceanwatch" >
> (07)   <s12:Header>
> (08)     <wsa:Action>
> (09)       http://www.w3.org/2009/02/ws-evt/SubscribeResponse
> (10)     </wsa:Action>
> (11)     <wsa:RelatesTo>
> (12)       uuid:e1886c5c-5e86-48d1-8c77-fc1c28d47180
> (13)     </wsa:RelatesTo>
> (14)     <wsa:To>http://www.example.com/MyEventSink</wsa:To>
> (15)     <ew:MySubscription wsa:IsReferenceParameter="true">
> (16)       2597
> (17)     </ew:MySubscription>
> (18)   </s12:Header>
> (19)   <s12:Body>
> (20)     <wse:SubscribeResponse>
> (21)       <wse:SubscriptionManager>
> (22)         <wsa:Address>
> (23)           http://www.example.org/oceanwatch/SubscriptionManager
> (24)         </wsa:Address>
> (25)         <wsa:ReferenceParameters>
> (26)           <x:SubID xmlns:x="http://example.com">
> (27)             uuid:22e8a584-0d18-4228-b2a8-3716fa2097fa
> (28)           </x:SubID>
> (29)         </wsa:ReferenceParameters>
> (30)       </wse:SubscriptionManager>
> (31)       <wse:Expires>2004-07-01T00:00:00.000-00:00</wse:Expires>
> (32)     </wse:SubscribeResponse>
> (33)   </s12:Body>
> (34) </s12:Envelope>
>
> Like the response in Example 2-2 <#Table2>, lines (08-10) of Example 
> 4-2 <#Table5> indicate this message is a response to a request to 
> create a subscription, and lines (11-13) indicate that it is a 
> response to the request in Example 4-1 <#Table4> . Lines (14-17) 
> indicate the response is sent to the event sink indicated in lines 
> (13-18) of Example 4-1 <#Table4>. Lines (21-30) provide the address of 
> the subscription manager for this subscription; note that this 
> particular response uses the x:SubID element as a reference parameter 
> to distinguish this subscription EPR from other subscription EPRs. 
> Finally, line (31) indicates the subscription will expire on 1 July 
> 2004 unless renewed; there is no requirement that this time be 
> necessarily longer or shorter than the requested expiration (line (41) 
> of Example 4-1 <#Table4>).
>
>
>       4.2 Renew
>
> To update the expiration for a subscription, subscription managers 
> MUST support requests to renew subscriptions.
>
> To renew a subscription, the subscriber sends a request of the 
> following form to the subscription manager:
>
> *[Action]*
>   http://www.w3.org/2009/02/ws-evt/Renew
>
> *[Body]*
>   <wse:Renew ...>
>     <wse:Expires>(/xs:dateTime/ | /xs:duration/)</wse:Expires> ?
>     /xs:any/*
>   </wse:Renew>
>
> Components of the outline listed above are additionally constrained as 
> for a request to create a subscription (see *4.1 Subscribe* 
> <#Subscribe>). Other components of the outline above are not further 
> constrained by this specification.
>
> If the subscription manager accepts a request to renew a subscription, 
> it MUST reply with a response of the following form:
>
> *[Action]*
>   http://www.w3.org/2009/02/ws-evt/RenewResponse
>
> *[Body]*
>   <wse:RenewResponse ...>
>     <wse:Expires>(/xs:dateTime/ | /xs:duration/)</wse:Expires> ?
>     /xs:any/*
>   </wse:RenewResponse>
>
> Components of the outline listed above are constrained as for a 
> response to a subscribe request (see *4.1 Subscribe* <#Subscribe>) 
> with the following addition(s):
>
> *[Body]*/wse:RenewResponse/wse:Expires
>
>     If the requested expiration is a duration, then the implied start
>     of that duration is the time when the subscription manager starts
>     processing the Renew request.
>
> If the subscription manager chooses not to renew this subscription, 
> the request MUST fail, and the subscription manager MUST generate a 
> wse:UnableToRenew fault indicating that the renewal was not accepted.
>
> Other components of the outline above are not further constrained by 
> this specification.
>
> Example 4-3 <#Table6> lists a hypothetical request to renew the 
> subscription created in Example 4-2 <#Table5>.
>
> Example 4-3: Hypothetical request to renew second subscription
> (01) <s12:Envelope 
> (02)     xmlns:s12="http://www.w3.org/2003/05/soap-envelope"
> (03)     xmlns:wsa="http://www.w3.org/2005/08/addressing"
> (04)     xmlns:wse="http://www.w3.org/2009/02/ws-evt"
> (05)     xmlns:ow="http://www.example.org/oceanwatch" >
> (06)   <s12:Header>
> (07)     <wsa:Action>
> (08)       http://www.w3.org/2009/02/ws-evt/Renew
> (09)     </wsa:Action>
> (10)     <wsa:MessageID>
> (11)       uuid:bd88b3df-5db4-4392-9621-aee9160721f6
> (12)     </wsa:MessageID>
> (13)     <wsa:ReplyTo>
> (14)      <wsa:Address>http://www.example.com/MyEventSink</wsa:Address>
> (15)     </wsa:ReplyTo>
> (16)     <wsa:To>
> (17)       http://www.example.org/oceanwatch/SubscriptionManager
> (18)     </wsa:To>
> (19)     <x:SubID wsa:IsReferenceParameter="true" xmlns:x="http://example.com">
> (20)       uuid:22e8a584-0d18-4228-b2a8-3716fa2097fa
> (21)     </x:SubID>
> (22)   </s12:Header>
> (23)   <s12:Body>
> (24)     <wse:Renew>
> (25)       <wse:Expires>2004-06-26T21:07:00.000-08:00</wse:Expires>
> (26)     </wse:Renew>
> (27)   </s12:Body>
> (28) </s12:Envelope>
>
> Lines (07-09) indicate this is a request to renew a subscription. 
> Lines (19-21) contain the reference parameter that indicates the 
> subscription to be renewed is the one created in Example 4-2 
> <#Table5>. Line (25) in Example 4-3 <#Table6> indicates the request is 
> to extend the subscription until 26 June 2004 at 9:07 PM Pacific.
>
> Example 4-4 <#Table7> lists a hypothetical response to the request in 
> Example 4-3 <#Table6>.
>
> Example 4-4: Hypothetical response to renew request
> (01) <s12:Envelope
> (02)     xmlns:s12="http://www.w3.org/2003/05/soap-envelope"
> (03)     xmlns:wsa="http://www.w3.org/2005/08/addressing"
> (04)     xmlns:wse="http://www.w3.org/2009/02/ws-evt"
> (05)     xmlns:ow="http://www.example.org/oceanwatch" >
> (06)   <s12:Header>
> (07)     <wsa:Action>
> (08)      http://www.w3.org/2009/02/ws-evt/RenewResponse
> (09)     </wsa:Action>
> (10)     <wsa:RelatesTo>
> (11)       uuid:bd88b3df-5db4-4392-9621-aee9160721f6
> (12)     </wsa:RelatesTo>
> (13)     <wsa:To>http://www.example.com/MyEventSink</wsa:To>
> (14)   </s12:Header>
> (15)   <s12:Body>
> (16)     <wse:RenewResponse>
> (17)       <wse:Expires>2004-06-26T12:00:00.000-00:00</wse:Expires>
> (18)     </wse:RenewResponse>
> (19)   </s12:Body>
> (20) </s12:Envelope>
>
> Line (17) in Example 4-4 <#Table7> indicates the subscription has been 
> extended only until 26 June 2004 at noon.
>
>
>       4.3 GetStatus
>
> To get the status of a subscription, the subscriber sends a request of 
> the following form to the subscription manager:
>
> *[Action]*
>   http://www.w3.org/2009/02/ws-evt/GetStatus
>
> *[Body]*
>   <wse:GetStatus ...>
>     /xs:any/*
>   </wse:GetStatus>
>
> Components of the outline listed above are additionally constrained as 
> for a request to renew a subscription (see *4.2 Renew* <#Renew>). 
> Other components of the outline above are not further constrained by 
> this specification.
>
> If the subscription is valid and has not expired, the subscription 
> manager MUST reply with a response of the following form:
>
> *[Action]*
>   http://www.w3.org/2009/02/ws-evt/GetStatusResponse
>
> *[Body]*
>   <wse:GetStatusResponse ...>
>     <wse:Expires>(/xs:dateTime/ | /xs:duration/)</wse:Expires> ?
>     /xs:any/*
>   </wse:GetStatusResponse>
>
> Components of the outline listed above are constrained as for a 
> response to a renew request (see *4.2 Renew* <#Renew>). Other 
> components of the outline above are not further constrained by this 
> specification.
>
> Example 4-5 <#Table8> lists a hypothetical request to get the status 
> of the subscription created in Example 4-2 <#Table5>.
>
> Example 4-5: Hypothetical request to get the status of the second 
> subscription
> (01) <s12:Envelope
> (02)     xmlns:s12="http://www.w3.org/2003/05/soap-envelope"
> (03)     xmlns:wsa="http://www.w3.org/2005/08/addressing"
> (04)     xmlns:wse="http://www.w3.org/2009/02/ws-evt"
> (05)     xmlns:ow="http://www.example.org/oceanwatch" >
> (06)   <s12:Header>
> (07)     <wsa:Action>
> (08)       http://www.w3.org/2009/02/ws-evt/GetStatus
> (09)     </wsa:Action>
> (10)     <wsa:MessageID>
> (11)       uuid:bd88b3df-5db4-4392-9621-aee9160721f6
> (12)     </wsa:MessageID>
> (13)     <wsa:ReplyTo>
> (14)       <wsa:Address>http://www.example.com/MyEventSink</wsa:Address>
> (15)     </wsa:ReplyTo>
> (16)     <wsa:To>
> (17)       http://www.example.org/oceanwatch/SubscriptionManager
> (18)     </wsa:To>
> (19)     <x:SubID wsa:IsReferenceParameter="true" xmlns:x="http://example.com">
> (20)       uuid:22e8a584-0d18-4228-b2a8-3716fa2097fa
> (21)     </x:SubID>
> (22)   </s12:Header>
> (23)   <s12:Body>
> (24)     <wse:GetStatus />
> (25)   </s12:Body>
> (26) </s12:Envelope>
>
> Lines (07-09) indicate this is a request to get the status of a 
> subscription. Lines (16-21) indicate that the request is sent to the 
> subscription manager for the subscription created in Example 4-2 
> <#Table5>.
>
> Example 4-6 <#Table9> lists a hypothetical response to the request in 
> Example 4-5 <#Table8>.
>
> Example 4-6: Hypothetical response to get status request
> (01) <s12:Envelope 
> (02)     xmlns:s12="http://www.w3.org/2003/05/soap-envelope"
> (03)     xmlns:wsa="http://www.w3.org/2005/08/addressing"
> (04)     xmlns:wse="http://www.w3.org/2009/02/ws-evt"
> (05)     xmlns:ow="http://www.example.org/oceanwatch" >
> (06)   <s12:Header>
> (07)     <wsa:Action>
> (08)       http://www.w3.org/2009/02/ws-evt/GetStatusResponse
> (09)     </wsa:Action>
> (10)     <wsa:RelatesTo>
> (11)       uuid:bd88b3df-5db4-4392-9621-aee9160721f6
> (12)     </wsa:RelatesTo>
> (13)     <wsa:To>http://www.example.com/MyEventSink</wsa:To>
> (14)   </s12:Header>
> (15)   <s12:Body>
> (16)     <wse:GetStatusResponse>
> (17)       <wse:Expires>2004-06-26T12:00:00.000-00:00</wse:Expires>
> (18)     </wse:GetStatusResponse>
> (19)   </s12:Body>
> (20) </s12:Envelope>
>
> Line (17) in Example 4-6 <#Table9> indicates the subscription will 
> expire on 26 June 2004 at noon.
>
>
>       4.4 Unsubscribe
>
> Though subscriptions expire eventually, to minimize resources, the 
> subscribing event sink SHOULD explicitly delete a subscription when it 
> no longer wants notifications associated with the subscription.
>
> To explicitly delete a subscription, a subscribing event sink sends a 
> request of the following form to the subscription manager:
>
> *[Action]*
>   http://www.w3.org/2009/02/ws-evt/Unsubscribe
>
> *[Body]*
>   <wse:Unsubscribe ...>
>     /xs:any/*
>   </wse:Unsubscribe>
>
> Components of the outline above are additionally constrained only as 
> for a request to renew a subscription (see *4.2 Renew* <#Renew>). For 
> example, the faults listed there are also defined for a request to 
> delete a subscription.
>
> If the subscription manager accepts a request to delete a 
> subscription, it MUST reply with a response of the following form:
>
> *[Action]*
>   http://www.w3.org/2009/02/ws-evt/UnsubscribeResponse
>
> *[Body]*
>   <wse:UnsubscribeResponse ...>
>     /xs:any/*
>   </wse:UnsubscribeResponse>
>
> Components of the outline listed above are not further constrained by 
> this specification.
>
> Example 4-7 <#Table10> lists a hypothetical request to delete the 
> subscription created in Example 4-2 <#Table5>.
>
> Example 4-7: Hypothetical unsubscribe request to delete second 
> subscription
> (01) <s12:Envelope 
> (02)     xmlns:s12="http://www.w3.org/2003/05/soap-envelope"
> (03)     xmlns:wsa="http://www.w3.org/2005/08/addressing"
> (04)     xmlns:wse="http://www.w3.org/2009/02/ws-evt"
> (05)     xmlns:ow="http://www.example.org/oceanwatch" >
> (06)   <s12:Header>
> (07)     <wsa:Action>
> (08)       http://www.w3.org/2009/02/ws-evt/Unsubscribe
> (09)     </wsa:Action>
> (10)     <wsa:MessageID>
> (11)       uuid:2653f89f-25bc-4c2a-a7c4-620504f6b216
> (12)     </wsa:MessageID>
> (13)     <wsa:ReplyTo>
> (14)      <wsa:Address>http://www.example.com/MyEventSink</wsa:Address>
> (15)     </wsa:ReplyTo>
> (16)     <wsa:To>
> (17)       http://www.example.org/oceanwatch/SubscriptionManager
> (18)     </wsa:To>
> (19)     <x:SubID wsa:IsReferenceParameter="true" xmlns:x="http://example.com">
> (20)       uuid:22e8a584-0d18-4228-b2a8-3716fa2097fa
> (21)     </x:SubID>
> (22)   </s12:Header>
> (23)   <s12:Body>
> (24)     <wse:Unsubscribe />
> (25)   </s12:Body>
> (26) </s12:Envelope>
>
> Lines (07-09) in Example 4-7 <#Table10> indicate the message is a 
> request to delete a subscription. Lines (16-21) indicate that the 
> request is addressed to the manager for the subscription created in 
> Example 4-2 <#Table5>.
>
> Example 4-8 <#Table11> lists a hypothetical response to the request in 
> Example 4-7 <#Table10>.
>
> Example 4-8: Hypothetical response to unsubscribe request
> (01) <s12:Envelope 
> (02)     xmlns:s12="http://www.w3.org/2003/05/soap-envelope"
> (03)     xmlns:wsa="http://www.w3.org/2005/08/addressing" >
> (04)   <s12:Header>
> (05)     <wsa:Action>
> (06)       http://www.w3.org/2009/02/ws-evt/UnsubscribeResponse
> (07)     </wsa:Action>
> (08)     <wsa:RelatesTo>
> (09)       uuid:2653f89f-25bc-4c2a-a7c4-620504f6b216
> (10)     </wsa:RelatesTo>
> (11)     <wsa:To>http://www.example.com/MyEventSink</wsa:To>
> (12)   </s12:Header>
> (13)   <s12:Body>
> (14)     <wse:UnsubscribeResponse/>
> (15)   </s12:Body>
> (16) </s12:Envelope>
>
>
>       4.5 Subscription End
>
> If the event source terminates a subscription unexpectedly, the event 
> source SHOULD send a Subscription End SOAP message to the endpoint 
> reference indicated when the subscription was created (see *4.1 
> Subscribe* <#Subscribe>). This endpoint reference MUST refer to an 
> endpoint that supports the SubscriptionEndPortType portType. The 
> message MUST be of the following form:
>
> *[Action]*
>   http://www.w3.org/2009/02/ws-evt/SubscriptionEnd
>
> *[Body]*
>   <wse:SubscriptionEnd ...>
>     <wse:Status>
>       ( http://www.w3.org/2009/02/ws-evt/DeliveryFailure | 
>         http://www.w3.org/2009/02/ws-evt/SourceShuttingDown |
>         http://www.w3.org/2009/02/ws-evt/SourceCancelling )
>     </wse:Status>
>     <wse:Reason xml:lang="/language identifier/" >/xs:string/</wse:Reason> ?
>     /xs:any/*
>   </wse:SubscriptionEnd>
>
> The following describes additional, normative constraints on the 
> outline listed above:
>
> *[Body]*/wse:SubscriptionEnd/wse:Status = 
> "http://www.w3.org/2009/02/ws-evt/DeliveryFailure"
>
>     This value MUST be used if the event source terminated the
>     subscription because of problems delivering notifications.
>
> *[Body]*/wse:SubscriptionEnd/wse:Status = 
> "http://www.w3.org/2009/02/ws-evt/SourceShuttingDown"
>
>     This value MUST be used if the event source terminated the
>     subscription because the source is being shut down in a controlled
>     manner; that is, if the event source is being shut down but has
>     the opportunity to send a SubscriptionEnd message before it exits.
>
> *[Body]*/wse:SubscriptionEnd/wse:Status = 
> "http://www.w3.org/2009/02/ws-evt/SourceCancelling"
>
>     This value MUST be used if the event source terminated the
>     subscription for some other reason before it expired.
>
> *[Body]*/wse:SubscriptionEnd/wse:Reason
>
>     This optional element contains text, in the language specified by
>     the @xml:lang attribute, describing the reason for the unexpected
>     subscription termination.
>
> Other message information headers defined by WS-Addressing 
> [WS-Addressing] <#AddrCore> MAY be included in the message, according 
> to the usage and semantics defined in WS-Addressing.
>
> Other components of the outline above are not further constrained by 
> this specification.
>
> Example 4-9 <#Table12> lists a hypothetical SubscriptionEnd message 
> corresponding to an early termination of the subscription created in 
> Example 4-1 <#Table4>.
>
> Example 4-9: Hypothetical subscription end message
> (01) <s12:Envelope 
> (02)     xmlns:s12="http://www.w3.org/2003/05/soap-envelope"
> (03)     xmlns:wsa="http://www.w3.org/2005/08/addressing"
> (04)     xmlns:wse="http://www.w3.org/2009/02/ws-evt" 
> (05)     xmlns:ew="http://www.example.com/warnings" >
> (06)   <s12:Header>
> (07)     <wsa:Action>
> (08)       http://www.w3.org/2009/02/ws-evt/SubscriptionEnd
> (09)     </wsa:Action>
> (10)     <wsa:To>http://www.example.com/MyEventSink</wsa:To>
> (11)     <ew:MySubscription wsa:IsReferenceParameter="true">
> (12)       2597
> (13)     </ew:MySubscription>
> (14)   </s12:Header>
> (15)   <s12:Body>
> (16)     <wse:SubscriptionEnd>
> (17)       <wse:Status>wse:SourceShuttingDown</wse:Status>
> (18)       <wse:Reason xml:lang="en-US" >
> (19)         Event source going off line.
> (20)       </wse:Reason>
> (21)     </wse:SubscriptionEnd>
> (22)   </s12:Body>
> (23) </s12:Envelope>
>
> Line (08) is the action URI for Subscription End. Lines (10-13) 
> indicate the message is sent to the EndTo of the subscribe request 
> (lines (23-30) in Example 4-1 <#Table4> .). Line (17) indicates the 
> event source is shutting down, and lines (18-20) indicate that the 
> event source was going off line.
>
>
>     5 Notifications
>
> This specification does not constrain notifications because any 
> message MAY be a notification.
>
> However, if a subscribing event sink wishes to have notifications 
> specifically marked, it MAY specify literal SOAP header blocks in the 
> Subscribe request, in the 
> /s:Envelope/s:Body/wse:Subscribe/wse:NotifyTo/wsa:ReferenceParameters 
> element; per WS-Addressing [WS-Addressing] <#AddrCore>, the event 
> source MUST include each such literal SOAP header block in every 
> notification sent to the endpoint addressed by 
> /s:Envelope/s:Body/wse:Subscribe/wse:NotifyTo.
>
> Example 5-1 <#Table13> lists a hypothetical notification message sent 
> as part of the subscription created by the subscribe request in 
> Example 4-1 <#Table4>.
>
> Example 5-1: Hypothetical notification message
> (01) <s12:Envelope 
> (02)     xmlns:s12="http://www.w3.org/2003/05/soap-envelope"
> (03)     xmlns:wsa="http://www.w3.org/2005/08/addressing"
> (04)     xmlns:ew="http://www.example.com/warnings"
> (05)     xmlns:ow="http://www.example.org/oceanwatch" >
> (06)   <s12:Header>
> (07)     <wsa:Action>
> (08)       http://www.example.org/oceanwatch/2003/WindReport
> (09)     </wsa:Action>
> (10)     <wsa:MessageID>
> (11)       uuid:568b4ff2-5bc1-4512-957c-0fa545fd8d7f
> (12)     </wsa:MessageID>
> (13)     <wsa:To>http://www.other.example.com/OnStormWarning</wsa:To>
> (14)     <ew:MySubscription wsa:IsReferenceParameter="true">
> (15)       2597
> (16)     </ew:MySubscription>
> (18)   </s12:Header>
> (19)   <s12:Body>
> (20)     <ow:WindReport>
> (21)       <ow:Date>030701</ow:Date>
> (22)       <ow:Time>0041</ow:Time>
> (23)       <ow:Speed>65</ow:Speed>
> (24)       <ow:Location>BRADENTON BEACH</ow:Location>
> (25)       <ow:County>MANATEE</ow:County>
> (26)       <ow:State>FL</ow:State>
> (27)       <ow:Lat>2746</ow:Lat>
> (28)       <ow:Long>8270</ow:Long>
> (29)       <ow:Comments xml:lang="en-US" >
> (30)         WINDS 55 WITH GUSTS TO 65. ROOF TORN OFF BOAT HOUSE. REPORTED
> (31)         BY STORM SPOTTER. (TBW)
> (32)       </ow:Comments>
> (33)     </ow:WindReport>
> (34)   </s12:Body>
> (35) </s12:Envelope>
>
> Lines (13-15) indicate the message is sent to the endpoint indicated 
> by the subscribe request (lines (32-39) in Example 4-1 <#Table4>). 
> Line (17) matches the filter in the subscribe request (lines (42-45) 
> in Example 4-1 <#Table4>).
>
>
>     6 Faults
>
> All fault messages defined in this specification MUST be sent 
> according to the rules described in WS-Addressing section 4. They are 
> sent to the [fault endpoint], if present and valid. Otherwise they are 
> sent to the [reply endpoint] if present. If neither is present faults 
> may be sent to the [source endpoint].
>
> Endpoints compliant with this specification MUST include required 
> message information headers on all fault messages. Fault messages are 
> correlated as replies using the [relationship] property as defined in 
> WS-Addressing. The [action] property below designates fault messages: 
> http://www.w3.org/2009/02/ws-evt/fault
>
> The definitions of faults use the following properties:
>
> *[Code]*  The fault code.
> *[Subcode]*  The fault subcode.
> *[Reason]*  The English language reason element.
> *[Detail]*  The detail element. If absent, no detail element is 
> defined for the fault.
>
> The properties above bind to a SOAP 1.2 fault as follows:
>
> <S:Envelope> 
>  <S:Header>
>    <wsa:Action>
>      http://www.w3.org/2009/02/ws-evt/fault
>    </wsa:Action>
>    <!-- Headers elided for clarity.  -->
>  </S:Header>
>  <S:Body>
>   <S:Fault>
>    <S:Code>
>      <S:Value> *[Code]* </S:Value>
>      <S:Subcode>
>       <S:Value> *[Subcode]* </S:Value>
>      </S:Subcode>
>    </S:Code>
>    <S:Reason>
>      <S:Text xml:lang="en"> *[Reason]* </S:Text>
>    </S:Reason>
>    <S:Detail>
>       *[Detail]*
>    </S:Detail>    
>   </S:Fault>
>  </S:Body>
> </S:Envelope> 
>
> The SOAP 1.1 fault is less expressive and map only *[Subcode]* and 
> *[Reason]*. These the properties bind to a SOAP 1.1 fault as follows:
>
> <S11:Envelope> 
>  <S11:Body>
>   <S11:Fault>
>    <faultcode> *[Subcode]* </faultcode>
>    <faultstring xml:lang="en"> *[Reason]* </faultstring>
>   </S11:Fault>
>  </S11:Body>
> </S11:Envelope> 
>
>
>       6.1 Fault Detail RetryAfter Element
>
> The following element is used to convey additional information in the 
> faults.
>
> /wse:RetryAfter
>
>     This element (whose content is of type xs:unsignedLong) is a
>     suggested minimum duration in milliseconds to wait before
>     retransmitting the message. Omission of this element indicates
>     that a retry is never likely to succeed.
>
> /wse:RetryAfter/@any
>
>     Optional extensibility attributes that do not affect processing.
>
>
>       6.2 InvalidExpirationTime
>
> This fault is sent when a Subscribe request specifies an expiration 
> time that is in the past or an expiration duration of zero.
>
> *[Code]*  s12:Sender
> *[Subcode]*  wse:InvalidExpirationTime
> *[Reason]*  The expiration time requested is invalid.
> *[Detail]*  /none/
>
>
>       6.3 UnsupportedExpirationType
>
> This fault is sent when a Subscribe request specifies an expiration 
> time and the event source is only capable of accepting expiration 
> durations; for instance, if the event source does not have access to 
> absolute time.
>
> *[Code]*  s12:Sender
> *[Subcode]*  wse:UnsupportedExpirationType
> *[Reason]*  Only expiration durations are supported.
> *[Detail]*  /none/
>
>
>       6.4 FilteringNotSupported
>
> This fault is sent when a Subscribe request contains a filter and the 
> event source does not support filtering.
>
> *[Code]*  s12:Sender
> *[Subcode]*  wse:FilteringNotSupported
> *[Reason]*  Filtering is not supported.
> *[Detail]*  /none/
>
>
>       6.5 FilteringRequestedUnavailable
>
> This fault is sent when a Subscribe request specifies a filter dialect 
> that the event source does not support. Optionally, this fault may 
> contain a list of supported filter dialect URIs in the Detail property.
>
> *[Code]*  s12:Sender
> *[Subcode]*  wse:FilteringRequestedUnavailable
> *[Reason]*  The requested filter dialect is not supported.
> *[Detail]*  <wse:SupportedDialect> +
> /Optional; one per filter dialect supported by the receiver/
>
>
>       6.6 EventSourceUnableToProcess
>
> This fault is sent when the event source is not capable of fulfilling 
> a Subscribe request for local reasons unrelated to the specific request.
>
> *[Code]*  s12:Receiver
> *[Subcode]*  wse:EventSourceUnableToProcess
> *[Reason]*  /Text explaining the failure; e.g., "The event source has 
> too many subscribers"./
> *[Detail]*  <wse:RetryAfter> ? /(Optional)/
>
>
>       6.7 UnableToRenew
>
> This fault is sent when the event source is not capable of fulfilling 
> a Renew request for local reasons unrelated to the specific request.
>
> *[Code]*  s12:Receiver
> *[Subcode]*  wse:UnableToRenew
> *[Reason]*  /Text explaining the failure; e.g., "The event source has 
> too many subscribers"./
> *[Detail]*  <wse:RetryAfter> ? /(Optional)/
>
>
>       6.8 InvalidMessage
>
> If a request message does not comply with the corresponding outline 
> listed above, the request MUST fail and the event source or 
> subscription manager MUST generate the following fault indicating that 
> the request is invalid:
>
> *[Code]*  s12:Sender
> *[Subcode]*  wse:InvalidMessage
> *[Reason]*  The message is not valid and cannot be processed.
> *[Detail]*  /The invalid message/
>
>
>       6.9 DeliveryFormatRequestUnavailable
>
> This fault is sent when a Subscribe request specifies a delivery 
> format that is not supported by the event source. Optionally, this 
> fault may contain a list of supported delivery format URIs in the 
> Detail property.
>
> *[Code]*  s12:Sender
> *[Subcode]*  wse:DeliveryFormatRequestedUnavailable
> *[Reason]*  The requested delivery format is not supported.
> *[Detail]*  <wse:SupportedDeliveryFormat> +
> / Optional, one per delivery format supported by the receiver./
>
>
>       6.10 EmptyFilter
>
> This fault MAY be generated when an Event Source detects a 
> wse:Subscribe request containing a filter that, for whatever reason, 
> will never evaluate to true.
>
> *[Code]*  s12:Sender
> *[Subcode]*  wse:EmptyFilter
> *[Reason]*  The wse:Filter would result in zero Notifications.
> *[Detail]*  / The wse:Filter value. /
>
>
>       6.11 UnusableEPR
>
> This fault MAY be generated when an Event Source detects that the 
> wse:NotifyTo or wse:EndTo EPR is unusable.
>
> *[Code]*  s12:Sender
> *[Subcode]*  wse:UnusableEPR
> *[Reason]*  An EPR in the Subscribe request message is unusable.
> *[Detail]*  / The specific EPR that generated the error and why. /
>
>
>     7 Security Considerations
>
>
>       7.1 Message Security
>
> It is strongly RECOMMENDED that the communication between services be 
> secured using the mechanisms described in WS-Security [WS-Security] 
> <#WSSecurity>. In order to properly secure messages, the body and all 
> relevant headers need to be included in the signature. Specifically, 
> any headers identified in the |<wse:NotifyTo>| element and standard 
> messaging headers, such as those from WS-Addressing [WS-Addressing] 
> <#AddrCore>, need to be signed with the body in order to "bind" the 
> two together. For messages with empty bodies, the |<s12:Body>| element 
> should be signed so content cannot be added in transit.
>
> Different security mechanisms may be desired depending on the 
> frequency of messages. For example, for infrequent messages, public 
> key technologies may be adequate for integrity and confidentiality. 
> However, for high-frequency events, it may be more performant to 
> establish a security context for the events using the mechanisms 
> described in WS-Trust [WS-Trust] <#WSTrust> and WS-SecureConversation 
> [WS-SecureConversation] <#WSSecureConversation>.
>
> It should be noted that if a shared secret is used it is RECOMMENDED 
> that derived keys be used to strengthen the secret as described in 
> WS-SecureConversation.
>
> The following list summarizes common classes of attacks that apply to 
> this protocol and identifies the mechanism to prevent/mitigate the 
> attacks:
>
>    *
>
>       Message alteration - Alteration is prevented by including
>       signatures of the message information using WS-Security.
>
>    *
>
>       Message disclosure - Confidentiality is preserved by encrypting
>       sensitive data using WS-Security.
>
>    *
>
>       Key integrity - Key integrity is maintained by using the
>       strongest algorithms possible (by comparing secured policies -
>       see WS-Policy [WS-Policy] <#WSPolicy> and WS-SecurityPolicy
>       [WS-SecurityPolicy] <#WSSecurityPolicy>).
>
>    *
>
>       Authentication - Authentication is established using the
>       mechanisms described in WS-Security and WS-Trust. Each message
>       is authenticated using the mechanisms described in WS-Security.
>
>    *
>
>       Accountability - Accountability is a function of the type of and
>       string of the key and algorithms being used. In many cases, a
>       strong symmetric key provides sufficient accountability.
>       However, in some environments, strong PKI signatures are required.
>
>    *
>
>       Availability - All reliable messaging services are subject to a
>       variety of availability attacks. Replay detection is a common
>       attack and it is RECOMMENDED that this be addressed by the
>       mechanisms described in WS-Security. Other attacks, such as
>       network-level denial of service attacks are harder to avoid and
>       are outside the scope of this specification. That said, care
>       should be taken to ensure that minimal state is saved prior to
>       any authenticating sequences.
>
>    *
>
>       Replay - Messages may be replayed for a variety of reasons. To
>       detect and eliminate this attack, mechanisms should be used to
>       identify replayed messages such as the timestamp/nonce outlined
>       in WS-Security. Alternatively, and optionally, other
>       technologies, such as sequencing, can also be used to prevent
>       replay of application messages.
>
>
>       7.2 Access Control
>
> It is important for event sources to properly authorize requests. This 
> is especially true for Subscribe requests, as otherwise the ability to 
> subscribe on behalf of a third-party event sink could be used to 
> create a distributed denial-of-service attack.
>
> Some possible schemes for validating Subscribe requests include:
>
>    *
>
>       Send a message to the event sink that describes the requested
>       subscription, and then wait for a confirmation message to be
>       returned by the event sink, before the event source accepts the
>       subscription request. While this provides strong assurance that
>       the event sink actually desires the requested subscription, it
>       does not work for event sinks that are not capable of sending a
>       confirmation, and requires additional logic on the event sink.
>
>    *
>
>       Require user authentication on the Subscribe request, and allow
>       only authorized users to Subscribe.
>
> Other mechanisms are also possible. Note that event sources that are 
> not reachable from the Internet have less need to control Subscribe 
> requests.
>
>
>     8 Implementation Considerations
>
> Implementations SHOULD generate expirations in subscribe and renew 
> request and response messages that are significantly larger than 
> expected network latency.
>
> Event sinks should be prepared to receive notifications after sending 
> a subscribe request but before receiving a subscribe response message. 
> Event sinks should also be prepared to receive notifications after 
> receiving an unsubscribe response message.
>
>
>     9 Acknowledgements
>
> This specification has been developed as a result of joint work with 
> many individuals and teams, including: Ashok Malhotra (Oracle Corp.), 
> Asir Vedamuthu (Microsoft Corp.), Bob Freund (Hitachi, Ltd.), Doug 
> Davis (IBM), Fred Maciel (Hitachi, Ltd.), Geoff Bullen (Microsoft 
> Corp.), Gilbert Pilz (Oracle Corp.), Greg Carpenter (Microsoft Corp.), 
> Jeff Mischkinsky (Oracle Corp.), Katy Warr (IBM), Li Li (Avaya 
> Communications), Mark Little (Red Hat), Prasad Yendluri (Software AG), 
> Sreedhara Narayanaswamy (CA), Sumeet Vij (Software AG), Vikas Varma 
> (Software AG), Wu Chou (Avaya Communications), Yves Lafon (W3C)
>
>
>     10 References
>
> RFC2119
>     Key words for use in RFCs to Indicate Requirement Levels
>     <http://www.ietf.org/rfc/rfc2119.txt> , S. Bradner, March 1997.
>     (See http://www.ietf.org/rfc/rfc2119.txt.)
> RFC 3986
>     Uniform Resource Identifier (URI): Generic Syntax
>     <http://www.ietf.org/rfc/rfc3986.txt> , T. Berners-Lee, W3C/MIT,
>     January 2005. (See http://www.ietf.org/rfc/rfc3986.txt.)
> SOAP 1.1
>     Simple Object Access Protocol (SOAP) 1.1
>     <http://www.w3.org/TR/2000/NOTE-SOAP-20000508/> , D. Box, et al,
>     May 2000. (See http://www.w3.org/TR/2000/NOTE-SOAP-20000508/.)
> SOAP 1.2
>     SOAP Version 1.2 Part 1: Messaging Framework
>     <http://www.w3.org/TR/2003/REC-soap12-part1-20030624/> , M.
>     Gudgin, et al, June 2003. (See
>     http://www.w3.org/TR/2003/REC-soap12-part1-20030624/.)
> WS-Addressing
>     W3C Recommendation, "Web Services Addressing 1.0 (WS-Addressing)"
>     <http://www.w3.org/2005/08/addressing/> , May 2006. (See
>     http://www.w3.org/2005/08/addressing/.)
> WS-MetadataExchange
>     Web Services Metadata Exchange (WS-MetadataExchange)
>     <http://www.w3.org/2009/02/ws-mex> , K. Ballinger, et al,
>     September 2004. (See http://www.w3.org/2009/02/ws-mex.)
> WS-Policy
>     W3C Recommendation, "Web Services Policy 1.5 - Framework"
>     <http://www.w3.org/TR/ws-policy/> , September 2007. (See
>     http://www.w3.org/TR/ws-policy/.)
> WS-ReliableMessaging
>     Web Services Reliable Messaging Protocol (WS-ReliableMessaging)
>     <http://schemas.xmlsoap.org/ws/2005/02/rm> , R. Bilorusets, et al,
>     February 2005. (See http://schemas.xmlsoap.org/ws/2005/02/rm.)
> WS-SecureConversation
>     Web Services Secure Conversation Language (WS-SecureConversation)
>     <http://schemas.xmlsoap.org/ws/2005/02/sc> , S. Anderson, et al,
>     February 2005. (See http://schemas.xmlsoap.org/ws/2005/02/sc.)
> WS-Security
>     Web Services Security: SOAP Message Security 1.0
>     <http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0.pdf>
>     , A. Nadalin, et al, March 2004. (See
>     http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0.pdf.)
> WS-SecurityPolicy
>     Web Services Security Policy Language (WS-SecurityPolicy), Version
>     1.1 <http://schemas.xmlsoap.org/ws/2005/07/securitypolicy> , G.
>     Della-Libera, et al, July 2005. (See
>     http://schemas.xmlsoap.org/ws/2005/07/securitypolicy.)
> WS-Trust
>     Web Services Trust Language (WS-Trust)
>     <http://schemas.xmlsoap.org/ws/2005/02/trust> , S. Anderson, et
>     al, February 2005. (See http://schemas.xmlsoap.org/ws/2005/02/trust.)
> WSDL 1.1
>     Web Services Description Language (WSDL) 1.1
>     <http://www.w3.org/TR/2001/NOTE-wsdl-20010315> , E. Christensen,
>     et al, March 2001. (See http://www.w3.org/TR/2001/NOTE-wsdl-20010315.)
> XML Infoset
>     XML Information Set
>     <http://www.w3.org/TR/2004/REC-xml-infoset-20040204/> , J. Cowan,
>     et al, February 2004. (See
>     http://www.w3.org/TR/2004/REC-xml-infoset-20040204/.)
> XML Schema, Part 1
>     XML Schema Part 1: Structures
>     <http://www.w3.org/TR/2004/REC-xmlschema-1-20041028/> , H.
>     Thompson, et al, October 2004. (See
>     http://www.w3.org/TR/2004/REC-xmlschema-1-20041028/.)
> XML Schema, Part 2
>     XML Schema Part 2: Datatypes
>     <http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/> , P. Biron,
>     et al, October 2004. (See
>     http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/.)
> XPath 1.0
>     XML Path Language (XPath) Version 1.0
>     <http://www.w3.org/TR/1999/REC-xpath-19991116> , J. Clark, et al,
>     November 1999. (See http://www.w3.org/TR/1999/REC-xpath-19991116.)
>
>
>     A Advertising Event Information
>
> There are many use cases for WS-Eventing in which it is necessary for 
> the Subscriber and the Event Sink to know the structure and contents 
> of the Notifications that may result from a successful Subscribe 
> request. For example, a developer may wish to use WSDL-based tools to 
> generate service stubs capable of marshalling and dispatching 
> Notifications. In addition to this, the effective use filters 
> (including those in the XPath dialect defined in Section 4.1 
> <#Subscribe> as well as other dialects not defined in this 
> specification) requires some knowledge of the schema of the Events 
> over which the filter will be applied.
>
> There are many ways in which an Event Source could describe and 
> advertise the structure of the Events for which it will issue 
> Notifications. To provide a basic level of interoperability, this 
> specification defines the following two optional mechanisms for 
> describing and advertising Event information. If an implementation of 
> a WS-Eventing Event Source chooses to describe the structure of its 
> Events and advertise this description to Subscribers and Event Sinks, 
> it is RECOMMENDED that at least one of these mechanisms be used. 
> Mechanisms other than these MAY be used to describe and advertise the 
> structure of Events, but the definition of such mechanisms is out of 
> the scope of this specification.
>
>
>       A.1 Event Types
>
> A key concept in the description and advertisement of Event 
> information is the "Event Type". An Event Type is a description of the 
> syntactic structure and value space of the set of Events that share 
> that type. Event Types are independent of both the WS-Eventing 
> protocol and the format of the Notifications used to transmit those 
> Events. For example, the following Notification, although transmitted 
> using the Wrapped Notification Format defined in Section 4.1 
> <#Subscribe>, has the same Event Type as the Notification in Example 
> 5-1 <#Table13>:
>
> Example A-1: Hypothetical Wrapped Notification
>  (01) <s12:Envelope xmlns:s12="http://www.w3.org/2003/05/soap-envelope"
>  (02)               xmlns:wsa="http://www.w3.org/2005/08/addressing"
>  (03)               xmlns:wse="http://www.w3.org/2009/02/ws-evt"
>  (04)               xmlns:ow="http://www.example.org/oceanwatch">
>  (05)   <s12:Header>
>  (06)     <wsa:Action>
>  (07)       http://www.w3.org/2009/02/ws-evt/wrap/GenericSinkPortType/NotifyEvent
>  (08)     </wsa:Action>
>  (09)     . . .
>  (10)   </s12:Header>
>  (11)   <s12:Body>
>  (12)     <wse:Notify actionURI="http://www.example.org/oceanwatch/2003/WindReport">
>  (13)       <ow:WindReport>
>  (14)         <ow:Date>030701</ow:Date>
>  (15)         <ow:Time>0041</ow:Time>
>  (16)         <ow:Speed>65</ow:Speed>
>  (17)         <ow:Location>BRADENTON BEACH</ow:Location>
>  (18)         <ow:County>MANATEE</ow:County>
>  (19)         <ow:State>FL</ow:State>
>  (20)         <ow:Lat>2746</ow:Lat>
>  (21)         <ow:Long>8270</ow:Long>
>  (22)         <ow:Comments xml:lang="en-US" >
>  (23)           WINDS 55 WITH GUSTS TO 65. ROOF TORN OFF BOAT HOUSE. REPORTED
>  (24)           BY STORM SPOTTER. (TBW)
>  (25)         </ow:Comments>
>  (26)       </ow:WindReport>
>  (27)     </wse:Notify>
>  (28)   </s12:Body>
>  (29) </s12:Envelope>
>       
>
>
>       A.2 Event Descriptions
>
> Event Types MAY be described within an EventDescriptions element where 
> they are defined by Global Element Declarations in XML Schema [XML 
> Schema, Part 1] <#XMLSchema1>, [XML Schema, Part 2] <#XMLSchema2>. The 
> EventDescriptions element has the following form:
>
> <wse:EventDescriptions targetNamespace="/xs:anyURI/" ...>
>   <wse:types>
>     [ <xs:import namespace="/xs:anyURI/" schemaLocation="/xs:anyURI/"/> ? |
>       <xs:schema targetNamespace="/xs:anyURI/"/> ? |
>       /other extension elements/ ] *
>   </wse:types>
>   <wse:eventType name="/xs:NCName/" element="/xs:QName/" actionURI="/xs:anyURI/" ...>
>     /xs:any/ *
>   </wse:eventType> +
>   /xs:any/ *
> </wse:EventDescriptions>
>       
>
> The XML Schema for the EventDesciptions element can be found in 
> Apppendix E <#EventDescripSchema>. The following describes additional, 
> normative constraints on the outlined listed above:
>
> */wse:EventDescriptions*
>
>     This element contains the declarations of all the Event Types that
>     apply to a given context, such as a particular Event Source.
>
> */wse:EventDescriptions/@targetNamespace*
>
>     This attribute defines the namespace affiliation of the Event
>     Types declared within the EventDescriptions element. Its value
>     MUST be an absolute IRI [IETF RFC 3987] <#TODO>. It MAY be
>     dereferencable.
>
> */wse:EventDescriptions/wse:types*
>
>     As described earlier, an Event Type is defined by a Global Element
>     Declaration (GED) in XML Schema. This element contains collections
>     of imported and inlined schema components that describe the GEDs
>     that are used to define Event Types.
>
> */wse:EventDescriptions/wse:eventType*
>
>     This element describes a specific Event Type.
>
> */wse:EventDescriptions/wse:eventType/@name*
>
>     This attribute provides a unique name for this Event Type amongst
>     all the Event Types defined by the enclosing wse:EventDescriptions
>     element. In conjunction with a Prefix that is associated with the
>     value of /wse:EventDescriptions/@targetNamespace namespace URI,
>     the value of this attribute MAY be used as the LocalPart of a
>     QName that identifies this Event Type outside the context of the
>     enclosing wse:EventDescriptions element.
>
> */wse:EventDescriptions/wse:eventType/@element*
>
>     This attribute refers to a GED defined or imported in the
>     /wse:EventDescriptions/wse:types element. The referenced GED
>     serves as the definition of this Event Type.
>
> */wse:EventDescriptions/wse:eventType/@actionURI*
>
>     This attribute provides a value for the various 'action'
>     properties and attributes which, depending upon the format of the
>     Notification used to transmit the Event, serve as a potential aide
>     to identifying the semantics implied by the message.
>
> The following is an example of a EventDescriptions element that could 
> serve as a description of the Event Type used in Example 5-1 
> <#Table13> and Example A-1 <#Table14>.
>
> Example A-2: EventDescriptions
> (01) <wse:EventDescriptions targetNamepace="http://www.example.org/oceanwatch/notifications"
> (02)                        xmlns:wse="http://www.w3.org/2009/02/ws-evt"
> (03)                        xmlns:ow="http://www.example.org/oceanwatch">
> (04)   <wse:types>
> (05)     <xs:schema targetNamepace="http://www.example.org/oceanwatch">
> (06)       <xs:include schemaLocation="http://www.example.org/schemas/oceanwatch.xsd"/>
> (07)       <xs:element name="WindReport" type="ow:WindReportType"/>
> (08)     </xs:schema>
> (09)   </wse:types>
> (10)
> (11)   <wse:eventType name="WindReportEvent"
> (12)                  element="ow:WindReport"
> (13)                  actionURI="http://www.example.org/oceanwatch/2003/WindReport"/>
> (14) </wsem:EventDescriptions>
>       
>
> Lines (11-13) describe an Event Type with a QName of 
> "{http://www.example.org/oceanwatch/notifications}:WindReportEvent". 
> The GED for this Event Type is defined on line (07) as being of type 
> "{http://www.example.org/oceanwatch}:WindReportType".
>
>
>         A.2.1 Retrieving Event Descriptions
>
> Although there are many ways in which an Event Source can make its 
> EventDescriptions available to potential Subscribers and Event Sinks, 
> this specification RECOMMENDS the use of the mechanisms described in 
> WS-MetadataExchange [WS-MetadataExchange] <#MEX>. This specification 
> defines the following URI to serve as the Dialect URI for the 
> wse:EventDescriptions element.
>
> http://www.w3.org/2009/02/ws-evt/EventDescriptions
>       
>
> When a mex:GetMetadata request is targeted to a Subscription Endpoint 
> with a mex:Dialect@URI of either 
> "http://www.w3.org/2009/02/ws-evt/EventDescriptions" or 
> "http://www.w3.org/2009/06/ws-mex/Dialects/ws-mex-all", the 
> mex:Metadata element of the mex:GetMetadataResponse MAY include (in 
> addition to other Metadata Sections that may be present) a single 
> Metadata Section with a wse:EventDescriptions as the dialect specific 
> element. The value of the @Dialect attribute for this Metadata Section 
> MUST be "http://www.w3.org/2009/02/ws-evt/EventDescriptions". The 
> value of the @Identifier attribute for this Metadata Section MUST be 
> equal to the value of its wse:EventDescriptions/@targetNamespace.
>
> The following GetMetadata request, when sent to the Subscription 
> Endpoint used in Example 2-1 <#Table1>
>
> Example A-3: GetMetadata Request for EventDescriptions
> (01) <s12:Envelope xmlns:s12="http://www.w3.org/2003/05/soap-envelope"
> (02)                  xmlns:wsa="http://www.w3.org/2005/08/addressing"
> (03)                  xmlns:wse="http://www.w3.org/2009/02/ws-evt"
> (04)                  xmlns:mex="http://www.w3.org/2009/02/ws-mex">
> (05)   <s12:Header>
> (06)     <wsa:Action>
> (07)       http://www.w3.org/2009/02/ws-mex/GetMetadata
> (08)     </wsa:Action>
> (09)     <wsa:MessageID>
> (10)       uuid:126287f0-521d-11de-8a39-0800200c9a66
> (11)     </wsa:MessageID>
> (12)     <wsa:To>http://www.example.org/oceanwatch/EventSource</wsa:To>
> (13)   </s12:Header>
> (14)   <s12:Body>
> (15)     <mex:GetMetadata>
> (16)       <mex:Dialect URI="http://www.w3.org/2009/02/ws-evt/EventDescriptions"/>
> (17)     </mex:GetMetadata>
> (18)   </s12:Body>
> (19) </s12:Envelope>
>       
>
> returns the following GetMetadataResponse element
>
> Example A-4: GetMetadataResponse with EventDescriptions
> (01) <s12:Envelope xmlns:s12="http://www.w3.org/2003/05/soap-envelope"
> (02)                  xmlns:wsa="http://www.w3.org/2005/08/addressing"
> (03)                  xmlns:wse="http://www.w3.org/2009/02/ws-evt"
> (04)                  xmlns:mex="http://www.w3.org/2009/02/ws-mex">
> (05)   <s12:Header>
> (06)     <wsa:Action>
> (07)       http://www.w3.org/2009/02/ws-mex/GetMetadataResponse
> (08)     </wsa:Action>
> (09)     <wsa:RelatesTo>
> (10)       uuid:126287f0-521d-11de-8a39-0800200c9a66
> (11)     </wsa:RelatesTo>
> (12)   </s12:Header>
> (13)   <s12:Body>
> (14)     <mex:Metadata>
> (15)       <mex:MetadataSection Dialect="http://www.w3.org/2009/02/ws-evt/EventDescriptions"
> (16)                            Identifier="http://www.example.org/oceanwatch/notifications">
> (17)         <wse:EventDescriptions targetNamepace="http://www.example.org/oceanwatch/notifications"
> (18)                                xmlns:wse="http://www.w3.org/2009/02/ws-evt"
> (19)                                xmlns:ow="http://www.example.org/oceanwatch">
> (20)           <wse:types>
> (21)             <xs:schema targetNamepace="http://www.example.org/oceanwatch">
> (22)               <xs:include schemaLocation="http://www.example.org/schemas/oceanwatch.xsd"/>
> (23)               <xs:element name="WindReport" type="ow:WindReportType">
> (24)             </xs:schema>
> (25)           </wse:types>
> (26)
> (27)           <wse:eventType name="WindReportNotification"
> (28)                          element="ow:WindReport"
> (29)                          actionURI="http://www.example.org/oceanwatch/2003/WindReport"/>
> (30)         </wsem:EventDescriptions>
> (31)       </mex:MetadataSection
> (32)     </mex:Metadata>
> (33)   </s12:Body>
> (34) </s12:Envelope>
>       
>
>
>         A.2.2 Bindings for Event Descriptions
>
> For any Notification Format it should be possible to determine how a 
> given |wse:eventType| will appear on the wire as a Notification in a 
> Subscription created with that format. The following sections define 
> how |wse:eventType|'s bind to Notifications for the two Notification 
> Formats defined in this specification; Unwrapped and Wrapped. 
> Specifications or profiles that define additional Notification Formats 
> SHOULD define how |wse:eventType|s bind to the Notifications for those 
> formats. In the absence of a mapping for a particular Notification 
> Format, implementations MAY provide a Notification WSDL (see below) 
> that explicitly describes the Notification operations.
>
>
>           A.2.2.1 Binding for Unwrapped Notifications
>
> *TBD*
>
>
>           A.2.2.2 Binding for Wrapped Notifications
>
> The information about a Event Type contained in the |eventType| 
> element binds to a Wrapped Notification for that type as follows:
>
>     * The |/soap:Envelope/soap:Body/wse:Notify/@actionURI| attribute
>       of the Wrapped Notification has the value of the |actionURI|
>       attribute of the |eventType| element corresponding to the type
>       of the Event being transmitted.
>     * The |/soap:Envelope/soap:Body/wse:Notify| element has a single
>       child element. This child element is an instance of the Global
>       Element Declaration referenced by the |element| attribute of the
>       |eventType| element corresponding to the type of the Event being
>       transmitted.
>
>
>       A.3 Notification WSDLs
>
> As described previously, Event Sources transmit Events to Event Sinks 
> as SOAP messages called "Notifications". These Notifications MAY be 
> described via a Web Services Definition Language [WSDL 1.1] <#WSDL11> 
> |definitions| element termed a "Notification WSDL". A Notification 
> WSDL describes the interface that the Event Sink is required to 
> implement to receive and process the Notifications that might result 
> from a successful Subscribe request that used a particular Format URI. 
> Notification WSDLs contain abstract port types and concrete bindings. 
> The port types contain operations that correspond to the Events that 
> are transmitted. The bindings describe the Notification Formats (e.g. 
> Unwrapped or Wrapped) for those Events. The following is an example of 
> a Notification WSDL:
>
> Example A-5: Notification WSDL
> (01) <wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
> (02)                   targetNamespace="http://www.example.org/oceanwatch/notifications"
> (03)                   xmlns:xs="http://www.w3.org/2001/XMLSchema"
> (04)                   xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
> (05)                   xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata"
> (06)                   xmlns:ow="http://www.example.org/oceanwatch"
> (07)                   xmlns:tns="http://www.example.org/oceanwatch/notifications">
> (08)   <wsdl:types>
> (09)     <xs:schema targetNamepace="http://www.example.org/oceanwatch">
> (10)       <xs:include schemaLocation="http://www.example.org/schemas/oceanwatch.xsd"/>
> (11)       <xs:element name="WindReport" type="ow:WindReportType">
> (12)     </xs:schema>
> (13)   </wsdl:types>
> (14)
> (15)   <wsdl:message name="WindReportNotificationMsg">
> (16)     <wsdl:part name="event" element="ow:WindReport"/>
> (17)   </wsdl:message>
> (18)
> (19)   <wsdl:portType name="WindReportPortType">
> (20)     <wsdl:operation name="WindReportNotificationOp">
> (21)       <wsdl:input message="tns:WindReportNotificationMsg"
> (22)                  wsam:Action="http://www.example.org/oceanwatch/2003/WindReport"/>
> (23)     </wsdl:operation>
> (24)   </wsdl:portType>
> (25)
> (26)   <wsdl:binding name="WindReportBinding" type="tns:WindReportPortType">
> (27)     <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
> (28)     <wsdl:operation name="WindReportNotificationOp">
> (29)       <soap:operation soapAction=""/>
> (30)       <wsdl:input>
> (31)         <soap:body use="literal"/>
> (32)       </wsdl:input>
> (33)     </wsdl:operation>
> (34)   </wsdl:binding>
> (35) </wsdl:definitions>
>       
>
> The abstract portion of this Notification WSDL is in lines (08-24). 
> The concrete binding in lines (26-34) corresponds to the Unwrapped 
> Notification Format.
>
>
>         A.3.1 Retrieving Notification WSDLs
>
> Although there are many ways in which an Event Source can make 
> Notification WSDLs available to potential Subscribers and Event Sinks, 
> this specification RECOMMENDS the use of the mechanisms described in 
> WS-MetadataExchange [WS-MetadataExchange] <#MEX>. This specification 
> defines the following URI to serve as the Dialect URI for the 
> Notification WSDL.
>
> http://www.w3.org/2009/02/ws-evt/NotificationWSDL
>       
>
> Because the Notification Format specified in a Subscribe request can 
> affect various aspects of the Notification WSDL, it is necessary to 
> correlate Notification WSDLs with their corresponding Notification 
> Formats. When using WS-MetadataExchange to transfer Notification 
> WSDLs, the corresponding Format URI for that Notification WSDL is 
> represented via the @Identifier attribute.
>
> When a mex:GetMetadata request is targeted to a Subscription Endpoint 
> with a mex:Dialect@URI of either 
> "http://www.w3.org/2009/02/ws-evt/NotificationWSDL" or 
> "http://www.w3.org/2009/06/ws-mex/Dialects/ws-mex-all", the 
> mex:Metadata element of the mex:GetMetadataResponse MAY include (in 
> addition to other Metadata Sections that may be present) one or more 
> Metadata Sections with a @Dialect attribute with the value of 
> "http://www.w3.org/2009/02/ws-evt/NotificationWSDL" and a 
> |wsdl:definitions| element as their dialect specific element. The 
> value of the @Identifier attribute for these Metadata Sections MUST 
> equal the Format URI associated with that Notification WSDL 
> (e.g."http://www.w3.org/2009/02/ws-evt/DeliveryFormats/Unwrap"). For 
> any particular Format URI/@Identifier, there MUST NOT exist more than 
> one Metadata Section containing a Notification WSDL.
>
> The following GetMetadata request, when sent to the Subscription 
> Endpoint used in Example 2-1 <#Table1>
>
> Example A-6: GetMetadata Request for Notification WSDLs
> (01) <s12:Envelope xmlns:s12="http://www.w3.org/2003/05/soap-envelope"
> (02)                  xmlns:wsa="http://www.w3.org/2005/08/addressing"
> (03)                  xmlns:wse="http://www.w3.org/2009/02/ws-evt"
> (04)                  xmlns:mex="http://www.w3.org/2009/02/ws-mex">
> (05)   <s12:Header>
> (06)     <wsa:Action>
> (07)       http://www.w3.org/2009/02/ws-mex/GetMetadata
> (08)     </wsa:Action>
> (09)     <wsa:MessageID>
> (10)       uuid:126287f0-521d-11de-8a39-0800200c9a66
> (11)     </wsa:MessageID>
> (12)     <wsa:To>http://www.example.org/oceanwatch/EventSource</wsa:To>
> (13)   </s12:Header>
> (14)   <s12:Body>
> (15)     <mex:GetMetadata>
> (16)       <mex:Dialect URI="http://www.w3.org/2009/02/ws-evt/NotificationWSDL"
> (17)                   Identifier="http://www.w3.org/2009/02/ws-evt/DeliveryFormats/Unwrap"/>
> (18)     </mex:GetMetadata>
> (19)   </s12:Body>
> (20) </s12:Envelope>
>       
>
> returns the following GetMetadataResponse element
>
> Example A-7: GetMetadataResponse with Notification WSDL
> (01) <s12:Envelope xmlns:s12="http://www.w3.org/2003/05/soap-envelope"
> (02)                  xmlns:wsa="http://www.w3.org/2005/08/addressing"
> (03)                  xmlns:wse="http://www.w3.org/2009/02/ws-evt"
> (04)                  xmlns:mex="http://www.w3.org/2009/02/ws-mex">
> (05)   <s12:Header>
> (06)     <wsa:Action>
> (07)       http://www.w3.org/2009/02/ws-mex/GetMetadataResponse
> (08)     </wsa:Action>
> (09)     <wsa:RelatesTo>
> (10)       uuid:126287f0-521d-11de-8a39-0800200c9a66
> (11)     </wsa:RelatesTo>
> (12)   </s12:Header>
> (13)   <s12:Body>
> (14)     <mex:Metadata>
> (15)       <mex:MetadataSection Dialect="http://www.w3.org/2009/02/ws-evt/NotificationWSDL"
> (16)                            Identifier="http://www.w3.org/2009/02/ws-evt/DeliveryFormats/Unwrap">
> (17)         <wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
> (18)                              targetNamespace="http://www.example.org/oceanwatch/notifications"
> (19)                              . . . 
> (20)                              xmlns:tns="http://www.example.org/oceanwatch/notifications">
> (21)           <wsdl:types>
> (22)             <xs:schema targetNamepace="http://www.example.org/oceanwatch">
> (23)               <xs:include schemaLocation="http://www.example.org/schemas/oceanwatch.xsd"/>
> (24)               <xs:element name="WindReport" type="ow:WindReportType">
> (25)             </xs:schema>
> (26)           </wsdl:types>
> (27)
> (28)           <wsdl:message name="WindReportNotificationMsg">
> (29)             <wsdl:part name="event" element="ow:WindReport"/>
> (30)           </wsdl:message>
> (31)
> (32)           . . .
> (33)         </wsdl:definitions>
> (34)       </mex:MetadataSection
> (35)     </mex:Metadata>
> (36)   </s12:Body>
> (37) </s12:Envelope>
>       
>
>
>         A.4 Multiple Event Information Metadata Sections
>
> When WS-MetadataExchange [WS-MetadataExchange] <#MEX> is used to 
> retrieve metadata about an Event Source, recipients of mex:Metadata 
> elements that contain Metadata Sections with both the 
> "http://www.w3.org/2009/02/ws-evt/EventDescriptions" and 
> "http://www.w3.org/2009/02/ws-evt/NotificationWSDL" dialects MUST 
> regard these Metadata Sections as relating to the same set of Events. 
> In cases where the mex:Metadata element contains multiple Notification 
> WSDLs (i.e. multiple Metadata Sections with a @Dialect of 
> "http://www.w3.org/2009/02/ws-evt/NotificationWSDL"), recipients MUST 
> similarly regard these Notification WSDLs as relating to the same set 
> of Events although their Notification Formats differ.
>
>
>     B XML Schema
>
> A normative copy of the XML Schema [XML Schema, Part 1] <#XMLSchema1>, 
> [XML Schema, Part 2] <#XMLSchema2> description for this specification 
> may be retrieved from the following address:
>
> http://www.w3.org/2009/02/ws-evt/eventing.xsd
>
> A non-normative copy of the XML schema is listed below for convenience.
>
> <xs:schema 
>   targetNamespace="http://www.w3.org/2009/02/ws-evt" 
>   xmlns:tns="http://www.w3.org/2009/02/ws-evt"
>   xmlns:wsa="http://www.w3.org/2005/08/addressing"
>   xmlns:xs="http://www.w3.org/2001/XMLSchema" 
>   elementFormDefault="qualified" 
>   blockDefault="#all">
>   
>   <xs:import 
>     namespace="http://www.w3.org/XML/1998/namespace" 
>     schemaLocation="http://www.w3.org/2001/xml.xsd" />
>   <xs:import
>     namespace="http://www.w3.org/2005/08/addressing"
>     schemaLocation="http://www.w3.org/2005/08/addressing/ws-addr.xsd" />
>  
>   <!-- Types and global elements -->
>   <xs:complexType name="DeliveryType" mixed="true">
>     <xs:sequence>
>       <xs:element ref="tns:NotifyTo" minOccurs="0" maxOccurs="1" />
>       <xs:any namespace="##other" processContents="lax" 
>               minOccurs="0" maxOccurs="unbounded" />
>     </xs:sequence>
>     <xs:anyAttribute namespace="##other" processContents="lax" />
>   </xs:complexType>
>  
>   <xs:complexType name="FormatType" mixed="true">
>     <xs:sequence>
>       <xs:any namespace="##any" processContents="lax" 
>               minOccurs="0" maxOccurs="unbounded" />
>     </xs:sequence>
>     <xs:attribute name="Name" type="xs:anyURI" use="optional" 
>       default="http://http://www.w3.org/2009/02/ws-evt/DeliveryFormats/Unwrap" />
>     <xs:anyAttribute namespace="##other" processContents="lax" />
>   </xs:complexType>
>  
>   <xs:simpleType name="NonNegativeDurationType">
>     <xs:restriction base="xs:duration">
>       <xs:minInclusive value="P0Y0M0DT0H0M0S" />
>     </xs:restriction>
>   </xs:simpleType>
>  
>   <xs:simpleType name="ExpirationType">
>       <xs:union memberTypes="xs:dateTime 
>                 tns:NonNegativeDurationType" />
>   </xs:simpleType>
>  
>   <xs:complexType name="FilterType" mixed="true">
>     <xs:sequence>
>       <xs:any namespace="##other" processContents="lax" 
>               minOccurs="0" maxOccurs="unbounded" />
>     </xs:sequence>
>     <xs:attribute name="Dialect" type="xs:anyURI" use="optional" 
>       default="http://www.w3.org/TR/1999/REC-xpath-19991116" />
>     <xs:anyAttribute namespace="##other" processContents="lax" />
>   </xs:complexType>
>  
>   <xs:complexType name="LanguageSpecificStringType">
>     <xs:simpleContent>
>       <xs:extension base="xs:string">
>         <xs:attribute ref="xml:lang" />
>         <xs:anyAttribute namespace="##other" processContents="lax" />
>       </xs:extension>
>     </xs:simpleContent>
>   </xs:complexType>
>  
>   <xs:element name="NotifyTo" type="wsa:EndpointReferenceType" />
>  
>   <!-- Subscribe request -->
>   <xs:element name="Subscribe">
>     <xs:complexType>
>       <xs:sequence>
>         <xs:element name="EndTo" type="wsa:EndpointReferenceType" 
>                     minOccurs="0" />
>         <xs:element name="Delivery" type="tns:DeliveryType" />
>         <xs:element name="Format" type="tns:FormatType" 
>                     minOccurs="0" />
>         <xs:element name="Expires" type="tns:ExpirationType" 
>                     minOccurs="0" />
>         <xs:element name="Filter" type="tns:FilterType" 
>                     minOccurs="0" />
>         <xs:any namespace="##other" processContents="lax" 
>                 minOccurs="0" maxOccurs="unbounded" />
>       </xs:sequence>
>       <xs:anyAttribute namespace="##other" processContents="lax" />
>     </xs:complexType>
>   </xs:element>
>  
>   <!-- Subscribe response -->
>   <xs:element name="SubscribeResponse">
>     <xs:complexType>
>       <xs:sequence>
>         <xs:element name="SubscriptionManager" 
>                     type="wsa:EndpointReferenceType" />
>         <xs:element name="Expires" type="tns:ExpirationType" />
>         <xs:any namespace="##other" processContents="lax" 
>                 minOccurs="0" maxOccurs="unbounded" />
>       </xs:sequence>
>       <xs:anyAttribute namespace="##other" processContents="lax" />
>     </xs:complexType>
>   </xs:element>
>  
>   <!-- Used in a fault if there's an unsupported dialect -->
>   <xs:element name="SupportedDialect" type="xs:anyURI" />
>  
>   <!-- Used in a fault if there's an unsupported format name -->
>   <xs:element name="SupportedDeliveryFormat" type="xs:anyURI" />
>  
>   <!-- Renew request -->
>   <xs:element name="Renew">
>     <xs:complexType>
>       <xs:sequence>
>         <xs:element name="Expires" type="tns:ExpirationType" 
>                     minOccurs="0" />
>         <xs:any namespace="##other" processContents="lax" 
>                 minOccurs="0" maxOccurs="unbounded" />
>       </xs:sequence>
>       <xs:anyAttribute namespace="##other" processContents="lax" />
>     </xs:complexType>
>   </xs:element>
>  
>   <!-- Renew response -->
>   <xs:element name="RenewResponse">
>     <xs:complexType>
>       <xs:sequence>
>         <xs:element name="Expires" type="tns:ExpirationType" 
>                     minOccurs="0" />
>         <xs:any namespace="##other" processContents="lax" 
>                 minOccurs="0" maxOccurs="unbounded" />
>       </xs:sequence>
>       <xs:anyAttribute namespace="##other" processContents="lax" />
>     </xs:complexType>
>   </xs:element>
>  
>   <!-- GetStatus request -->
>   <xs:element name="GetStatus">
>     <xs:complexType>
>       <xs:sequence>
>         <xs:any namespace="##other" processContents="lax" 
>                 minOccurs="0" maxOccurs="unbounded" />
>       </xs:sequence>
>       <xs:anyAttribute namespace="##other" processContents="lax" />
>     </xs:complexType>
>   </xs:element>
>  
>   <!-- GetStatus response -->
>   <xs:element name="GetStatusResponse">
>     <xs:complexType>
>       <xs:sequence>
>         <xs:element name="Expires" type="tns:ExpirationType" 
>                     minOccurs="0" />
>         <xs:any namespace="##other" processContents="lax" 
>                 minOccurs="0" maxOccurs="unbounded" />
>       </xs:sequence>
>       <xs:anyAttribute namespace="##other" processContents="lax" />
>     </xs:complexType>
>   </xs:element>
>  
>   <!-- Unsubscribe request -->
>   <xs:element name="Unsubscribe">
>     <xs:complexType>
>       <xs:sequence>
>         <xs:any namespace="##other" processContents="lax" 
>                 minOccurs="0" maxOccurs="unbounded" />
>       </xs:sequence>
>       <xs:anyAttribute namespace="##other" processContents="lax" />
>     </xs:complexType>
>   </xs:element>
>  
>   <!-- Unsubscribe response -->
>   <xs:element name="UnsubscribeResponse">
>     <xs:complexType>
>       <xs:sequence>
>         <xs:any namespace="##other" processContents="lax" 
>                 minOccurs="0" maxOccurs="unbounded" />
>       </xs:sequence>
>       <xs:anyAttribute namespace="##other" processContents="lax" />
>     </xs:complexType>
>   </xs:element>
>  
>   <!-- SubscriptionEnd message -->
>   <xs:element name="SubscriptionEnd">
>     <xs:complexType>
>       <xs:sequence>
>         <xs:element name="Status"
>                     type="tns:OpenSubscriptionEndCodeType" />
>         <xs:element name="Reason" 
>                     type="tns:LanguageSpecificStringType" 
>                     minOccurs="0" maxOccurs="unbounded" />
>         <xs:any namespace="##other" processContents="lax" 
>                 minOccurs="0" maxOccurs="unbounded" />
>       </xs:sequence>
>       <xs:anyAttribute namespace="##other" processContents="lax" />
>     </xs:complexType>
>   </xs:element>
>  
>   <xs:simpleType name="SubscriptionEndCodeType">
>     <xs:restriction base="xs:anyURI">
>       <xs:enumeration value=
>   "http://www.w3.org/2009/02/ws-evt/DeliveryFailure" />
>       <xs:enumeration value=
>   "http://www.w3.org/2009/02/ws-evt/SourceShuttingDown" />
>       <xs:enumeration value=
>   "http://www.w3.org/2009/02/ws-evt/SourceCancelling" />
>     </xs:restriction>
>   </xs:simpleType>
>  
>   <xs:simpleType name="OpenSubscriptionEndCodeType">
>     <xs:union memberTypes="tns:SubscriptionEndCodeType xs:anyURI" />
>   </xs:simpleType>
>     
>   <!-- RetryAfter Fault Detail Element -->
>   <xs:element name="RetryAfter"  type="tns:RetryAfterType"/>
>   <xs:complexType name="RetryAfterType">
>     <xs:simpleContent>
>       <xs:extension base="xs:nonNegativeInteger">
>         <xs:anyAttribute namespace="##other" processContents="lax" />
>       </xs:extension>
>     </xs:simpleContent>
>   </xs:complexType>
>      
>   <xs:attribute name="EventSource" type="xs:boolean" />
>
>   <!-- Wrapped Events -->
>   <xs:complexType name="EventType" mixed="true">
>     <xs:sequence>
>       <xs:any namespace="##any" processContents="lax" minOccurs="0"
>               maxOccurs="unbounded"/>
>     </xs:sequence>
>     <xs:attribute name="actionURI" type="xs:anyURI" use="optional" />
>     <xs:anyAttribute namespace="##other" processContents="lax" />
>   </xs:complexType>
>   <xs:element name="Notify" type="tns:EventType" />
>
> </xs:schema> 
>
>
>     C WSDL
>
> A normative copy of the WSDL [WSDL 1.1] <#WSDL11> description can be 
> retrieved from the following address:
>
> http://www.w3.org/2009/02/ws-evt/eventing.wsdl
>
> A non-normative copy of the WSDL description is listed below for 
> convenience.
>
> <wsdl:definitions
>   targetNamespace="http://www.w3.org/2009/02/ws-evt"
>   xmlns:wsa="http://www.w3.org/2005/08/addressing"
>   xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata"
>   xmlns:wse="http://www.w3.org/2009/02/ws-evt" 
>   xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" 
>   xmlns:xs="http://www.w3.org/2001/XMLSchema" >
>
>   <wsdl:types>
>     <xs:schema>
>        <xs:import
>          namespace="http://www.w3.org/2009/02/ws-evt"
>          schemaLocation=
>   "http://www.w3.org/2009/02/ws-evt/eventing.xsd" />
>     </xs:schema>
>   </wsdl:types>
>   
>   <wsdl:message name="SubscribeMsg" >
>     <wsdl:part name="body" element="wse:Subscribe" />
>   </wsdl:message>
>   <wsdl:message name="SubscribeResponseMsg" >
>     <wsdl:part name="body" element="wse:SubscribeResponse" />
>   </wsdl:message>
>   
>   <wsdl:message name="RenewMsg" >
>     <wsdl:part name="body" element="wse:Renew" />
>   </wsdl:message>
>   <wsdl:message name="RenewResponseMsg" >
>     <wsdl:part name="body" element="wse:RenewResponse" />
>   </wsdl:message>
>   
>   <wsdl:message name="GetStatusMsg" >
>     <wsdl:part name="body" element="wse:GetStatus" />
>   </wsdl:message>
>   <wsdl:message name="GetStatusResponseMsg" >
>     <wsdl:part name="body" element="wse:GetStatusResponse" />
>   </wsdl:message>
>   
>   <wsdl:message name="UnsubscribeMsg" >
>     <wsdl:part name="body" element="wse:Unsubscribe" />
>   </wsdl:message>
>   <wsdl:message name="UnsubscribeResponseMsg" >
>     <wsdl:part name="body" element="wse:UnsubscribeResponse" />
>   </wsdl:message>
>  
>   <wsdl:message name="SubscriptionEnd" >
>     <wsdl:part name="body" element="wse:SubscriptionEnd" />
>   </wsdl:message>
>
>   <message name="notifyEvent">
>     <part name="parameter" element="tns:Notify"/>
>   </message>
>   
>   <wsdl:portType name="EventSource" >
>     <wsdl:operation name="SubscribeOp" >
>       <wsdl:input 
>         message="wse:SubscribeMsg"
>         wsam:Action="http://www.w3.org/2009/02/ws-evt/Subscribe"/>
>       <wsdl:output 
>         message="wse:SubscribeResponseMsg" 
>         wsam:Action="http://www.w3.org/2009/02/ws-evt/SubscribeResponse"/>
>     </wsdl:operation>
>   </wsdl:portType>
>   
>   <wsdl:portType name="SubscriptionEndPortType" >
>     <wsdl:operation name="SubscriptionEnd" >
>       <wsdl:input 
>         message="wse:SubscriptionEnd" 
>         wsam:Action="http://www.w3.org/2009/02/ws-evt/SubscriptionEnd"/>
>     </wsdl:operation>
>   </wsdl:portType>
>   
>   <wsdl:portType name="SubscriptionManager" >
>     <wsdl:operation name="RenewOp" >
>       <wsdl:input 
>         message="wse:RenewMsg" 
>         wsam:Action="http://www.w3.org/2009/02/ws-evt/Renew"/>
>       <wsdl:output 
>         message="wse:RenewResponseMsg" 
>         wsam:Action="http://www.w3.org/2009/02/ws-evt/RenewResponse"/>
>     </wsdl:operation>
>     <wsdl:operation name="GetStatusOp" >
>       <wsdl:input 
>         message="wse:GetStatusMsg"
>         wsam:Action="http://www.w3.org/2009/02/ws-evt/GetStatus"/>
>       <wsdl:output 
>         message="wse:GetStatusResponseMsg" 
>         wsam:Action="http://www.w3.org/2009/02/ws-evt/GetStatusResponse"/>
>     </wsdl:operation>
>     <wsdl:operation name="UnsubscribeOp" >
>       <wsdl:input 
>         message="wse:UnsubscribeMsg" 
>         wsam:Action="http://www.w3.org/2009/02/ws-evt/Unsubscribe"/>
>       <wsdl:output 
>         message="wse:UnsubscribeResponseMsg" 
>         wsam:Action="http://www.w3.org/2009/02/ws-evt/UnsubscribeResponse"/>
>     </wsdl:operation>
>   </wsdl:portType>
>
>   <portType name="WrappedSinkPortType">
>     <operation name="NotifyEvent">
>       <input message="tns:notifyEvent" name="NotifyEvent" 
>         wsam:Action="http://www.w3.org/2009/02/ws-evt/WrappedSinkPortType/NotifyEvent"/>
>     </operation>
>   </portType>
> </wsdl:definitions>
>
>
>     D WSDL for Standard Wrapped Delivery
>
> If an Event Subscriber specifies the wrapped event delivery format 
> http://www.w3.org/2009/02/ws-evt/DeliveryFormats/Wrap in the Subscribe 
> request message, then the Event Sink MUST implement the following 
> abstract WSDL and the Event Source MUST send the Notification messages 
> wrapped in the element defined in the WSDL.
>
> <definitions 
>   xmlns="http://schemas.xmlsoap.org/wsdl/" 
>   xmlns:xs="http://www.w3.org/2001/XMLSchema" 
>   xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata"
>   xmlns:wsa="http://www.w3.org/2005/08/addressing/"
>   xmlns:tns="http://www.w3.org/2009/02/ws-evt" 
>   targetNamespace="http://www.w3.org/2009/02/ws-evt">
>   
>   <types>
>     <xs:schema 
>         targetNamespace="http://www.w3.org/2009/02/ws-evt">
>
>       <xs:complexType name="EventType" mixed="true"> 
>         <xs:sequence> 
>           <xs:any namespace="##any" processContents="lax" minOccurs="0"
>                   maxOccurs="unbounded"/> 
>         </xs:sequence> 
>         <xs:attribute name="actionURI" type="xs:anyURI" use="optional" /> 
>         <xs:anyAttribute namespace="##other" processContents="lax" /> 
>       </xs:complexType> 
>
>       <xs:element name="Notify" type="tns:EventType" />
>     </xs:schema>
>   </types>
>   
>   <message name="notifyEvent">
>     <part name="parameter" element="tns:Notify"/>
>   </message>
>   
>   <portType name="WrappedSinkPortType">
>     <operation name="NotifyEvent">
>       <input message="tns:notifyEvent" name="NotifyEvent" 
>         wsam:Action="http://www.w3.org/2009/02/ws-evt/WrappedSinkPortType/NotifyEvent"/>
>     </operation>
>   </portType>
> </definitions>
>
>
>     E XML Schema for EventDescriptions
>
> A normative copy of the XML Schema [XML Schema, Part 1] <#XMLSchema1>, 
> [XML Schema, Part 2] <#XMLSchema2> description for the 
> EventDescriptions element may be retrieved from the following address:
>
> http://www.w3.org/2009/02/ws-evt/EventDescriptions.xsd <http://www.w3.org/2009/02/ws-evt/eventing.xsd>
>       
>
> A non-normative copy of the XML schema is listed below for convenience.
>
> <?xml version="1.0" encoding="UTF-8"?>
> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
>            targetNamespace="http://www.w3.org/2009/02/ws-evt"
>            elementFormDefault="qualified" attributeFormDefault="unqualified">
>   <xs:element name="EventDescriptions">
>     <xs:complexType>
>       <xs:sequence>
>         <xs:element name="types">
>           <xs:annotation>
>             <xs:documentation>Data type definitions that are relevant to described notifications.</xs:documentation>
>           </xs:annotation>
>           <xs:complexType>
>             <xs:sequence>
>               <xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
>             </xs:sequence>
>             <xs:anyAttribute namespace="##other" processContents="lax"/>
>           </xs:complexType>
>         </xs:element>
>         <xs:element name="eventType" maxOccurs="unbounded">
>           <xs:complexType>
>             <xs:sequence>
>               <xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
>             </xs:sequence>
>             <xs:attribute name="name" type="xs:NCName" use="required"/>
>             <xs:attribute name="element" type="xs:QName" use="required"/>
>             <xs:attribute name="action" type="xs:anyURI" use="required"/>
>             <xs:anyAttribute namespace="##other" processContents="lax"/>
>           </xs:complexType>
>         </xs:element>
>         <xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
>       </xs:sequence>
>       <xs:attribute name="targetNamespace" type="xs:anyURI" use="required"/>
>       <xs:anyAttribute namespace="##other" processContents="lax"/>
>     </xs:complexType>
>   </xs:element>
> </xs:schema>
>       
>
>
>     F Change Log
>
> Data  Author  Description
> 2009/03/04  DD  Added resolution of issue 6391 
> <http://www.w3.org/Bugs/Public/show_bug.cgi?id=6391>
> 2009/03/04  DD  Added resolution of issue 6519 
> <http://www.w3.org/Bugs/Public/show_bug.cgi?id=6519>
> 2009/03/04  DD  Added resolution of issue 6427 
> <http://www.w3.org/Bugs/Public/show_bug.cgi?id=6427>
> 2009/03/04  DD  Added resolution of issue 6459 
> <http://www.w3.org/Bugs/Public/show_bug.cgi?id=6459>
> 2009/03/09  DD  Added resolution of issue 6397 
> <http://www.w3.org/Bugs/Public/show_bug.cgi?id=6397>
> 2009/03/09  DD  Added resolution of issue 6426 
> <http://www.w3.org/Bugs/Public/show_bug.cgi?id=6426>
> 2009/03/11  DD  Added change log
> 2009/03/11  DD  Added resolution of issue 6641 
> <http://www.w3.org/Bugs/Public/show_bug.cgi?id=6641>
> 2009/03/11  DD  Added resolution of issue 6498 
> <http://www.w3.org/Bugs/Public/show_bug.cgi?id=6498>
> 2009/03/11  DD  Added resolution of issue 6425 
> <http://www.w3.org/Bugs/Public/show_bug.cgi?id=6425>
> 2009/03/16  KW  Added resolution of issue 6587 
> <http://www.w3.org/Bugs/Public/show_bug.cgi?id=6587>
> 2009/03/17  KW  Added resolution of issue 6400 
> <http://www.w3.org/Bugs/Public/show_bug.cgi?id=6400>
> 2009/03/17  DD  Added resolution of issue 6428 
> <http://www.w3.org/Bugs/Public/show_bug.cgi?id=6428>
> 2009/03/17  DD  Added resolution of issue 6687 
> <http://www.w3.org/Bugs/Public/show_bug.cgi?id=6687>
> 2009/03/23  DD  Added resolution of issue 6666 
> <http://www.w3.org/Bugs/Public/show_bug.cgi?id=6666>
> 2009/03/23  DD  Added resolution of issue 6681 
> <http://www.w3.org/Bugs/Public/show_bug.cgi?id=6681>
> 2009/03/24  DD  Added resolution of issue 6595 
> <http://www.w3.org/Bugs/Public/show_bug.cgi?id=6595>
> 2009/03/24  DD  Added resolution of issue 6648 
> <http://www.w3.org/Bugs/Public/show_bug.cgi?id=6648>
> 2009/04/07  DD  Added resolution of issue 6727 
> <http://www.w3.org/Bugs/Public/show_bug.cgi?id=6727>
> 2009/04/07  DD  Added resolution of issue 6725 
> <http://www.w3.org/Bugs/Public/show_bug.cgi?id=6725>
> 2009/04/07  DD  Added resolution of issue 6715 
> <http://www.w3.org/Bugs/Public/show_bug.cgi?id=6715>
> 2009/04/22  KW  Added resolution of issue 6739 
> <http://www.w3.org/Bugs/Public/show_bug.cgi?id=6739>
> 2009/04/28  DD  Added resolution of issue 6787 
> <http://www.w3.org/Bugs/Public/show_bug.cgi?id=6787>
> 2009/04/28  DD  Added resolution of issue 6788 
> <http://www.w3.org/Bugs/Public/show_bug.cgi?id=6788>
> 2009/05/13  KW  Added resolution of issue 6472 
> <http://www.w3.org/Bugs/Public/show_bug.cgi?id=6472>
> 2009/05/13  DD  Added resolution of issue 6850 
> <http://www.w3.org/Bugs/Public/show_bug.cgi?id=6850>
> 2009/05/13  DD  Added resolution of issue 6696 
> <http://www.w3.org/Bugs/Public/show_bug.cgi?id=6696>
> 2009/05/19  DD  Added resolution of issue 6907 
> <http://www.w3.org/Bugs/Public/show_bug.cgi?id=6907>
> 2009/05/19  DD  Added resolution of issue 6429 
> <http://www.w3.org/Bugs/Public/show_bug.cgi?id=6429>
> 2009/05/21  DD  Added resolution of issue 6674 
> <http://www.w3.org/Bugs/Public/show_bug.cgi?id=6674>
> 2009/05/27  DD  Added resolution of issue 6906 
> <http://www.w3.org/Bugs/Public/show_bug.cgi?id=6906>
> 2009/06/04  DD  Added resolution of issue 6955 
> <http://www.w3.org/Bugs/Public/show_bug.cgi?id=6955>
> 2009/06/04  DD  Added resolution of issue 6916 
> <http://www.w3.org/Bugs/Public/show_bug.cgi?id=6916>
> 2009/06/04  DD  Added resolution of issue 6986 
> <http://www.w3.org/Bugs/Public/show_bug.cgi?id=6986>
> 2009/07/07  DD  Added resolution of issue 7039 
> <http://www.w3.org/Bugs/Public/show_bug.cgi?id=7039>
> 2009/07/21  DD  Added resolution of issue 6980 
> <http://www.w3.org/Bugs/Public/show_bug.cgi?id=6980>
> 2009/07/28  DD  Added resolution of issue 6692 
> <http://www.w3.org/Bugs/Public/show_bug.cgi?id=6692>
> 2009/08/04  DD  Added resolution of issue 7136 
> <http://www.w3.org/Bugs/Public/show_bug.cgi?id=7136>
>

Received on Monday, 24 August 2009 19:07:48 UTC