WWW/2002/ws/ra/edcopies wsenum.html,1.70,1.71 wsenum.xml,1.63,1.64

Update of /w3ccvs/WWW/2002/ws/ra/edcopies
In directory hutz:/tmp/cvs-serv14876

Modified Files:
	wsenum.html wsenum.xml 
Log Message:
7587


Index: wsenum.html
===================================================================
RCS file: /w3ccvs/WWW/2002/ws/ra/edcopies/wsenum.html,v
retrieving revision 1.70
retrieving revision 1.71
diff -u -d -r1.70 -r1.71
--- wsenum.html	6 Oct 2009 12:29:42 -0000	1.70
+++ wsenum.html	6 Oct 2009 16:40:20 -0000	1.71
@@ -57,21 +57,22 @@
 &nbsp;&nbsp;&nbsp;3.6 <a href="#EnumerationEnd">EnumerationEnd</a><br/>
 4 <a href="#Faults">Faults</a><br/>
 &nbsp;&nbsp;&nbsp;4.1 <a href="#InvalidExpirationTime">InvalidExpirationTime</a><br/>
-&nbsp;&nbsp;&nbsp;4.2 <a href="#UnsupportedExpirationTime">UnsupportedExpirationTime</a><br/>
-&nbsp;&nbsp;&nbsp;4.3 <a href="#FilteringNotSupported">FilteringNotSupported</a><br/>
-&nbsp;&nbsp;&nbsp;4.4 <a href="#FilterDialectRequestedUnavailable">FilterDialectRequestedUnavailable</a><br/>
-&nbsp;&nbsp;&nbsp;4.5 <a href="#CannotProcessFilter">CannotProcessFilter</a><br/>
-&nbsp;&nbsp;&nbsp;4.6 <a href="#InvalidEnumerationContext">InvalidEnumerationContext</a><br/>
-&nbsp;&nbsp;&nbsp;4.7 <a href="#TimedOut">TimedOut</a><br/>
-&nbsp;&nbsp;&nbsp;4.8 <a href="#UnableToRenew">UnableToRenew</a><br/>
-&nbsp;&nbsp;&nbsp;4.9 <a href="#UnusableEPR">UnusableEPR</a><br/>
+&nbsp;&nbsp;&nbsp;4.2 <a href="#ExpirationTimeExceeded">ExpirationTimeExceeded</a><br/>
+&nbsp;&nbsp;&nbsp;4.3 <a href="#UnsupportedExpirationTime">UnsupportedExpirationTime</a><br/>
+&nbsp;&nbsp;&nbsp;4.4 <a href="#FilteringNotSupported">FilteringNotSupported</a><br/>
+&nbsp;&nbsp;&nbsp;4.5 <a href="#FilterDialectRequestedUnavailable">FilterDialectRequestedUnavailable</a><br/>
+&nbsp;&nbsp;&nbsp;4.6 <a href="#CannotProcessFilter">CannotProcessFilter</a><br/>
+&nbsp;&nbsp;&nbsp;4.7 <a href="#InvalidEnumerationContext">InvalidEnumerationContext</a><br/>
+&nbsp;&nbsp;&nbsp;4.8 <a href="#TimedOut">TimedOut</a><br/>
+&nbsp;&nbsp;&nbsp;4.9 <a href="#UnableToRenew">UnableToRenew</a><br/>
+&nbsp;&nbsp;&nbsp;4.10 <a href="#UnusableEPR">UnusableEPR</a><br/>
 5 <a href="#Security">Security Considerations</a><br/>
 6 <a href="#metadata">WS-Enumeration Metadata</a><br/>
-&nbsp;&nbsp;&nbsp;6.1 <a href="#iddiv2_1_1895">Enumeration Assertion</a><br/>
+&nbsp;&nbsp;&nbsp;6.1 <a href="#iddiv2_1_1996">Enumeration Assertion</a><br/>
 7 <a href="#acks">Acknowledgements</a><br/>
 8 <a href="#refs">References</a><br/>
-&nbsp;&nbsp;&nbsp;8.1 <a href="#iddiv2_1_1984">Normative References</a><br/>
-&nbsp;&nbsp;&nbsp;8.2 <a href="#iddiv2_1_2170">Informative References</a><br/>
+&nbsp;&nbsp;&nbsp;8.1 <a href="#iddiv2_1_2085">Normative References</a><br/>
+&nbsp;&nbsp;&nbsp;8.2 <a href="#iddiv2_1_2271">Informative References</a><br/>
 </p>
 <h3><a name="appendices" id="appendices"/>Appendices</h3><p class="toc">A <a href="#schema">XML Schema</a><br/>
 B <a href="#WSDL">WSDL</a><br/>
@@ -359,7 +360,11 @@
 <b>[Body]</b>
   &lt;wsen:Enumerate ...&gt;
     &lt;wsen:EndTo&gt;<em>endpoint-reference</em>&lt;/wsen:EndTo&gt; ?
-    &lt;wsen:Expires&gt;(<em>xs:dateTime</em> | <em>xs:duration</em>)&lt;/wsen:Expires&gt; ?
+    &lt;wsen:Expires min="(<em>xs:dateTime</em> | <em>xs:duration</em>)"?
+                 max="(<em>xs:dateTime</em> | <em>xs:duration</em>)"?
+                 exact="<em>xs:boolean</em>"? ...&gt;
+      (<em>xs:dateTime</em> | <em>xs:duration</em>)
+    &lt;/wsen:Expires&gt; ?
     &lt;wsen:Filter Dialect="<em>xs:anyURI</em>"?&gt; <em>xs:any</em> &lt;/wsen:Filter&gt; ?
     <em>xs:any</em>*
   &lt;/wsen:Enumerate&gt;</pre></div></div><p>
@@ -375,36 +380,29 @@
         message.  The endpoint to which the EndTo EPR 
         refers MUST support the EnumerationEndPortType portType.
        </p></dd><dt class="label"><b>[Body]</b>/wsen:Enumerate/wsen:Expires </dt><dd><p>
-        Requested expiration time for the
-        enumeration. (No implied value.) The data source defines the actual
-        expiration and is not constrained to use a time less or greater
-        than the requested expiration. The expiration time MAY be a
-        specific time or a duration from the enumeration's creation time.
-        Both specific times and durations are interpreted based on the data
-        source's clock.
-       </p><p>
-        If this element does not appear, then the
-        request is for an enumeration that will not expire. That is, the
-        consumer is requesting the data source to create an enumeration
-        with an indefinite lifetime. If the data source grants such an
-        enumeration, 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>
-        If the expiration time is either a zero
-        duration or a specific time that occurs in the past according to
-        the data source, then the request MUST fail, and the data source
-        MUST generate a wsen:InvalidExpirationTime fault indicating that an 
-        invalid expiration time was requested.
+        This OPTIONAL element can be used by the Subscriber to indicate the
+        expiration time of the requested Subscription. The value of this
+        element indicates the desired expiration time for the subscription.
+        The implied default is indefinite (no expiry). The value of this
+        element MUST be between the values of the @min and @max attributes
+        inclusive. If the request is malformed, the event source
+        MUST generate a wsen:InvalidExpirationTime fault.
        </p><p>
-        Some data sources might not have a "wall time"
-        clock available, and so are able only to accept durations as
-        expirations. If such a source receives an Enumerate request
-        containing a specific time expiration, then the request MUST fail;
-        if so, the data source SHOULD generate a 
-        wsen:UnsupportedExpirationTime fault indicating that an
-        unsupported expiration type was requested.
+        If the wsen:Expires element is present and the event source is not
+        able to grant an expiry time within range indicated by the @min and
+        @max attribute values, it MUST generate a
+        wsen:ExpirationTimeExceeded fault.
+       </p></dd><dt class="label"><b>[Body]</b>/wsen:Enumerate/wsen:Expires@min </dt><dd><p>
+        The implied default is PT0S. This specifies the minimum expiration
+        time that the event subscriber is willing to accept.
+       </p></dd><dt class="label"><b>[Body]</b>/wsen:Enumerate/wsen:Expires@max </dt><dd><p>
+        The implied default is indefinite (no expiry). This specifies the
+        maximum expiration time that the event subscriber is willing to accept.
+       </p></dd><dt class="label"><b>[Body]</b>/wsen:Enumerate/wsen:Expires@exact </dt><dd><p>
+        The default value is "false" in which case this attribute has no
+        effect. If this attribute value is "true" both @min and @max
+        attributes MUST be ignored and are treated as if they had the same
+        value as the wsen:Expires element.
        </p></dd><dt class="label"><b>[Body]</b>/wsen:Enumerate/wsen:Filter </dt><dd><p>
         This optional element contains a Boolean
         predicate in some dialect (see <b>[<a href="#Dialect">[Body]/wsen:Enumerate/wsen:Filter/@Dialect </a>]</b>) 
@@ -483,13 +481,19 @@
 
 <b>[Body]</b>
   &lt;wsen:EnumerateResponse ...&gt;
-    &lt;wsen:Expires&gt;(<em>xs:dateTime</em> | <em>xs:duration</em>)&lt;/wsen:Expires&gt; ?
+    &lt;wsen:GrantedExpires&gt;
+      (<em>xs:dateTime</em> | <em>xs:duration</em>)
+    &lt;/wsen:GrantedExpires&gt; ?
     &lt;wsen:EnumerationContext&gt;...&lt;/wsen:EnumerationContext&gt;
     <em>xs:any</em>*
   &lt;/wsen:EnumerateResponse&gt;</pre></div></div><p>
      The following describes additional, normative
      constraints on the outline listed above:
-    </p><dl><dt class="label"><b>[Body]</b>/wsen:EnumerateResponse/wsen:Expires </dt><dd><p>
+    </p><dl><dt class="label"><b>[Body]</b>/wsen:EnumerateResponse/wsen:GrantedExpires </dt><dd><p>
+        The value of this OPTIONAL element indicates the expiration time (or
+        duration) granted by the event source. If this element is missing the
+        granted expiration time is indefinite.
+       </p><p>
         The expiration time assigned by the data
         source. The expiration time MAY be either an absolute time or a
         duration but SHOULD be of the same type as the requested expiration
@@ -819,7 +823,11 @@
 <b>[Body]</b>
   &lt;wsen:Renew ...&gt;
     &lt;wsen:EnumerationContext&gt;...&lt;/wsen:EnumerationContext&gt;
-    &lt;wsen:Expires&gt;(<em>xs:dateTime</em> | <em>xs:duration</em>)&lt;/wsen:Expires&gt; ?
+    &lt;wsen:Expires min="(<em>xs:dateTime</em> | <em>xs:duration</em>)"?
+                 max="(<em>xs:dateTime</em> | <em>xs:duration</em>)"?
+                 exact="<em>xs:boolean</em>"? ...&gt;
+      (<em>xs:dateTime</em> | <em>xs:duration</em>)
+    &lt;/wsen:Expires&gt; ?
     <em>xs:any</em>*
   &lt;/wsen:Renew&gt;</pre></div></div><p>
      Components of the outline listed above are
@@ -850,14 +858,16 @@
 
 <b>[Body]</b>
   &lt;wsen:RenewResponse ...&gt;
-    &lt;wsen:Expires&gt;(<em>xs:dateTime</em> | <em>xs:duration</em>)&lt;/wsen:Expires&gt; ?
+    &lt;wsen:GrantedExpires&gt;
+      (<em>xs:dateTime</em> | <em>xs:duration</em>)
+    &lt;/wsen:GrantedExpires&gt; ?
     &lt;wsen:EnumerationContext&gt;...&lt;/wsen:EnumerationContext&gt; ?
     <em>xs:any</em>*
   &lt;/wsen:RenewResponse&gt;</pre></div></div><p>
      Components of the outline listed above are
      constrained as for a response to an Enumerate request 
      (see <a href="#Enumerate"><b>3.1 Enumerate</b></a>) with the following addition:
-    </p><dl><dt class="label"><b>[Body]</b>/wsen:RenewResponse/wsen:Expires </dt><dd><p>
+    </p><dl><dt class="label"><b>[Body]</b>/wsen:RenewResponse/wsen:GrantedExpires </dt><dd><p>
         If the requested expiration is a duration,
         then the implied start of that duration is the time when the data
         source starts processing the Renew request.
@@ -898,7 +908,9 @@
 
 <b>[Body]</b>
   &lt;wsen:GetStatusResponse ...&gt;
-    &lt;wsen:Expires&gt;(<em>xs:dateTime</em> | <em>xs:duration</em>)&lt;/wsen:Expires&gt; ?
+    &lt;wsen:GrantedExpires&gt;
+      (<em>xs:dateTime</em> | <em>xs:duration</em>)
+    &lt;/wsen:GrantedExpires&gt; ?
     <em>xs:any</em>*
   &lt;/wsen:GetStatusResponse&gt;</pre></div></div><p>
      Components of the outline listed above are
@@ -1089,25 +1101,30 @@
   &lt;/s11:Body&gt;
 &lt;/s11:Envelope&gt;</pre></div></div><div class="div2">
 <h3><a name="InvalidExpirationTime" id="InvalidExpirationTime"/>4.1 InvalidExpirationTime</h3><p>
-     This fault is generated if the Enumerate expiration time is either a 
-     zero duration or a specific time that occurs in the past according to 
-     the data source.
+     This fault is generated when a request specifies an
+     expiration that is malformed.
     </p><table border="1"><tbody><tr><td><b>[Code]</b></td><td> s12:Sender </td></tr><tr><td><b>[Subcode]</b></td><td> wsen:InvalidExpirationTime </td></tr><tr><td><b>[Reason]</b></td><td>
         Invalid expiration time.
        </td></tr><tr><td><b>[Detail]</b></td><td/></tr></tbody></table></div><div class="div2">
-<h3><a name="UnsupportedExpirationTime" id="UnsupportedExpirationTime"/>4.2 UnsupportedExpirationTime</h3><p>
+<h3><a name="ExpirationTimeExceeded" id="ExpirationTimeExceeded"/>4.2 ExpirationTimeExceeded</h3><p>
+     This fault is generated when a request specifies an
+     expiration that is not within the min/max range.
+    </p><table border="1"><tbody><tr><td><b>[Code]</b></td><td> s12:Sender </td></tr><tr><td><b>[Subcode]</b></td><td> wsen:ExpirationTimeExceeded </td></tr><tr><td><b>[Reason]</b></td><td>
+        The expiration time requested is not within the min/max range.
+       </td></tr><tr><td><b>[Detail]</b></td><td/></tr></tbody></table></div><div class="div2">
+<h3><a name="UnsupportedExpirationTime" id="UnsupportedExpirationTime"/>4.3 UnsupportedExpirationTime</h3><p>
      This fault is generated if the Enumerate expiration time is 
      specified not as a duration.
     </p><table border="1"><tbody><tr><td><b>[Code]</b></td><td> s12:Sender </td></tr><tr><td><b>[Subcode]</b></td><td> wsen:UnsupportedExpirationTime </td></tr><tr><td><b>[Reason]</b></td><td>
         Unsupported expiration time.
        </td></tr><tr><td><b>[Detail]</b></td><td/></tr></tbody></table></div><div class="div2">
-<h3><a name="FilteringNotSupported" id="FilteringNotSupported"/>4.3 FilteringNotSupported</h3><p>
+<h3><a name="FilteringNotSupported" id="FilteringNotSupported"/>4.4 FilteringNotSupported</h3><p>
      This fault is generated if the data source does not support
      filters.
     </p><table border="1"><tbody><tr><td><b>[Code]</b></td><td> s12:Sender </td></tr><tr><td><b>[Subcode]</b></td><td> wsen:FilteringNotSupported </td></tr><tr><td><b>[Reason]</b></td><td>
         Filtering not supported.
        </td></tr><tr><td><b>[Detail]</b></td><td/></tr></tbody></table></div><div class="div2">
-<h3><a name="FilterDialectRequestedUnavailable" id="FilterDialectRequestedUnavailable"/>4.4 FilterDialectRequestedUnavailable</h3><p>
+<h3><a name="FilterDialectRequestedUnavailable" id="FilterDialectRequestedUnavailable"/>4.5 FilterDialectRequestedUnavailable</h3><p>
      This fault is generated if the data source does not support
      the requested filter dialect.
     </p><table border="1"><tbody><tr><td><b>[Code]</b></td><td> s12:Sender </td></tr><tr><td><b>[Subcode]</b></td><td> wsen:FilterDialectRequestedUnavailable </td></tr><tr><td><b>[Reason]</b></td><td>
@@ -1116,13 +1133,13 @@
         &lt;wsen:SupportedDialect&gt; +
         <br/><em>Optional; repeating; one per filter dialect supported by the
         receiver</em></td></tr></tbody></table></div><div class="div2">
-<h3><a name="CannotProcessFilter" id="CannotProcessFilter"/>4.5 CannotProcessFilter</h3><p>
+<h3><a name="CannotProcessFilter" id="CannotProcessFilter"/>4.6 CannotProcessFilter</h3><p>
      This fault is generated if the data source can not process the
      filter content.
     </p><table border="1"><tbody><tr><td><b>[Code]</b></td><td> s12:Sender </td></tr><tr><td><b>[Subcode]</b></td><td> wsen:CannotProcessFilter </td></tr><tr><td><b>[Reason]</b></td><td>
         Cannot filter as requested.
        </td></tr><tr><td><b>[Detail]</b></td><td/></tr></tbody></table></div><div class="div2">
-<h3><a name="InvalidEnumerationContext" id="InvalidEnumerationContext"/>4.6 InvalidEnumerationContext</h3><p>
+<h3><a name="InvalidEnumerationContext" id="InvalidEnumerationContext"/>4.7 InvalidEnumerationContext</h3><p>
      This fault is generated if the enumeration context is invalid.
     </p><table border="1"><tbody><tr><td><b>[Code]</b></td><td> s12:Receiver </td></tr><tr><td><b>[Subcode]</b></td><td> wsen:InvalidEnumerationContext </td></tr><tr><td><b>[Reason]</b></td><td><em>
          Text explaining why the enumeration context is no longer valid, or 
@@ -1131,11 +1148,11 @@
         <em>
          if no additional information is available.
         </em></td></tr><tr><td><b>[Detail]</b></td><td/></tr></tbody></table></div><div class="div2">
-<h3><a name="TimedOut" id="TimedOut"/>4.7 TimedOut</h3><p>
+<h3><a name="TimedOut" id="TimedOut"/>4.8 TimedOut</h3><p>
      This fault is generated if the data source times out is the
      wsen:MaxTime is reached.
     </p><table border="1"><tbody><tr><td><b>[Code]</b></td><td> s12:Receiver </td></tr><tr><td><b>[Subcode]</b></td><td> wsen:TimedOut </td></tr><tr><td><b>[Reason]</b></td><td> Timeout. </td></tr><tr><td><b>[Detail]</b></td><td/></tr></tbody></table></div><div class="div2">
-<h3><a name="UnableToRenew" id="UnableToRenew"/>4.8 UnableToRenew</h3><p>
+<h3><a name="UnableToRenew" id="UnableToRenew"/>4.9 UnableToRenew</h3><p>
      This fault is generated if the data source is unable to
      renew the enumeration.
     </p><table border="1"><tbody><tr><td><b>[Code]</b></td><td> s12:Receiver </td></tr><tr><td><b>[Subcode]</b></td><td> wsen:UnableToRenew </td></tr><tr><td><b>[Reason]</b></td><td><em>
@@ -1145,7 +1162,7 @@
         <em>
          if no additional information is available.
         </em></td></tr><tr><td><b>[Detail]</b></td><td/></tr></tbody></table></div><div class="div2">
-<h3><a name="UnusableEPR" id="UnusableEPR"/>4.9 UnusableEPR</h3><p>
+<h3><a name="UnusableEPR" id="UnusableEPR"/>4.10 UnusableEPR</h3><p>
      This fault MAY be generated when a Data Source detects
      that the wsen:EndTo EPR is unusable.
     </p><table border="1"><tbody><tr><td><b>[Code]</b></td><td>s12:Sender</td></tr><tr><td><b>[Subcode]</b></td><td>wsen:UnusableEPR</td></tr><tr><td><b>[Reason]</b></td><td>The wsen:EndTo EPR is unusable.</td></tr><tr><td><b>[Detail]</b></td><td><em> Details as to why the EPR is unusable. </em></td></tr></tbody></table></div></div><div class="div1">
@@ -1259,7 +1276,7 @@
     indicate a particular security mechanism used to protect the 
     WS-Enumeration operations supported by this endpoint.
    </p><div class="div2">
-<h3><a name="iddiv2_1_1895" id="iddiv2_1_1895"/>6.1 Enumeration Assertion</h3><p>
+<h3><a name="iddiv2_1_1996" id="iddiv2_1_1996"/>6.1 Enumeration Assertion</h3><p>
      The mechanism for indicating that a binding or endpoint conforms to the 
      WS-Enumeration specification is through the use of the Web Services 
      Policy - Framework <a href="#wspolicy">[WS-Policy]</a> and Web Services Policy - 
@@ -1348,7 +1365,7 @@
       Yves Lafon (W3C).
    </p></div><div class="div1">
 <h2><a name="refs" id="refs"/>8 References</h2><div class="div2">
-<h3><a name="iddiv2_1_1984" id="iddiv2_1_1984"/>8.1 Normative References</h3><dl><dt class="label"><a name="RFC2119" id="RFC2119"/>RFC 2119</dt><dd><a href="http://www.ietf.org/rfc/rfc2119.txt"><cite>
+<h3><a name="iddiv2_1_2085" id="iddiv2_1_2085"/>8.1 Normative References</h3><dl><dt class="label"><a name="RFC2119" id="RFC2119"/>RFC 2119</dt><dd><a href="http://www.ietf.org/rfc/rfc2119.txt"><cite>
         Key words for use in RFCs to Indicate Requirement Levels
        </cite></a>
        , S. Bradner, Author. 
@@ -1420,7 +1437,7 @@
        , J. Clark, S. DeRose, Editors.
        World Wide Web Consortium (W3C), 16 November 1999. 
       Available at <a href="http://www.w3.org/TR/xpath">http://www.w3.org/TR/xpath</a>.</dd></dl></div><div class="div2">
-<h3><a name="iddiv2_1_2170" id="iddiv2_1_2170"/>8.2 Informative References</h3><dl><dt class="label"><a name="WSSecureConversation" id="WSSecureConversation"/>WS-SecureConversation</dt><dd><a href="http://docs.oasis-open.org/ws-sx/ws-secureconversation/v1.4/os/ws-secureconversation-1.4-spec-os.doc"><cite>
+<h3><a name="iddiv2_1_2271" id="iddiv2_1_2271"/>8.2 Informative References</h3><dl><dt class="label"><a name="WSSecureConversation" id="WSSecureConversation"/>WS-SecureConversation</dt><dd><a href="http://docs.oasis-open.org/ws-sx/ws-secureconversation/v1.4/os/ws-secureconversation-1.4-spec-os.doc"><cite>
         OASIS Standard, "Web Services Secure Conversation 
           (WS-SecureConversation) 1.4"
        </cite></a>
@@ -1484,10 +1501,28 @@
     &lt;/xs:restriction&gt;
   &lt;/xs:simpleType&gt;
 
-  &lt;xs:simpleType name="ExpirationType"&gt;
-    &lt;xs:union memberTypes="xs:dateTime tns:NonNegativeDurationType" /&gt;
+  &lt;simpleType name="DurationDateTime"&gt;
+      &lt;xs:union memberTypes="xs:dateTime tns:NonNegativeDurationType" /&gt;
   &lt;/xs:simpleType&gt;
 
+  &lt;xs:complexType name="MiniExpirationType"&gt;
+    &lt;xs:simpleContent&gt;
+      &lt;xs:extension base="tns:DurationDateTime"&gt;
+        &lt;xs:anyAttribute namespace="##other" processContents="lax"/&gt;
+      &lt;/xs:extension&gt;
+    &lt;/xs:simpleContent&gt;
+  &lt;/xs:complexType&gt;
+
+  &lt;xs:complexType name="ExpirationType"&gt;
+    &lt;xs:simpleContent&gt;
+      &lt;xs:extension base="tns:MiniExpirationType"&gt;
+        &lt;xs:attribute name="min" type="tns:DurationDateTime" use="optional"/&gt;
+        &lt;xs:attribute name="max" type="tns:DurationDateTime" use="optional"/&gt;
+        &lt;xs:anyAttribute namespace="##other" processContents="lax"/&gt;
+      &lt;/xs:extension&gt;
+    &lt;/xs:simpleContent&gt;
+  &lt;/xs:complexType&gt;
+
   &lt;xs:complexType name="EnumerationContextType"&gt;
     &lt;xs:complexContent mixed="true"&gt;
       &lt;xs:restriction base="xs:anyType"&gt;
@@ -1540,7 +1575,7 @@
   &lt;xs:element name="EnumerateResponse"&gt;
     &lt;xs:complexType&gt;
       &lt;xs:sequence&gt;
-        &lt;xs:element name="Expires" type="tns:ExpirationType" 
+        &lt;xs:element name="GrantedExpires" type="tns:MiniExpirationType" 
                     minOccurs="0" /&gt;
         &lt;xs:element name="EnumerationContext" 
                     type="tns:EnumerationContextType" /&gt;
@@ -1604,7 +1639,7 @@
   &lt;xs:element name="RenewResponse"&gt;
     &lt;xs:complexType&gt;
       &lt;xs:sequence&gt;
-        &lt;xs:element name="Expires" type="tns:ExpirationType" 
+        &lt;xs:element name="GrnatedExpires" type="tns:MiniExpirationType" 
                     minOccurs="0" /&gt;
         &lt;xs:element name="EnumerationContext" 
                     type="tns:EnumerationContextType" 
@@ -1633,7 +1668,7 @@
   &lt;xs:element name="GetStatusResponse"&gt;
     &lt;xs:complexType&gt;
       &lt;xs:sequence&gt;
-        &lt;xs:element name="Expires" type="tns:ExpirationType"
+        &lt;xs:element name="GrantedExpires" type="tns:MiniExpirationType"
                     minOccurs="0" /&gt;
         &lt;xs:any namespace="##other" processContents="lax" 
                 minOccurs="0" maxOccurs="unbounded" /&gt;
@@ -1892,4 +1927,5 @@
        <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=7716">7716</a></td></tr><tr><td> 2009/10/02 </td><td> DD </td><td> Added resolution of issue 
        <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=7426">7426</a></td></tr><tr><td> 2009/10/05 </td><td> DD </td><td> Added resolution of issues
        <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=6403">6403</a>,
-       <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=6721">6721</a></td></tr></tbody></table></div></div></body></html>
\ No newline at end of file
+       <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=6721">6721</a></td></tr><tr><td> 2009/10/06 </td><td> DD </td><td> Added resolution of issue 
+       <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=7587">7587</a></td></tr></tbody></table></div></div></body></html>
\ No newline at end of file

Index: wsenum.xml
===================================================================
RCS file: /w3ccvs/WWW/2002/ws/ra/edcopies/wsenum.xml,v
retrieving revision 1.63
retrieving revision 1.64
diff -u -d -r1.63 -r1.64
--- wsenum.xml	6 Oct 2009 12:29:42 -0000	1.63
+++ wsenum.xml	6 Oct 2009 16:40:20 -0000	1.64
@@ -612,7 +612,11 @@
 <kw>[Body]</kw>
   &lt;wsen:Enumerate ...>
     &lt;wsen:EndTo&gt;<emph>endpoint-reference</emph>&lt;/wsen:EndTo> ?
-    &lt;wsen:Expires&gt;(<emph>xs:dateTime</emph> | <emph>xs:duration</emph>)&lt;/wsen:Expires&gt; ?
+    &lt;wsen:Expires min="(<emph>xs:dateTime</emph> | <emph>xs:duration</emph>)"?
+                 max="(<emph>xs:dateTime</emph> | <emph>xs:duration</emph>)"?
+                 exact="<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:Enumerate></eg>
@@ -644,46 +648,58 @@
       <label> <kw>[Body]</kw>/wsen:Enumerate/wsen:Expires </label>
       <def>
        <p>
-        Requested expiration time for the
-        enumeration. (No implied value.) The data source defines the actual
-        expiration and is not constrained to use a time less or greater
-        than the requested expiration. The expiration time MAY be a
-        specific time or a duration from the enumeration's creation time.
-        Both specific times and durations are interpreted based on the data
-        source's clock.
+        This OPTIONAL element can be used by the Subscriber to indicate the
+        expiration time of the requested Subscription. The value of this
+        element indicates the desired expiration time for the subscription.
+        The implied default is indefinite (no expiry). The value of this
+        element MUST be between the values of the @min and @max attributes
+        inclusive. If the request is malformed, the event source
+        MUST generate a wsen:InvalidExpirationTime fault.
        </p>
+
        <p>
-        If this element does not appear, then the
-        request is for an enumeration that will not expire. That is, the
-        consumer is requesting the data source to create an enumeration
-        with an indefinite lifetime. If the data source grants such an
-        enumeration, 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.
+        If the wsen:Expires element is present and the event source is not
+        able to grant an expiry time within range indicated by the @min and
+        @max attribute values, it MUST generate a
+        wsen:ExpirationTimeExceeded fault.
        </p>
+
+      </def>
+     </gitem>
+
+     <gitem>
+      <label> <kw>[Body]</kw>/wsen:Enumerate/wsen:Expires@min </label>
+      <def>
        <p>
-        If the expiration time is either a zero
-        duration or a specific time that occurs in the past according to
-        the data source, then the request MUST fail, and the data source
-        MUST generate a wsen:InvalidExpirationTime fault indicating that an 
-        invalid expiration time was requested.
+        The implied default is PT0S. This specifies the minimum expiration
+        time that the event subscriber is willing to accept.
        </p>
-
+      </def>
+     </gitem>
+ 
+     <gitem>
+      <label> <kw>[Body]</kw>/wsen:Enumerate/wsen:Expires@max </label>
+      <def>
        <p>
-        Some data sources might not have a "wall time"
-        clock available, and so are able only to accept durations as
-        expirations. If such a source receives an Enumerate request
-        containing a specific time expiration, then the request MUST fail;
-        if so, the data source SHOULD generate a 
-        wsen:UnsupportedExpirationTime fault indicating that an
-        unsupported expiration type was requested.
+        The implied default is indefinite (no expiry). This specifies the
+        maximum expiration time that the event subscriber is willing to accept.
        </p>
-
       </def>
      </gitem>
 
      <gitem>
+      <label> <kw>[Body]</kw>/wsen:Enumerate/wsen:Expires@exact </label>
+      <def>
+       <p>
+        The default value is "false" in which case this attribute has no
+        effect. If this attribute value is "true" both @min and @max
+        attributes MUST be ignored and are treated as if they had the same
+        value as the wsen:Expires element.
+       </p>
+      </def>
+     </gitem>
+ 
+     <gitem>
       <label> <kw>[Body]</kw>/wsen:Enumerate/wsen:Filter </label>
       <def>
        <p>
@@ -821,7 +837,9 @@
 
 <kw>[Body]</kw>
   &lt;wsen:EnumerateResponse ...>
-    &lt;wsen:Expires&gt;(<emph>xs:dateTime</emph> | <emph>xs:duration</emph>)&lt;/wsen:Expires> ?
+    &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:EnumerateResponse></eg>
@@ -834,9 +852,14 @@
 
     <glist>
      <gitem>
-      <label> <kw>[Body]</kw>/wsen:EnumerateResponse/wsen:Expires </label>
+      <label> <kw>[Body]</kw>/wsen:EnumerateResponse/wsen:GrantedExpires </label>
       <def>
        <p>
+        The value of this OPTIONAL element indicates the expiration time (or
+        duration) granted by the event source. If this element is missing the
+        granted expiration time is indefinite.
+       </p>
+       <p>
         The expiration time assigned by the data
         source. The expiration time MAY be either an absolute time or a
         duration but SHOULD be of the same type as the requested expiration
@@ -1334,7 +1357,11 @@
 <kw>[Body]</kw>
   &lt;wsen:Renew ...>
     &lt;wsen:EnumerationContext>...&lt;/wsen:EnumerationContext>
-    &lt;wsen:Expires&gt;(<emph>xs:dateTime</emph> | <emph>xs:duration</emph>)&lt;/wsen:Expires> ?
+    &lt;wsen:Expires min="(<emph>xs:dateTime</emph> | <emph>xs:duration</emph>)"?
+                 max="(<emph>xs:dateTime</emph> | <emph>xs:duration</emph>)"?
+                 exact="<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>
@@ -1386,7 +1413,9 @@
 
 <kw>[Body]</kw>
   &lt;wsen:RenewResponse ...>
-    &lt;wsen:Expires&gt;(<emph>xs:dateTime</emph> | <emph>xs:duration</emph>)&lt;/wsen:Expires> ?
+    &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>
@@ -1400,7 +1429,7 @@
 
     <glist>
      <gitem>
-      <label> <kw>[Body]</kw>/wsen:RenewResponse/wsen:Expires </label>
+      <label> <kw>[Body]</kw>/wsen:RenewResponse/wsen:GrantedExpires </label>
       <def>
        <p>
         If the requested expiration is a duration,
@@ -1474,7 +1503,9 @@
 
 <kw>[Body]</kw>
   &lt;wsen:GetStatusResponse ...>
-    &lt;wsen:Expires&gt;(<emph>xs:dateTime</emph> | <emph>xs:duration</emph>)&lt;/wsen:Expires> ?
+    &lt;wsen:GrantedExpires&gt;
+      (<emph>xs:dateTime</emph> | <emph>xs:duration</emph>)
+    &lt;/wsen:GrantedExpires> ?
     <emph>xs:any</emph>*
   &lt;/wsen:GetStatusResponse></eg>
     </example>
@@ -1817,9 +1848,8 @@
     <head>InvalidExpirationTime</head>
 
     <p>
-     This fault is generated if the Enumerate expiration time is either a 
-     zero duration or a specific time that occurs in the past according to 
-     the data source.
+     This fault is generated when a request specifies an
+     expiration that is malformed.
     </p>
 
     <table border="1">
@@ -1846,6 +1876,38 @@
     </table>
    </div2>
 
+   <div2 id="ExpirationTimeExceeded">
+    <head>ExpirationTimeExceeded</head>
+
+    <p>
+     This fault is 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:ExpirationTimeExceeded </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="UnsupportedExpirationTime">
     <head>UnsupportedExpirationTime</head>
 
@@ -2707,10 +2769,28 @@
     &lt;/xs:restriction>
   &lt;/xs:simpleType>
 
-  &lt;xs:simpleType name="ExpirationType">
-    &lt;xs:union memberTypes="xs:dateTime tns:NonNegativeDurationType" />
+  &lt;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="min" type="tns:DurationDateTime" use="optional"/>
+        &lt;xs:attribute name="max" type="tns:DurationDateTime" 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">
@@ -2763,7 +2843,7 @@
   &lt;xs:element name="EnumerateResponse">
     &lt;xs:complexType>
       &lt;xs:sequence>
-        &lt;xs:element name="Expires" type="tns:ExpirationType" 
+        &lt;xs:element name="GrantedExpires" type="tns:MiniExpirationType" 
                     minOccurs="0" />
         &lt;xs:element name="EnumerationContext" 
                     type="tns:EnumerationContextType" />
@@ -2827,7 +2907,7 @@
   &lt;xs:element name="RenewResponse">
     &lt;xs:complexType>
       &lt;xs:sequence>
-        &lt;xs:element name="Expires" type="tns:ExpirationType" 
+        &lt;xs:element name="GrnatedExpires" type="tns:MiniExpirationType" 
                     minOccurs="0" />
         &lt;xs:element name="EnumerationContext" 
                     type="tns:EnumerationContextType" 
@@ -2856,7 +2936,7 @@
   &lt;xs:element name="GetStatusResponse">
     &lt;xs:complexType>
       &lt;xs:sequence>
-        &lt;xs:element name="Expires" type="tns:ExpirationType"
+        &lt;xs:element name="GrantedExpires" type="tns:MiniExpirationType"
                     minOccurs="0" />
         &lt;xs:any namespace="##other" processContents="lax" 
                 minOccurs="0" maxOccurs="unbounded" />
@@ -3373,6 +3453,13 @@
        <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>
     </tbody>
    </table>
   </div1>

Received on Tuesday, 6 October 2009 16:40:25 UTC