<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type='text/xsl' href='xmlspec.xsl'?>
<!DOCTYPE spec PUBLIC "-//W3C//DTD Specification V2.1//EN" "xmlspec.dtd" [
<!ENTITY % entities SYSTEM "entitieswd.dtd" >
%entities;
<!ENTITY status "&wsenu.status;" >
<!ENTITY short-status "&wsenu.short-status;" >
 ]>

<spec w3c-doctype="&wsenu.w3c-doctype;" role="&wsenu.role;">
 <header>
  <title>&wsenu.name;</title>
  <w3c-designation>&wsenu.w3c-designation;</w3c-designation>
  <w3c-doctype>&wsenu.status;</w3c-doctype>
  <pubdate>
   <day>&wsenu.day;</day>
   <month>&wsenu.month;</month>
   <year>&wsenu.year;</year>
  </pubdate>

  <publoc>
   <loc xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple"
         xlink:show="replace" xlink:actuate="onRequest"
         href="&wsenu.dated;">&wsenu.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/&wsenu.shortname;">http://www.w3.org/TR/&wsenu.shortname;
   </loc>
  </latestloc>

  <prevlocs>
   <loc xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple"
         xlink:show="replace" xlink:actuate="onRequest"
         href="&prev.wsenu.dated;">&prev.wsenu.dated;
   </loc>
  </prevlocs>

  <authlist>
   <author>
    <name>Doug Davis</name>
    <affiliation>IBM</affiliation>
   </author>
   <author>
    <name>Ashok Malhotra</name>
    <affiliation>Oracle</affiliation>
   </author>
   <author>
    <name>Katy Warr</name>
    <affiliation>IBM</affiliation>
   </author>
   <author>
    <name>Wu Chou</name>
    <affiliation>Avaya</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>
    This specification describes a general SOAP-based protocol for  
    enumerating a sequence of XML elements from a SOAP enabled information  
    source.
   </p>
  </abstract>

  <langusage>
    <language id="en">English</language>
  </langusage>

  <revisiondesc>
    <p>Last Modified: $Date: 2011/12/09 16:23:38 $</p>
  </revisiondesc>

 </header>

 <body>
  <div1 id="composable">
   <head>Composable Architecture</head>

   <p>
    By using the XML, SOAP <bibref ref="SOAP11"/>,
    <bibref ref="SOAP12"/>, and WSDL <bibref ref="WSDL11"/>
    extensibility models, the Web service
    specifications (WS-*) are designed to be composed with each other
    to provide a rich set of tools for the Web
    services environment. This specification specifically relies on
    other Web service specifications to provide secure, reliable,
    and/or transacted message delivery and to express Web service and
    client policy.
   </p>
  </div1>

  <div1 id="intro">
   <head>Introduction</head>
   <p>
    There are numerous applications for which a
    simple single-request/single-reply metaphor is insufficient for
    transferring large data sets over SOAP. Applications that do not
    fit into this simple paradigm include streaming, traversal, query,
    and enumeration.
   </p>
   <p>
    This specification defines a simple SOAP-based
    protocol for enumeration that allows the data source to provide a
    session abstraction, called an enumeration context, to a consumer
    that represents a logical cursor through a sequence of data items.
    The consumer can then request XML element information items using
    this enumeration context over the span of one or more SOAP
    messages.
   </p>
   <p>
    Somewhere, state MUST be maintained regarding
    the progress of the iteration. This state MAY be maintained between
    requests by the data source being enumerated or by the data
    consumer. WS-Enumeration allows the data source to decide, on a
    request-by-request basis, which party will be responsible for
    maintaining this state for the next request.
   </p>
   <p>
    In its simplest form, WS-Enumeration defines an operation, Enumerate,
    used to establish the creation of an enumeration session or
    which allows a data source, in the context
    of a specific enumeration, to produce a sequence of XML elements in
    the body of a SOAP message. Each subsequent Enumerate operation returns
    the next N elements in the aggregate sequence.
   </p>
   <p>
    A data source MAY provide a custom mechanism for
    starting a new enumeration. For instance, a data source that
    provides access to a SQL database can support a SELECT operation
    that performs a database query and uses an explicit database cursor
    to iterate through the returned rows. In general, however, it is
    simpler if all data sources support a single, standard operation to
    start an enumeration. This specification mandates
    that data sources MUST implement the Enumerate operation for starting a new
    enumeration of a data source. 
    Each new enumeration results in a distinct enumeration context,
    each with its own logical cursor/position.
   </p>
   <p>
    Note that different
    enumerations of the same data source can produce different results;
    this can happen even for two enumeration contexts created
    concurrently by a single consumer using identical Enumerate
    requests. The ordering or completeness of the enumeration
    is undefined; the returned data items represent a selection by the
    data source of items it wishes to present to that consumer at that
    time in that order, with no guarantee that every available item is
    returned or that the order in which items is returned has any
    semantic meaning whatsoever (of course, any specific data source
    can provide strong guarantees, if so desired). In particular, 
    note that the very act of enumerating the contents of a
    data source can modify the contents of the data source; for
    instance, a queue might be represented as a data source such that
    items that are returned in a Enumerate response are removed from the
    queue.
   </p>

   <div2 id="reqs">
    <head>Requirements</head>
    <p>
     This specification intends to meet the following requirements:
    </p>
    <ulist>
     <item>
      <p>
       Support enumeration of data sources
       that cannot practically fit into a single SOAP
       message.
      </p>
     </item>
     <item>
      <p>
       Support both server-side and
       client-side enumeration state maintenance.
      </p>
     </item>
     <item>
      <p>
       Minimize additional mechanism
       beyond the current web service architecture.
      </p>
     </item>
    </ulist>
   </div2>
  </div1>

  <div1 id="termsNotes">
   <head>Notations and Terminology</head>
   <p>
    This section specifies the notations,
    namespaces, and terminology used in this
    specification.
   </p>

   <div2 id="conv">
    <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>
     </item>
     <item>
      <p>
       "?" (0 or 1)
      </p>
     </item>
     <item>
      <p>
       "*" (0 or more)
      </p>
     </item>
     <item>
      <p>
       "+" (1 or more)
      </p>
     </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 points of extensibility. 
      </p>
     </item>
     <item>
      <p>
       XML namespace prefixes (see <specref ref="xmlnamespaces"/>) are used 
       to indicate the namespace of the element being
       defined.
      </p>
     </item>
    </ulist>

    <p>
     In addition to Message Information Header properties
     <bibref ref="AddrCore"/>,
     this specification uses the following properties to define messages:
    </p>

    <glist>
     <gitem>
      <label> <kw>[Headers]</kw> </label>
      <def>
       <p> Unordered message headers. </p>
      </def>
     </gitem>

     <gitem>
      <label> <kw>[Action]</kw> </label>
      <def>
       <p> The value to be used for the wsa:Action IRI. </p>
      </def>
     </gitem>

     <gitem>
      <label> <kw>[Body]</kw> </label>
      <def>
       <p> A message body. </p>
      </def>
     </gitem>
    </glist>

    <p>
     These properties bind to a SOAP Envelope as follows:
    </p>

    <example>
    <eg>&lt;s:Envelope&gt;
  &lt;s:Header&gt;
    <kw>[Headers]</kw>
    &lt;wsa:Action&gt;<kw>[Action]</kw>&lt;/wsa:Action&gt;
    ...
  &lt;/s:Header&gt;
  &lt;s:Body&gt;<kw>[Body]</kw>&lt;/s:Body&gt;
&lt;/s:Envelope&gt;</eg>
    </example>

    <p>
     This specification can be used in terms of XML Information Set (Infoset)
     <bibref ref="XMLInfoset"/>, even though the specification uses XML 1.0
     terminology. Valid Infoset for this specification is the one
     serializable in XML 1.0, hence the use of XML 1.0.
    </p>

    <p>
     The term "generate" is used in relation to the various faults defined 
     by this specification to imply that a fault is produced and no 
     further processing SHOULD be performed. In these cases the fault 
     SHOULD be transmitted. However, there might be reasons when a compliant 
     implementation can choose not to transmit the fault - for example, 
     security concerns - in these situations the service MAY choose
     not to transmit the fault.
    </p>

   </div2>

   <div2 id="extensions">
    <head>Considerations on the Use of Extensibility Points</head>

    <p>
     The elements defined in this specification MAY be extended at the 
     points indicated by their outlines and schema. Implementations MAY 
     add child elements and/or attributes at the indicated extension 
     points but MUST NOT contradict the semantics of the parent and/or 
     owner, respectively. If a receiver does not recognize an extension, 
     the receiver SHOULD ignore that extension. Senders MAY indicate 
     the presence of an extension that has to be understood through the use
     of a corresponding SOAP Header with a soap:mustUnderstand attribute 
     with the value "1".
    </p>

    <p>
     In cases where it is either desirable or necessary for the receiver 
     of a request that has been extended to indicate that it has 
     recognized and accepted the semantics associated with that extension, 
     it is RECOMMENDED that the receiver add a corresponding extension 
     to the response message.  The definition of an extension SHOULD clearly 
     specify how the extension that appears in the response correlates 
     with that in the corresponding request.
    </p>

    <p>
     Extension elements and attributes MUST NOT use the Web Services 
     Enumeration namespace URI.
    </p>
   </div2>

   <div2 id="terms">
    <head>Terminology</head>

    <glist>
     <gitem>
      <label> Consumer </label>
      <def>
       <p>
        The Web service that is requesting the data
        enumeration from the data source
       </p>
      </def>
     </gitem>
     
     <gitem>
      <label> Data Source </label>
      <def>
       <p>
        A Web service that supports traversal using
        enumeration contexts via the Enumerate operation defined in this
        specification
       </p>
      </def>
     </gitem>

     <gitem>
      <label> Enumeration context </label>
      <def>
       <p>
        A session context that represents a specific
        traversal through a logical sequence of XML element information
        items using the Enumerate operation defined in this
        specification
       </p>
      </def>
     </gitem>
    </glist>
   </div2>

   <div2 id="compliance">
    <head>Compliance</head>
    
    <p>
     An implementation is not compliant with this specification if it fails to
     satisfy one or more of the MUST or REQUIRED level requirements defined 
     herein.  A SOAP Node MUST NOT use the XML namespace identifier for this 
     specification (listed in <specref ref="namespaces"/>) within SOAP 
     Envelopes unless it is compliant with this specification. 
    </p>
    
    <p>
     Normative text within this specification takes precedence over the XML 
     Schema and WSDL descriptions, which in turn take precedence over 
     outlines, which in turn take precedence over examples. 
    </p>
    
    <p>
     All messages defined by this specification MUST conform to the 
     WS-Addressing specifications and be sent to a Web service that 
     is addressable by an EPR (see <bibref ref="AddrCore"/>). 
    </p>

    <p>
     Unless otherwise noted, all IRIs are absolute IRIs and IRI comparison 
     MUST be performed according to <bibref ref="RFC3987"/> section 5.3.1.
    </p>

    <p>
     For any message defined by this specification, any OPTIONAL elements 
     or attributes in the message MAY be used by senders of the message; 
     however receivers of those messages MUST support those OPTIONAL 
     elements and attributes, unless other behavior is explicitly defined 
     by this specification.
    </p>

    <p>
     Implementations are expected to support both UTF-8 and UTF-16 as 
     described in XML 1.0.
    </p>

    <p>
     Implementations of this specification MUST conform to the corrected 
     version of WSDL as defined by the 'WSDL Correction' sections of WS-I 
     Basic Profile 1.2 <bibref ref="BP12"/> and WS-I Basic Profile 2.0
     <bibref ref="BP20"/>.
    </p>
    
   </div2>

   <div2 id="namespaces">
    <head>XML Namespaces</head>

    <p>
     The XML namespace URI that MUST be used by
     implementations of this specification is: 
    </p>
    <example>
     <eg><loc href="http://www.w3.org/&wsenu.nsprefix;/ws-enu">http://www.w3.org/&wsenu.nsprefix;/ws-enu</loc></eg>
    </example>

    <p>
     <specref ref="xmlnamespaces"/> lists XML namespaces that are used in
     this specification. The choice of any namespace prefix is arbitrary
     and not semantically significant.
    </p>

    <table id='xmlnamespaces' border="1">
     <caption>
      Prefixes and XML namespaces used in this specification
     </caption>

     <tbody>
      <tr>
       <th align="left"> Prefix </th>
       <th align="left"> XML Namespace </th>
       <th align="left"> Specification(s) </th>
      </tr>

      <tr>
       <td> wsen </td>
       <td>
        <loc href="http://www.w3.org/&wsenu.nsprefix;/ws-enu">
         http://www.w3.org/&wsenu.nsprefix;/ws-enu
        </loc>
       </td>
       <td> This specification </td>
      </tr>
      <tr>
       <td> s </td>
       <td>
        <loc href="http://www.w3.org/2003/05/soap-envelope">
         http://www.w3.org/2003/05/soap-envelope
        </loc>
       </td>
       <td> SOAP 1.2 <bibref ref="SOAP12"/> </td>
      </tr>
      <tr>
       <td> s11 </td>
       <td>
        <loc href="http://schemas.xmlsoap.org/soap/envelope/">
         http://schemas.xmlsoap.org/soap/envelope/
        </loc>
       </td>
       <td> SOAP 1.1 <bibref ref="SOAP11"/> </td>
      </tr>
      <tr>
       <td> wsa </td>
       <td>
        <loc href="http://www.w3.org/2005/08/addressing">
         http://www.w3.org/2005/08/addressing
        </loc>
       </td>
       <td> WS-Addressing <bibref ref="AddrCore"/> </td>
      </tr>
      <tr>
       <td> wsp </td>
       <td>
        <loc href="http://www.w3.org/ns/ws-policy">
         http://www.w3.org/ns/ws-policy 
        </loc>
       </td>
       <td> WS-Policy <bibref ref="wspolicy"/> </td>
      </tr>
      <tr>
       <td> xs </td>
       <td>
        <loc href="http://www.w3.org/2001/XMLSchema">
         http://www.w3.org/2001/XMLSchema
        </loc>
       </td>
       <td> 
        XML Schema <bibref ref="XMLSchema1"/>, <bibref ref="XMLSchema2"/>
       </td>
      </tr>
      <tr>
       <td> wsdl </td>
       <td>
        <loc href="http://schemas.xmlsoap.org/wsdl">
         http://schemas.xmlsoap.org/wsdl
        </loc>
       </td>
       <td> WSDL/1.1 <bibref ref="WSDL11"/> </td>
      </tr>
     </tbody>
    </table>

    <p>
     The working group intends to update the value of the Web Services
     Enumeration namespace URI each time a new version of this document is
     published until such time that the document reaches Candidate
     Recommendation status. Once it has reached Candidate Recommendation
     status, the working group intends to maintain the value of the
     Web Services Enumeration namespace URI that was assigned in the 
     Candidate Recommendation unless significant changes are made that 
     impact the implementation or break post-CR implementations of the
     specification. Also see
     <loc href="http://www.w3.org/2001/tag/doc/namespaceState.html">
      http://www.w3.org/2001/tag/doc/namespaceState.html
     </loc> and
     <loc href="http://www.w3.org/2005/07/13-nsuri">
      http://www.w3.org/2005/07/13-nsuri
     </loc>.
    </p>

   </div2>

  </div1>

  <div1 id="EnumMsgs">
   <head>Enumeration Messages</head>

   <p>
    Enumeration contexts represent a specific
    traversal through a sequence of XML information items. A Enumerate
    operation can be used to establish an enumeration context from a
    data source. A subsequent Enumerate operation is used to fetch information 
    items from a data source according to a specific enumeration context. A
    Release operation is used to tell a data source that the consumer
    is abandoning an enumeration context before it has completed the
    enumeration.
   </p>

   <p>
    Enumeration contexts are represented as XML data
    that is opaque to the consumer. Initially, the consumer gets an
    enumeration context from the data source by means of a Enumerate
    operation. The consumer then passes that XML data back to the data
    source in subsequent Enumerate requests. Optionally, the data source MAY 
    return an updated enumeration context in the Enumerate response; when 
    present, this new enumeration context MUST replace the old one on the
    consumer, and MUST be passed to the data source in all future
    requests until and unless the data source again returns an updated
    enumeration context.
   </p>

   <p>
    Callers MAY issue a Release operation against a
    valid enumeration context at any time, which causes the enumeration
    context to become invalid and allows the data source to free up any
    resources it might have allocated to the enumeration. Issuing a
    Release operation prior to reaching the end of the sequence of
    items is explicitly allowed; however, no further operations
    MUST be issued after a Release.
   </p>

   <p>
    An enumeration context can become invalid for any reason including:
   </p>
   
   <olist>
    <item>
     <p>
      Enumeration completed (i.e. an EndOfSequence has been returned in a
      Enumerate response)
     </p>
    </item>
    <item>
     <p> Enumeration released </p>
    </item>
    <item>
     <p> Enumeration expired </p>
    </item>
    <item>
     <p>
      Enumeration context replaced in the response to another Enumerate request
     </p>
    </item>
    <item>
     <p> 
      Enumeration ended (i.e. as indicated via an EnumerationEnd message from
      data source)
     </p>
    </item>
   </olist>

   <p>
    As the last item indicates, the data source MAY invalidate an
    enumeration context at any time.
   </p>
   
   <p>
    When processing a Enumerate, Renew, GetStatus or Release operation, a 
    data source MUST generate an wsen:InvalidEnumerationContext fault if 
    it determines that the enumeration context supplied by the consumer 
    in the request is invalid.
   </p>

   <p>
    Note that the data source might not be able to determine that an 
    enumeration context is invalid, especially if all of the state 
    associated with the enumeration is kept in the enumeration context 
    and refreshed on every EnumerateResponse or RenewResponse.
   </p>

   <p>
    Once a consumer determines that an enumeration context is invalid, it
    MUST NOT issue any more WS-Enumeration request messages referencing
    that enumeration context.
   </p>

   <div2 id="Enumerate">
    <head>Enumerate</head>

    <p>
     The Enumerate operation is initiated by sending a Enumerate request 
     message to the data source. 
     This operation MUST be supported by compliant data sources.
     The Enumerate request message MUST be of the following form:
    </p>

    <example>
     <eg><kw>[Action]</kw>
  http://www.w3.org/&wsenu.nsprefix;/ws-enu/Enumerate

<kw>[Body]</kw>
  &lt;wsen:Enumerate ...>
    ( &lt;wsen:NewContext ...>
        &lt;wsen:EndTo&gt;<emph>endpoint-reference</emph>&lt;/wsen:EndTo> ?
        &lt;wsen:Expires BestEffort="<emph>xs:boolean</emph>"? ...&gt;
          (<emph>xs:dateTime</emph> | <emph>xs:duration</emph>)
        &lt;/wsen:Expires&gt; ?
        &lt;wsen:Filter Dialect="<emph>xs:anyURI</emph>"?> <emph>xs:any</emph> &lt;/wsen:Filter> ?
        <emph>xs:any</emph>*
      &lt;/wsen:NewContext> |
      &lt;wsen:EnumerationContext ...>...&lt;/wsen:EnumerationContext> )
    &lt;wsen:MaxTime&gt;<emph>xs:duration</emph>&lt;/wsen:MaxTime> ?
    &lt;wsen:MaxItems&gt;<emph>xs:long</emph>&lt;/wsen:MaxItems> ?
    &lt;wsen:MaxCharacters&gt;<emph>xs:long</emph>&lt;/wsen:MaxCharacters> ?
    <emph>xs:any</emph>*
  &lt;/wsen:Enumerate></eg>
    </example>

    <p>
     The following describes additional, normative
     constraints on the outline listed above:
    </p>

    <glist>

     <gitem>
      <label> <kw>[Body]</kw>/wsen:Enumerate/wsen:NewContext </label>
      <def>
       <p>
        This OPTIONAL element contains the information necessary to create 
        a new Enumeration.
        Note, a Enumerate request MUST have either a wsen:EnumerationContext 
        element or a wsen:NewContext element.
       </p>
      </def>
     </gitem>

     <gitem>
      <label> <kw>[Body]</kw>/wsen:Enumerate/wsen:NewContext/wsen:EndTo </label>
      <def>
       <p>
        This OPTIONAL element denotes where to send
        an EnumerationEnd message if the enumeration is terminated
        unexpectedly
        (see <specref ref="EnumerationEnd"/>).
        If present, this element MUST
        be of type wsa:EndpointReferenceType. Default is to not send this
        message.  The endpoint to which the EndTo EPR
        refers MUST support the EnumerationEndPortType portType.
        Unless some mechanism is used to indicate otherwise, the messages
        sent to this endpoint MUST use the same version of SOAP that was
        used for the Enumerate message.
       </p>

       <p>
        If the data source does not support the use of the EndTo EPR,
        the data source MUST generate a wsen:EndToNotSupported fault.
       </p>

       <p>
        If included within the Enumerate request message, the
        wsen:EndTo SHOULD have some cursory validity checking performed before
        the Enumerate response is returned. While not all errors can be detected
        prior to sending a message to that EPR, some obvious ones can be
        detected.  For example, an unsupported transport specified within the
        wsa:Address IRI.
        Detecting these errors during Enumerate processing will lessen the 
        chances of the consumer creating an unusable enumeration.  If this 
        check is performed and a problem is detected then the data source 
        MUST generate a wsen:UnusableEPR fault rather than returning the 
        EnumerateResponse
        message.
       </p>
      </def>
     </gitem>

     <gitem>
      <label> <kw>[Body]</kw>/wsen:Enumerate/wsen:NewContext/wsen:Expires </label>
      <def>
       <p>
        This OPTIONAL element can be used by the consumer to indicate the
        expiration time of the requested enumeration.  
        A value of PT0S indicates a request for an infinite expiration time
        (i.e. an enumeration that never expires).
       </p>

       <p>
        The absence of the wsen:Expires element indicates that the expiration
        value will be chosen by the data source.
        This value is communicated via the wsen:GrantedExpires element
        (see below).
       </p>

       <p>
        If the wsen:Expires element is present and the data source is not
        able to grant an expiration time that matches the specified value
        then it MUST generate a wsen:UnsupportedExpirationValue fault.
       </p>

       <p>
        The value of the wsen:Expires element MAY be either a duration
        (xs:duration) or a specific time (xs:dateTime). Data sources
        MUST accept duration values and MAY
        accept specific time values. Upon receiving a request that
        contains specific time values, a data source
        that does not support such value types MUST fail the
        request and generate a wsen:UnsupportedExpirationType fault.
       </p>

       <p>
        If a consumer chooses to use specific time values in a request,
        it is RECOMMENDED that these values include a time zone component.
        Specific time values that lack a time zone MUST be interpreted in
        the local time zone of the receiver.
       </p>
      </def>
     </gitem>

     <gitem>
      <label> <kw>[Body]</kw>/wsen:Enumerate/wsen:NewContext/wsen:Expires@BestEffort </label>
      <def>
       <p>
        This OPTIONAL attribute, when present with a value of 'true',
        indicates that the data source MUST grant an expiration time that
        is its best effort to match the requested
        expiration time. Default value of this attribute is "false" in
        which case the data source MUST grant the requested expiration time
        or fault the enumeration request as defined above.
       </p>
      </def>
     </gitem>

     <gitem>
      <label> <kw>[Body]</kw>/wsen:Enumerate/wsen:NewContext/wsen:Filter </label>
      <def>
       <p>
        This OPTIONAL element contains a Boolean
        predicate in some dialect (see <specref ref="Dialect"/>)
        that all items of
        interest MUST satisfy. The resultant enumeration context MUST NOT
        return items for which this predicate expression evaluates to
        the value false. If this element is absent, then the implied value
        is the expression true(), indicating that no filtering is
        desired.
       </p>
       <p>
        If the data source does not support
        filtering, the request MUST fail, and the data source MUST generate
        a wsen:FilteringNotSupported fault.
       </p>

       <p>
        If the data source supports filtering but
        cannot honor the requested filter dialect, the request MUST fail,
        and the data source MUST generate a
        wsen:FilterDialectRequestedUnavailable fault.
       </p>

       <p>
        If the data source supports filtering and the
        requested dialect but cannot process the requested filter content,
        the request MUST fail, and the data source MUST generate a
        wsen:CannotProcessFilter fault.
       </p>

       <p>
        It is possible for a Enumerate request to contain a filter that
        will never evaluate to true for the lifetime of the enumeration.
        If a data source detects this condition during the processing
        of the Enumerate request it MUST generate a
        wsen:EmptyFilter fault in response to the Enumerate request message.
        If, after the EnumerateResponse message has been sent, the
        data source determines that the filter will never evaluate to true 
        for the lifetime of the enumeration, or if there is an error within 
        the filter expression, the enumeration MUST be terminated. In this 
        case if an EndTo was provided, then a EnumerationEnd message MUST 
        be sent with a Reason value of
        "http://www.w3.org/&wsenu.nsprefix;/ws-evt/SourceCancelling".

       </p>

      </def>
     </gitem>

     <gitem>
      <label id="Dialect"> <kw>[Body]</kw>/wsen:Enumerate/wsen:NewContext/wsen:Filter/@Dialect </label>
      <def>
       <p>
        Implied value is
        "http://www.w3.org/&wsenu.nsprefix;/ws-enu/Dialects/XPath10".
       </p>

       <p>
        If filtering is supported, then support for the XPath 1.0 dialect
        (described below) is RECOMMENDED.
        Alternate filter dialects can be defined.
        Such dialect definitions MUST include sufficient information for
        proper application. For example, it would need to define the context
        (which data) over which the filter operates.
       </p>
      </def>
     </gitem>

     <gitem>
      <label><kw>[Body]</kw>/wsen:Enumerate/wsen:NewContext/wsen:Filter/@Dialect="<loc
       href="http://www.w3.org/&wsenu.nsprefix;/ws-enu/Dialects/XPath10">
        http://www.w3.org/&wsenu.nsprefix;/ws-enu/Dialects/XPath10
       </loc>
      </label>

      <def>
       <p>
        Value of <kw>[Body]</kw>/wsen:Enumerate/wsen:NewContext/wsen:Filter is
        an XPath <bibref ref="XPath1"/>
        predicate expression (PredicateExpr); the context
        of the expression is:
       </p>

       <ulist>
        <item>
         <p>
          Context Node: any XML element that
          could be returned as a direct child of the wsen:Items
          element.
         </p>
        </item>

        <item>
         <p>
          Context Position: 1.
         </p>
        </item>

        <item>
         <p>
          Context Size: 1.
         </p>
        </item>

        <item>
         <p>
          Variable Bindings: None.
         </p>
        </item>

        <item>
         <p>
          Function Libraries: Core Function
          Library <bibref ref="XPath1"/>.
         </p>
        </item>

        <item>
         <p>
          Namespace Declarations: The
          [in-scope namespaces] property <bibref ref="XMLInfoset"/>
          of <kw>[Body]</kw>/wsen:Enumerate/wsen:NewContext/wsen:Filter.
         </p>
        </item>
       </ulist>

       <p>
        The namespace bindings are evaluated against any namespace
        declarations that are in scope where the XPath expression appears
        within the SOAP message.
        Note that the evaluation of expressions that rely on such context
        dependent bindings is fragile in the face of transformations that alter
        namespace prefixes. Such transformations might occur during the
        transmission, processing, storage, or retrieval of a request. Clients
        that wish to isolate expressions from the effects of any changes to the
        namespace prefixes in the containing SOAP message are advised to
        construct expressions in a manner that avoids the use of namespace
        prefixes. For example, use an expression such as
        "/*[local-name()='a' and namespace-uri()='http://www.example.com']"
        not "/ns1:a".
       </p>
      </def>
     </gitem>

     <gitem>
      <label><kw>[Body]</kw>/wsen:Enumerate/wsen:NewContext/wsen:Filter/@Dialect="<loc
       href="http://www.w3.org/&wsenu.nsprefix;/ws-enu/Dialects/XPath20">
        http://www.w3.org/&wsenu.nsprefix;/ws-enu/Dialects/XPath20
       </loc>
      </label>

      <def>
       <p>
        This filter dialect is the same as the XPath 1.0 filter dialect
        except that it uses <bibref ref="XPath2"/> instead of XPath 1.0
        as the expression language.
       </p>
      </def>
     </gitem>

     <gitem>
      <label> <kw>[Body]</kw>/wsen:Enumerate/wsen:EnumerationContext </label>
      <def>
       <p>
        This OPTIONAL element contains the XML data
        that represents the current enumeration context.
        Note, a Enumerate request MUST have either a wsen:EnumerationContext 
        element or a wsen:NewContext element.
       </p>
      </def>
     </gitem>

     <gitem>
      <label> <kw>[Body]</kw>/wsen:Enumerate/wsen:MaxTime </label>
      <def>
       <p>
        This OPTIONAL element (of type xs:duration)
        indicates the maximum amount of time the consumer is willing to
        allow the data source to assemble the Enumerate response. When this
        element is absent, the data source is NOT REQUIRED to limit the
        amount of time it takes to assemble the Enumerate
        response. The data source MUST recognize the wsen:MaxTime
        element. If no items
        are available prior to the request message's deadline,
        the data source MUST return an EnumerationResponse message
        that contains a wsen:Items element with no child elements present.
       </p>
       <p>
        This is useful with data sources that
        accumulate items over time and package them into a single Enumerate
        response.
       </p>
      </def>
     </gitem>

     <gitem>
      <label> <kw>[Body]</kw>/wsen:Enumerate/wsen:MaxItems </label>
      <def>
       <p>
        This OPTIONAL element (of type xs:long)
        indicates the number of items (child elements of wsen:Items in the
        Enumerate response) the consumer is willing to accept. When this element
        is absent, its implied value is 1. Implementations MUST NOT return
        more than this number of items in the Enumerate response message.
        Implementations MAY return fewer than this number based on either
        the wsen:MaxTime timeout, the wsen:MaxCharacters size limit, or
        implementation-specific constraints.
       </p>
      
       <p>
        Note that a value of zero MAY, along with a wsen:NewContext element, 
        be used to create a new enumeration without retrieving any of 
        the data items.
       </p>

       <p>
        If the data source does not support returning items in response
        to a Enumerate request that also created a new enumeration, and the
        Enumerate request did not include a wsen:MaxItems with a 
        value of zero, then the data source MUST generate a 
        wsen:MaxItemsMustBeZero fault.
       </p>

      </def>
     </gitem>

     <gitem>
      <label> <kw>[Body]</kw>/wsen:Enumerate/wsen:MaxCharacters </label>
      <def>
       <p>
        This OPTIONAL element (of type xs:long)
        indicates the maximum size of the returned items, in Unicode
        characters, that the consumer is willing to accept. When this
        element is absent, the data source is NOT REQUIRED to limit the
        number of characters in the Enumerate response. 
        Implementations MUST NOT
        return a Enumerate response message whose wsen:Items element, and
        all of its children, is larger than MaxCharacters. 
        Implementations MAY return a smaller message
        based on the wsen:MaxTime timeout, the wsen:MaxItems limit, or
        implementation-specific constraints.
       </p>

       <p>
        Even if a Enumerate request contains a
        MaxCharacters element, the consumer MUST be prepared to receive a
        Enumerate response that contains more data characters than specified, as
        XML canonicalization or alternate XML serialization algorithms can
        change the size of the representation.
       </p>

       <p>
        When compiling the list of items to return, if the next item would 
        cause the wsen:Items array to be larger than the MaxCharacters 
        value and the wsen:Items array is not empty then the data source 
        MUST return the current list of items back to the client, saving 
        that next item for a subsequent enumerate request. If, however, 
        the wsen:Items array is empty the data source MUST skip the item 
        and MUST NOT return it as part of the enumeration.
       </p>
      </def>
     </gitem>
    </glist>

    <p>
     Other components of the outline above are not
     further constrained by this specification.
    </p>
 
    <p>
     Upon successful processing of a Enumerate request
     message, a data source MUST return a Enumerate response
     message of the following form:
    </p>

    <example>
     <eg><kw>[Action]</kw>
  http://www.w3.org/&wsenu.nsprefix;/ws-enu/EnumerateResponse

<kw>[Body]</kw>
  &lt;wsen:EnumerateResponse ...>
    &lt;wsen:GrantedExpires ...&gt;
      (<emph>xs:dateTime</emph> | <emph>xs:duration</emph>)
    &lt;/wsen:GrantedExpires> 
    &lt;wsen:EnumerationContext ...>...&lt;/wsen:EnumerationContext> ?
    &lt;wsen:Items Reason="<emph>xs:anyURI</emph>"?> 
      &lt;xs:any> enumeration-specific element &lt;/xs:any> *
    &lt;/wsen:Items> ?
    &lt;wsen:EndOfSequence/> ?
    <emph>xs:any</emph>*
  &lt;/wsen:EnumerateResponse></eg>
    </example>

    <p>
     The following describes additional, normative
     constraints on the outline listed above:
    </p>

    <glist>
     <gitem>
      <label> <kw>[Body]</kw>/wsen:EnumerateResponse/wsen:GrantedExpires </label>
      <def>
       <p>
        This element is the expiration time assigned by the data source. The
        expiration time MAY be either a specific time or a duration
        but MUST be of the same type as the wsen:Expires element of
        the corresponding request. If the corresponding request
        did not contain a wsen:Expires element, this element MUST be
        a duration (xs:duration).
       </p>

       <p>
        When expressed as a duration, the wse:GrantedExpires element 
        designates the amount of time remaining on this enumeration 
        as measured from the moment the request message was processed. 
        Although this specification cannot dictate when, during the 
        processing of a request message a enumeration's remaining time  
        is determined, the data source MUST measure the expiration 
        duration from  a time that is at or before the transmission of 
        the response message.
       </p>

       <p>
        A wsen:GrantedExpires value of PT0S indicates that the enumeration will
        never expire.
        It will terminate when the end of the
        enumeration is reached, or if the consumer sends a Release request,
        or by the data source at any time for reasons such as connection
        termination, resource constraints, or system
        shut-down.
       </p>
     
       <p>
        Note that a wsen:GrantedExpires element MUST only appear in a 
        EnumerateResponse message if the corresponding Enumerate request 
        message included a wsen:NewContext element.
       </p>
      </def>
     </gitem>


     <gitem>
      <label> 
       <kw>[Body]</kw>/wsen:EnumerateResponse/wsen:EnumerationContext 
      </label>
      <def>
       <p>
        The OPTIONAL EnumerationContext element, if
        present, contains a XML representation of the 
        enumeration context. The consumer MUST replace the prior
        representation, if any, with the contents of this element.
       </p>
      </def>
     </gitem>

     <gitem>
      <label> 
       <kw>[Body]</kw>/wsen:EnumerateResponse/wsen:Items/<emph>xs:any</emph>
      </label>
      <def>
       <p>
        The OPTIONAL Items element contains zero or
        more enumeration-specific elements, one for each item being
        returned. 
       </p>
      </def>
     </gitem>

     <gitem>
      <label> 
       <kw>[Body]</kw>/wsen:EnumerateResponse/wsen:Items/@Reason
      </label>
      <def>
       <p>
        Implied value is "http://www.w3.org/&wsenu.nsprefix;/ws-enu/TimedOut".
       </p>

       <p>
        The OPTIONAL Reason attribute indicates the reason that the 
        wsen:Items element has no child elements.  Alternate Reason 
        values can be defined. The Reason attribute MUST NOT be present 
        if the wsen:Items element has one or more child elements.
       </p>
      </def>
     </gitem>

     <gitem>
      <label> 
       <kw>[Body]</kw>/wsen:EnumerateResponse/wsen:Items/@Reason="http://www.w3.org/&wsenu.nsprefix;/ws-enu/TimedOut"
      </label>
      <def>
       <p>
        This value MUST be used if no items are available prior to the 
        Enumeration request message's deadline.
       </p>
      </def>
     </gitem>

     <gitem>
      <label> <kw>[Body]</kw>/wsen:EnumerateResponse/wsen:EndOfSequence </label>
      <def>
       <p>
        This OPTIONAL element indicates that no more
        items are available from this enumeration and the enumeration
        context sent by the consumer in the request becomes invalid.
       </p>
      </def>
     </gitem>
    </glist>

    <p>
     Note that at least one of wsen:Items or
     wsen:EndOfSequence MUST appear. It is possible for both to appear
     if items are returned and the sequence is exhausted. Similarly,
     wsen:EnumerationContext and wsen:EndOfSequence MUST NOT both
     appear; neither can appear, or one without the other, but not both
     in the same EnumerateResponse.
    </p>

    <p>
     <specref ref="enumReq"/> lists a sample Enumerate request that
     establishes a new context.
    </p>

    <example id="enumReq">
     <head>Enumerate request</head>

     <eg>(01) &lt;s:Envelope xmlns:S="http://www.w3.org/2003/05/soap-envelope"
(02)    xmlns:wsa="http://www.w3.org/2005/08/addressing"
(03)    xmlns:wsen="http://www.w3.org/&wsenu.nsprefix;/ws-enu">
(04)   &lt;s:Header>
(05)     &lt;wsa:Action>
(06)       http://www.w3.org/&wsenu.nsprefix;/ws-enu/Enumerate
(07)     &lt;/wsa:Action>
(08)     &lt;wsa:MessageID>
(09)       urn:uuid:e7c5726b-de29-4313-b4d4-b3425b200839
(10)     &lt;/wsa:MessageID>
(11)     &lt;wsa:To>http://www.example.com/relayAgent/enum19&lt;/wsa:To>
(12)     &lt;wsa:ReplyTo>
(13)       &lt;wsa:Address>
(14)         http://www.w3.org/2005/08/addressing/anonymous
(15)       &lt;/wsa:Address>
(16)     &lt;/wsa:ReplyTo>
(17)   &lt;/s:Header>
(18)   &lt;s:Body>
(19)     &lt;wsen:Enumerate>
(20)       &lt;wsen:NewContext>
(21)         &lt;wsen:Expires> PT10M &lt;/wsen:Expires>
(22)       &lt;/wsen:NewContext>
(23)       &lt;wsen:MaxItems> 0 &lt;/wsen:MaxItems>
(24)     &lt;/wsen:Enumerate>
(25)   &lt;/s:Body>
(26) &lt;/s:Envelope&gt;</eg>
    </example>

    <p>
     Lines (05-07) in <specref ref="enumReq"/> indicate this message
     is a Enumerate request and that the data source is expected to
     respond with a Enumerate response message. The wsen:Expires
     element on line (21) indicates that the consumer would like an
     enumeration context that will be good for 10 minutes.
     No wsen:Filter element is present, so the resultant
     enumeration context is expected to return all available
     items. Line (23) indicates that the Enumerate response
     is not to include any items from the enumeration - this operation
     is just estalishing the enumeration context.
    </p>

    <p>
     <specref ref="enumRes"/> lists a response to the request in
     <specref ref="enumReq"/>.
    </p>

    <example id="enumRes">
     <head>Response to Enumerate request</head>
     <eg>(01) &lt;s:Envelope xmlns:S='http://www.w3.org/2003/05/soap-envelope'
(02)     xmlns:wsen='http://www.w3.org/&wsenu.nsprefix;/ws-enu'
(03)     xmlns:wsa='http://www.w3.org/2005/08/addressing'>
(04)   &lt;s:Header>
(05)     &lt;wsa:Action>
(06)       http://www.w3.org/&wsenu.nsprefix;/ws-enu/EnumerateResponse
(07)     &lt;/wsa:Action>
(08)     &lt;wsa:RelatesTo>
(09)       urn:uuid:e7c5726b-de29-4313-b4d4-b3425b200839
(10)     &lt;/wsa:RelatesTo>
(11)     &lt;wsa:To>
(12)       http://www.w3.org/2005/08/addressing/anonymous
(13)     &lt;wsa:To>
(14)   &lt;/s:Header>
(15)   &lt;s:Body>
(16)     &lt;wsen:EnumerateResponse>
(17)       &lt;wsen:GrantedExpires> PT10M &lt;/wsen:GrantedExpires>
(18)       &lt;wsen:EnumerationContext>
(19)         123
(20)       &lt;/wsen:EnumerationContext>
(21)     &lt;/wsen:EnumerateResponse>
(22)    &lt;/s:Body>
(23) &lt;/s:Envelope&gt;</eg>
    </example>

    <p>
     Lines (05-07) in <specref ref="enumRes"/> indicate this message
     is a Enumerate response message. Line (17) indicates that the data
     source has created an enumeration context with a lifetime
     of 10 minutes. Lines (18-20) are the XML representation of the
     enumeration context that supports the Enumerate operation defined
     below.
    </p>

    <p>
     <specref ref="EnumerateReq"/> lists a Enumerate request that uses the
     enumeration context established in the previous example.
    </p>

    <example id="EnumerateReq">
     <head>Enumerate request</head>
     <eg>(01) &lt;s:Envelope xmlns:S="http://www.w3.org/2003/05/soap-envelope"
(02)    xmlns:wsa="http://www.w3.org/2005/08/addressing"
(03)    xmlns:wsen="http://www.w3.org/&wsenu.nsprefix;/ws-enu">
(04)   &lt;s:Header>
(05)     &lt;wsa:Action>
(06)       http://www.w3.org/&wsenu.nsprefix;/ws-enu/Enumerate
(07)     &lt;/wsa:Action>
(08)     &lt;wsa:MessageID>
(09)       urn:uuid:e7c5726b-de29-4313-b4d4-b3425b200839
(10)     &lt;/wsa:MessageID>
(11)     &lt;wsa:To>http://www.example.com/relayAgent&lt;/wsa:To>
(12)     &lt;wsa:ReplyTo>
(13)       &lt;wsa:Address> 
(14)         http://www.w3.org/2005/08/addressing/anonymous
(15)       &lt;/wsa:Address>
(16)     &lt;/wsa:ReplyTo>
(17)   &lt;/s:Header>
(18)   &lt;s:Body>
(19)     &lt;wsen:Enumerate>
(20)       &lt;wsen:EnumerationContext>123&lt;/wsen:EnumerationContext>
(21)       &lt;wsen:MaxTime>P30S&lt;/wsen:MaxTime>
(22)       &lt;wsen:MaxItems>10&lt;/wsen:MaxItems>
(23)     &lt;/wsen:Enumerate>
(24)   &lt;/s:Body>
(25) &lt;/s:Envelope&gt;</eg>
    </example>

    <p>
     Lines (05-07) in <specref ref="EnumerateReq"/> indicate this message
     is a Enumerate request and that the data source is expected to respond
     with a Enumerate response message. Line (21) indicates that the response
     message SHOULD be generated no more than 30 seconds after receipt
     of the Enumerate request message. Line (22) indicates that no more than
     10 items can be returned in the body of the Enumerate response
     message.
    </p>

    <p>
     <specref ref="EnumerateRes"/> lists a response to the request in 
     <specref ref="EnumerateReq"/>.
    </p>

    <example id="EnumerateRes">
     <head>Response to Enumerate request</head>
     <eg>(01) &lt;s:Envelope xmlns:S="http://www.w3.org/2003/05/soap-envelope"
(02)     xmlns:wsen="http://www.w3.org/&wsenu.nsprefix;/ws-enu"
(03)     xmlns:wsa="http://www.w3.org/2005/08/addressing">
(04)   &lt;s:Header>
(05)     &lt;wsa:Action>
(06)       http://www.w3.org/&wsenu.nsprefix;/ws-enu/EnumerateResponse
(07)     &lt;/wsa:Action>
(08)     &lt;wsa:RelatesTo>
(09)       urn:uuid:e7c5726b-de29-4313-b4d4-b3425b200839
(10)     &lt;/wsa:RelatesTo>
(11)     &lt;wsa:To>
(12)       http://www.w3.org/2005/08/addressing/anonymous
(13)     &lt;wsa:To>
(14)   &lt;/s:Header>
(15)   &lt;s:Body>
(16)     &lt;wsen:EnumerateResponse>
(17)       &lt;wsen:Items xmlns:xx="http://fabrikam123.example.com/schema/log">
(18)         &lt;xx:LogEntry id="1">System booted&lt;/xx:LogEntry>
(19)         &lt;xx:LogEntry id="2">AppX started&lt;/xx:LogEntry>
(20)         &lt;xx:LogEntry id="3">John Smith logged on&lt;/xx:LogEntry>
(21)         &lt;xx:LogEntry id="4">AppY started&lt;/xx:LogEntry>
(22)         &lt;xx:LogEntry id="5">AppX crashed&lt;/xx:LogEntry>
(23)       &lt;/wsen:Items>
(24)       &lt;wsen:EndOfSequence/>
(25)      &lt;/wsen:EnumerateResponse>
(26)    &lt;/s:Body>
(27) &lt;/s:Envelope&gt;</eg>
    </example>

    <p>
     Lines (05-07) in <specref ref="EnumerateRes"/> indicate this message
     is a Enumerate response message. Lines (18-22) are the five items
     returned by this Enumerate request. The presence of a wsen:EndOfSequence
     element (line (24)) indicates that no more items are available
     and that the enumeration context is now invalid.
    </p>

   </div2>

   <div2 id="Renew">
    <head>Renew</head>

    <p>
     To update, or renew, the expiration for an enumeration, a Renew
     request message is sent to the data source.
     This operation MUST be supported by compliant data sources.
     The Renew request message MUST be of the following form:
    </p>

    <example>
     <eg><kw>[Action]</kw>
  http://www.w3.org/&wsenu.nsprefix;/ws-enu/Renew

<kw>[Body]</kw>
  &lt;wsen:Renew ...>
    &lt;wsen:EnumerationContext ...>...&lt;/wsen:EnumerationContext>
    &lt;wsen:Expires BestEffort="<emph>xs:boolean</emph>"? ...&gt;
      (<emph>xs:dateTime</emph> | <emph>xs:duration</emph>)
    &lt;/wsen:Expires&gt; ?
    <emph>xs:any</emph>*
  &lt;/wsen:Renew></eg>
    </example>

    <p>
     Components of the outline listed above are
     additionally constrained as for a request to create an enumeration
     (see <specref ref="Enumerate"/>) with the following
     addition(s):
    </p>

    <glist>
     <gitem>
      <label> <kw>[Body]</kw>/wsen:Renew/wsen:EnumerationContext </label>
      <def>
       <p>
        This REQUIRED element contains the XML data
        that represents the current enumeration context.
       </p>
      </def>
     </gitem>
    </glist>

    <p>
     Other components of the outline above are not
     further constrained by this specification.
    </p>

    <p>
     If the data source accepts a request to renew an
     enumeration, it MUST reply with a response of the following
     form:
    </p>

    <example>
     <eg><kw>[Action]</kw>
  http://www.w3.org/&wsenu.nsprefix;/ws-enu/RenewResponse

<kw>[Body]</kw>
  &lt;wsen:RenewResponse ...>
    &lt;wsen:GrantedExpires ...&gt;
      (<emph>xs:dateTime</emph> | <emph>xs:duration</emph>)
    &lt;/wsen:GrantedExpires> ?
    &lt;wsen:EnumerationContext ...>...&lt;/wsen:EnumerationContext> ?
    <emph>xs:any</emph>*
  &lt;/wsen:RenewResponse></eg>
    </example>

    <p>
     Components of the outline listed above are
     constrained as for a response to a Enumerate request 
     (see <specref ref="Enumerate"/>) with the following addition:
    </p>

    <glist>
     <gitem>
      <label>
       <kw>[Body]</kw>/wsen:RenewResponse/wsen:EnumerationContext
      </label>
      <def>
       <p>
        This element is OPTIONAL in this response.
       </p>
      </def>
     </gitem>
    </glist>

    <p>
     If the data source chooses not to renew this enumeration, the request
     MUST fail, and the data source MUST generate a SOAP 1.1 Server fault
     or a SOAP 1.2 Receiver fault indicating that the renewal was not
     accepted.
    </p>

    <p>
     Other components of the outline above are not
     further constrained by this specification.
    </p>
   </div2>

   <div2 id="GetStatus">
    <head>GetStatus</head>

    <p>
     To get the status of an enumeration, the
     consumer sends a GetStatus request message to the data source.
     This operation MUST be supported by compliant data sources.
     The message MUST be of the following form:
    </p>

    <example>
     <eg><kw>[Action]</kw>
  http://www.w3.org/&wsenu.nsprefix;/ws-enu/GetStatus

<kw>[Body]</kw>
  &lt;wsen:GetStatus ...>
    &lt;wsen:EnumerationContext ...>...&lt;/wsen:EnumerationContext>
    <emph>xs:any</emph>*
  &lt;/wsen:GetStatus></eg>
    </example>

    <p>
     Components of the outline listed above are
     additionally constrained as for a request to renew an enumeration
     (see <specref ref="Renew"/>). Other components of the outline above are
     not further constrained by this specification.
    </p>

    <p>
     If the enumeration is valid the data source MUST reply with a 
     response of the following form:
    </p>

    <example>
     <eg><kw>[Action]</kw>
  http://www.w3.org/&wsenu.nsprefix;/ws-enu/GetStatusResponse

<kw>[Body]</kw>
  &lt;wsen:GetStatusResponse ...>
    &lt;wsen:GrantedExpires ...&gt;
      (<emph>xs:dateTime</emph> | <emph>xs:duration</emph>)
    &lt;/wsen:GrantedExpires> ?
    <emph>xs:any</emph>*
  &lt;/wsen:GetStatusResponse></eg>
    </example>

    <p>
     Components of the outline listed above are
     constrained as for a response to a renew request 
     (see <specref ref="Renew"/>). Other components of the outline above are 
     not further constrained by this specification.
    </p>

    <p>
     This operation is safe; it will not result in any side effect
     imputable to the consumer. This means that in case of an underlying
     protocol error that might get unnoticed, resending the same request
     can be done automatically.
    </p>
   </div2>

   <div2 id="Release">
    <head>Release</head>

    <p>
     The Release operation is initiated by sending a
     Release request message to the data source. 
     This operation MUST be supported by compliant data sources.
     The Release request message MUST be of the following form:
    </p>

    <example>
     <eg><kw>[Action]</kw>
  http://www.w3.org/&wsenu.nsprefix;/ws-enu/Release

<kw>[Body]</kw>
  &lt;wsen:Release ...>
    &lt;wsen:EnumerationContext ...>...&lt;/wsen:EnumerationContext>
    <emph>xs:any</emph>*
  &lt;/wsen:Release></eg>
    </example>

    <p>
     The following describes additional, normative
     constraints on the outline listed above:
    </p>

    <glist>
     <gitem>
      <label>
       <kw>[Body]</kw>/wsen:Release/wsen:EnumerationContext
      </label>
      <def>
       <p>
        This REQUIRED element contains the XML data
        that represents the enumeration context being
        abandoned.
       </p>
      </def>
     </gitem>
    </glist>

    <p>
     Other components of the outline above are not
     further constrained by this specification.
    </p>

    <p>
     Upon successful processing of a Release request
     message, a data source MUST return a Release response
     message of the following form:
    </p>

    <example>
     <eg><kw>[Action]</kw>
  http://www.w3.org/&wsenu.nsprefix;/ws-enu/ReleaseResponse

<kw>[Body]</kw>
  &lt;wsen:ReleaseResponse ...>
    <emph>xs:any</emph>*
  &lt;/wsen:ReleaseResponse></eg>
    </example>

    <!--
    <p>
     The following describes additional, normative
     constraints on the outline listed above:
    </p>

    <glist>
    </glist>
    -->

    <p>
     <specref ref="releaseReq"/> lists a Release request.
    </p>

    <example id="releaseReq">
     <head>Release request</head>

     <eg>(01) &lt;s:Envelope xmlns:S="http://www.w3.org/2003/05/soap-envelope"
(02)    xmlns:wsa="http://www.w3.org/2005/08/addressing"
(03)    xmlns:wsen="http://www.w3.org/&wsenu.nsprefix;/ws-enu">
(04)   &lt;s:Header>
(05)     &lt;wsa:Action>
(06)       http://www.w3.org/&wsenu.nsprefix;/ws-enu/Release
(07)     &lt;/wsa:Action>
(08)     &lt;wsa:MessageID>
(09)       urn:uuid:e7c5726b-de29-4313-b4d4-b3425b200839
(10)     &lt;/wsa:MessageID>
(11)     &lt;wsa:To>http://www.example.com/relayAgent&lt;/wsa:To>
(12)     &lt;wsa:ReplyTo>
(13)       &lt;wsa:Address> 
(14)         http://www.w3.org/2005/08/addressing/anonymous
(15)       &lt;/wsa:Address>
(16)     &lt;/wsa:ReplyTo>
(17)   &lt;/s:Header>
(18)   &lt;s:Body>
(19)     &lt;wsen:Release>
(20)       &lt;wsen:EnumerationContext>123&lt;/wsen:EnumerationContext>
(21)     &lt;/wsen:Release>
(22)   &lt;/s:Body>
(23) &lt;/s:Envelope&gt;</eg>
    </example>

    <p>
     Lines (05-07) in <specref ref="releaseReq"/> indicate this message
     is a Release request.
     Line (20) identifies the enumeration context to be released.
    </p>

    <p>
     <specref ref="releaseRes"/> lists a response to the request in 
     <specref ref="releaseReq"/>.
    </p>

    <example id="releaseRes">
     <head>Response to Release request</head>
     <eg>(01) &lt;s:Envelope xmlns:S="http://www.w3.org/2003/05/soap-envelope"
(02)     xmlns:wsen="http://www.w3.org/&wsenu.nsprefix;/ws-enu"
(03)     xmlns:wsa="http://www.w3.org/2005/08/addressing">
(04)   &lt;s:Header>
(05)     &lt;wsa:Action>
(06)       http://www.w3.org/&wsenu.nsprefix;/ws-enu/ReleaseResponse
(07)     &lt;/wsa:Action>
(08)     &lt;wsa:RelatesTo>
(09)       urn:uuid:e7c5726b-de29-4313-b4d4-b3425b200839
(10)     &lt;/wsa:RelatesTo>
(11)     &lt;wsa:To>
(12)       http://www.w3.org/2005/08/addressing/anonymous
(13)     &lt;wsa:To>
(14)   &lt;/s:Header>
(15)   &lt;s:Body>
(16)     &lt;wsen:ReleaseResponse/>
(17)   &lt;/s:Body>
(18) &lt;/s:Envelope&gt;</eg>
    </example>

    <p>
     Lines (05-07) in <specref ref="releaseRes"/> indicate this message
     is a Release response message.
    </p>
   </div2>

   <div2 id="EnumerationEnd">
    <head>EnumerationEnd</head>

    <p>
     If the data source terminates an enumeration unexpectedly, and it 
     supports the use of the EndTo EPR, and the EndTo EPR was present in the 
     Enumerate message for that enumeration (see <specref ref="Enumerate"/>),
     the EnumerationEnd message MUST be sent to the endpoint reference 
     indicated by that EPR. 
    </p>

    <p>
     Note, a enumeration context expiring as expected is not considered to 
     be an unexpected termination, therefore a EnumerationEnd message MUST NOT
     be sent in this case.
    </p>

    <p>
     The message MUST be of the following form:
    </p>

    <example>
     <eg><kw>[Action]</kw>
  http://www.w3.org/&wsenu.nsprefix;/ws-enu/EnumerationEnd

<kw>[Body]</kw>
  &lt;wsen:EnumerationEnd ...>
    &lt;wsen:Code>
      ( http://www.w3.org/&wsenu.nsprefix;/ws-enu/SourceShuttingDown |
        http://www.w3.org/&wsenu.nsprefix;/ws-enu/SourceCancelling |
        <emph>xs:anyURI</emph> )
    &lt;/wsen:Code&gt;
    &lt;wsen:Reason xml:lang="<emph>language identifier</emph>" >
      <emph>xs:string</emph>
    &lt;/wsen:Reason> ?
    <emph>xs:any</emph>*
  &lt;/wsen:EnumerationEnd></eg>
    </example>

    <p>
     The following describes additional, normative
     constraints on the outline listed above:
    </p>

    <glist>
     <gitem>
      <label>
       <kw>[Body]</kw>/wsen:EnumerationEnd/wsen:Code =
       "http://www.w3.org/&wsenu.nsprefix;/ws-enu/SourceShuttingDown"
      </label>
      <def>
       <p>
        This value MUST be used if the data source
        terminated the enumeration because the source is being shut down in
        a controlled manner; that is, if the data source is being shut down
        but has the opportunity to send an EnumerationEnd message before it
        exits.
       </p>
      </def>
     </gitem>

     <gitem>
      <label> 
       <kw>[Body]</kw>/wsen:EnumerationEnd/wsen:Code =
       "http://www.w3.org/&wsenu.nsprefix;/ws-enu/SourceCancelling"
      </label>
      <def>
       <p>
        This value MUST be used if the data source
        terminated the enumeration for some other reason before it
        expired.
       </p>
      </def>
     </gitem>

     <gitem>
      <label> <kw>[Body]</kw>/wsen:EnumerationEnd/wsen:Reason </label>
      <def>
       <p>
        This OPTIONAL element contains text, in the
        language specified by the @xml:lang attribute, describing the
        reason for the unexpected enumeration termination.
       </p>
      </def>
     </gitem>
    </glist>

    <p>
     Other components of the outline above are not
     further constrained by this specification.
    </p>

   </div2>
  </div1>

  <div1 id="Faults">
   <head>Faults</head>

   <p>
    All fault messages defined in this specification MUST be sent
    according to the rules and usage described in
    <bibref ref="WSABinding"/>
    Section 6 for encoding SOAP 1.1 and SOAP 1.2 faults.
    The <kw>[Action]</kw> property below MUST be used for faults
    defined in this specification:
   </p>

   <example>
    <eg><loc href="http://www.w3.org/&wsenu.nsprefix;/ws-enu/fault">http://www.w3.org/&wsenu.nsprefix;/ws-enu/fault</loc></eg>
   </example>
   
   <p>
    The definitions of faults in this section use the following properties:
   </p>
   
   <p>
    <kw>[Code]</kw> The fault code.<phrase/>
    <kw>[Subcode]</kw> The fault subcode.<phrase/>
    <kw>[Reason]</kw> The English language reason element.<phrase/>
    <kw>[Detail]</kw> The detail element. If absent, no detail element 
    is defined for the fault.<phrase/>
   </p>
   
   <p>The properties above bind to a SOAP 1.2 fault as follows:</p>
   <example>
    <eg>&lt;s12:Envelope&gt;
  &lt;s12:Header&gt;
    &lt;wsa:Action&gt; <kw>[Action]</kw> &lt;/wsa:Action&gt;
    &lt;!-- Headers elided for brevity. --&gt;
  &lt;/s12:Header&gt;
  &lt;s12:Body&gt;
    &lt;s12:Fault&gt;
      &lt;s12:Code&gt;
        &lt;s12:Value&gt;<kw>[Code]</kw>&lt;/s12:Value&gt;
        &lt;s12:Subcode&gt;
          &lt;s12:Value&gt;<kw>[Subcode]</kw>&lt;/s12:Value&gt;
        &lt;/s12:Subcode&gt;
      &lt;/s12:Code&gt;
      &lt;s12:Reason&gt;
        &lt;s12:Text xml:lang="en"&gt;<kw>[Reason]</kw>&lt;/s12:Text&gt;
      &lt;/s12:Reason&gt;
      &lt;s12:Detail&gt;
        <kw>[Detail]</kw>
        ...
      &lt;/s12:Detail&gt;
    &lt;/s12:Fault&gt;
  &lt;/s12:Body&gt;
&lt;/s12:Envelope&gt;</eg>
   </example>
   
   <p>The properties bind to a SOAP 1.1 fault as follows:</p>
   <example>
    <eg>&lt;s11:Envelope&gt;
  &lt;s12:Header&gt;
    &lt;wsa:Action&gt; <kw>[Action]</kw> &lt;/wsa:Action&gt;
    &lt;!-- Headers elided for brevity. --&gt;
  &lt;/s12:Header&gt;
  &lt;s11:Body&gt;
    &lt;s11:Fault&gt;
      &lt;faultcode&gt;<kw>[Subcode]</kw>&lt;/faultcode&gt;
      &lt;faultstring xml:lang="en"&gt;<kw>[Reason]</kw>&lt;/faultstring&gt;
      &lt;detail&gt;
        <kw>[Detail]</kw>
        ...
      &lt;/detail&gt;
    &lt;/s11:Fault&gt;
  &lt;/s11:Body&gt;
&lt;/s11:Envelope&gt;</eg>
   </example>

   <div2 id="UnsupportedExpirationValue">
    <head>UnsupportedExpirationValue</head>

    <p>
     This fault MUST be generated when a request specifies an
     expiration that is not within the min/max range.
    </p>

    <table border="1">
     <tbody>
      <tr>
       <td> <kw>[Code]</kw> </td>
       <td> s12:Sender </td>
      </tr>
      <tr>
       <td> <kw>[Subcode]</kw> </td>
       <td> wsen:UnsupportedExpirationValue </td>
      </tr>
      <tr>
       <td> <kw>[Reason]</kw> </td>
       <td>
        The expiration time requested is not within the min/max range.
       </td>
      </tr>
      <tr>
       <td> <kw>[Detail]</kw> </td>
       <td> </td>
      </tr>
     </tbody>
    </table>
   </div2>

   <div2 id="UnsupportedExpirationType">
    <head>UnsupportedExpirationType</head>

    <p>
     This fault MUST be generated when a request specifies an
     expiration time and the data source is only capable of accepting
     expiration durations; for instance, if the data source does not
     have access to absolute time.
    </p>

    <table border="1">
     <tbody>
      <tr>
       <td> <kw>[Code]</kw> </td>
       <td> s12:Sender </td>
      </tr>
      <tr>
       <td> <kw>[Subcode]</kw> </td>
       <td> wsen:UnsupportedExpirationType </td>
      </tr>
      <tr>
       <td> <kw>[Reason]</kw> </td>
       <td> Only expiration durations are supported.  </td>
      </tr>
      <tr>
       <td> <kw>[Detail]</kw> </td>
       <td> </td>
      </tr>
     </tbody>
    </table>
   </div2>

   <div2 id="FilteringNotSupported">
    <head>FilteringNotSupported</head>

    <p>
     This fault MUST generated when the data source does not support filters.
    </p>

    <table border="1">
     <tbody>
      <tr>
       <td> <kw>[Code]</kw> </td>
       <td> s12:Sender </td>
      </tr>
      <tr>
       <td> <kw>[Subcode]</kw> </td>
       <td> wsen:FilteringNotSupported </td>
      </tr>
      <tr>
       <td> <kw>[Reason]</kw> </td>
       <td>
        Filtering not supported.
       </td>
      </tr>
      <tr>
       <td> <kw>[Detail]</kw> </td>
       <td> </td>
      </tr>
     </tbody>
    </table>
   </div2>

   <div2 id="FilterDialectRequestedUnavailable">
    <head>FilterDialectRequestedUnavailable</head>

    <p>
     This fault MUST be generated when the data source does not support
     the requested filter dialect.
    </p>

    <table border="1">
     <tbody>
      <tr>
       <td> <kw>[Code]</kw> </td>
       <td> s12:Sender </td>
      </tr>
      <tr>
       <td> <kw>[Subcode]</kw> </td>
       <td> wsen:FilterDialectRequestedUnavailable </td>
      </tr>
      <tr>
       <td> <kw>[Reason]</kw> </td>
       <td>
        Filter dialect requested unavailable.
       </td>
      </tr>
      <tr>
       <td> <kw>[Detail]</kw> </td>
       <td>
        &lt;wsen:SupportedDialect&gt; +
        <phrase/>
        <emph>OPTIONAL; repeating; one per filter dialect supported by the
        receiver</emph>
       </td>
      </tr>
     </tbody>
    </table>
   </div2>

   <div2 id="CannotProcessFilter">
    <head>CannotProcessFilter</head>

    <p>
     This fault MUST be generated when the data source can not process the
     filter content.
    </p>

    <table border="1">
     <tbody>
      <tr>
       <td> <kw>[Code]</kw> </td>
       <td> s12:Sender </td>
      </tr>
      <tr>
       <td> <kw>[Subcode]</kw> </td>
       <td> wsen:CannotProcessFilter </td>
      </tr>
      <tr>
       <td> <kw>[Reason]</kw> </td>
       <td>
        Cannot filter as requested.
       </td>
      </tr>
      <tr>
       <td> <kw>[Detail]</kw> </td>
       <td> </td>
      </tr>
     </tbody>
    </table>
   </div2>

   <div2 id="InvalidEnumerationContext">
    <head>InvalidEnumerationContext</head>

    <p>
     This fault MUST be generated when the enumeration context is invalid.
    </p>

    <table border="1">
     <tbody>
      <tr>
       <td> <kw>[Code]</kw> </td>
       <td> s12:Receiver </td>
      </tr>
      <tr>
       <td> <kw>[Subcode]</kw> </td>
       <td> wsen:InvalidEnumerationContext </td>
      </tr>
      <tr>
       <td> <kw>[Reason]</kw> </td>
       <td>
        <emph>
         Text explaining why the enumeration context is no longer valid, or 
        </emph>
        "Invalid enumeration context" 
        <emph>
         if no additional information is available.
        </emph>
       </td>
      </tr>
      <tr>
       <td> <kw>[Detail]</kw> </td>
       <td> </td>
      </tr>
     </tbody>
    </table>
   </div2>

   <div2 id="UnusableEPR">
    <head>UnusableEPR</head>
   
    <p>
     This fault MUST be generated when a data source detects
     that the wsen:EndTo EPR is unusable.
    </p>
   
    <table border="1">
     <tbody>
      <tr>
       <td><kw>[Code]</kw></td>
       <td>s12:Sender</td>
      </tr>
   
      <tr>
       <td><kw>[Subcode]</kw></td>
       <td>wsen:UnusableEPR</td>
      </tr>
   
      <tr>
       <td><kw>[Reason]</kw></td>
       <td>The wsen:EndTo EPR is unusable.</td>
      </tr>
   
      <tr>
       <td><kw>[Detail]</kw></td>
       <td>
        <emph> Details as to why the EPR is unusable. </emph>
       </td>
      </tr>
     </tbody>
    </table>
   </div2>
   
   <div2 id="EndToNotSupported">
    <head>EndToNotSupported</head>
   
    <p>
     This fault MUST be generated by a data source that does not support 
     /wsen:Enumerate/wsen:NewContext/wsen:EndTo semantics, in response to 
     a Enumerate request that contains a wsen:EndTo element. 
    </p>
   
    <table border="1">
     <tbody>
      <tr>
       <td><kw>[Code]</kw></td>
       <td>s12:Sender</td>
      </tr>
   
      <tr>
       <td><kw>[Subcode]</kw></td>
       <td>wsen:EndToNotSupported</td>
      </tr>
   
      <tr>
       <td><kw>[Reason]</kw></td>
       <td>wsen:EndTo semantics is not supported.</td>
      </tr>
   
      <tr>
       <td><kw>[Detail]</kw></td>
       <td>
        <emph>none</emph>
       </td>
      </tr>
     </tbody>
    </table>
   </div2>

   <div2 id="EmptyFilter">
    <head>EmptyFilter</head>

    <p>
     This fault MUST be generated when a data source detects a
     Enumerate request containing a filter that, for whatever
     reason, will never evaluate to true.
    </p>

    <table border="1">
     <tbody>
      <tr>
       <td><kw>[Code]</kw></td>
       <td>s12:Sender</td>
      </tr>

      <tr>
       <td><kw>[Subcode]</kw></td>
       <td>wsen:EmptyFilter</td>
      </tr>

      <tr>
       <td><kw>[Reason]</kw></td>
       <td>The wsen:Filter would result in zero data items.</td>
      </tr>

      <tr>
       <td><kw>[Detail]</kw></td>
       <td>
        <emph> The wsen:Filter value. </emph>
       </td>
      </tr>
     </tbody>
    </table>
   </div2>
   
   <div2 id="MaxItemsMustBeZero">
    <head>MaxItemsMustBeZero</head>
   
    <p>
     This fault MUST be generated by a data source that does not support 
     returning items in a Enumerate response and the Enumerate request
     did not include a wsen:MaxItems with a value of zero.
    </p>
   
    <table border="1">
     <tbody>
      <tr>
       <td><kw>[Code]</kw></td>
       <td>s12:Sender</td>
      </tr>
   
      <tr>
       <td><kw>[Subcode]</kw></td>
       <td>wsen:MaxItemsMustBeZero</td>
      </tr>
   
      <tr>
       <td><kw>[Reason]</kw></td>
       <td>wsen:MaxItems must be zero when creating a new enumeration.</td>
      </tr>
   
      <tr>
       <td><kw>[Detail]</kw></td>
       <td>
        <emph>none</emph>
       </td>
      </tr>
     </tbody>
    </table>
   </div2>

  </div1>

  <div1 id="Security">
   <head>Security Considerations</head>

   <p>
    This specification considers two sets of security requirements, those 
    of the applications that use the WS-Enumeration protocol and those of 
    the protocol itself.
   </p>

   <p>
    This specification makes no assumptions about the security requirements 
    of the applications that use WS-Enumeration. However, once those 
    requirements have been satisfied within a given operational context, 
    the addition of WS-Enumeration to this operational context can not 
    undermine the fulfillment of those requirements; the use of 
    WS-Enumeration SHOULD NOT create additional attack vectors within 
    an otherwise secure system.
   </p>

   <p>
    The material below is not a "check list". There are many other security 
    concerns that need to be considered when implementing or using this 
    protocol. Implementers and users of this protocol are urged to perform 
    a security analysis to determine their particular threat profile and 
    the appropriate responses to those threats.
   </p>

   <div2>
    <head>Creating Enumeration Contexts</head>

    <p>
     An enumeration represents a logical cursor through a sequence of 
     data items. If the information in these items is sensitive, it is 
     advisable to for Data Sources to authenticate and authorize Consumers 
     as part of the processing of the Enumerate request. Note that a 
     Data Source might authorize retrievals on a per-item basis after the 
     enumeration has been created. This might be necessary in cases where 
     the sensitivity of the information requested might not be known at 
     the time the Enumerate request is processed or varies during the 
     lifetime of the enumeration.
    </p>
   </div2>

   <div2>
    <head>Protecting Enumeration Contexts</head>

    <p>
     Once created, it is advisable to treat Enumeration Contexts as 
     protected resources. Renew, GetStatus, and Release requests ought to 
     be authenticated and authorized (for example, the identity of the 
     requester ought to be checked against the identity of the entity 
     that performed the original Enumerate request). Likewise 
     EnumerationEnd messages ought to be authenticated and authorized 
     (for example, the identity of the sender ought to be checked against 
     the identity the entity that sent the original EnumerateResponse message).
     Note that authentication and authorization policies (i.e. the rules 
     that define which entities are allowed to perform which requests and 
     the mechanisms by which the identities of these entities are 
     discovered and verified) are particular to individual deployments.
    </p>

    <p>
     Enumeration Contexts are also sensitive because of the way they are 
     used to maintain or reference the state of active Enumerations. 
     Attackers able to snoop or guess the value of an Enumeration Context 
     could use this information to Enumerate data items in that Enumeration. 
     To defend against the misuse of snooped/guessed Enumeration Contexts, 
     Data Sources are advised to authenticate and authorize clients 
     sending Enumerate requests.
    </p>
   </div2>

   <div2>
    <head>Endpoint Verification</head>

    <p>
     Data Source implementations that perform validity checks on the 
     EndTo EPR used in the Enumerate request are advised that such checks 
     can be misused to obtain information about a target network. For 
     example, suppose a Data Source implementation verifies the address 
     of EndTo EPRs by attempting to create a connection to this EPR's
     address and faulting the Enumerate request if a connection cannot 
     be created. When deployed within a DMZ, such a Data Source could be 
     exploited by a malicious Consumer to probe for other, non-visible 
     hosts by guessing target addresses and using them in Enumerate requests.
     Note that, even if the returned fault does not provide connection 
     information, the time the Data Source spends processing the 
     Enumerate request might betray the existence or non-existence of a 
     host at the target address.
    </p>
    <p>
     Implementations that perform validity checks on the EndTo EPR are 
     advised to provide a means to disable such checks in environments 
     where these types of attacks are an issue.
    </p>
   </div2>

  </div1>

  <div1 id="metadata">
   <head>WS-Enumeration Metadata</head>

   <p>
    An endpoint MAY indicate its support of WS-Enumeration, or its features,
    by including the WS-Enumeration DataSource Policy assertion within its 
    WSDL. By
    doing so the endpoint is indicating that the corresponding WS-Enumeration
    operations are supported by that endpoint even though they are implicit
    and do not explicitly appear in its WSDL
    (i.e. the WS-Enumeration operations do not appear in the WSDL that MAY 
    be retrievable by using a WS-MetadataExchange GetWSDL to that endpoint).
   </p>

   <p>
    The WS-Enumeration WSDL containing the operations indicated by the 
    Enumeration Assertion MAY be exposed by including the WSDL as a child 
    of the DataSource Policy assertion or by including a reference to it 
    using the mex:Location or mex:Reference element (as described in 
    WS-MetadataExchange <bibref ref="MEX"/> Section 9).
   </p>

   <p>
    This WS-Enumeration WSDL can be annotated to indicate any endpoint 
    specific metadata that might be needed by clients interacting with 
    the WS-Enumeration operations.   For example, the WSDL MAY 
    have policy assertions 
    that indicate a particular security mechanism used to protect 
    the WS-Enumeration operations supported by this endpoint. 
   </p>

   <div2>
    <head>Enumeration Assertion</head>

    <p>
     Services indicate support for the WS-Enumeration's definition of a 
     data source through the use of the Web Services 
     Policy - Framework <bibref ref="wspolicy"/> and Web Services Policy - 
     Attachment <bibref ref="wspolicyattach"/> specifications. 
    </p>
 
    <p>
     This specification defines a policy assertion (wsen:DataSource).  
     The normative outline of this assertion is:
    </p>

    <example>
     <eg>&lt;wsen:DataSource ...>
  &lt;wsen:FilterDialect URI="<emph>xs:anyURI</emph>" ...> 
    <emph>xs:any</emph>*
  &lt;/wsen:FilterDialect> * 
  &lt;wsen:DateTimeSupported .../> ?
  &lt;wsen:Expires min="<emph>xs:duration</emph>"? max="<emph>xs:duration</emph>"? .../> ?
  &lt;wsen:MaxTime ...> <emph>xs:duration</emph> &lt;/wsen:MaxTime> ? 
  &lt;wsen:MaxItems ...> <emph>xs:long</emph> &lt;/wsen:MaxItems> ? 
  &lt;wsen:MaxCharacters ...> <emph>xs:long</emph> &lt;/wsen:MaxCharacters> ?
  &lt;wsen:EndToSupported .../> ?
  &lt;wsen:ItemsOnNewContextSupported .../> ?
  <emph>xs:any</emph>*
&lt;/wsen:DataSource></eg>
    </example>

    <p>
     The following describes additional, normative constraints on the 
     outline listed above:
    </p>

    <glist>

     <gitem>
      <label> /wsen:DataSource </label>
       <def>
        <p>
         This policy assertion has Endpoint Policy Subject. When present in a
         policy alternative, it indicates that the subject is a data source
         and the WS-Enumeration protocol MUST 
         be used when communicating with this endpoint. 
        </p>
       </def>
     </gitem>

     <gitem>
      <label> /wsen:DataSource/wsen:FilterDialect </label>
       <def>
        <p>
         When present, this OPTIONAL parameter indicates support for the 
         specified Filter Dialect IRI.
        </p>
       </def>
     </gitem>

     <gitem>
      <label> /wsen:DataSource/wsen:FilterDialect/xs:any </label>
       <def>
        <p>
         This extensibility point allows for additional FilterDialect 
         specific metadata to be included within the policy assertion. Any 
         metadata that appears is scoped to the use of the specified 
         FilterDialect URI.
        </p>
       </def>
     </gitem>

     <gitem>
      <label> /wsen:DataSource/wsen:DateTimeSupported </label>
       <def>
        <p>
         When present, this OPTIONAL parameter indicates support for
         expiration time expressed as specific time (rather than duration).
        </p>
       </def>
     </gitem>

     <gitem>
      <label> /wsen:DataSource/wsen:Expires </label>
       <def>
        <p>
         When present, this OPTIONAL parameter indicates the minimum and
         maximum enumeration expiration times that this endpoint will support.
         When the OPTIONAL 'min' attribute is absent then the data source
         MUST not impose a lower bound on the accepted Expires values. The
         implied default value for the OPTIONAL 'max' attribute is
         infinite (or PT0S). In all cases, the 'min' value MUST be less
         than or equal to the 'max' value.
        </p>
       </def>
     </gitem>

     <gitem>
      <label> /wsen:DataSource/wsen:MaxTime </label>
       <def>
        <p>
         When present, this OPTIONAL parameter indicates the maximum MaxTime 
         value supported by this endpoint. 
         The implied default is infinite.
         Note: a value of "PT0S" indicates that this endpoint supports any 
         duration value. 
        </p>
       </def>
     </gitem>

     <gitem>
      <label> /wsen:DataSource/wsen:MaxItems </label>
       <def>
        <p>
         When present, this OPTIONAL parameter indicates the maximum 
         MaxItems value supported by this endpoint. The value specified 
         MUST be greater than zero.
        </p>
       </def>
     </gitem>

     <gitem>
      <label> /wsen:DataSource/wsen:MaxCharacters </label>
       <def>
        <p>
         When present, this OPTIONAL parameter indicates the maximum 
         MaxCharacters value supported by this endpoint. The value specified 
         MUST be greater than zero.
        </p>
       </def>
     </gitem>

     <gitem>
      <label> /wsen:DataSource/wsen:EndToSupported </label>
       <def>
        <p>
         When present, this OPTIONAL parameter indicates support for the 
         /wsen:Enumerate/wsen:NewContext/wsen:EndTo semantics. That is, when a 
         Enumerate request contains a wsen:EndTo element, a EnumerationEnd 
         message will be sent to the EPR contained in the wsen:EndTo element, 
         if the enumeration terminates unexpectedly. 
        </p>
       </def>
     </gitem>

     <gitem>
      <label> /wsen:DataSource/wsen:ItemsOnNewContextSupported </label>
       <def>
        <p>
         When present, this OPTIONAL parameter indicates support for the 
         Enumerate operation creating a new enumeration context and
         returning an initial set of items in the Enumerate response
         message.  When a data source does not support this feature,
         all consumers MUST include a wsen:MaxItems with
         a value of zero in Enumerate requests that create new
         enumeration contexts.
        </p>
       </def>
     </gitem>

     <gitem>
      <label> /wsen:DataSource/xs:any </label>
       <def>
        <p>
         This extensibility point allows for additional WS-Enumeration 
         specific metadata to be included within the policy assertion - 
         e.g. WS-Enumeration WSDL, or nested policy assertions related to 
         the WS-Enumeration message exchanges. Any metadata that appears 
         is scoped to the operations and features of the WS-Enumeration 
         specification.
        </p>
       </def>
     </gitem>

    </glist>

   </div2>
  </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="refs">
   <head>References</head>

   <div2>
    <head>Normative References</head>

    <blist>
     <bibl key="BP12" id="BP12"
      href="http://ws-i.org/profiles/BasicProfile-1.2-2010-11-09.html">
        <titleref>
         WS-I Profile, Basic Profile Version 1.2
        </titleref>
        , R. Chumbley, et al, Editors.
        Web Services Interoperability Organization (WS-I), 9 November 2010.
     </bibl>

     <bibl key="BP20" id="BP20"
      href="http://ws-i.org/profiles/BasicProfile-2.0-2010-11-09.html">
        <titleref>
         WS-I Profile, Basic Profile Version 2.0
        </titleref>
        , R. Chumbley, et al, Editors.
        Web Services Interoperability Organization (WS-I), 9 November 2010.
     </bibl>

     <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="RFC 3987" id="RFC3987"
      href="http://www.ietf.org/rfc/rfc3987.txt">
       <titleref>
        Internationalized Resource Identifiers (IRIs)
       </titleref>
       , M. Duerst and M. Suignard, Authors.
       Internet Engineering Task Force, January 2005.
     </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-Addressing 1.0 SOAP Binding" id="WSABinding"
      href="http://www.w3.org/TR/ws-addr-soap">
       <titleref>
        W3C Recommendation, "Web Services Addressing 1.0 - SOAP Binding"
       </titleref>
       , M. Gudgin, M. Hadley, T. Rogers, Editors.
       World Wide Web Consortium (W3C), 9 May 2006.
     </bibl>
 
     <bibl key="WS-Policy" id="wspolicy"
      href="http://www.w3.org/TR/ws-policy/">
       <titleref>
        W3C Recommendation, "Web Services Policy (WS-Policy) 1.5 - Framework" 
       </titleref>
       , A. Vedamuthu, et al., Editors.
       World Wide Web Consortium (W3C), 4 September 2007.
     </bibl>
 
     <bibl key="WS-Policy Attachment" id="wspolicyattach"
      href="http://www.w3.org/TR/ws-policy-attach">
       <titleref>
        W3C Recommendation, "Web Services Policy (WS-Policy) 1.5 - Attachment" 
       </titleref>
       , A. Vedamuthu, et al., Editors.
       World Wide Web Consortium (W3C), 4 September 2007.
     </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="XML Infoset" id="XMLInfoset"
      href="http://www.w3.org/TR/xml-infoset">
       <titleref>
        W3C Recommendation, "XML Information Set (Second Edition)"
       </titleref>
       , J. Cowan, R. Tobin, Editors. 
       World Wide Web Consortium (W3C), 4 February 2004. 
     </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>
 
     <bibl key="XPath1.0" id="XPath1"
      href="http://www.w3.org/TR/xpath">
       <titleref>
        W3C Recommendation, "XML Path Language (XPath) Version 1.0"
       </titleref>
       , J. Clark, S. DeRose, Editors.
       World Wide Web Consortium (W3C), 16 November 1999. 
     </bibl>
 
     <bibl key="XPath2.0" id="XPath2"
      href="http://www.w3.org/TR/xpath20/">
       <titleref>
        W3C Recommendation, "XML Path Language (XPath) 2.0"
       </titleref>
       , A. Berglund, et al., Editors.
       World Wide Web Consortium (W3C), 23 January 2007. 
     </bibl>
 
    </blist>
   </div2>

   <div2>
    <head>Informative References</head>
 
    <blist>
     <bibl key="WS-MetadataExchange" id="MEX"
      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>

    </blist>
   </div2>

  </div1>
 </body>

 <back>
  <div1 id="schema">
   <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/&wsenu.nsprefix;/ws-enu/enumeration.xsd'>http://www.w3.org/&wsenu.nsprefix;/ws-enu/enumeration.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/&wsenu.nsprefix;/ws-enu'
    xmlns:tns='http://www.w3.org/&wsenu.nsprefix;/ws-enu'
    xmlns:wsa='http://www.w3.org/2005/08/addressing'
    xmlns:xs='http://www.w3.org/2001/XMLSchema'
    elementFormDefault='qualified'
    blockDefault='#all'>

  &lt;xs:import namespace='http://www.w3.org/XML/1998/namespace'
     schemaLocation='http://www.w3.org/2001/xml.xsd' />
  &lt;xs:import
    namespace='http://www.w3.org/2005/08/addressing'
    schemaLocation='http://www.w3.org/2006/03/addressing/ws-addr.xsd' />

  &lt;!-- Types and global elements -->
  &lt;xs:complexType name='FilterType' mixed='true'>
    &lt;xs:sequence>
      &lt;xs:any namespace='##other' processContents='lax'
              minOccurs='0' maxOccurs='unbounded' />
    &lt;/xs:sequence>
    &lt;xs:attribute name='Dialect' type='xs:anyURI' use='optional'
                  default='http://www.w3.org/&wsenu.nsprefix;/ws-enu/Dialects/XPath10'/>
    &lt;xs:anyAttribute namespace='##other' processContents='lax' />
  &lt;/xs:complexType>

  &lt;xs:simpleType name='PositiveDurationType'>
    &lt;xs:restriction base='xs:duration'>
      &lt;xs:minExclusive value='P0Y0M0DT0H0M0S' />
    &lt;/xs:restriction>
  &lt;/xs:simpleType>

  &lt;xs:simpleType name='NonNegativeDurationType'>
    &lt;xs:restriction base='xs:duration'>
      &lt;xs:minInclusive value='P0Y0M0DT0H0M0S' />
    &lt;/xs:restriction>
  &lt;/xs:simpleType>

  &lt;xs:simpleType name='DurationDateTime'>
      &lt;xs:union memberTypes='xs:dateTime tns:NonNegativeDurationType' />
  &lt;/xs:simpleType>

  &lt;xs:complexType name='MiniExpirationType'>
    &lt;xs:simpleContent>
      &lt;xs:extension base='tns:DurationDateTime'>
        &lt;xs:anyAttribute namespace='##other' processContents='lax'/>
      &lt;/xs:extension>
    &lt;/xs:simpleContent>
  &lt;/xs:complexType>

  &lt;xs:complexType name='ExpirationType'>
    &lt;xs:simpleContent>
      &lt;xs:extension base='tns:MiniExpirationType'>
        &lt;xs:attribute name='BestEffort' type='xs:boolean' use='optional'/>
        &lt;xs:anyAttribute namespace='##other' processContents='lax'/>
      &lt;/xs:extension>
    &lt;/xs:simpleContent>
  &lt;/xs:complexType>

  &lt;xs:complexType name='EnumerationContextType'>
    &lt;xs:complexContent mixed='true'>
      &lt;xs:restriction base='xs:anyType'>
        &lt;xs:sequence>
          &lt;xs:any namespace='##other' processContents='lax'
                  minOccurs='0' maxOccurs='unbounded' />
        &lt;/xs:sequence>
        &lt;xs:anyAttribute namespace='##other' processContents='lax' />
      &lt;/xs:restriction>
    &lt;/xs:complexContent>
  &lt;/xs:complexType>

  &lt;xs:complexType name='ItemListType'>
    &lt;xs:sequence maxOccurs='unbounded'>
      &lt;xs:any namespace='##other' processContents='lax'
              minOccurs='0' maxOccurs='unbounded' />
    &lt;/xs:sequence>
    &lt;xs:attribute name='Reason' type='xs:anyURI' use='optional'/>
  &lt;/xs:complexType>

  &lt;xs:complexType name='LanguageSpecificStringType'>
    &lt;xs:simpleContent>
      &lt;xs:extension base='xs:string'>
        &lt;xs:attribute ref='xml:lang' />
        &lt;xs:anyAttribute namespace='##other' processContents='lax' />
      &lt;/xs:extension>
    &lt;/xs:simpleContent>
  &lt;/xs:complexType>

  &lt;!-- Used for a fault response -->
  &lt;xs:element name='SupportedDialect' type='xs:anyURI' />

  &lt;!-- Enumerate request -->
  &lt;xs:element name='Enumerate'>
    &lt;xs:complexType>
      &lt;xs:sequence>
        &lt;xs:choice>
          &lt;xs:element name='NewContext'>
            &lt;xs:complexType>
              &lt;xs:sequence>
                &lt;xs:element name='EndTo' type='wsa:EndpointReferenceType'
                            minOccurs='0' />
                &lt;xs:element name='Expires' type='tns:ExpirationType'
                            minOccurs='0' />
                &lt;xs:element name='Filter' type='tns:FilterType'
                            minOccurs='0' />
                &lt;xs:any namespace='##other' processContents='lax'
                        minOccurs='0' maxOccurs='unbounded' />
              &lt;/xs:sequence>
              &lt;xs:anyAttribute namespace='##other' processContents='lax' />
            &lt;/xs:complexType>
          &lt;/xs:element>
          &lt;xs:element name='EnumerationContext' 
                      type='tns:EnumerationContextType' />
        &lt;/xs:choice>
        &lt;xs:element name='MaxTime' type='tns:PositiveDurationType' 
                    minOccurs='0' />
        &lt;xs:element name='MaxItems' type='xs:positiveInteger' 
                    minOccurs='0' />
        &lt;xs:element name='MaxCharacters' type='xs:positiveInteger' 
                    minOccurs='0' />
        &lt;xs:element name='EndToSupported' type='tns:Empty' minOccurs='0' />
        &lt;xs:any namespace='##other' processContents='lax' 
                minOccurs='0' maxOccurs='unbounded' />
      &lt;/xs:sequence>
      &lt;xs:anyAttribute namespace='##other' processContents='lax' />
    &lt;/xs:complexType>
  &lt;/xs:element>

  &lt;!-- Enumerate response -->
  &lt;xs:element name='EnumerateResponse'>
    &lt;xs:complexType>
      &lt;xs:sequence>
        &lt;xs:element name='GrantedExpires' type='tns:MiniExpirationType' />
        &lt;xs:element name='EnumerationContext' 
                    type='tns:EnumerationContextType' 
                    minOccurs='0' />
        &lt;xs:element name='Items' type='tns:ItemListType' 
                    minOccurs='0' />
        &lt;xs:element name='EndOfSequence' minOccurs='0' />
      &lt;/xs:sequence>
      &lt;xs:anyAttribute namespace='##other' processContents='lax' />
    &lt;/xs:complexType>
  &lt;/xs:element>

  &lt;!-- Renew request -->
  &lt;xs:element name='Renew'>
    &lt;xs:complexType>
      &lt;xs:sequence>
        &lt;xs:element name='EnumerationContext' 
                    type='tns:EnumerationContextType' />
        &lt;xs:element name='Expires' type='tns:ExpirationType' 
                    minOccurs='0' />
        &lt;xs:any namespace='##other' processContents='lax' 
                minOccurs='0' maxOccurs='unbounded' />
      &lt;/xs:sequence>
      &lt;xs:anyAttribute namespace='##other' processContents='lax' />
    &lt;/xs:complexType>
  &lt;/xs:element>

  &lt;!-- Renew response -->
  &lt;xs:element name='RenewResponse'>
    &lt;xs:complexType>
      &lt;xs:sequence>
        &lt;xs:element name='GrantedExpires' type='tns:MiniExpirationType' />
        &lt;xs:element name='EnumerationContext' 
                    type='tns:EnumerationContextType' 
                    minOccurs='0' />
        &lt;xs:any namespace='##other' processContents='lax' 
                minOccurs='0' maxOccurs='unbounded' />
      &lt;/xs:sequence>
      &lt;xs:anyAttribute namespace='##other' processContents='lax' />
    &lt;/xs:complexType>
  &lt;/xs:element>

  &lt;!-- GetStatus request -->
  &lt;xs:element name='GetStatus'>
    &lt;xs:complexType>
      &lt;xs:sequence>
        &lt;xs:element name='EnumerationContext' 
                    type='tns:EnumerationContextType' />
        &lt;xs:any namespace='##other' processContents='lax' 
                minOccurs='0' maxOccurs='unbounded' />
      &lt;/xs:sequence>
      &lt;xs:anyAttribute namespace='##other' processContents='lax' />
    &lt;/xs:complexType>
  &lt;/xs:element>

  &lt;!-- GetStatus response -->
  &lt;xs:element name='GetStatusResponse'>
    &lt;xs:complexType>
      &lt;xs:sequence>
        &lt;xs:element name='GrantedExpires' type='tns:MiniExpirationType' />
        &lt;xs:any namespace='##other' processContents='lax' 
                minOccurs='0' maxOccurs='unbounded' />
      &lt;/xs:sequence>
      &lt;xs:anyAttribute namespace='##other' processContents='lax' />
    &lt;/xs:complexType>
  &lt;/xs:element>

  &lt;!-- Release request -->
  &lt;xs:element name='Release'>
    &lt;xs:complexType>
      &lt;xs:sequence>
        &lt;xs:element name='EnumerationContext' 
                    type='tns:EnumerationContextType' />
      &lt;/xs:sequence>
      &lt;xs:anyAttribute namespace='##other' processContents='lax' />
    &lt;/xs:complexType>
  &lt;/xs:element>

  &lt;!-- Release response -->
  &lt;xs:element name='ReleaseResponse'>
    &lt;xs:complexType>
      &lt;xs:sequence>
        &lt;xs:any namespace='##other' processContents='lax'
                minOccurs='0' maxOccurs='unbounded' />
      &lt;/xs:sequence>
      &lt;xs:anyAttribute namespace='##other' processContents='lax' />
    &lt;/xs:complexType>
  &lt;/xs:element>

  &lt;!-- EnumerationEnd message -->
  &lt;xs:element name='EnumerationEnd'>
    &lt;xs:complexType>
      &lt;xs:sequence>
        &lt;xs:element name='Code' type='tns:OpenEnumerationEndCodeType' />
        &lt;xs:element name='Reason' type='tns:LanguageSpecificStringType' 
                    minOccurs='0' maxOccurs='unbounded' />
        &lt;xs:any namespace='##other' processContents='lax' 
                minOccurs='0' maxOccurs='unbounded' />
      &lt;/xs:sequence>
      &lt;xs:anyAttribute namespace='##other' processContents='lax' />
    &lt;/xs:complexType>
  &lt;/xs:element>

  &lt;xs:simpleType name='EnumerationEndCodeType'>
    &lt;xs:restriction base='xs:anyURI'>
      &lt;xs:enumeration value=
        'http://www.w3.org/&wsenu.nsprefix;/ws-enu/SourceShuttingDown' />
      &lt;xs:enumeration value=
        'http://www.w3.org/&wsenu.nsprefix;/ws-enu/SourceCancelling' />
    &lt;/xs:restriction>
  &lt;/xs:simpleType>

  &lt;xs:simpleType name='OpenEnumerationEndCodeType'>
    &lt;xs:union memberTypes='tns:EnumerationEndCodeType xs:anyURI' />
  &lt;/xs:simpleType>

  &lt;!-- Policy -->
  &lt;xs:complexType name='Duration'>
    &lt;xs:simpleContent>
      &lt;xs:extension base='tns:NonNegativeDurationType'>
       &lt;xs:anyAttribute namespace='##other'/>
      &lt;/xs:extension>
    &lt;/xs:simpleContent>
  &lt;/xs:complexType>

  &lt;xs:complexType name='URI'>
    &lt;xs:simpleContent>
      &lt;xs:extension base='xs:anyURI'>
        &lt;xs:anyAttribute namespace='##other'/>
      &lt;/xs:extension>
    &lt;/xs:simpleContent>
  &lt;/xs:complexType>

  &lt;xs:complexType name='Long'>
    &lt;xs:simpleContent>
      &lt;xs:extension base='xs:long'>
        &lt;xs:anyAttribute namespace='##other'/>
      &lt;/xs:extension>
    &lt;/xs:simpleContent>
  &lt;/xs:complexType>

  &lt;xs:complexType name='Empty'>
    &lt;xs:sequence/>
    &lt;xs:anyAttribute namespace='##other' processContents='lax'/>
  &lt;/xs:complexType>

  &lt;xs:element name='DataSource'>
    &lt;xs:complexType>
      &lt;xs:sequence>
        &lt;xs:element name='FilterDialect' minOccurs='0' maxOccurs='unbounded'>
          &lt;xs:complexType>
            &lt;xs:sequence>
              &lt;xs:any namespace='##other' processContents='lax' minOccurs='0'
                                          maxOccurs='0'/>
            &lt;/xs:sequence>
            &lt;xs:attribute name='URI' type='xs:anyURI' use='required' />
            &lt;xs:anyAttribute namespace="##other" processContents='lax'/>
          &lt;/xs:complexType>
        &lt;/xs:element>
        &lt;xs:element name='DateTimeSupported' type='tns:Empty' minOccurs='0'/>
        &lt;xs:element name='Expires' minOccurs='0'>
          &lt;xs:complexType>
            &lt;xs:attribute name='min' type='xs:duration' use='optional'/>
            &lt;xs:attribute name='max' type='xs:duration' use='optional'/>
          &lt;/xs:complexType>
        &lt;/xs:element>
        &lt;xs:element name='MaxTime' type='tns:Duration' minOccurs='0'/>
        &lt;xs:element name='MaxItems' type='tns:Long' minOccurs='0'/>
        &lt;xs:element name='MaxCharacters' type='tns:Long' minOccurs='0'/>
        &lt;xs:any namespace='##other' processContents='lax' minOccurs='0'
                                    maxOccurs='unbounded'/>
      &lt;/xs:sequence>
      &lt;xs:anyAttribute namespace='##other' processContents='lax' />
    &lt;/xs:complexType>
  &lt;/xs:element>

&lt;/xs:schema&gt;</eg>
   </example>
  </div1>

  <div1 id="WSDL">
   <head>WSDL</head>

   <p>
    A normative copy of the WSDL <bibref ref="WSDL11"/>
    description for this specification can be retrieved from the
    following address:
   </p>

   <example>
    <eg><loc href="http://www.w3.org/&wsenu.nsprefix;/ws-enu/enumeration.wsdl">http://www.w3.org/&wsenu.nsprefix;/ws-enu/enumeration.wsdl</loc></eg>
   </example>

   <p>
    A non-normative copy of the WSDL description is
    listed below for convenience.
   </p>

   <example>
    <eg>&lt;wsdl:definitions
    targetNamespace='http://www.w3.org/&wsenu.nsprefix;/ws-enu' 
    xmlns:wsa='http://www.w3.org/2005/08/addressing' 
    xmlns:wsam='http://www.w3.org/2007/05/addressing/metadata'
    xmlns:wsdl='http://schemas.xmlsoap.org/wsdl/' 
    xmlns:wsen='http://www.w3.org/&wsenu.nsprefix;/ws-enu'
    xmlns:xs='http://www.w3.org/2001/XMLSchema' >

  &lt;wsdl:types>
    &lt;xs:schema>
      &lt;xs:import
        namespace='http://www.w3.org/&wsenu.nsprefix;/ws-enu'
        schemaLocation='http://www.w3.org/&wsenu.nsprefix;/ws-enu/enumeration.xsd' />
    &lt;/xs:schema>
  &lt;/wsdl:types>

  &lt;wsdl:message name='EnumerateMessage'>
    &lt;wsdl:part name='Body' element='wsen:Enumerate' />
  &lt;/wsdl:message>
  &lt;wsdl:message name='EnumerateResponseMessage'>
    &lt;wsdl:part name='Body' element='wsen:EnumerateResponse' />
  &lt;/wsdl:message>
  &lt;wsdl:message name='RenewMessage' >
    &lt;wsdl:part name='Body' element='wsen:Renew' />
  &lt;/wsdl:message>
  &lt;wsdl:message name='RenewResponseMessage' >
    &lt;wsdl:part name='Body' element='wsen:RenewResponse' />
  &lt;/wsdl:message>
  &lt;wsdl:message name='GetStatusMessage' >
    &lt;wsdl:part name='Body' element='wsen:GetStatus' />
  &lt;/wsdl:message>
  &lt;wsdl:message name='GetStatusResponseMessage' >
    &lt;wsdl:part name='Body' element='wsen:GetStatusResponse' />
  &lt;/wsdl:message>
  &lt;wsdl:message name='ReleaseMessage'>
    &lt;wsdl:part name='Body' element='wsen:Release' />
  &lt;/wsdl:message>
  &lt;wsdl:message name='ReleaseResponseMessage'>
    &lt;wsdl:part name='Body' element='wsen:ReleaseResponse' />
  &lt;/wsdl:message>
  &lt;wsdl:message name='EnumerationEndMessage' >
    &lt;wsdl:part name='Body' element='wsen:EnumerationEnd' />
  &lt;/wsdl:message>
  
  &lt;wsdl:portType name='DataSource'>
    &lt;wsdl:operation name='EnumerateOp'>
      &lt;wsdl:input 
        message='wsen:EnumerateMessage'
        wsam:Action='http://www.w3.org/&wsenu.nsprefix;/ws-enu/Enumerate' />
      &lt;wsdl:output 
        message='wsen:EnumerateResponseMessage' 
        wsam:Action='http://www.w3.org/&wsenu.nsprefix;/ws-enu/EnumerateResponse' />
    &lt;/wsdl:operation>
    &lt;wsdl:operation name='RenewOp' >
      &lt;wsdl:input 
        message='wsen:RenewMessage' 
        wsam:Action='http://www.w3.org/&wsenu.nsprefix;/ws-enu/Renew' />
      &lt;wsdl:output 
        message='wsen:RenewResponseMessage' 
        wsam:Action='http://www.w3.org/&wsenu.nsprefix;/ws-enu/RenewResponse' />
    &lt;/wsdl:operation>
    &lt;wsdl:operation name='GetStatusOp' >
      &lt;wsdl:input 
        message='wsen:GetStatusMessage' 
        wsam:Action='http://www.w3.org/&wsenu.nsprefix;/ws-enu/GetStatus' />
      &lt;wsdl:output 
        message='wsen:GetStatusResponseMessage' 
        wsam:Action='http://www.w3.org/&wsenu.nsprefix;/ws-enu/GetStatusResponse' />
    &lt;/wsdl:operation>
    &lt;wsdl:operation name='ReleaseOp'>
      &lt;wsdl:input 
        message='wsen:ReleaseMessage'
        wsam:Action='http://www.w3.org/&wsenu.nsprefix;/ws-enu/Release' />
      &lt;wsdl:output 
        message='wsen:ReleaseResponseMessage' 
        wsam:Action='http://www.w3.org/&wsenu.nsprefix;/ws-enu/ReleaseResponse' />
    &lt;/wsdl:operation>
  &lt;/wsdl:portType>

  &lt;wsdl:portType name='EnumerationEndPortType'>
    &lt;wsdl:operation name='EnumerationEndOp' >
      &lt;wsdl:input 
        message='wsen:EnumerationEndMessage' 
        wsam:Action='http://www.w3.org/&wsenu.nsprefix;/ws-enu/EnumerationEnd' />
    &lt;/wsdl:operation>
  &lt;/wsdl:portType>

&lt;/wsdl:definitions&gt;</eg>
   </example>
  </div1>

  <div1 id="actiontables">
   <head>Action Tables</head>

   <p>
    The purpose of the action tables is to illustrate, via a separate means 
    from the normative text, the allowable order and interactions of various 
    messages and activities. The action tables are not intended to constrain 
    implementations beyond those necessary to insure this ordering.
   </p>

   <ulist>
    <item>
     <p>
      Actions are represented as columns.
     </p>
    </item>

    <item>
     <p>
      Triggers (messages, application actions, timer events) are represented 
      as rows. Triggers are annotated by their type; 
      "[app]" - represents an application action (e.g. a user selecting a 
      "Enumerate" menu item); 
      "[msg]" - represents an incoming, WS-Enumeration defined, message; 
      "[timer]" - represents an internal timer event. 
     </p>
    </item>

    <item>
     <p>
      Each cell describes the appropriate action for a given state and 
      trigger. 
      Where the 
      action is dependent upon other factors than the state 
      and trigger (e.g. the value of a fault message), the activity is 
      described in pseudo-code. The section of the specification that 
      describes these activities is displayed in curly 
      brackets (e.g. "{4.2}").
     </p>
    </item>

    <item>
     <p>
      Empty box indicates that the spec is silent for the specified 
      trigger/action pair.
     </p>
    </item>
   </ulist>

   <table border="1">
    <caption>Data Source Action Table</caption>
    <tbody>
     <tr>
      <td rowspan='2' valign='bottom'> <kw>Trigger</kw> </td>
      <td colspan='3' align='center'> <kw>Action</kw> </td>
     </tr>
     <tr>
      <td> <kw>Trigger has no context</kw> </td>
      <td> <kw>Trigger has valid context</kw> </td>
      <td> <kw>Trigger has invalid context</kw> </td>
     </tr>
     <tr>
      <td valign="top" nowrap='nowrap'><code>
       Enumerate Request <phrase/> 
       [msg]</code>
      </td>
      <td valign="top" nowrap='nowrap'><code>
       Create new context<phrase/>
       If (end of sequence) {<phrase/>
         &nbsp;&nbsp;include EndOfSequence <phrase/>
         &nbsp;&nbsp;invalidate context<phrase/>
       } <phrase/>
       Send EnumerateResponse  <phrase/>
       {<specref ref="Enumerate" show="num"/>}</code>
      </td>
      <td valign="top" nowrap='nowrap'><code>
       If (end of sequence) {<phrase/>
         &nbsp;&nbsp;include EndOfSequence <phrase/>
         &nbsp;&nbsp;invalidate context<phrase/>
       } <phrase/>
       Send EnumerateResponse  <phrase/>
       {<specref ref="Enumerate" show="num"/>}</code>
      </td>
      <td valign="top" nowrap='nowrap'><code>
       Generate <phrase/>
         &nbsp;&nbsp;InvalidEnumerationContext <phrase/>
         &nbsp;&nbsp;Fault<phrase/>
       {<specref ref="EnumMsgs" show="num"/>}</code>
      </td>
     </tr>
     <tr>
      <td valign="top" nowrap='nowrap'><code>
       Renew Request <phrase/> 
       [msg] </code>
      </td>
      <td> </td>
      <td valign="top" nowrap='nowrap'><code>
       Update expiration timer<phrase/>
       Send RenewReponse<phrase/>
       {<specref ref="Renew" show="num"/>}</code>
      </td>
      <td valign="top" nowrap='nowrap'><code>
       Generate <phrase/>
         &nbsp;&nbsp;InvalidEnumerationContext <phrase/>
         &nbsp;&nbsp;Fault<phrase/>
       {<specref ref="EnumMsgs" show="num"/>}</code>
      </td>
     </tr>
     <tr>
      <td valign="top" nowrap='nowrap'><code>
       GetStatus Request <phrase/>
       [msg] </code>
      </td>
      <td> </td>
      <td valign="top" nowrap='nowrap'><code>
       Send GetStatusResponse <phrase/>
       {<specref ref="GetStatus" show="num"/>}</code>
      </td>
      <td valign="top" nowrap='nowrap'><code>
       Generate <phrase/>
         &nbsp;&nbsp;InvalidEnumerationContext <phrase/>
         &nbsp;&nbsp;Fault<phrase/>
       {<specref ref="EnumMsgs" show="num"/>}</code>
      </td>
     </tr>
     <tr>
      <td valign="top" nowrap='nowrap'><code>
       Release Request <phrase/> 
       [msg] </code>
      </td>
      <td> </td>
      <td valign="top" nowrap='nowrap'><code>
       Send wse:ReleaseResponse<phrase/>
       Invalidate context<phrase/>
       {<specref ref="Release" show="num"/>}</code>
      </td>
      <td valign="top" nowrap='nowrap'><code>
       Generate <phrase/>
         &nbsp;&nbsp;InvalidEnumerationContext <phrase/>
         &nbsp;&nbsp;Fault<phrase/>
       {<specref ref="EnumMsgs" show="num"/>}</code>
      </td>
     </tr>
     <tr>
      <td valign="top" nowrap='nowrap'><code>
       Expiration <phrase/> 
       [timer] </code>
      </td>
      <td> </td>
      <td valign="top" nowrap='nowrap'><code>
       Invalidate context<phrase/>
       {<specref ref="Enumerate" show="num"/>}</code>
      </td>
      <td> </td>
     </tr>
     <tr>
      <td valign="top" nowrap='nowrap'><code>
       Shutdown/Error <phrase/> 
       [app] </code>
      </td>
      <td> </td>
      <td valign="top" nowrap='nowrap'><code>
       if (EndTo engaged) <phrase/>
         &nbsp;&nbsp;send EnumerationEnd <phrase/>
       Invalidate context <phrase/>
       {<specref ref="EnumerationEnd" show="num"/>}</code>
      </td>
      <td> </td>
     </tr>
    </tbody>
   </table>

   <p/>

   <table border="1">
    <caption>Consumer Action Table</caption>
    <tbody>
     <tr>
      <td rowspan='1' valign='bottom'> <kw>Trigger</kw> </td>
      <td colspan='1' align='center'> <kw>Action</kw> </td>
     </tr>
     <tr>
      <td valign="top" nowrap='nowrap'><code>
       Expiration<phrase/> 
       [timer] </code>
      </td>
      <td valign="top" nowrap='nowrap'><code>
       Invalidate context<phrase/>
       {<specref ref="Enumerate" show="num"/>}</code>
      </td>
     </tr>
     <tr>
      <td valign="top" nowrap='nowrap'><code>
       EnumerationEnd<phrase/> 
       [msg]</code>
      </td>
      <td valign="top" nowrap='nowrap'><code>
       Invalidate context<phrase/>
       {<specref ref="EnumerationEnd" show="num"/>}</code>
      </td>
     </tr>
    </tbody>
   </table>

  </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> 2009/03/04 </td>
      <td> DD </td>
      <td> Added resolution of issue 
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=6391">6391</loc>
      </td>
     </tr>
     <tr>
      <td> 2009/03/04 </td>
      <td> DD </td>
      <td> Added resolution of issue 
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=6519">6519</loc>
      </td>
     </tr>
     <tr>
      <td> 2009/03/11 </td>
      <td> DD </td>
      <td> Added change log </td>
     </tr>
     <tr>
      <td> 2009/03/11 </td>
      <td> DD </td>
      <td> Added resolution of issue 
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=6641">6641</loc>
      </td>
     </tr>
     <tr>
      <td> 2009/03/11 </td>
      <td> DD </td>
      <td> Added resolution of issue 
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=6425">6425</loc>
      </td>
     </tr>
     <tr>
      <td> 2009/03/16 </td>
      <td> KW </td>
      <td> Added resolution of issue 
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=6587">6587</loc>
      </td>
     </tr>
     <tr>
      <td> 2009/03/17 </td>
      <td> DD </td>
      <td> Added resolution of issue 
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=6399">6399</loc>
      </td>
     </tr>
     <tr>
      <td> 2009/03/23 </td>
      <td> DD </td>
      <td> Added resolution of issue 
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=6666">6666</loc>
      </td>
     </tr>
     <tr>
      <td> 2009/03/24 </td>
      <td> DD </td>
      <td> Added resolution of issue 
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=6648">6648</loc>
      </td>
     </tr>
     <tr>
      <td> 2009/04/07 </td>
      <td> DD </td>
      <td> Added resolution of issue 
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=6499">6499</loc>
      </td>
     </tr>
     <tr>
      <td> 2009/04/07 </td>
      <td> DD </td>
      <td> Added resolution of issue 
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=6726">6726</loc>
      </td>
     </tr>
     <tr>
      <td> 2009/04/22 </td>
      <td> KW </td>
      <td> Added resolution of issue 
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=6739">6739</loc>
      </td>
     </tr>
     <tr>
      <td> 2009/04/28 </td>
      <td> DD </td>
      <td> Added resolution of issue 
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=6787">6787</loc>
      </td>
     </tr>
     <tr>
      <td> 2009/05/12 </td>
      <td> DD </td>
      <td> Added resolution of issue 
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=6860">6860</loc>
      </td>
     </tr>
     <tr>
      <td> 2009/05/13 </td>
      <td> DD </td>
      <td> Added resolution of issue 
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=6696">6696</loc>
      </td>
     </tr>
     <tr>
      <td> 2009/05/21 </td>
      <td> DD </td>
      <td> Added resolution of issue 
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=6674">6674</loc>
      </td>
     </tr>
     <tr>
      <td> 2009/05/26 </td>
      <td> KW </td>
      <td> Added resolution of issue 
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=6920">6920</loc>
      </td>
     </tr>
     <tr>
      <td> 2009/05/27 </td>
      <td> DD </td>
      <td> Added resolution of issue 
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=6906">6906</loc>
      </td>
     </tr>
     <tr>
      <td> 2009/06/04 </td>
      <td> DD </td>
      <td> Added resolution of issue 
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=6916">6916</loc>
      </td>
     </tr>
     <tr>
      <td> 2009/06/11 </td>
      <td> DD </td>
      <td> Added resolution of issue 
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=6956">6956</loc>
      </td>
     </tr>
     <tr>
      <td> 2009/08/05 </td>
      <td> DD </td>
      <td> Added resolution of issue 
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=7159">7159</loc>
      </td>
     </tr>
     <tr>
      <td> 2009/08/06 </td>
      <td> DD </td>
      <td> Added resolution of issue 
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=7192">7192</loc>
      </td>
     </tr>
     <tr>
      <td> 2009/08/18 </td>
      <td> DD </td>
      <td> Added resolution of issue 
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=7206">7206</loc>
      </td>
     </tr>
     <tr>
      <td> 2009/08/18 </td>
      <td> DD </td>
      <td> Added resolution of issue 
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=7193">7193</loc>
      </td>
     </tr>
     <tr>
      <td> 2009/08/25 </td>
      <td> DD </td>
      <td> Added resolution of issue 
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=7365">7365</loc>
      </td>
     </tr>
     <tr>
      <td> 2009/08/25 </td>
      <td> DD </td>
      <td> Added resolution of issue 
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=7270">7270</loc>
      </td>
     </tr>
     <tr>
      <td> 2009/08/25 </td>
      <td> DD </td>
      <td> Added resolution of issue 
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=7235">7235</loc>
      </td>
     </tr>
     <tr>
      <td> 2009/09/01 </td>
      <td> DD </td>
      <td> Added resolution of issue 
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=6427">6427</loc>
      </td>
     </tr>
     <tr>
      <td> 2009/09/01 </td>
      <td> DD </td>
      <td> Added resolution of issue 
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=6701">6701</loc>
      </td>
     </tr>
     <tr>
      <td> 2009/09/01 </td>
      <td> DD </td>
      <td> Added resolution of issue 
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=7430">7430</loc>
      </td>
     </tr>
     <tr>
      <td> 2009/09/02 </td>
      <td> DD </td>
      <td> Added resolution of issue 
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=6694">6694</loc>
      </td>
     </tr>
     <tr>
      <td> 2009/09/02 </td>
      <td> DD </td>
      <td> Added resolution of issue 
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=6533">6533</loc>
      </td>
     </tr>
     <tr>
      <td> 2009/09/23 </td>
      <td> DD </td>
      <td> Added resolution of issue 
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=6568">6568</loc>
      </td>
     </tr>
     <tr>
      <td> 2009/09/30 </td>
      <td> DD </td>
      <td> Added resolution of issue 
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=7716">7716</loc>
      </td>
     </tr>
     <tr>
      <td> 2009/10/02 </td>
      <td> DD </td>
      <td> Added resolution of issue 
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=7426">7426</loc>
      </td>
     </tr>
     <tr>
      <td> 2009/10/05 </td>
      <td> DD </td>
      <td> Added resolution of issues
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=6403">6403</loc>,
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=6721">6721</loc>
      </td>
     </tr>
     <tr>
      <td> 2009/10/06 </td>
      <td> DD </td>
      <td> Added resolution of issue 
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=7587">7587</loc>
      </td>
     </tr>
     <tr>
      <td> 2009/10/13 </td>
      <td> DD </td>
      <td> Added resolution of issue 
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=7827">7827</loc>
      </td>
     </tr>
     <tr>
      <td> 2009/10/20 </td>
      <td> DD </td>
      <td> Added resolution of issue 
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=7068">7068</loc>
      </td>
     </tr>
     <tr>
      <td> 2009/10/20 </td>
      <td> DD </td>
      <td> Added resolution of issue 
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=7811">7811</loc>
      </td>
     </tr>
     <tr>
      <td> 2009/10/20 </td>
      <td> DD </td>
      <td> Added resolution of issue 
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=7207">7207</loc>
      </td>
     </tr>
     <tr>
      <td> 2009/10/20 </td>
      <td> DD </td>
      <td> Added resolution of issues
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=7586">7586</loc>,
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=7588">7588</loc>,
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=7828">7828</loc>
      </td>
     </tr>
     <tr>
      <td> 2009/11/05 </td>
      <td> DD </td>
      <td> Added resolution of issue 
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=8075">8075</loc>
      </td>
     </tr>
     <tr>
      <td> 2009/11/05 </td>
      <td> DD </td>
      <td> Added resolution of issue 
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=8069">8069</loc>
      </td>
     </tr>
     <tr>
      <td> 2009/11/05 </td>
      <td> DD </td>
      <td> Added resolution of issue 
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=8076">8076</loc>
      </td>
     </tr>
     <tr>
      <td> 2009/11/05 </td>
      <td> DD </td>
      <td> Added resolution of issue 
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=7912">7912</loc>
      </td>
     </tr>
     <tr>
      <td> 2009/11/05 </td>
      <td> DD </td>
      <td> Added resolution of issues
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=8070">8070</loc>,
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=8071">8071</loc>,
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=8072">8072</loc>
      </td>
     </tr>
     <tr>
      <td> 2009/11/06 </td>
      <td> DD </td>
      <td> Added resolution of issue 
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=8124">8124</loc>
      </td>
     </tr>
     <tr>
      <td> 2009/11/06 </td>
      <td> DD </td>
      <td> Added resolution of issue 
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=8158">8158</loc>
      </td>
     </tr>
     <tr>
      <td> 2009/11/06 </td>
      <td> DD </td>
      <td> Added resolution of issue 
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=8124">8124</loc>
      </td>
     </tr>
     <tr>
      <td> 2009/11/17 </td>
      <td> DD </td>
      <td> Added resolution of issue 
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=8280">8280</loc>
      </td>
     </tr>
     <tr>
      <td> 2009/12/01 </td>
      <td> DD </td>
      <td> Added resolution of issue 
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=8201">8201</loc>
      </td>
     </tr>
     <tr>
      <td> 2009/12/08 </td>
      <td> DD </td>
      <td> Added resolution of issue 
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=8305">8305</loc>
      </td>
     </tr>
     <tr>
      <td> 2009/12/08 </td>
      <td> DD </td>
      <td> Added resolution of issue 
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=8159">8159</loc>
      </td>
     </tr>
     <tr>
      <td> 2009/12/08 </td>
      <td> DD </td>
      <td> Added resolution of issue 
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=8161">8161</loc>
      </td>
     </tr>
     <tr>
      <td> 2010/01/19 </td>
      <td> DD </td>
      <td> Added resolution of issue 
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=8286">8286</loc>
      </td>
     </tr>
     <tr>
      <td> 2010/01/19 </td>
      <td> DD </td>
      <td> Added resolution of issue 
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=8283">8283</loc>
      </td>
     </tr>
     <tr>
      <td> 2010/01/26 </td>
      <td> DD </td>
      <td> Added resolution of issue 
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=8275">8275</loc>
      </td>
     </tr>
     <tr>
      <td> 2010/01/28 </td>
      <td> DD </td>
      <td> Added resolution of issue 
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=8157">8157</loc>
      </td>
     </tr>
     <tr>
      <td> 2010/01/28 </td>
      <td> DD </td>
      <td> Added resolution of issue 
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=8196">8196</loc>
      </td>
     </tr>
     <tr>
      <td> 2010/02/05 </td>
      <td> DD </td>
      <td> Added resolution of issue 
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=6436">6436</loc>
      </td>
     </tr>
     <tr>
      <td> 2010/02/08 </td>
      <td> DD </td>
      <td> Added resolution of issue 
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=8901">8901</loc>
      </td>
     </tr>
     <tr>
      <td> 2010/02/09 </td>
      <td> DD </td>
      <td> Added resolution of issue 
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=8160">8160</loc>
      </td>
     </tr>
     <tr>
      <td> 2010/02/09 </td>
      <td> DD </td>
      <td> Added resolution of issue 
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=8304">8304</loc>
      </td>
     </tr>
     <tr>
      <td> 2010/02/23 </td>
      <td> DD </td>
      <td> Added resolution of issue 
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=8306">8306</loc>
      </td>
     </tr>
     <tr>
      <td> 2010/03/09 </td>
      <td> DD </td>
      <td> Added resolution of issue 
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=6463">6463</loc>,
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=8031">8031</loc>,
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=8198">8198</loc>
      </td>
     </tr>
     <tr>
      <td> 2010/03/16 </td>
      <td> DD </td>
      <td> Added resolution of issue 
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=8886">8886</loc>
      </td>
     </tr>
     <tr>
      <td> 2010/03/30 </td>
      <td> DD </td>
      <td> Added resolution of issue 
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=9095">9095</loc>
      </td>
     </tr>
     <tr>
      <td> 2010/03/30 </td>
      <td> DD </td>
      <td> Added resolution of issue 
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=9266">9266</loc>
      </td>
     </tr>
     <tr>
      <td> 2010/04/20 </td>
      <td> DD </td>
      <td> Added resolution of issue 
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=9543">9543</loc>
      </td>
     </tr>
     <tr>
      <td> 2010/05/04 </td>
      <td> DD </td>
      <td> Added resolution of issue 
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=9588">9588</loc>
      </td>
     </tr>
     <tr>
      <td> 2010/05/04 </td>
      <td> DD </td>
      <td> Added resolution of issue 
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=9087">9087</loc>
      </td>
     </tr>
     <tr>
      <td> 2010/05/11 </td>
      <td> DD </td>
      <td> Added resolution of issue 
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=9568">9568</loc>
      </td>
     </tr>
     <tr>
      <td> 2010/05/11 </td>
      <td> DD </td>
      <td> Added resolution of issue 
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=9699">9699</loc>
      </td>
     </tr>
     <tr>
      <td> 2010/05/12 </td>
      <td> DD </td>
      <td> Added resolution of issue 
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=9717">9717</loc>
      </td>
     </tr>
     <tr>
      <td> 2010/05/13 </td>
      <td> DD </td>
      <td> Added resolution of issue 
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=9702">9702</loc>
      </td>
     </tr>
     <tr>
      <td> 2010/06/29 </td>
      <td> DD </td>
      <td> Added resolution of issue 
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=9609">9609</loc>
      </td>
     </tr>
     <tr>
      <td> 2010/08/17 </td>
      <td> DD </td>
      <td> Added resolution of issue 
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=10339">10339</loc>
      </td>
     </tr>
     <tr>
      <td> 2010/11/16 </td>
      <td> DD </td>
      <td> Added resolution of issue 
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=10960">10960</loc>
      </td>
     </tr>
     <tr>
      <td> 2010/11/19 </td>
      <td> DD </td>
      <td> Added resolution of issue 
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=8284">8284</loc>
      </td>
     </tr>
     <tr>
      <td> 2011/01/11 </td>
      <td> DD </td>
      <td> Added resolution of issue 
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=11696">11696</loc>
      </td>
     </tr>
     <tr>
      <td> 2011/02/01 </td>
      <td> DD </td>
      <td> Added resolution of issue 
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=11882">11882</loc>
      </td>
     </tr>
     <tr>
      <td> 2011/02/07 </td>
      <td> DD </td>
      <td> Added resolution of issue 
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=11899">11899</loc>
      </td>
     </tr>
     <tr>
      <td> 2011/02/15 </td>
      <td> DD </td>
      <td> Added resolution of issue 
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=12051">12051</loc>
      </td>
     </tr>
     <tr>
      <td> 2011/02/15 </td>
      <td> DD </td>
      <td> Added resolution of issue 
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=11894">11894</loc>
      </td>
     </tr>
     <tr>
      <td> 2011/02/15 </td>
      <td> DD </td>
      <td> Added resolution of issue 
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=12063">12063</loc>
      </td>
     </tr>
     <tr>
      <td> 2011/02/15 </td>
      <td> DD </td>
      <td> Added resolution of issue 
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=11990">11990</loc>
      </td>
     </tr>
     <tr>
      <td> 2011/02/15 </td>
      <td> DD </td>
      <td> Added resolution of issue 
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=11949">11949</loc>
      </td>
     </tr>
     <tr>
      <td> 2011/03/22 </td>
      <td> DD </td>
      <td> Added resolution of issue 
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=12112">12112</loc>
      </td>
     </tr>
     <tr>
      <td> 2011/03/22 </td>
      <td> DD </td>
      <td> Added resolution of issue 
       <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=11776">11776</loc>
      </td>
     </tr>
    </tbody>
   </table>
  </div1>

 </back>

</spec>

