<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type='text/xsl' href='../edcopies/xmlspec.xsl'?>
<!DOCTYPE spec PUBLIC "-//W3C//DTD Specification V2.1//EN" "../edcopies/xmlspec.dtd" [
<!ENTITY % entities SYSTEM "entitieswd.dtd" >
%entities;
<!ENTITY status "&scenario.status;" >
<!ENTITY short-status "&scenario.short-status;" >
 ]>

<spec w3c-doctype="&scenario.w3c-doctype;" role="&scenario.role;">
 <header>
  <title>&scenario.name;</title>
  <w3c-designation>&scenario.w3c-designation;</w3c-designation>
  <w3c-doctype>"&scenario.w3c-doctype;</w3c-doctype>
  <pubdate>
   <day>&scenario.day;</day>
   <month>&scenario.month;</month>
   <year>&scenario.year;</year>
  </pubdate>

  <publoc>
   <loc xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple"
         xlink:show="replace" xlink:actuate="onRequest"
         href="&scenario.dated;">&scenario.dated;
   </loc>
  </publoc>

  <latestloc>
    <loc xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple"
        xlink:show="replace" xlink:actuate="onRequest"
        href="http://www.w3.org/TR/&scenario.shortname;">http://www.w3.org/TR/&scenario.shortname;
   </loc>
  </latestloc>

  <prevlocs>
   <loc xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple"
         xlink:show="replace" xlink:actuate="onRequest"
         href="&prev.scenario.dated;">&prev.scenario.dated;
   </loc>
  </prevlocs> 

  <authlist>
   <author> 
    <name>Gilbert Pilz</name>
    <affiliation>Oracle</affiliation>
   </author>
  </authlist>

  <status id='Status'>
   <p>This is the First Public Working Draft.</p>
   <p>
    Publication as a Working Draft does not imply endorsement by the
    W3C Membership. This is a draft document and can be updated, replaced
    or obsoleted by other documents at any time. It is inappropriate to
    cite this document as other than work in progress.
   </p>
  </status>
 
  <abstract>
   <p>
    The following scenario is designed to provide a framework in which to 
    test the interoperability of various WS-Eventing implementations. Because 
    this scenario and the tests defined within it will be used to judge 
    which features of WS-Eventing are implemented and which are not, the 
    feature coverage is intended to be complete.
   </p>
  </abstract>
  
  <langusage>
   <language id="en">English</language>
  </langusage>

  <revisiondesc>
   <p>Last Modified: $Date: 2011/09/23 13:19:06 $</p>
  </revisiondesc>

 </header>

 <body>
  <div1 id="dependencies">
   <head>Dependencies</head>

   <div2 id="scope">
    <head>Scope</head>

    <p>
     The following specifications and technologies are in scope for this 
     scenario:
    </p>
 
    <ulist>
     <item> <p>SOAP 1.1</p> </item>
     <item> <p>WS-MetadataExchange</p> </item>
     <item> <p>WS-Eventing</p> </item>
     <item> <p>WS-EventDescription</p> </item>
     <item> <p>WS-MakeConnection</p> </item>
     <item> <p>WS-Policy</p> </item>
     <item> <p>WS-Transfer</p> </item>
     <item> <p>WS-Fragment</p> </item>
     <item> <p>WS-Enumeration</p> </item>
     <item> <p>WS-SOAPAssertions</p> </item>
     <item> <p>WSDL 1.1</p> </item>
    </ulist>
   </div2>

   <div2 id="namespaces">
    <head>XML Namespaces</head>

    <p> 
     <specref ref="XMLNS"/> lists XML namespaces that are used in this 
     specification. The choice of any namespace prefix is arbitrary and 
     not semantically significant.
    </p>

    <table id="XMLNS" border="1">
     <caption> Prefixes and XML namespaces used in this specification </caption>

     <tbody>
      <tr>
       <th align="left"> Prefix </th>
       <th align="left"> XML Namespaces </th>
       <th align="left"> Specification(s) </th>
      </tr>
      <tr>
       <td> s </td>
       <td> (Either SOAP 1.1 or 1.2) </td> 
       <td> (Either SOAP 1.1 or 1.2) </td> 
      </tr>
      <tr>
       <td> s11 </td>
       <td> http://schemas.xmlsoap.org/soap/envelope/ </td> 
       <td> <bibref ref="SOAP11"/> </td> 
      </tr>
      <tr>
       <td> s12 </td>
       <td> http://www.w3.org/2003/05/soap-envelope </td> 
       <td> <bibref ref="SOAP12"/> </td> 
      </tr>
      <tr>
       <td> xsd </td>
       <td> http://www.w3.org/2001/XMLSchema </td> 
       <td> <bibref ref="XMLSchema1"/> </td> 
      </tr>
      <tr>
       <td> wsdl </td>
       <td> http://schemas.xmlsoap.org/wsdl/ </td> 
       <td> <bibref ref="WSDL11"/> </td> 
      </tr>
      <tr>
       <td> wsa </td>
       <td> http://www.w3.org/2005/08/addressing </td> 
       <td> <bibref ref="AddrCore"/> </td> 
      </tr>
      <tr>
       <td> wse </td>
       <td> http://www.w3.org/2011/03/ws-evt </td> 
       <td> <bibref ref="Eventing"/> </td> 
      </tr>
      <tr>
       <td> evd </td>
       <td> http://www.w3.org/2011/03/ws-evd </td> 
       <td> <bibref ref="EventDescriptions"/> </td> 
      </tr>
      <tr>
       <td> wsen </td>
       <td> http://www.w3.org/2011/03/ws-enu </td> 
       <td> <bibref ref="Enumeration"/> </td> 
      </tr>
      <tr>
       <td> wsf </td>
       <td> http://www.w3.org/2011/03/ws-fra </td> 
       <td> <bibref ref="Fragment"/> </td> 
      </tr>
      <tr>
       <td> mex </td>
       <td> http://www.w3.org/2011/03/ws-mex </td> 
       <td> <bibref ref="MetadataExchange"/> </td> 
      </tr>
      <tr>
       <td> wst </td>
       <td> http://www.w3.org/2011/03/ws-tra </td> 
       <td> <bibref ref="Transfer"/> </td> 
      </tr>
      <tr>
       <td> wss </td>
       <td> http://www.w3.org/2011/03/ws-sas </td> 
       <td> <bibref ref="SOAPAssertions"/> </td> 
      </tr>
      <tr>
       <td> sce </td>
       <td> http://www.w3.org/2002/ws/ra/test/scenario </td> 
       <td> This document </td> 
      </tr>
      <tr>
       <td> gpx </td>
       <td> http://www.topografix.com/GPX/1/1 </td> 
       <td> GPS eXchange Format </td> 
      </tr>
     </tbody>
    </table>
   </div2>

   <div2 id="preconditions">
    <head>Preconditions</head>
   </div2>
  </div1>

  <div1 id="notterms">
   <head>Notations and Terminology</head>

   <p>
    This section specifies the notations, namespaces, and
    terminology used in this specification.
   </p>

   <div2 id="conventions">
    <head>Notational Conventions</head>
 
    <p>
     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 <bibref ref="RFC2119"/>.
    </p>
   
    <p>
     This specification uses the following syntax to define
     normative outlines for messages:
    </p>

    <ulist>
     <item>
      <p>
       The syntax appears as an XML instance, but values in
       italics indicate data types instead of values.
      </p>
     </item>

     <item>
      <p>
       Characters are appended to elements and attributes to
       indicate cardinality:
      </p>

      <ulist>
       <item>
        <p>"?" (0 or 1)</p>
       </item>

       <item>
        <p>"*" (0 or more)</p>
       </item>

       <item>
        <p>"+" (1 or more)</p>
       </item>
      </ulist>
     </item>

     <item>
      <p>
       The character "|" is used to indicate a choice between
       alternatives.
      </p>
     </item>

     <item>
      <p>
       The characters "(" and ")" are used to indicate that contained items
       are to be treated as a group with respect to cardinality or choice.
      </p>
     </item>

     <item>
      <p>
       The characters "[" and "]" are used to call out references and
       property names.
      </p>
     </item>

     <item>
      <p>
       Ellipsis (i.e. "...") indicate a point of extensibility.
      </p>
     </item>
    </ulist>

   </div2>

  </div1>

  <div1 id="description">
   <head>Scenario Description</head>

   <p>
    This scenario presupposes a cetacean tracking system in which a number 
    of animals have been 'tagged' with devices that track their location. 
    These tags periodically communicate via satellite to a central system. 
    External systems can consume this information by using WS-Eventing to 
    subscribe to periodic notifications about the locations of the tags 
    and, presumably, the animals they are attached to. Systems may also
    query for the current data associated with an animal via WS-Enumeation,
    to enumerate the list of animals, or WS-Transfer/Fragment to 
    retrieve the information about one particular animal.  By using
    WS-MetadataExchange a client can determine which of the various
    WS-RA specifications are supported.
   </p>

   <p>
    A set of properties is maintained for each animal that is tagged.  
    The following properties are stored:
   </p>

   <table id="animal_props" border="1">
    <caption> Properties for each animal </caption>

    <tbody>
     <tr>
      <th align="left"> Property </th>
      <th align="left"> Description </th>
      <th align="left"> Example </th>
     </tr>
     <tr>
      <td> ID </td>
      <td> A GUID that uniquely identifies the animal </td> 
      <td> 13c76450-de3d-11df-85ca-0800200c9a66 </td> 
     </tr>
     <tr>
      <td> Name </td>
      <td> The name given to the animal </td> 
      <td> Howard </td> 
     </tr>
     <tr>
      <td> Birthdate </td>
      <td> The day on which the animal was born </td> 
      <td> 2006-12-08 </td> 
     </tr>
     <tr>
      <td> Gender </td>
      <td> The gender of the animal </td> 
      <td> Male </td> 
     </tr>
     <tr>
      <td> Family </td>
      <td> The Family of which the animal is a member </td> 
      <td> Eschrichtiidae </td> 
     </tr>
     <tr>
      <td> Genus </td>
      <td> The Genus of which the animal is a member </td> 
      <td> Eschrichtius </td> 
     </tr>
     <tr>
      <td> Species </td>
      <td> The Species of which the animal is a member </td> 
      <td> robustus </td> 
     </tr>
     <tr>
      <td> Current Location </td>
      <td> The current GPS location of the animal </td> 
      <td> </td> 
     </tr>
    </tbody>
   </table>

   <p>
    The XML representation of each tag will match the following
    pseudo-schema:
   </p>

   <example>
    <eg>&lt;sce:Animal ...>
  &lt;sce:ID> <emph>xs:string</emph> &lt;/sce:ID>
  &lt;sce:Name> <emph>xs:string</emph> &lt;/sce:Name>
  &lt;sce:Birthdate> <emph>xs:dateTime</emph> &lt;/sce:Birthdate>
  &lt;sce:Gender> <emph>xs:string</emph> &lt;/sce:Gender>
  &lt;sce:Family> <emph>xs:string</emph> &lt;/sce:Family>
  &lt;sce:Genus> <emph>xs:string</emph> &lt;/sce:Genus>
  &lt;sce:Species> <emph>xs:string</emph> &lt;/sce:Species>
  &lt;sce:CurrentLocation> <emph>xs:any</emph> &lt;/sce:CurrentLocation>
  &lt;sce:EPR> <emph>wsa:endpoint-reference to this Animal</emph> &lt;/sce:EPR> ?
  &lt;sce:History>
    &lt;sce:Entry Date="<emph>xs:date</emph>"? Who="<emph>xs:string</emph>"? ...> <emph>xs:string</emph> &lt;/sce:Entry> *
  &lt;sce:/History>
  <emph>xs:any</emph>
&lt;/sce:Animal> </eg>
   </example>

   <p>
    The location of the tags is expressed in GPS coordinates using the GPS 
    eXchange Format, an XML schema designed as a common GPS data format 
    for software applications. In addition to the basic GPS information 
    (latitude, longitude, elevation, and time), the Animal's
    XML represenation includes
    an ID that uniquely identifies the tag and, by inference, the animal 
    that the tag is attached to. 
   </p>

   <div2>
    <head>Predefined Animals/Tags</head>

    <p>
     At a minimum each service side implementation of this scenario
     MUST initially have at least the following animals/tags:
    </p>

    <ulist>
     <item> 
      <p>
       ID: -- system defined -- <phrase/>
       Name: Howard <phrase/>
       Birthdate: 12/08/2006 <phrase/>
       Gender: Male <phrase/>
       Family: Eschrichtiidae <phrase/>
       Genus: Eschrichtius <phrase/>
       Species: robustus <phrase/>
      </p>
     </item>
     <item> 
      <p>
       ID: -- system defined -- <phrase/>
       Name: Kerry <phrase/>
       Birthdate: 05/22/2008 <phrase/>
       Gender: Female <phrase/>
       Family: Delphinidae <phrase/>
       Genus: Orcinus <phrase/>
       Species: orca <phrase/>
      </p>
     </item>
     <item> 
      <p>
       ID: -- system defined -- <phrase/>
       Name: Oscar <phrase/>
       Birthdate: 03/01/2010 <phrase/>
       Gender: Male <phrase/>
       Family: Balaenopteridae <phrase/>
       Genus: Megaptera <phrase/>
       Species: novaeangliae <phrase/>
      </p>
     </item>
    </ulist>

   </div2>

   <div2 id="Events">
    <head>Events</head>

    <p>
     This scenario defines several events that MUST be generated if
     the service implementation supports WS-Eventing. The following
     events are defined:
    </p>

    <ulist>
     <item>
      <kw> NewAnimal </kw><phrase/>
      <p>
       Generated when a new Animal is added to the tracking system.
      </p>
     </item>
     <item>
      <kw> UpdateLocation </kw><phrase/>
      <p>
       Generated when an Animal's locationis updated. 
       While in the real world the frequency of this event might be 
       hourly or even daily, for the sake of feasibility we compress time 
       by a scale of 1/120 so that one hour in 'scenario time' is thirty 
       seconds in real-world time. The time data contained in the 
       notifications will reflect scenario time.
      </p>
     </item>
     <item>
      <kw> UpdateAnimal </kw><phrase/>
      <p>
       Generated when an Animal's data is updated in the tracking system.
       Note that this event is different from the updating of the
       GPS coordinate property. This event is sent when any other
       property (e.g. Name) is updated.
      </p>
     </item>
     <item>
      <kw> RemoveAnimal </kw><phrase/>
      <p> 
       Generated when an Animal is removed to the tracking system. 
      </p>
     </item>
    </ulist>

    <p>
     Each of the event that are generated will include the
     full XML represenation of the Animal within the Body of the event.
     An EventDescriptions document that 
     describes the structure of the event information within the 
     notifications can be found in <specref ref="evd"/>.
    </p>

   </div2>

   <div2>
    <head>Structure of Test Sections</head>
   
    <p>
     The following sections describe tests designed to exercise all the 
     mandatory and optional features of indicated specifications.
     Each of these tests is organized into four parts:
    </p>
 
    <ulist>
     <item>
      <p>
       An overview that describes the purpose of the test and the 
       salient features of the messages that are exchanged.
      </p>
     </item>
     <item>
      <p>
       An optional sequence diagram that illustrates the sequence of 
       events in the test.
      </p>
     </item>
     <item>
      <p>
       A list of criteria used to judge the success of the test.
      </p>
     </item>
     <item>
      <p>
       A conformance section that enumerates the conditions under which 
       conforming implementations are allowed to either not implement the 
       test or fail one or more of the success criteria.
      </p>
     </item>
    </ulist>
   </div2>

   <div2>
    <head>Scenario Header</head>

    <p>
     Some of the tests in this document require specialized logic
     by the service in order to create the situations described by
     the tests. This document defines a SOAP Header that can be used
     to convey which test is being executed, as well as any other
     additional information, to allow the service to perform the
     appropriate actions.
    </p>

    <p>
     The outline of this header is:
    </p>

    <example>
     <eg>&lt;sce:Scenario ...>
 &lt;sce:Test> x.y &lt;/sce:Test>
 &lt;sce:EndTime> <emph>xs:duration</emph> | <emph>xs:dateTime</emph> &lt;/sce:EndTime>
 ...
&lt;/sce:Scenario></eg>
    </example>

    <p>
     Where "x.y" is the test number. Certain tests define additional
     elements that might appear as children of the sce:Scenario
     element.
    </p>
   </div2>
 
  </div1>

  <div1>
   <head>WS-MetadataExchange Tests</head>

   <p>
    This sections describes the tests for WS-MetadataExchange. These tests
    are focused on testing the protocol itself and not necessarily on the
    metadata transported via the protocol.
   </p>

   <div2 tocStop='true'>
    <head>GetWSDL Test</head>

    <p>
     This test verifies the ability to retrieve the WSDL associated with
     a WS-MetadataExchange compliant service.
    </p>

    <div3>
     <head>Sequence</head>

     <p>
      ...
     </p>
    </div3>

    <div3>
     <head>Success Criteria</head>

     <ulist>
      <item>
       <p>
        Receipt of a valid GetWSDL message by the service.
       </p>
      </item>
      <item>
       <p>
        Receipt of a valid GetWSDLResponse message by the client.
       </p>
      </item>
     </ulist>
    </div3>

    <div3>
     <head>Conformance</head>

     <p>
      A conforming service MUST respond to the GetWSDL request with
      a GetWSDLResponse message.  However, it MAY either include the
      WSDL of the service or no child elements at all as children of
      the GetWSDLResponse element.
     </p>
    </div3>
   </div2>

   <div2 tocStop='true'>
    <head>Empty GetMetadata Test</head>

    <p>
     This test verifies the ability to retrieve Metadata using the
     GetMetadata operation.  In this test the GetMetadata request will
     not contain any child elements. In other words, the client is asking
     for all available metadata to be returned.
    </p>

    <div3>
     <head>Sequence</head>

     <p>
      ...
     </p>
    </div3>

    <div3>
     <head>Success Criteria</head>

     <ulist>
      <item>
       <p>
        Receipt of a valid (empty) GetMetadata message by the service.
       </p>
      </item>
      <item>
       <p>
        Receipt of a valid GetMetadataResponse message by the client.
       </p>
      </item>
     </ulist>
    </div3>

    <div3>
     <head>Conformance</head>

     <p>
      A conforming service MUST respond to the GetMetadata request with 
      a GetMetadataResponse message. The exact Metadata returned, if any,
      and the content form of the Metadata will vary depending on the
      availble metadata from the service. At a minimum it is expected
      that the WSDL of the service MUST be returned.
     </p>
    </div3>
   </div2>

   <div2 tocStop='true'>
    <head>WSDL GetMetadata Test</head>

    <p>
     This test verifies the ability to retrieve Metadata using the
     GetMetadata operation.  In this test the client will specifically
     ask for the WSDL of the service.
    </p>

    <div3>
     <head>Sequence</head>

     <p>
      ...
     </p>
    </div3>

    <div3>
     <head>Success Criteria</head>

     <ulist>
      <item>
       <p>
        Receipt of a valid GetMetadata message, requesting the WSDL,
        by the service.
       </p>
      </item>
      <item>
       <p>
        Receipt of a valid GetMetadataResponse message, containing the
        WSDL, by the client.
       </p>
      </item>
     </ulist>
    </div3>

    <div3>
     <head>Conformance</head>

     <p>
      A conforming service MUST respond to the GetMetadata request with 
      a GetMetadataResponse message. The response message MUST contain
      the WSDL of the service.
     </p>
    </div3>

    <div3>
     <head>Variations</head>

     <olist>
      <item>
       <p>
        The GetMetadata request contains a Dialect@Content attribute set to
        'EPR'. The response will either be a MetadataSection with a
        reference/EPR to the WSDL, or no MetadataSecton at all for this
        Type/Identifier/Content triplet.
       </p>
      </item>
      <item>
       <p>
        The GetMetadata request contains a Dialect@Content attribute set to
        'URI'. The response will either be a MetadataSection with a
        reference/URI to the WSDL, or no MetadataSecton at all for this
        Type/Identifier/Content triplet.
       </p>
      </item>
      <item>
       <p>
        The GetMetadata request contains a Dialect@Content attribute set to
        'Metadata'. The response will either be a MetadataSection with a
        the WSDL, or no MetadataSecton at all for this
        Type/Identifier/Content triplet.
       </p>
      </item>
      <item>
       <p>
        The GetMetadata request contains a Dialect@Content attribute set to
        'Any'. The response will either be a set of MetadataSections with a
        references to the WSDL, or the WSDL itself. Note that the exact
        set is service specific and can be empty.
       </p>
      </item>
      <item>
       <p>
        The GetMetadata request contains a Dialect@Content attribute set to
        'All'. The response will either be a set of MetadataSections with a
        references to the WSDL, or the WSDL itself. Note, that the result
        will contain all possible forms of the WSDL. The result will include
        all forms of WSDL returned by the previous variations.
       </p>
      </item>
      <item>
       <p>
        The GetMetadata request contains a Dialect@Identifier attribute. The
        result will only contain WSDL documents that match this
        value.
       </p>
      </item>
      <item>
       <p>
        The GetMetadata request contains a Dialect@Identifier attribute. The
        result will only contain WSDL documents that match this
        value.
       </p>
      </item>
      <item>
       <p>
        The GetMetadata request contains a GetMetadata@Content attribute
        but the Dialect@Content attribute is absent. The result should
        match the @Content value specified.
       </p>
      </item>
      <item>
       <p>
        The GetMetadata request contains a GetMetadata@Content attribute
        set to an unknown URI. The result should not contain any
        metadata.
       </p>
      </item>
     </olist>
    </div3>
   </div2>

   <div2 tocStop='true'>
    <head>Unknown GetMetadata Test</head>

    <p>
     This test verifies the ability ask for unknown Metadata using the
     GetMetadata operation.  In this test the client will specifically
     ask for an unknown Metadata type and the service is expected to
     ignore the request.
    </p>

    <div3>
     <head>Sequence</head>

     <p>
      ...
     </p>
    </div3>

    <div3>
     <head>Success Criteria</head>

     <ulist>
      <item>
       <p>
        Receipt of a valid GetMetadata message, requesting an unknown Metadata
        type, by the service.
       </p>
      </item>
      <item>
       <p>
        Receipt of a valid GetMetadataResponse message, containing 
        no MetadataSections, by the client.
       </p>
      </item>
     </ulist>
    </div3>

    <div3>
     <head>Conformance</head>

     <p>
      A conforming service MUST respond to the GetMetadata request with 
      a GetMetadataResponse message. The response message MUST contain
      zero MetadataSection elements.
     </p>
    </div3>
   </div2>

   <div2 tocStop='true'>
    <head>MultiMetadata GetMetadata Test</head>

    <p>
     This test verifies the ability ask for multiple types of Metadata at the
     same time using the GetMetadata operation.  In this test the client 
     will specifically ask for multiple types of Metadata (both known and 
     unknown types) and the service is expected to process each type
     appropriately.
    </p>

    <div3>
     <head>Sequence</head>

     <p>
      ...
     </p>
    </div3>

    <div3>
     <head>Success Criteria</head>

     <ulist>
      <item>
       <p>
        Receipt of a valid GetMetadata message by the service. The request
        MUST contain more than one mex:Dialect child element, and MUST
        contain at least one known and one unknown Metadata Type request.
       </p>
      </item>
      <item>
       <p>
        Receipt of a valid GetMetadataResponse message by the client.
       </p>
      </item>
     </ulist>
    </div3>

    <div3>
     <head>Conformance</head>

     <p>
      A conforming service MUST respond to the GetMetadata request with 
      a GetMetadataResponse message. The response MUST contain the appropriate
      MetadataSections based on the request.
     </p>
    </div3>
   </div2>

   <div2 tocStop='true'>
    <head>PutMetadata Test</head>

    <p>
     This test verifies the ability to update Metadata using the
     PutMetadata operation. In this case the client will update the
     WS-EventDescriptions metadata associated with the Tracker service.
    </p>

    <div3>
     <head>Sequence</head>

     <p>
      ...
     </p>
    </div3>

    <div3>
     <head>Success Criteria</head>

     <ulist>
      <item>
       <p>
        Receipt of a valid PutMetadata message by the service.
       </p>
      </item>
      <item>
       <p>
        Receipt of a valid PutMetadataResponse message by the client.
       </p>
      </item>
     </ulist>
    </div3>

    <div3>
     <head>Conformance</head>

     <p>
      A conforming service MUST respond to the PutMetadata request with 
      a PutMetadataResponse message. Each service will decide which type
      of Metadata it will allow clients to update, as will as the content
      form.
     </p>
    </div3>
   </div2>


   <div2 tocStop='true'>
    <head>DeleteMetadata Test</head>

    <p>
     This test verifies the ability to update Metadata using the
     DeleteMetadata operation. The client will request the deletion
     of the WS-EventingDescription metadata.
    </p>

    <div3>
     <head>Sequence</head>

     <p>
      ...
     </p>
    </div3>

    <div3>
     <head>Success Criteria</head>

     <ulist>
      <item>
       <p>
        Receipt of a valid DeleteMetadata message by the service.
       </p>
      </item>
      <item>
       <p>
        Receipt of a valid DeleteMetadataResponse message by the client.
       </p>
      </item>
     </ulist>
    </div3>

    <div3>
     <head>Conformance</head>

     <p>
      A conforming service MUST respond to the DeleteMetadata request with 
      a DeleteMetadataResponse message. Each service will decide which type
      of Metadata it will allow clients to delete.
     </p>
    </div3>
   </div2>

  </div1>

  <div1 id="wsevt-tests">
   <head>WS-Eventing Tests</head>

   <p>
    This section describes the tests for WS-Eventing except for those 
    (such as the use of EventDescriptions or Notification WSDLs) that 
    affect only the process of developing one or more of the components 
    of a WS-Eventing-based system.
   </p>

   <div2 tocStop='true'>
    <head>Basic Test</head>

    <p>
     This test verifies the ability to subscribe and receive notifications. 
     The initial Subscribe request has the following features:
    </p>

    <ulist>
     <item>
      <p>
       expiration time chose by Event Source/Subscription Manager -
       ie. no Expires
      </p>
     </item>
     <item>
      <p>no EndTo EPR</p>
     </item>
     <item>
      <p>no Filters</p>
     </item>
     <item>
      <p>unwrapped notifications - ie. no Format element</p>
     </item>
    </ulist>

    <div3>
     <head>Sequence</head>

     <p>
      The following diagram illustrates the sequence of messages for the 
      Basic Test.
     </p>

     <graphic source="scenario/basic_test.jpg"/>
    </div3>

    <div3>
     <head>Success Criteria</head>

     <ulist>
      <item>
       <p>
        Receipt of a valid Subscribe message by the Event Source.
       </p>
      </item>
      <item>
       <p>
        Receipt of a valid SubscribeResponse message by Subscriber.
       </p>
      </item>
      <item>
       <p>
        Receipt of one or more unwrapped Notifications by the Event Sink.
       </p>
      </item>
      <item>
       <p>
        Receipt of a valid Unsubscribe message by the Subscription Manager.
       </p>
      </item>
      <item>
       <p>
        Receipt of a valid UnsubscribeResponse message by the Subscriber.
       </p>
      </item>
     </ulist>
    </div3>

    <div3>
     <head>Conformance</head>

     <p>
      Because this test involves only operations and elements that are 
      required, there are no allowable failure cases.
     </p>

     <p>
      Any failure to meet the above success criteria indicates that either,
      or both, of the implementations participating in the test do not 
      conform to WS-Eventing.
     </p>

     <p>
      An implementation that is unable to support this test does not 
      conform to WS-Eventing.
     </p>

    </div3>

    <div3>
     <head>Variations</head>

     <olist>
      <item>
       <p>
        The Subscribe request contains a Format element with the
        Unwrapped URI. 
        The results of this variant should be the same as specified above.
       </p>
      </item>
      <item>
       <p>
        The Subscribe request contains unknown (random) elements
        within the Delivery element.
        The results of this variant should be the same as specified above.
       </p>
      </item>
      <item>
       <p>
        The Subscribe request contains an Expires element with
        a duration value of "PT0S".
        The results of this variant should be the same as specified above.
       </p>
      </item>
      <item>
       <p>
        The Subscribe request contains an Expires element with
        a large duration value - e.g. "PT100000000S".
        The results of this variant should be the same as specified above.
       </p>
      </item>
     </olist>
    </div3>
   </div2>

   <div2 tocStop="true">
    <head>Wrapped Notifications</head>

    <p>
     This test verifies the simple ability to subscribe and receive 
     wrapped notifications. The initial Subscribe request has the 
     following features:
    </p>

    <ulist>
     <item>
      <p>expiration time chosen by Event Source/Subscription Manager</p>
     </item>
     <item>
       <p>no EndTo EPR</p>
     </item>
     <item>
       <p>no Filters</p>
     </item>
     <item>
       <p>wrapped notifications</p>
     </item>
    </ulist>

    <div3>
     <head>Sequence</head>

     <p>
      The messaging sequence for this test is identical to that of the 
      Basic Test.
     </p>
    </div3>

    <div3>
     <head>Success Criteria</head>
     <ulist>
      <item>
       <p>
        Receipt of a valid Subscribe message by the Event Source.
       </p>
      </item>
      <item>
       <p>
        Receipt of a valid SubscribeResponse message by Subscriber.
       </p>
      </item>
      <item>
       <p>
        Receipt of one or more wrapped Notifications by the Event Sink.
       </p>
      </item>
      <item>
       <p>
        Receipt of a valid Unsubscribe message by the Subscription Manager.
       </p>
      </item>
      <item>
       <p>
        Receipt of a valid UnsubscribeResponse message by the Subscriber.
       </p>
      </item>
     </ulist>
    </div3>

    <div3>
     <head>Conformance</head>

     <p>
      Because this test involves the use of the optional wrapped delivery 
      format, there are a number of failure cases that fall within the 
      boundaries of conforming behavior.
     </p>
     <p>
      A conforming Subscriber/Event Sink MAY NOT be capable of implementing 
      this test due to its inability to support wrapped notifications.
     </p>
     <p>
      A conforming Event Source MAY respond to the initial Subscribe 
      request with a wse:DeliveryFormatRequestUnavailable fault.
     </p>
    </div3>
   </div2>

   <div2 tocStop="true">
    <head>Duration Expiration Test</head>
    
    <p>
     This test verifies the correct implementation of the expiration feature 
     on the Event Source/Subscription Manager. The initial Subscribe message 
     has the following features:
    </p>

    <ulist>
     <item>
      <p>
       (short) expiration time chosen by Subscriber as xs:duration
      </p>
     </item>
     <item>
      <p>
       no EndTo EPR
      </p>
     </item>
     <item>
      <p>
       no Filters
      </p>
     </item>
     <item>
      <p>
       unwrapped notifications
      </p>
     </item>
    </ulist>

    <div3>
     <head>Sequence</head>

     <p>
      The following diagram illustrates the sequence of messages for the 
      Duration Expiration Test. Note that the Subscriber waits until the 
      expiration time has passed before sending the GetStatus request.
     </p>

     <graphic source="scenario/duration_expiration_test.jpg"/>
    </div3>

    <div3>
     <head>Success Criteria</head>

     <ulist>
      <item>
       <p>
        Receipt of a valid Subscribe message by the Event Source.
       </p>
      </item>
      <item>
       <p>
        Receipt of a valid SubscribeResponse message by Subscriber.
       </p>
      </item>
      <item>
       <p>
        Receipt of one or more unwrapped Notifications by the Event Sink.
       </p>
      </item>
      <item>
       <p>
        Receipt of a valid GetStatus message by the Subscription Manager.
       </p>
      </item>
      <item>
       <p>
        Receipt, by the Subscriber, of either the 'UnknownSubscription'
        fault (defined by Section 6.10 of WS-Eventing), a SOAP fault that 
        indicates that the Subscription Manager no longer exists, or an 
        HTTP error (i.e. '404') that indicates the Subscription Manager no 
        longer exists
       </p>
      </item>
     </ulist>
    </div3>

    <div3>
     <head>Conformance</head>

     <p>
      Because this test involves the use of the optional wse:Expires 
      element, a conforming Subscriber MAY NOT be capable of implementing 
      this test due to its inability to support wse:Expires.
     </p>
     <p>
      Note that, because wse:Expires is sender-optional and support for 
      xs:duration is required, there are no valid reasons for a 
      conforming Event Source/Subscription Manager implementation to either 
      be unable to implement this test or to fail to meet one of the 
      defined success criteria.
     </p>
    </div3>

    <div3>
     <head>Variations</head>

     <ulist>
      <item>
       <p>
        The results of this variant should be the same as specified above.
       </p>
      </item>
      <item>
       <p>
        The results of this variant should be the same as specified above.
       </p>
      </item>
     </ulist>
    </div3>
   </div2>

   <div2 tocStop="true">
    <head>Specific Time Expiration Test</head>

    <p>
     This test verifies the correct implementation of the expiration feature 
     on the Event Source/Subscription Manager. The initial Subscribe 
     request has the following features:
    </p>

    <ulist>
     <item>
      <p>
       (short) expiration time chosen by Subscriber as xs:dateTime
      </p>
     </item>
     <item>
      <p>
       no EndTo EPR
      </p>
     </item>
     <item>
      <p>
       no Filters
      </p>
     </item>
     <item>
      <p>
       unwrapped notifications
      </p>
     </item>
    </ulist>

    <div3>
     <head>Sequence</head>

     <p>
      The messaging sequence for this test is identical to that of the 
      Duration Expiration Test.
     </p>
    </div3>

    <div3>
     <head>Success Criteria</head>

     <ulist>
      <item>
       <p>
        Receipt of a valid Subscribe message by the Event Source.
       </p>
      </item>
      <item>
       <p>
        Receipt of a valid SubscribeResponse message by Subscriber.
       </p>
      </item>
      <item>
       <p>
        Receipt of one or more unwrapped Notifications by the Event Sink.
       </p>
      </item>
      <item>
       <p>
        Receipt of a valid GetStatus message by the Subscription Manager.
       </p>
      </item>
      <item>
       <p>
        Receipt, by the Subscriber, of either the 'UnknownSubscription'
        fault (defined by Section 6.10 of WS-Eventing), a SOAP fault that 
        indicates that the Subscription Manager no longer exists, or 
        an HTTP error (i.e. '404') that indicates the Subscription 
        Manager no longer exists.
       </p>
      </item>
     </ulist>
    </div3>

    <div3>
     <head>Conformance</head>

     <p>
      Because this test involves the use of both the optional wse:Expires 
      element and the optional xs:dateTime type, there are a number of 
      failure cases that fall within the boundaries of conforming behavior.
     </p>
     <p>
      A conforming Subscriber MAY NOT be capable of implementing this test 
      either due to its inability to support the wse:Expires element or 
      the xs:dateTime type.
     </p>
     <p>
      A conforming Event Source MAY respond to the initial Subscribe 
      request with a wse:UnsupportedExpirationType fault.
     </p>
    </div3>
   </div2>

   <div2 tocStop="true">
    <head>Best Effort Expiration Test</head>

    <p>
     This test verifies the correct implementation of the 'best effort'
     expiration feature on the Event Source/Subscription Manager. The 
     initial subscription has the following features:
    </p>

    <ulist>
     <item>
      <p>
       expiration time chosen by Subscriber as xs:duration with 
       @BestEffort ='true'
      </p>
     </item>
     <item>
      <p>
       no EndTo EPR
      </p>
     </item>
     <item>
      <p>
       no Filters
      </p>
     </item>
     <item>
      <p>
       unwrapped notifications
      </p>
     </item>
    </ulist>

    <div3>
     <head>Sequence</head>
     
     <p>
      The messaging sequence for this test is identical to that of the 
      Duration Expiration Test.
     </p>
    </div3>

    <div3>
     <head>Success Criteria</head>

     <ulist>
      <item>
       <p>
        Receipt of a valid Subscribe message by the Event Source.
       </p>
      </item>
      <item>
       <p>
        Receipt of a valid SubscribeResponse message by Subscriber.
       </p>
      </item>
      <item>
       <p>
        Receipt of one or more unwrapped Notifications by the Event Sink.
       </p>
      </item>
      <item>
       <p>
        Receipt of a valid GetStatus message by the Subscription Manager.
       </p>
      </item>
      <item>
       <p>
        Receipt, by the Subscriber, of either the 'UnknownSubscription'
        fault (defined by Section 6.10 of WS-Eventing), a SOAP fault that 
        indicates that the Subscription Manager no longer exists, or an 
        HTTP error (i.e. '404') that indicates the Subscription Manager 
        no longer exists.
       </p>
      </item>
     </ulist>
    </div3>

    <div3>
     <head>Conformance</head>

     <p>
      Because this test involves the use of both the optional wse:Expires 
      element and the optional BestEffort attribute, there are a 
      number of failure cases that fall within the boundaries of 
      conforming behavior.
     </p>
     <p>
      A conforming Subscriber MAY NOT be capable of implementing this test 
      either due to its inability to support the wse:Expires element or 
      the BestEffort attribute.
     </p>
     <p>
      Note that, because both wse:Expires and BestEffort are 
      sender-optional, there are no valid reasons for a conforming Event 
      Source/Subscription Manager implementation to either be unable to 
      implement this test or to fail to meet one of the defined 
      success criteria.
     </p>
    </div3>

   </div2>

   <div2 tocStop="true">
    <head>Renew Test</head>

    <p>
     This test verifies the ability of a Subscriber to update the 
     expiration time of a Subscription via a Renew request. The initial 
     Subscribe request has the following features:
    </p>

    <ulist>
     <item>
      <p>
       (short) expiration time chosen by Subscriber as xs:duration
      </p>
     </item>
     <item>
      <p>
       no EndTo EPR
      </p>
     </item>
     <item>
      <p>
       no Filter
      </p>
     </item>
     <item>
      <p>
       unwrapped notifications
      </p>
     </item>
    </ulist>

    <p>
     The Renew request has the following features:
    </p>

    <ulist>
     <item>
      <p>
       (short) expiration time chosen by Subscriber as xs:duration
      </p>
     </item>
    </ulist>

    <div3>
     <head>Sequence</head>

     <p>
      The following diagram illustrates the sequence of messages for 
      the Renew Test.
     </p>

     <graphic source="scenario/renew_test.jpg"/>
    </div3>

    <div3>
     <head>Success Criteria</head>

     <ulist>
      <item>
       <p>
        Receipt of a valid Subscribe message by the Event Source.
       </p>
      </item>
      <item>
       <p>
        Receipt of a valid SubscribeResponse message by Subscriber.
       </p>
      </item>
      <item>
       <p>
        Receipt of one or more wrapped Notifications by the Event Sink.
       </p>
      </item>
      <item>
       <p>
        Prior to the expiration time elapsing, receipt of a valid Renew 
        message by the Subscription Manager.
       </p>
      </item>
      <item>
       <p>
        Receipt of a valid RenewResponse message by the Subscriber.
       </p>
      </item>
      <item>
       <p>
        Subsequent to the Renew/RenewResponse exchange, receipt of one or 
        more wrapped Notifications by the Event Sink.
       </p>
      </item>
      <item>
       <p>
        Receipt of a valid Unsubscribe message by the Subscription Manager.
       </p>
      </item>
      <item>
       <p>
        Receipt of a valid UnsubscribeResponse message by the Subscriber.
       </p>
      </item>
     </ulist>
    </div3>

    <div3>
     <head>Conformance</head>

     <p>
      Because this test involves the use of the optional wse:Expires element,
      a conforming Subscriber MAY NOT be capable of implementing this test 
      due to its inability to support wse:Expires.
     </p>
     <p>
      Note that, because wse:Expires is sender-optional and support for 
      xs:duration is required, there are no valid reasons for a conforming 
      Event Source/Subscription Manager implementation to either be unable 
      to implement this test or to fail to meet one of the defined 
      success criteria.
     </p>
    </div3>

   </div2>

   <div2 tocStop="true">
    <head>SubscriptionEnd Test</head>

    <p>
     This test verifies the correct implementation of the SubscriptionEnd 
     feature for both the Subscription Manager and the target of the 
     SubscriptionEnd message. The initial Subscribe request has the 
     following features:
    </p>

    <ulist>
     <item>
      <p>
       expiration time chosen by Event Source/Subscription Manager
      </p>
     </item>
     <item>
      <p>
       EndTo EPR
      </p>
     </item>
     <item>
      <p>
       no Filters
      </p>
     </item>
     <item>
      <p>
       unwrapped notifications
      </p>
     </item>
    </ulist>

    <p>
     Note: this test requires the client to include an additional
     element in the sce:Scenario header:
    </p>

    <example>
     <eg>&lt;sce:EndTime> xs:duration | xs:dateTime &lt;/sce:EndTime></eg>
    </example>

    <p>
     The duration/time specified by this element indicates when the
     event source is to "unexceptedly" terminate the subscription, thus
     causes the SubscriptionEnd message to be sent. The value specified
     in this element must be less than the expires time specified in the
     Subscribe request message.
    </p>

    <div3>
     <head>Sequence</head>

     <p>
      The following diagram illustrates the sequence of messages for the 
      SubscriptionEnd Test.
     </p>

     <graphic source="scenario/subscriptionend.jpg"/>
    </div3>

    <div3>
     <head>Success Criteria</head>

     <ulist>
      <item>
       <p>
        Receipt of a valid Subscribe message by the Event Source.
       </p>
      </item>
      <item>
       <p>
        Receipt of a valid SubscribeResponse message by the Subscriber.
       </p>
      </item>
      <item>
       <p>
        Receipt of one or more wrapped Notifications by the Event Sink.
       </p>
      </item>
      <item>
       <p>
        Receipt of a valid SubscriptionEnd message by the Subscriber 
        (or whomever is indicated by the EndTo EPR).
       </p>
      </item>
     </ulist>
    </div3>

    <div3>
     <head>Conformance</head>

     <p>
      Because this test involves the use of the optional wse:EndTo 
      element there are a number of failure cases that fall within the 
      boundaries of conforming behavior.
     </p>
     <p>
      A conforming Subscriber/Event Sink MAY NOT be capable of implementing 
      this test due to its inability to support the wse:EndTo element or 
      the SubscriptionEnd message.
     </p>
     <p>
      A conforming Event Source MAY respond to the initial Subscribe 
      request with a wse:EndToNotSupported fault.
     </p>
    </div3>
   </div2>

   <div2 tocStop="true">
    <head>Filter Test - XPath 1.0</head>

    <p>
     This test verifies the ability of the Event Source/Subscription Manager 
     to correctly implement  XPath 1.0 filters. The initial Subscribe 
     request has the following features:
    </p>

    <ulist>
     <item>
      <p>
       expiration time chosen by Event Source/Subscription Manager
      </p>
     </item>
     <item>
      <p>
       no EndTo EPR
      </p>
     </item>
     <item>
      <p>
       Filter in dialect 'http://www.w3.org/2010/08/ws-evt/Dialects/XPath10'
       that selects those events that apply to the animal named 'Kerry':
       <phrase/>
       //*[local-name()='Name']/node()='Kerry'
      </p>
     </item>
     <item>
      <p>
       unwrapped notifications
      </p>
     </item>
    </ulist>

    <div3>
     <head>Sequence</head>
 
     <p>
      The messaging sequence for this test is identical to that of the 
      Basic Test. The difference between this test and the Basic Test is 
      that only Notifications applying to the animal named 'Kerry'
      are received by the Event Sink.
     </p>
    </div3>

    <div3>
     <head>Success Criteria</head>

     <ulist>
      <item>
       <p>
        Receipt of a valid Subscribe message by the Event Source.
       </p>
      </item>
      <item>
       <p>
        Receipt of a valid SubscribeResponse message by Subscriber.
       </p>
      </item>
      <item>
       <p>
        Receipt of one or more unwrapped Notifications for the animal
        named 'Kerry' by the Event Sink.
       </p>
      </item>
      <item>
       <p>
        Receipt of a valid Unsubscribe message by the Subscription Manager.
       </p>
      </item>
      <item>
       <p>
        Receipt of a valid UnsubscribeResponse message by the Subscriber.
       </p>
      </item>
     </ulist>
    </div3>

    <div3>
     <head>Conformance</head>

     <p>
      Because this test involves the use of the optional wse:Filter 
      element there are a number of failure cases that fall within the 
      boundaries of conforming behavior.
     </p>
     <p>
      A conforming Subscriber/Event Sink MAY NOT be capable of implementing 
      this test due to its inability to support the wse:Filter element 
      or the XPath 1.0 dialect.
     </p>
     <p>
      A conforming Event Source MAY respond to the initial Subscribe 
      request with either a wse:FilteringNotSupported fault or a 
      wse:FilteringRequestedUnavailable fault.
     </p>
    </div3>

   </div2>

   <div2 tocStop="true">
    <head>Filter Test - XPath 2.0</head>

    <p>
     This test verifies the ability of the Event Source/Subscription 
     Manager to correctly implement  XPath 2.0 filters. The initial 
     Subscribe request has the following features:
    </p>

    <ulist>
     <item>
      <p>
       expiration time chosen by Event Source/Subscription Manager
      </p>
     </item>
     <item>
      <p>
       no EndTo EPR
      </p>
     </item>
     <item>
      <p>
       Filter in dialect 'http://www.w3.org/2010/08/ws-evt/Dialects/XPath20'
       that selects those events that apply to the animal named 'Oscar':
       <phrase/>
       //*[local-name()='Name']/node()='Oscar'
      </p>
     </item>
     <item>
      <p>
       unwrapped notifications
      </p>
     </item>
    </ulist>

    <div3>
     <head>Sequence</head>

     <p>
      The messaging sequence for this test is identical to that of the 
      Basic Test. The difference between this test and the Basic Test is 
      that only Notifications applying to the animal named 'Oscar' 
      are received by the Event Sink.
     </p>
    </div3>

    <div3>
     <head>Success Criteria</head>

     <ulist>
      <item>
       <p>
        Receipt of a valid Subscribe message by the Event Source.
       </p>
      </item>
      <item>
       <p>
        Receipt of a valid SubscribeResponse message by Subscriber.
       </p>
      </item>
      <item>
       <p>
        Receipt of one or more unwrapped Notifications for the animal
        named 'Oscar' by the Event Sink.
       </p>
      </item>
      <item>
       <p>
        Receipt of a valid Unsubscribe message by the Subscription Manager.
       </p>
      </item>
      <item>
       <p>
        Receipt of a valid UnsubscribeResponse message by the Subscriber.
       </p>
      </item>
     </ulist>
    </div3>

    <div3>
     <head>Conformance</head>

     <p>
      Because this test involves the use of the optional wse:Filter element 
      there are a number of failure cases that fall within the boundaries 
      of conforming behavior.
     </p>
     <p>
      A conforming Subscriber/Event Sink MAY NOT be capable of 
      implementing this test due to its inability to support the 
      wse:Filter element or the XPath 2.0 dialect.
     </p>
     <p>
      A conforming Event Source MAY respond to the initial Subscribe 
      request with either a wse:FilteringNotSupported fault or a 
      wse:FilteringRequestedUnavailable fault.
     </p>
    </div3>
   </div2>

   <div2 tocStop="true">
    <head>Non-Addressable Event Sink Test</head>

    <p>
     This test verifies the ability to subscribe and receive notifications 
     in an environment in which the Event Sink cannot accept connections 
     from systems outside its network (i.e. the Event Sink is 
     non-addressable). The facilities described by WS-MakeConnection are 
     used by the Event Sink to poll for Notifications from the Event Source.
    </p>

    <p>
     The initial Subscribe request has the following features:
    </p>

    <ulist>
     <item>
      <p>
       expiration time chose by Event Source/Subscription Manager
      </p>
     </item>
     <item>
      <p>
       no EndTo EPR
      </p>
     </item>
     <item>
      <p>
       no Filters
      </p>
     </item>
     <item>
      <p>
       unwrapped notifications
      </p>
     </item>
     <item>
      <p>
       the value of wse:Delivery/wse:NotifyTo/wsa:Address is an instance of 
       the MakeConnection anonymous URI (e.g. 
       http://docs.oasis-open.org/ws-rx/wsmc/200702/anonymous?id=550e8400-e29b-11d4-a716-446655440000).
      </p>
     </item>
    </ulist>
   </div2>

   <div3>
    <head>Sequence</head>

    <p>
     The following diagram illustrates the sequence of messages for the 
     Non-Addressable Event Sink Test.
    </p>

    <graphic source="scenario/non_addressable_event_sink.jpg"/>

    <p>
     Note that the MakeConnection requests that follow both the Subscribe 
     and the Unsubscribe requests are optional. It may happen that the 
     SubscribeResponse and UnsubscribeResponse are both transmitted on 
     the back-channel of their corresponding requests.
    </p>
   </div3>

   <div3>
    <head>Success Criteria</head>

    <ulist>
     <item>
      <p>
       Receipt of a valid Subscribe message by the Event Source.
      </p>
     </item>
     <item>
      <p>
       Receipt of a valid SubscribeResponse message by Subscriber.
      </p>
     </item>
     <item>
      <p>
       Receipt of one or more unwrapped Notifications by the Event Sink.
      </p>
     </item>
     <item>
      <p>
       Receipt of a valid Unsubscribe message by the Subscription Manager.
      </p>
     </item>
     <item>
      <p>
       Receipt of a valid UnsubscribeResponse message by the Subscriber.
      </p>
     </item>
    </ulist>
   </div3>

   <div3>
    <p>
     Because this test involves the use of WS-MakeConnection there are 
     a number of failure cases that fall within the boundaries of 
     conforming behavior.
    </p>
    <p>
     A conforming Subscriber/Event Sink MAY NOT be capable of 
     implementing this test due to its inability to support 
     WS-MakeConnection.
    </p>
    <p>
     A conforming Event Source MAY respond to the initial Subscribe 
     request with a wse:UnusableEPR fault. However, because WS-Eventing 
     does not require Event Sources to validate the NotifyTo EPR at 
     subscribe-time, it MAY be that the Subscribe request succeeds 
     (although the SubscribeResponse is never delivered to the 
     Subscriber) but Notifications are simply not delivered to the 
     Event Sink.
    </p>
    <p>
     Because Event Sinks and Subscription Managers are not required 
     to implment WS-MakeConnection, the MakeConnection requests MAY 
     elicit a wsa:ActionNotSupported fault response or some other, 
     unspecified behavior.
    </p>
   </div3>

  </div1>

  <div1>
   <head>WS-Transfer/WS-Fragment Tests</head>

   <p>
    This section describes the tests for WS-Transfer and WS-Fragment.
   </p>

   <div2 tocStop='true'>
    <head>Create Test</head>

    <p>
     This test will verifies the ability to create a new Animal/Tag
     in the service.  The Create message will contain the initial
     representation of the new Animal/Tag.
    </p>

    <div3>
     <head>Sequence</head>

     <p>
      ...
     </p>
    </div3>

    <div3>
     <head>Success Criteria</head>

     <ulist>
      <item>
       <p>
        Receipt of a valid Create message by the service.
       </p>
      </item>
      <item>
       <p>
        Receipt of a valid CreateResponse message by the client.
       </p>
      </item>
     </ulist>
    </div3>

    <div3>
     <head>Conformance</head>

     <p>
      A conforming service MUST respond to the Create request with a
      CreateResponse message.
     </p>
    </div3>
   </div2>

   <div2 tocStop='true'>
    <head>Get Test</head>

    <p>
     This test verifies the ability of a client to retrieve the
     current representation of an Animal/Tag. The endpoint to which
     this test is executed against may be any valid endpoint created
     during the Create test or returned from any other test described
     in this document as long as it refers to an Animal resource.
     The use of WS-MetadataExchange is recommeneded to ensure that
     the endpoint supports WS-Transfer.
    </p>

    <div3>
     <head>Sequence</head>

     <p>
      ...
     </p>
    </div3>

    <div3>
     <head>Success Criteria</head>

     <ulist>
      <item>
       <p>
        Receipt of a valid Get message by the service.
       </p>
      </item>
      <item>
       <p>
        Receipt of a valid GetResponse message by the service.
       </p>
      </item>
     </ulist>
    </div3>

    <div3>
     <head>Conformance</head>

     <p>
      A conforming service MUST respond to the Get request with a
      GetResponse message containing the current representation of
      the Animal/Tag. 
     </p>
    </div3>
   </div2>


   <div2 tocStop='true'>
    <head>Fragment Get Test</head>

    <p>
     This test verifies the ability of a client to retrieve a subset of the
     current representation of an Animal/Tag. The endpoint to which
     this test is executed against may be any valid endpoint created
     during the Create test or returned from any other test described
     in this document as long as it refers to an Animal resource.
     The use of WS-MetadataExchange is recommeneded to ensure that
     the endpoint supports WS-Transfer.
    </p>

    <div3>
     <head>Sequence</head>

     <p>
      ...
     </p>
    </div3>

    <div3>
     <head>Success Criteria</head>

     <ulist>
      <item>
       <p>
        Receipt of a valid Get message containing the WS-Fragment Dialect IRI
        by the service.
       </p>
      </item>
      <item>
       <p>
        Receipt of a valid GetResponse message by the service.
       </p>
      </item>
     </ulist>
    </div3>

    <div3>
     <head>Conformance</head>

     <p>
      The Get request uses the WS-Fragment Dialect IRI
      and asks for a subset of the representation using XPath 1.0. 
      A conforming service MUST either respond with a wst:UnknownDialect 
      fault or return just the requested data.
     </p>
    </div3>
   </div2>

   <div2 tocStop='true'>
    <head>Put Test</head>

    <p>
     This test verifies the ability of a client to update the current
     representation of an Animal/Tag. The endpoint to which this test 
     is executed against may be any valid endpoint created during the 
     Create test or returned from any other test described in this document
     as long as it refers to an Animal resource.
     The use of WS-MetadataExchange is recommeneded to ensure that
     the endpoint supports WS-Transfer.
    </p>

    <div3>
     <head>Sequence</head>

     <p>
      ...
     </p>
    </div3>

    <div3>
     <head>Success Criteria</head>

     <ulist>
      <item>
       <p>
        Receipt of a valid Put message by the service.
       </p>
      </item>
      <item>
       <p>
        Receipt of a valid PutResponse message by the client.
       </p>
      </item>
     </ulist>
    </div3>

    <div3>
     <head>Conformance</head>

     <p>
      A conforming service MUST respond to the Put request with a
      PutResponse message.
     </p>
    </div3>
   </div2>

   <div2 tocStop='true'>
    <head>Fragment Put Test</head>

    <p>
     This test verifies the ability of a client to update a portion of the 
     current representation of an Animal/Tag. The endpoint to which this test 
     is executed against may be any valid endpoint created during the 
     Create test or returned from any other test described in this document
     as long as it refers to an Animal resource.
     The use of WS-MetadataExchange is recommeneded to ensure that
     the endpoint supports WS-Transfer.
    </p>

    <div3>
     <head>Sequence</head>

     <p>
      In this test the client issues a series of Put requests to update
      the representation of an Animal/Tag. After each request the client
      will issue a Get to verify that the update was successful.
     </p>
    </div3>

    <div3>
     <head>Success Criteria</head>

     <ulist>
      <item>
       <p>
        Receipt of a valid Put message using the WS-Fragment Dialect IRI
        by the service.
       </p>
      </item>
      <item>
       <p>
        Receipt of a valid PutResponse message by the client.
       </p>
      </item>
      <item>
       <p>
        Receipt of a valid Get message by the service.
       </p>
      </item>
      <item>
       <p>
        Receipt of a valid GetResponse message by the client.
       </p>
      </item>
     </ulist>
    </div3>

    <div3>
     <head>Conformance</head>

     <p>
      A conforming service MUST respond to the Put request with either a
      wst:UnknownDialect fault or return a PutResponse message. A
      conforming service MUST also respond to the subsequent Get request
      with a GetResponse message containing the new representation of the
      Animal/Tag - or with no change if the Put was rejected.
     </p>
    </div3>

    <div3>
     <head>Variations</head>

     <p>
      Except when noted, 
      the following variations use this Animal representation as
      an example guide for what each variation is expected to produce:
     </p>

     <example>
      <eg>&lt;sce:Animal xmlns:sce="http://www.w3.org/2002/ws/ra/test/scenario">
  &lt;sce:ID> ... &lt;/sce:ID>
  &lt;sce:Name> ... &lt;/sce:Name>
  &lt;sce:Birthdate> ... &lt;/sce:Birthdate>
  &lt;sce:Gender> ... &lt;/sce:Gender>
  &lt;sce:Family> ... &lt;/sce:Family>
  &lt;sce:Genus> ... &lt;/sce:Genus>
  &lt;sce:Species> ... &lt;/sce:Species>
  &lt;sce:CurrentLocation> ... &lt;/sce:CurrentLocation>
  &lt;sce:History>
    &lt;sce:Entry> ... &lt;/sce:Entry>
    &lt;sce:Entry Date="..."> ... &lt;/sce:Entry>
  &lt;/sce:History>
&lt;/sce:Animal></eg>
     </example>

     <p>
      The following Fragment Put expressions/values are tested:
     </p>

     <olist>
      <item>   <!-- 1 -->
       <p>
        Mode: Add <phrase/>
        Expression: / <phrase/>
        Value: &lt;sce:Animal> ... &lt;/sce:Animal> <phrase/>
        Result: a fault is generated
       </p>
      </item>
      <item>   <!-- 2 -->
       <p>
        Mode: Replace <phrase/>
        Expression: / <phrase/>
        Value: &lt;sce:Animal> ... &lt;/sce:Animal> <phrase/>
        Result: entire Animal is replaced
       </p>
      </item>
      <item>   <!-- 3 -->
       <p>
        Mode: Add <phrase/>
        Expression: //*[local-name()='History']/*[1] <phrase/>
        Value: Date="..." <phrase/>
        Result: first History/Entry has a Date attribute added
       </p>
      </item>
      <item>   <!-- 4 -->
       <p>
        Mode: Add <phrase/>
        Expression: //*[local-name()='History']/*[2] <phrase/>
        Value: Date="..." <phrase/>
        Result: a fault is generated
       </p>
      </item>
      <item>   <!-- 5 -->
       <p>
        Mode: Replace <phrase/>
        Expression: //*[local-name()='History']/*[2]/@Date <phrase/>
        Value: Date="..." <phrase/>
        Result: Date attribute is updated
       </p>
      </item>
      <item>   <!-- 6 -->
       <p>
        Mode: Replace <phrase/>
        Expression: //*[local-name()='History']/*[2]/@Date <phrase/>
        Value: Who="..." <phrase/>
        Result: Date attribute is erased and Who attribute is added
       </p>
      </item>
      <item>   <!-- 7 -->
       <p>
        Mode: Replace <phrase/>
        Expression: //*[local-name()='History']/*[1]/@Date <phrase/>
        Value: Who="..." <phrase/>
        Result: Who attribute is added to the Entry
       </p>
      </item>
      <item>   <!-- 8 -->
       <p>
        Mode: Remove <phrase/>
        Expression: //*[local-name()='History']/*[2]/@Date <phrase/>
        Value: - <phrase/>
        Result: Date attribute is removed
       </p>
      </item>
      <item>   <!-- 9 -->
       <p>
        Mode: Add <phrase/>
        Expression: //*[local-name()='History'] <phrase/>
        Value: &lt;sce:Entry> ... &lt;/sce:Entry> <phrase/>
        Result: Entry is added to History array <phrase/>
        History array needs to be empty before test starts
       </p>
      </item>
      <item>   <!-- 10 -->
       <p>
        Mode: Add <phrase/>
        Expression: //*[local-name()='History'] <phrase/>
        Value: &lt;sce:Entry> ... &lt;/sce:Entry> <phrase/>
        Result: Entry is added to the end of the History array <phrase/>
        History array needs to have atleast one Entry
       </p>
      </item>
      <item>   <!-- 11 -->
       <p>
        Mode: Replace <phrase/>
        Expression: //*[local-name()='History']/*[local-name()='Entry'] <phrase/>
        Value: &lt;sce:Entry> ... &lt;/sce:Entry> <phrase/>
        Result: First Entry is replaced <phrase/>
        History array needs to have one Entry
       </p>
      </item>
      <item>   <!-- 12 -->
       <p>
        Mode: Replace <phrase/>
        Expression: //*[local-name()='History']/*[1] <phrase/>
        Value: &lt;sce:Entry> ... &lt;/sce:Entry> <phrase/>
        Result: Entry is added to the History array <phrase/>
        History array needs to be empty before test starts
       </p>
      </item>
      <item>   <!-- 13 -->
       <p>
        Mode: InsertAfter <phrase/>
        Expression: //*[local-name()='History']/*[local-name()='Entry'] <phrase/>
        Value: &lt;sce:Entry> ... &lt;/sce:Entry> <phrase/>
        Result: Entry is added to the end of the History array <phrase/>
       </p>
      </item>
      <item>   <!-- 14 -->
       <p>
        Mode: InsertBefore <phrase/>
        Expression: //*[local-name()='History']/*[local-name()='Entry']<phrase/>
        Value: &lt;sce:Entry> ... &lt;/sce:Entry> <phrase/>
        Result: Entry is added to the start of the History array <phrase/>
       </p>
      </item>
      <item>   <!-- 15 -->
       <p>
        Mode: Replace <phrase/>
        Expression: //*[local-name()='History']/*[local-name()='Entry'] <phrase/>
        Value: &lt;sce:Entry> ... &lt;/sce:Entry> <phrase/>
        Result: All old Entries are replace by this one Entry <phrase/>
       </p>
      </item>
      <item>   <!-- 16 -->
       <p>
        Mode: Replace <phrase/>
        Expression: //*[local-name()='History']/*[1] <phrase/>
        Value: &lt;sce:Entry> ... &lt;/sce:Entry> <phrase/>
        Result: First Entry is replaced <phrase/>
       </p>
      </item>
      <item>   <!-- 17 -->
       <p>
        Mode: Remove <phrase/>
        Expression: //*[local-name()='History']/* <phrase/>
        Value: - <phrase/>
        Result: All Entry elements are removed <phrase/>
        History array needs to have one Entry
       </p>
      </item>
      <item>   <!-- 18 -->
       <p>
        Mode: Remove <phrase/>
        Expression: //*[local-name()='History']/* <phrase/>
        Value: - <phrase/>
        Result: All Entry elements are removed <phrase/>
       </p>
      </item>
      <item>   <!-- 19 -->
       <p>
        Mode: Remove <phrase/>
        Expression: //*[local-name()='History']/*[1] <phrase/>
        Value: - <phrase/>
        Result: Just first Entry is removed <phrase/>
       </p>
      </item>

      <!-- stuff beyond what the table in the spec says -->
      <item>   <!-- 20 -->
       <p>
        Mode: InsertBefore <phrase/>
        Expression: //*[local-name()='History']/*[local-name()='Entry'] <phrase/>
        Value: &lt;sce:Entry> ... &lt;/sce:Entry> <phrase/>
        Result: New Entry is added to History array <phrase/>
        History array needs to be empty before test starts
       </p>
      </item>
      <item>   <!-- 21 -->
       <p>
        Mode: InsertAfter <phrase/>
        Expression: //*[local-name()='History']/*[local-name()='Entry'] <phrase/>
        Value: &lt;sce:Entry> ... &lt;/sce:Entry> <phrase/>
        Result: New Entry is added to History array <phrase/>
        History array needs to be empty before test starts
       </p>
      </item>

     </olist>
    </div3>
   </div2>


   <div2 tocStop='true'>
    <head>Delete Test</head>

    <p>
     This test verifies the ability of a client to delete an Animal/Tag.
     The endpoint to which this test
     is executed against may be any valid endpoint created during the
     Create test or returned from any other test described in this document
     as long as it refers to an Animal resource.
     The use of WS-MetadataExchange is recommeneded to ensure that
     the endpoint supports WS-Transfer.
    </p>

    <div3>
     <head>Sequence</head>

     <p>
      ...
     </p>
    </div3>

    <div3>
     <head>Success Criteria</head>

     <ulist>
      <item>
       <p>
        Receipt of a valid Delete message by the service.
       </p>
      </item>
      <item>
       <p>
        Receipt of a valid DeleteResponse message by the client.
       </p>
      </item>
     </ulist>
    </div3>

    <div3>
     <head>Conformance</head>

     <p>
      A conforming service MUST respond to the Delete request with a
      DeleteResponse message.
     </p>
    </div3>
   </div2>

  </div1>
   
  <div1>
   <head>WS-Enumeration Tests</head>

   <p>
     This section describes the tests for WS-Enumeration.
   </p>

   <div2 tocStop='true'>
    <head>Basic Test</head>

    <p>
      This test verifies the ability to enumerate instances of a resource 
      using the default behavior.  The initial Enumerate request has the 
      following salient features:
    </p>

     <ulist>
       <item>
         <p>NewContext element</p>
       </item>
     </ulist>

     <p>
       The subsequent Enumerate requests have the following salient features:
     </p>

     <ulist>
       <item>
         <p>EnumerationContext element that was provided by the data source</p>
       </item>
     </ulist>
     
     <div3>
     <head>Sequence</head>

     <p>
       The following diagram illustrates the sequence of messages for the 
       Basic Test.
     </p>

       <graphic source='scenario/enum_basic_test.jpg'/>
     </div3>

    <div3>
     <head>Success Criteria</head>

     <ulist>
      <item>
       <p>
         Receipt of valid Enumerate message with NewContext element by the 
         data source
       </p>
      </item>
       <item>
         <p>
         Receipt of a valid EnumerateResponse message with EnumerationContext 
         element  and with one item by the data consumer
         </p>
       </item>
       <item>
         <p>
           Receipt of one or more valid Enumerate messages with 
           EnumerationContext element by the data source
         </p>
       </item>
       <item>
         <p>
           Receipt of one or more valid EnumerateResponse messages with one 
           item by the data consumer
         </p>
       </item>
       <item>
         <p>
           Receipt of a valid Enumerate message with EnumerationContext 
           element by the data source
         </p>
       </item>
       <item>
         <p>
           Receipt of a valid EnumerateResponse message with EndOfSequence 
           element by the data consumer
         </p>
       </item>
     </ulist>
    </div3>

    <div3>
     <head>Conformance</head>

      <p>
        A conforming data source MAY NOT be capable of implementing this 
        test due to its inability to return items in response to an 
        Enumerate request that also created a new enumeration.
      </p>
      <p>
        A conforming data source MAY respond to the initial Enumerate 
        request with a wsen:MaxElementsMustBeZero fault.
      </p>
      
    </div3>
   </div2>

    <div2 tocStop='true'>
      <head>New Empty Enumeration Test</head>

      <p>
        This test verifies the ability to create a new enumeration without 
        retrieving any of the data items in the first EnumerateResponse 
        message.  The initial Enumerate request has the following salient 
        features:
      </p>

      <ulist>
        <item>
          <p>NewContext element</p>
        </item>
        <item>
          <p>MaxElements element equal to 0</p>
        </item>
      </ulist>

      <p>
        The subsequent Enumerate requests have the following salient features:
      </p>

      <ulist>
        <item>
          <p>EnumerationContext element that was provided by the data source</p>
        </item>
      </ulist>

      <div3>
        <head>Sequence</head>

        <p>
          The messaging sequence for this test is identical to that of the 
          Basic Test.
        </p>

      </div3>

      <div3>
        <head>Success Criteria</head>

        <ulist>
          <item>
            <p>
              Receipt of valid Enumerate message with NewContext element and 
              MaxElements equal to 0 by the data source
            </p>
          </item>
          <item>
            <p>
              Receipt of a valid EnumerateResponse message with 
              EnumerationContext element and with no items by the data consumer
            </p>
          </item>
          <item>
            <p>
              Receipt of one or more valid Enumerate messages with 
              EnumerationContext element by the data source
            </p>
          </item>
          <item>
            <p>
              Receipt of one or more valid EnumerateResponse messages with 
              one item by the data consumer
            </p>
          </item>
          <item>
            <p>
              Receipt of a valid Enumerate message with EnumerationContext 
              element by the data source
            </p>
          </item>
          <item>
            <p>
              Receipt of a valid EnumerateResponse message with 
              EndOfSequence element by the data consumer
            </p>
          </item>
        </ulist>
      </div3>

      <div3>
        <head>Conformance</head>

        <p>
          A conforming data consumer MAY NOT be capable of implementing 
          this test due to its inability to support the optional 
          wsen:MaxElements element.
        </p>
        <p>
          Because this test involves only operations and elements that 
          are required to be supported by the data source, there are 
          no allowable failure cases.
        </p>

      </div3>
    </div2>

    <div2 tocStop='true'>
      <head>Optimized Enumeration Test</head>

      <p>
        This test verifies the ability to enumerate an entire set of 
        instances of a resource with just one Enumerate message.  The 
        Enumerate request has the following salient features:
      </p>

      <ulist>
        <item>
          <p>NewContext element</p>
        </item>
        <item>
          <p>MaxElements element with large value</p>
        </item>
      </ulist>

      <div3>
        <head>Sequence</head>

        <p>
          The following diagram illustrates the sequence of messages for 
          the Optimized Enumeration Test.
        </p>
        
        <graphic source='scenario/enum_optimized_test.jpg'/>
      </div3>

      <div3>
        <head>Success Criteria</head>

        <ulist>
          <item>
            <p>
              Receipt of valid Enumerate message with NewContext element and 
              MaxElements equal to large number by the data source
            </p>
          </item>
          <item>
            <p>
              Receipt of a valid EnumerateResponse message with all Items 
              and EndOfSequence element by the data consumer
            </p>
          </item>
        </ulist>
      </div3>

      <div3>
        <head>Conformance</head>

        <p>
          A conforming data consumer MAY NOT be capable of implementing 
          this test due to its inability to support the optional 
          wsen:MaxElements element.
        </p>
        <p>
          A conforming data source MAY NOT be capable of implementing this 
          test due to its inability to return items in response to an 
          Enumerate request that also created a new enumeration.
        </p>
        <p>
          A conforming data source MAY respond to the initial Enumerate 
          request with a wsen:MaxElementsMustBeZero fault.
        </p>

      </div3>
    </div2>

    <div2 tocStop='true'>
      <head>MaxCharacters Test</head>

      <p>
        This test verifies the ability of a data consumer to limit the 
        size of the items returned from an enumeration using the 
        wsen:MaxCharacters element.  The initial Enumerate request has 
        the following salient features:
      </p>

      <ulist>
        <item>
          <p>NewContext element</p>
        </item>
        <item>
          <p>MaxElements element with large value</p>
        </item>
        <item>
          <p>MaxCharacters element with a value slightly bigger than 
          one returned item</p>
        </item>
      </ulist>

      <p>
        The subsequent Enumerate requests have the following salient features:
      </p>

      <ulist>
        <item>
          <p>EnumerationContext element that was provided by the data source</p>
        </item>
        <item>
          <p>MaxElements element with a large value</p>
        </item>
        <item>
          <p>MaxCharacters element with a value slightly bigger than 
          one returned item</p>
        </item>
      </ulist>
      <div3>
        <head>Sequence</head>

        <p>
          The messaging sequence for this test is identical to that of 
          the Basic Test.
        </p>

      </div3>

      <div3>
        <head>Success Criteria</head>

        <ulist>
          <item>
            <p>
              Receipt of valid Enumerate message with NewContext element, 
              MaxElements element and MaxCharacters element by the data source
            </p>
          </item>
          <item>
            <p>
              Receipt of a valid EnumerateResponse message with 
              EnumerationContext element  and with one item by the data consumer
            </p>
          </item>
          <item>
            <p>
              Receipt of one or more valid Enumerate messages with 
              EnumerationContext element, MaxElements element and 
              MaxCharacters element by the data source
            </p>
          </item>
          <item>
            <p>
              Receipt of one or more valid EnumerateResponse messages with 
              one item by the data consumer
            </p>
          </item>
          <item>
            <p>
              Receipt of a valid Enumerate message with EnumerationContext 
              element, MaxElements element and MaxCharacters element by 
              the data source
            </p>
          </item>
          <item>
            <p>
              Receipt of a valid EnumerateResponse message with EndOfSequence 
              element by the data consumer
            </p>
          </item>
        </ulist>
      </div3>

      <div3>
        <head>Conformance</head>

        <p>
          A conforming data consumer MAY NOT be capable of implementing this 
          test due to its inability to support the optional wsen:MaxElements 
          element or the optional wsen:MaxCharacters element.
        </p>
        <p>
          Because this test involves only operations and elements that 
          are required to be supported by the data source, there are no 
          allowable failure cases.
        </p>

      </div3>
    </div2>

    <div2 tocStop='true'>
      <head>MaxTime Test</head>

      <p>
        This test verifies the ability of a data consumer to limit the 
        amount of time it takes for the data source to assemble an 
        EnumerateResponse using the wsen:MaxTime element.  The initial 
        Enumerate request has the following salient features:
      </p>

      <ulist>
        <item>
          <p>NewContext element</p>
        </item>
      </ulist>

      <p>
        The second Enumerate request has the following salient features:
      </p>

      <ulist>
        <item>
          <p>EnumerationContext element that was provided by the data source</p>
        </item>
        <item>
          <p>
           MaxTime element with a very low value. If a data source is designed
           such that the MaxTime value will have no impact, for the purposes
           of testing a data source is to return a wsen:TimesOut fault
           if the MaxTime value is present with a value less than 5 seconds.
          </p>
        </item>
      </ulist>

      <p>
        The subsequent Enumerate requests have the following salient features:
      </p>

      <ulist>
        <item>
          <p>EnumerationContext element that was provided by the data source</p>
        </item>
      </ulist>
      
      <div3>
        <head>Sequence</head>

        <p>
          The messaging sequence for this test is identical to that of the 
          Basic Test. 
        </p>

      </div3>

      <div3>
        <head>Success Criteria</head>

        <ulist>
          <item>
            <p>
              Receipt of valid Enumerate message with NewContext element 
              by the data source
            </p>
          </item>
          <item>
            <p>
              Receipt of a valid EnumerateResponse message with 
              EnumerationContext element and with one item by the data consumer
            </p>
          </item>
          <item>
            <p>
              Receipt of one valid Enumerate message with 
              EnumerationContext element and MaxTime element by the data source
            </p>
          </item>
          <item>
            <p>
             Receipt of valid EnumerateResponse message with zero items and 
             with Items/@Reason equal to 
             http://www.w3.org/2010/08/ws-enu/TimedOut by 
             the data consumer
            </p>
          </item>
          <item>
            <p>
             Receipt of one or more valid Enumerate messages with 
             EnumerationContext element by the data source 
            </p>
          </item>
          <item>
            <p>
             Receipt of one or more valid EnumerateResponse messages with 
             one item by the data consumer 
            </p>
          </item>
          <item>
            <p>
             Receipt of a valid Enumerate message with EnumerationContext 
             element by the data source 
            </p>
          </item>
          <item>
            <p>
             Receipt of a valid EnumerateResponse message with EndOfSequence 
             element by the data consumer 
            </p>
          </item>
        </ulist>
      </div3>

      <div3>
        <head>Conformance</head>

        <p>
          A conforming data consumer MAY NOT be capable of implementing 
          this test due to its inability to support the optional 
          wsen:MaxTime element.
        </p>
        <p>
          Because this test involves only operations and elements that 
          are required to be supported by the data source, there are no 
          allowable failure cases.
        </p>

      </div3>
    </div2>

    <div2 tocStop='true'>
      <head>Duration Expiration Test</head>

      <p>
        This test verifies the correct implementation of the expiration 
        feature on the data source.  The initial Enumerate message has 
        the following salient features:
      </p>

      <ulist>
        <item>
          <p>NewContext element</p>
        </item>
        <item>
          <p>Expires element with a short expiration time as xs:duration</p>
        </item>
      </ulist>

      <p>
        The second Enumerate request has the following salient features:
      </p>

      <ulist>
        <item>
          <p>EnumerationContext element that was provided by the data source</p>
        </item>
      </ulist>

      <div3>
        <head>Sequence</head>

        <p>
          The following diagram illustrates the sequence of messages for 
          the Duration Expiration Test.  Note that the data source waits 
          until the expiration time has passed before sending the 
          second Enumerate request.
        </p>

        <graphic source='scenario/enum_expires_test.jpg'/>

      </div3>

      <div3>
        <head>Success Criteria</head>

        <ulist>
          <item>
            <p>
              Receipt of valid Enumerate message with NewContext element 
              and Expires element by the data source
            </p>
          </item>
          <item>
            <p>
              Receipt of a valid EnumerateResponse message with 
              EnumerationContext element and with one item by the data consumer
            </p>
          </item>
          <item>
            <p>
              Receipt of valid Enumerate message with EnumerationContext 
              element by the data source
            </p>
          </item>
          <item>
            <p>
              Receipt of a wsen:InvalidEnumerationContext fault by the 
              data consumer
            </p>
          </item>
        </ulist>
      </div3>

      <div3>
        <head>Conformance</head>

        <p>
          A conforming data consumer MAY NOT be capable of implementing 
          this test due to its inability to support the optional 
          wsen:Expires element with a value of type xs:duration.
        </p>
        <p>
          A conforming data source MAY NOT be capable of implementing this 
          test due to its inability to grant an expiration time that 
          matches the specified value in the Enumerate request.
        </p>
        <p>
          A conforming data source MAY respond to the initial Enumerate 
          request with a wsen:UnsupportedExpirationValue fault.
        </p>

      </div3>
    </div2>

    <div2 tocStop='true'>
      <head>Specific Time Expiration Test</head>

      <p>
        This test verifies the correct implementation of the expiration 
        feature on the data source.  The initial Enumerate message has 
        the following salient features:
      </p>

      <ulist>
        <item>
          <p>NewContext element</p>
        </item>
        <item>
          <p>Expires element with a short expiration time as xs:dateTime</p>
        </item>
      </ulist>

      <p>
        The second Enumerate request has the following salient features:
      </p>

      <ulist>
        <item>
          <p>EnumerationContext element that was provided by the data source</p>
        </item>
      </ulist>

      <div3>
        <head>Sequence</head>

        <p>
          The messaging sequence for this test is identical to that of 
          the Duration Expiration Test.
        </p>

      </div3>

      <div3>
        <head>Success Criteria</head>

        <ulist>
          <item>
            <p>
              Receipt of valid Enumerate message with NewContext element 
              and Expires element by the data source
            </p>
          </item>
          <item>
            <p>
              Receipt of a valid EnumerateResponse message with 
              EnumerationContext element and with one item by the data consumer
            </p>
          </item>
          <item>
            <p>
              Receipt of valid Enumerate message with EnumerationContext 
              element by the data source
            </p>
          </item>
          <item>
            <p>
              Receipt of a wsen:InvalidEnumerationContext fault by the 
              data consumer
            </p>
          </item>
        </ulist>
      </div3>

      <div3>
        <head>Conformance</head>

        <p>
          A conforming data consumer MAY NOT be capable of implementing 
          this test due to its inability to support the optional 
          wsen:Expires element with a value of type xs:datetime.
        </p>
        <p>
          A conforming data source MAY NOT be capable of implementing 
          this test due to its inability to grant an expiration time 
          that matches the specified value in the Enumerate request, or to 
          its inability to support specific expiration time values.
        </p>
        <p>
          A conforming data source MAY respond to the initial Enumerate 
          request with a wsen:UnsupportedExpirationValue fault or a 
          wsen:UnsupportedExpirationType fault.
        </p>

      </div3>
    </div2>

    <div2 tocStop='true'>
      <head>Best Effort Expiration Test</head>

      <p>
        This test verifies the correct implementation of the "best effort 
        expiration feature on the data source.  The initial Enumerate 
        message has the following salient features:
      </p>

      <ulist>
        <item>
          <p>NewContext element</p>
        </item>
        <item>
          <p>Expires element with a short expiration time as xs:duration 
          with @BestEffort=true</p>
        </item>
      </ulist>

      <p>
        The second Enumerate request has the following salient features:
      </p>

      <ulist>
        <item>
          <p>EnumerationContext element that was provided by the data source</p>
        </item>
      </ulist>

      <div3>
        <head>Sequence</head>

        <p>
          The messaging sequence for this test is identical to that of 
          the Duration Expiration Test.
        </p>

      </div3>

      <div3>
        <head>Success Criteria</head>

        <ulist>
          <item>
            <p>
              Receipt of valid Enumerate message with NewContext element and 
              Expires element by the data source
            </p>
          </item>
          <item>
            <p>
              Receipt of a valid EnumerateResponse message with 
              EnumerationContext element and with one item by the data consumer
            </p>
          </item>
          <item>
            <p>
              Receipt of valid Enumerate message with EnumerationContext 
              element by the data source
            </p>
          </item>
          <item>
            <p>
              Receipt of a wsen:InvalidEnumerationContext fault by the 
              data consumer
            </p>
          </item>
        </ulist>
      </div3>

      <div3>
        <head>Conformance</head>

        <p>
          A conforming data consumer MAY NOT be capable of implementing 
          this test due to its inability to support the optional 
          wsen:Expires element with a value of type xs:duration or with 
          the @BestEffort attribute.
        </p>
        <p>
          Because this test involves only operations and elements that 
          are required to be supported by the data source, there are no 
          allowable failure cases.
        </p>

      </div3>
    </div2>

    <div2 tocStop='true'>
      <head>GetStatus Test</head>

      <p>
        This test verifies the ability of a data consumer to get the 
        status of an existing enumeration.  The initial Enumerate request 
        has the following salient features:
      </p>

      <ulist>
        <item>
          <p>NewContext element</p>
        </item>
      </ulist>

      <p>
        The GetStatus message has the following salient features:
      </p>

      <ulist>
        <item>
          <p>EnumerationContext element that was provided by the data source</p>
        </item>
      </ulist>

      <div3>
        <head>Sequence</head>

        <p>
          The following diagram illustrates the sequence of messages for 
          the GetStatus Test.
        </p>

        <graphic source='scenario/enum_getstatus_test.jpg'/>

      </div3>

      <div3>
        <head>Success Criteria</head>

        <ulist>
          <item>
            <p>
              Receipt of valid Enumerate message with NewContext element 
              by the data source
            </p>
          </item>
          <item>
            <p>
              Receipt of a valid EnumerateResponse message with 
              EnumerationContext element by the data consumer
            </p>
          </item>
          <item>
            <p>
              Receipt of valid GetStatus message with EnumerationContext 
              element by the data source
            </p>
          </item>
          <item>
            <p>
              Receipt of valid GetStatusResponse message by the data consumer
            </p>
          </item>
        </ulist>
      </div3>

      <div3>
        <head>Conformance</head>

        <p>
          A conforming data consumer MAY NOT be capable of implementing 
          this test due to its inability to support the GetStatus operation.
        </p>
        <p>
          Because this test involves only operations and elements that 
          are required to be supported by the data source, there are no 
          allowable failure cases.
        </p>

      </div3>
    </div2>

    <div2 tocStop='true'>
      <head>Renew Test</head>

      <p>
        This test verifies the ability of a data consumer to renew an 
        existing enumeration.  The initial Enumerate request has the 
        following salient features:
      </p>

      <ulist>
        <item>
          <p>NewContext element</p>
        </item>
      </ulist>

      <p>
        The Renew message has the following salient features:
      </p>

      <ulist>
        <item>
          <p>EnumerationContext element that was provided by the data source</p>
        </item>
      </ulist>

      <div3>
        <head>Sequence</head>

        <p>
          The following diagram illustrates the sequence of messages for the 
          Renew Test.
        </p>
        
        <graphic source='scenario/enum_renew_test.jpg'/>

      </div3>

      <div3>
        <head>Success Criteria</head>

        <ulist>
          <item>
            <p>
              Receipt of valid Enumerate message with NewContext element 
              by the data source
            </p>
          </item>
          <item>
            <p>
              Receipt of a valid EnumerateResponse message with 
              EnumerationContext element by the data consumer
            </p>
          </item>
          <item>
            <p>
              Receipt of valid Renew message with EnumerationContext element 
              by the data source
            </p>
          </item>
          <item>
            <p>
              Receipt of valid RenewResponse message by the data consumer
            </p>
          </item>
        </ulist>
      </div3>

      <div3>
        <head>Conformance</head>

        <p>
          A conforming data consumer MAY NOT be capable of implementing 
          this test due to its inability to support the Renew operation.
        </p>
        <p>
          A conforming data source MAY choose not to renew the enumeration 
          and instead respond to the Renew request with a SOAP 1.1 Server 
          fault or a SOAP 1.2 Receiver fault.
        </p>

      </div3>
    </div2>

    <div2 tocStop='true'>
      <head>Release Test</head>

      <p>
        This test verifies the ability of a data consumer to release 
        an existing enumeration before its data items have all been 
        retrieved.  The initial Enumerate request has the following 
        salient features:
      </p>

      <ulist>
        <item>
          <p>NewContext element</p>
        </item>
      </ulist>

      <p>
        The Release message has the following salient features:
      </p>

      <ulist>
        <item>
          <p>EnumerationContext element that was provided by the data source</p>
        </item>
      </ulist>

      <div3>
        <head>Sequence</head>

        <p>
          The following diagram illustrates the sequence of messages for 
          the Release Test.
        </p>

        <graphic source='scenario/enum_release_test.jpg'/>

      </div3>

      <div3>
        <head>Success Criteria</head>

        <ulist>
          <item>
            <p>
              Receipt of valid Enumerate message with NewContext element 
              by the data source
            </p>
          </item>
          <item>
            <p>
              Receipt of a valid EnumerateResponse message with 
              EnumerationContext element by the data consumer
            </p>
          </item>
          <item>
            <p>
              Receipt of valid Release message with EnumerationContext 
              element by the data source
            </p>
          </item>
          <item>
            <p>
              Receipt of valid ReleaseResponse message by the data consumer
            </p>
          </item>
        </ulist>
      </div3>

      <div3>
        <head>Conformance</head>

        <p>
          A conforming data consumer MAY NOT be capable of implementing this 
          test due to its inability to support the Release operation.
        </p>
        <p>
          Because this test involves only operations and elements that 
          are required to be supported by the data source, there are no 
          allowable failure cases.
        </p>

      </div3>
    </div2>

    <div2 tocStop='true'>
      <head>EnumerationEnd Test</head>

      <p>
        This test verifies the ability of a data source to send a 
        notification to a data consumer if it terminates the enumeration 
        unexpectedly.  The initial Enumerate request has the following 
        salient features:
      </p>

      <ulist>
        <item>
          <p>NewContext element</p>
        </item>
        <item>
          <p>EndTo element containing an EPR for the data consumer</p>
        </item>
      </ulist>
    
      <p>
       Note: this test requires the client to include an additional
       element in the sce:Scenario header:
      </p>
  
      <example>
       <eg>&lt;sce:EndTime> xs:duration | xs:dateTime &lt;/sce:EndTime></eg>
      </example>
  
      <p>
       The duration/time specified by this element indicates when the
       data source is to "unexceptedly" terminate the enumeration, thus
       causes the EnumerationEnd message to be sent. The value specified
       in this element must be less than the expires time specified in the
       Enumerate request message used to create the enumeration.
      </p>

      <div3>
        <head>Sequence</head>

        <p>
          The following diagram illustrates the sequence of messages for 
          the EnumerationEnd Test.
        </p>

        <graphic source='scenario/enum_enumerationend_test.jpg'/>

      </div3>

      <div3>
        <head>Success Criteria</head>

        <ulist>
          <item>
            <p>
              Receipt of valid Enumerate message with NewContext element 
              and EndTo element by the data source
            </p>
          </item>
          <item>
            <p>
              Receipt of a valid EnumerateResponse message with 
              EnumerationContext element by the data consumer
            </p>
          </item>
          <item>
            <p>
              Receipt of valid EnumerationEnd message by the data consumer
            </p>
          </item>
        </ulist>
      </div3>

      <div3>
        <head>Conformance</head>

        <p>
          A conforming data consumer MAY NOT be capable of implementing 
          this test due to its inability to support the optional 
          wsen:EndTo element or the EnumerationEndPortType portType.
        </p>
        <p>
          A conforming data source MAY NOT be capable of implementing 
          this test due to its inability to support the use of the EndTo EPR.
        </p>
        <p>
          A conforming data source MAY respond to the initial Enumerate 
          request with a wsen:EndToNotSupported fault.
        </p>
        <p>
          A conforming data source MAY respond to the initial Enumerate 
          request with a wsen:UnusableEPR  fault if it checks the validity 
          of the EndTo EPR and detects a problem.
        </p>

      </div3>
    </div2>

    <div2 tocStop='true'>
      <head>Filter Test - XPath 1.0</head>

      <p>
        This test verifies the ability of the data source to correctly 
        implement XPath 1.0 filters. The initial Enumerate request has 
        the following salient features:
      </p>

      <ulist>
        <item>
          <p>NewContext element</p>
        </item>
        <item>
          <p>
            Filter element with @Dialect equal to 
            'http://www.w3.org/2010/08/ws-enu/Dialects/XPath10' 
            (actual filter expression TBD)
          </p>
        </item>
      </ulist>

      <p>
        The subsequent Enumerate requests have the following salient features:
      </p>

      <ulist>
        <item>
          <p>EnumerationContext element that was provided by the data source</p>
        </item>
      </ulist>

      <div3>
        <head>Sequence</head>

        <p>
          The messaging sequence for this test is identical to that of 
          the Basic Test.
        </p>

      </div3>

      <div3>
        <head>Success Criteria</head>

        <ulist>
          <item>
            <p>
              Receipt of valid Enumerate message with NewContext element 
              and Filter element by the data source
            </p>
          </item>
          <item>
            <p>
              Receipt of a valid EnumerateResponse message with 
              EnumerationContext element  and with one item by the data consumer
            </p>
          </item>
          <item>
            <p>
              Receipt of one or more valid Enumerate messages with 
              EnumerationContext element by the data source
            </p>
          </item>
          <item>
            <p>
              Receipt of one or more valid EnumerateResponse messages 
              with one item by the data consumer
            </p>
          </item>
          <item>
            <p>
              Receipt of a valid Enumerate message with EnumerationContext 
              element by the data source
            </p>
          </item>
          <item>
            <p>
              Receipt of a valid EnumerateResponse message with 
              EndOfSequence element by the data consumer
            </p>
          </item>
        </ulist>
      </div3>

      <div3>
        <head>Conformance</head>

        <p>
          A conforming data consumer MAY NOT be capable of implementing 
          this test due to its inability to support the optional wsen:Filter 
          element or the @Dialect 
          'http://www.w3.org/2010/08/ws-enu/Dialects/XPath10'.
        </p>
        <p>
          A conforming data source MAY NOT be capable of implementing this 
          test due to its inability to support filtering, to process the 
          filter dialect 'http://www.w3.org/2010/08/ws-enu/Dialects/XPath10',
          or to process the filter content.
        </p>
        <p>
          A conforming data source MAY respond to the initial Enumerate 
          request with a wsen:FilteringNotSupported fault, a 
          wsen:FilterDialectRequestedUnavailable fault, or a 
          wsen:CannotProcessFilter fault.
        </p>
        <p>
          A conforming data source MAY respond to the initial Enumerate 
          request with a wsen:EmptyFilter fault if it detects that the 
          filter will never evaluate to true for the lifetime of 
          the enumeration.
        </p>

      </div3>
    </div2>

    <div2 tocStop='true'>
      <head>Filter Test - XPath 2.0</head>

      <p>
        This test verifies the ability of the data source to correctly 
        implement XPath 2.0 filters. The initial Enumerate request has 
        the following salient features:
      </p>

      <ulist>
        <item>
          <p>NewContext element</p>
        </item>
        <item>
          <p>
            Filter element with @Dialect equal to 
            'http://www.w3.org/2010/08/ws-enu/Dialects/XPath20' 
            (actual filter expression TBD)
          </p>
        </item>
      </ulist>

      <p>
        The subsequent Enumerate requests have the following salient features:
      </p>

      <ulist>
        <item>
          <p>EnumerationContext element that was provided by the data source</p>
        </item>
      </ulist>

      <div3>
        <head>Sequence</head>

        <p>
          The messaging sequence for this test is identical to that of the 
          Basic Test.
        </p>

      </div3>

      <div3>
        <head>Success Criteria</head>

        <ulist>
          <item>
            <p>
              Receipt of valid Enumerate message with NewContext element 
              and Filter element by the data source
            </p>
          </item>
          <item>
            <p>
              Receipt of a valid EnumerateResponse message with 
              EnumerationContext element  and with one item by the data consumer
            </p>
          </item>
          <item>
            <p>
              Receipt of one or more valid Enumerate messages with 
              EnumerationContext element by the data source
            </p>
          </item>
          <item>
            <p>
              Receipt of one or more valid EnumerateResponse messages with 
              one item by the data consumer
            </p>
          </item>
          <item>
            <p>
              Receipt of a valid Enumerate message with EnumerationContext 
              element by the data source
            </p>
          </item>
          <item>
            <p>
              Receipt of a valid EnumerateResponse message with EndOfSequence 
              element by the data consumer
            </p>
          </item>
        </ulist>
      </div3>

      <div3>
        <head>Conformance</head>

        <p>
          A conforming data consumer MAY NOT be capable of implementing 
          this test due to its inability to support the optional 
          wsen:Filter element or the @Dialect 
          'http://www.w3.org/2010/08/ws-enu/Dialects/XPath20'.
        </p>
        <p>
          A conforming data source MAY NOT be capable of implementing this 
          test due to its inability to support filtering, to process the 
          filter dialect 'http://www.w3.org/2010/08/ws-enu/Dialects/XPath20', 
          or to process the filter content.
        </p>
        <p>
          A conforming data source MAY respond to the initial Enumerate 
          request with a wsen:FilteringNotSupported fault, a 
          wsen:FilterDialectRequestedUnavailable fault, or a 
          wsen:CannotProcessFilter fault.
        </p>
        <p>
          A conforming data source MAY respond to the initial Enumerate 
          request with a wsen:EmptyFilter fault if it detects that the 
          filter will never evaluate to true for the lifetime of 
          the enumeration.
        </p>

      </div3>
    </div2>
    
  </div1>

  <div1 id="policy">
   <head>WS-SOAP Assertions &amp; WS-Event Descriptions</head>

   <p>
    While this working group will not explicitly test the use of WS-Policy,
    this test scenario allows for the inclusion of the WS-SA and 
    WS-EVD policy assertions to appear in the WSDL of the Tracker Service.
    In doing this the scenario is verifying that the assertions can
    successfully be included as part of the WSDL/Policy of a service.
   </p>
  </div1>

  <div1 id="wsdl">
   <head>WSDL</head>

   <div2>
    <head>Event Source WSDL</head>

    <p>
     TBD
    </p>
   </div2>

   <div2>
    <head>Notification WSDL</head>
    <p>
     Available here:
    <loc href='http://www.w3.org/2002/ws/ra/test/scenario/scenarioSink.wsdl'>http://www.w3.org/2002/ws/ra/test/scenario/scenarioSink.wsdl</loc>
    </p>
   </div2>
  </div1>

  <div1 id="evd">
   <head>EventDescriptions</head>

   <p>
     Available here:
    <loc href='http://www.w3.org/2002/ws/ra/test/scenario/scenarioSource.evd'>http://www.w3.org/2002/ws/ra/test/scenario/scenarioSource.evd</loc>
   </p>
  </div1>
 
  <div1 id="xsd">
   <head>Schemas</head>

   <p>
    TBD
   </p>
  </div1>

  <div1 id="acks">
   <head>Acknowledgements</head>

   <p>
    This specification has been developed as a result of joint
    work with many individuals and teams, including: 
     Alessio Soldano (Red Hat),
     Ashok Malhotra (Oracle Corp.),
     Asir Vedamuthu (Microsoft Corp.),
     Bob Freund (Hitachi, Ltd.),
     Bob Natale (MITRE Corp.),
     David Snelling (Fujitsu, 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),
     Martin Chapman (Oracle Corp.),
     Paul Fremantle (WSO2),
     Paul Nolan (IBM),
     Prasad Yendluri (Software AG),
     Ram Jeyaraman (Microsoft Corp.),
     Sreedhara Narayanaswamy (CA),
     Sumeet Vij (Software AG),
     Tom Rutt (Fujitsu, Ltd.),
     Vikas Varma (Software AG),
     Wu Chou (Avaya Communications),
     Yves Lafon (W3C/ERCIM).
   </p>
  </div1>

  <div1 id="References">
   <head>References</head>

   <div2>
    <head>Normative References</head>

    <blist>
     <bibl key="RFC 2119" id="RFC2119"
      href="http://www.ietf.org/rfc/rfc2119.txt">
       <titleref>
        Key words for use in RFCs to Indicate Requirement Levels
       </titleref>
       , S. Bradner, Author.
       Internet Engineering Task Force, March 1997.
     </bibl>

     <bibl key="SOAP11" id="SOAP11"
      href="http://www.w3.org/TR/2000/NOTE-SOAP-20000508/">
       <titleref>
        W3C Note, "Simple Object Access Protocol (SOAP) 1.1"
       </titleref>
       , D. Box, et al, Editors.
       World Wide Web Consortium (W3C), 8 May 2000.
     </bibl>

     <bibl key="SOAP12" id="SOAP12"
      href="http://www.w3.org/TR/soap12-part1/">
       <titleref>
        W3C Recommendation, "SOAP Version 1.2 Part 1: Messaging Framework"
       </titleref>
       , M. Gudgin, M. Hadley, N. Mendelsohn, J-J. Moreau, H. Frystyk Nielson,
        Editors.
       World Wide Web Consortium (W3C), 27 April 2007.
     </bibl>

     <bibl key="WS-Addressing" id="AddrCore"
      href="http://www.w3.org/TR/ws-addr-core">
       <titleref>
        W3C Recommendation, "Web Services Addressing 1.0 (WS-Addressing)"
       </titleref>
       , M. Gudgin, M. Hadley, T. Rogers, Editors.
       World Wide Web Consortium (W3C), 9 May 2006.
     </bibl>

     <bibl key="WS-Enumeration" id="Enumeration"
      href="http://www.w3.org/TR/ws-enumeration">
       <titleref>
        W3C Working Group Draft, "Web Services Enumeration
          (WS-Enumeration) 1.1"
       </titleref>
       , D. Davis, et al., Editors.
       World Wide Web Consortium (W3C), 15 September 2009.
     </bibl>

     <bibl key="WS-EventDescriptions" id="EventDescriptions"
      href="http://www.w3.org/TR/ws-event-description">
       <titleref>
        W3C Working Group Draft, "Web Services Event Descriptions
          (WS-EventDescriptions) 1.0"
       </titleref>
       , D. Davis, et al., Editors.
       World Wide Web Consortium (W3C), 15 September 2009.
     </bibl>

     <bibl key="WS-Eventing" id="Eventing"
      href="http://www.w3.org/TR/ws-eventing">
       <titleref>
        W3C Working Group Draft, "Web Services Eventing
          (WS-Eventing) 1.1"
       </titleref>
       , D. Davis, et al., Editors.
       World Wide Web Consortium (W3C), 15 September 2009.
     </bibl>

     <bibl key="WS-Fragment" id="Fragment"
      href="http://www.w3.org/TR/ws-fragment">
       <titleref>
        W3C Working Group Draft, "Web Services Fragment
          (WS-Fragment) 1.0"
       </titleref>
       , D. Davis, et al., Editors.
       World Wide Web Consortium (W3C), 15 September 2009.
     </bibl>

     <bibl key="WS-MetadataExchange" id="MetadataExchange"
      href="http://www.w3.org/TR/ws-metadata-exchange">
       <titleref>
        W3C Working Group Draft, "Web Services Metadata Exchange
          (WS-MetadataExchange) 1.1"
       </titleref>
       , D. Davis, et al., Editors.
       World Wide Web Consortium (W3C), 15 September 2009.
     </bibl>

     <bibl key="WS-SOAPAssertions" id="SOAPAssertions"
      href="http://www.w3.org/TR/ws-soap-assertions">
       <titleref>
        W3C Working Group Draft, "Web Services SOAP Assertions
          (WS-SOAPAssertions) 1.0"
       </titleref>
       , D. Davis, et al., Editors.
       World Wide Web Consortium (W3C), 15 September 2009.
     </bibl>

     <bibl key="WS-Transfer" id="Transfer"
      href="http://www.w3.org/TR/ws-transfer">
       <titleref>
        W3C Working Group Draft, "Web Services Transfer
          (WS-Transfer) 1.1"
       </titleref>
       , D. Davis, et al., Editors.
       World Wide Web Consortium (W3C), 15 September 2009.
     </bibl>

     <bibl key="WSDL11" id="WSDL11"
      href="http://www.w3.org/TR/2001/NOTE-wsdl-20010315">
       <titleref>
        W3C Note, "Web Services Description Language (WSDL) 1.1"
       </titleref>
       , E. Christensen, et al., Editors.
       World Wide Web Consortium (W3C), 15 March 2001
     </bibl>

     <bibl key="XMLSchema - Part 1" id="XMLSchema1"
      href="http://www.w3.org/TR/xmlschema-1/">
       <titleref>
        W3C Recommendation, "XML Schema Part 1: Structures (Second Edition)"
       </titleref>
       , H. Thompson, et al., Editors.
       World Wide Web Consortium (W3C), 28 October 2004.
     </bibl>

     <bibl key="XMLSchema - Part 2" id="XMLSchema2"
      href="http://www.w3.org/TR/xmlschema-2/">
       <titleref>
        W3C Recommendation, "XML Schema Part 2: Datatypes (Second Edition)"
       </titleref>
       , P. Biron, A. Malhotra, Editors.
       World Wide Web Consortium (W3C), 28 October 2004.
     </bibl>

    </blist>
   </div2>
 
  </div1>
 </body>
 
 <back>
  <div1 id="Appendix-A">
   <head>XML Schema</head>
   
   <p>
    A normative copy of the XML Schema <bibref ref='XMLSchema1'/>,
    <bibref ref='XMLSchema2'/> description for this specification can be 
    retrieved from the following address:
   </p>
   
   <example>
    <eg><loc href='http://www.w3.org/2002/ws/ra/test/scenario/scenario.xsd'>http://www.w3.org/2002/ws/ra/test/scenario/scenario.xsd</loc></eg>
   </example>

   <p>
    A non-normative copy of the XML schema is listed below for convenience. 
   </p>

   <example>
    <eg>&lt;xs:schema 
  targetNamespace='http://www.w3.org/2002/ws/ra/test/scenario'
  xmlns:tns='http://www.w3.org/2002/ws/ra/test/scenario'
  xmlns:xs='http://www.w3.org/2001/XMLSchema'
  elementFormDefault='qualified'
  blockDefault='#all' >
 
  &lt;xs:complexType name='emptyElementType'>
    &lt;xs:sequence>
      &lt;xs:any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>
    &lt;/xs:sequence>
    &lt;xs:anyAttribute namespace='##other' processContents='lax'/>
  &lt;/xs:complexType>

  &lt;xs:element name='SOAP11' type='tns:emptyElementType'/>
  &lt;xs:element name='SOAP12' type='tns:emptyElementType'/>

&lt;/xs:schema></eg>
   </example>
  </div1>


  <div1 id="changelog">
   <head>Change Log</head>

   <table border="1">
    <tbody>
     <tr>
      <th> Data </th>
      <th> Author </th>
      <th> Description </th>
     </tr>
     <tr>
      <td> 2010/10/26 </td>
      <td> GP </td>
      <td> 
       Initial revision
      </td>
     </tr>
     <tr>
      <td> 2010/10/27 </td>
      <td> GP </td>
      <td> 
       Fleshed out Basic, Wrapped, and Expiration tests; added sequence 
       diagrams. Added stubs for Renew and Non-Addressable Event Sink tests.
      </td>
     </tr>
     <tr>
      <td> 2010/10/28 </td>
      <td> GP </td>
      <td> 
       Editorial fixes. Changed animal names in honor of the Irish 
       light-bellied Brent Geese tracked by the WWT (http://www.wwt.org.uk/).
      </td>
     </tr>
     <tr>
      <td> 2010/10/30 </td>
      <td> GP </td>
      <td> 
       Added 34Conformance34 sections to each test that describe any 
       allowable failures. Added sequence diagrams to Renew Test,  
       SubscriptionEnd Test, and Non-Addressable Event Sink Test.
      </td>
     </tr>
     <tr>
      <td> 2011/01/09 </td>
      <td> DD </td>
      <td> 
       Add a history section to each animal so we can track medical
       history or just make notes about the animal.  Really, we need
       an array and something with an attribute to test frag stuf
      </td>
     </tr>
     <tr>
      <td> 2011/01/14 </td>
      <td> NB </td>
      <td> 
       Added initial Enum section
      </td>
     </tr>
     <tr>
      <td> 2011/02/02 </td>
      <td> DD </td>
      <td> 
       Moved from edcopies dir to test dir
      </td>
     </tr>
     <tr>
      <td> 2011/02/02 </td>
      <td> DD </td>
      <td> 
       Updated frag xpath to not need prefix namespace mapping
      </td>
     </tr>
     <tr>
      <td> 2011/02/04 </td>
      <td> DD </td>
      <td> 
       Add the sce:Scenario header and the sce:EndTime element
      </td>
     </tr>
     <tr>
      <td> 2011/03/22 </td>
      <td> DD </td>
      <td> 
       Updates from Nathan
      </td>
     </tr>
     <tr>
      <td> 2011/04/07 </td>
      <td> DD </td>
      <td> 
       Update namespaces to CR version - http://www.w3.org/2011/03/...
      </td>
     </tr>
    </tbody>
   </table>
  </div1>

 </back>
</spec>
