- From: Doug Davis via cvs-syncmail <cvsmail@w3.org>
- Date: Thu, 13 May 2010 20:10:20 +0000
- To: public-ws-resource-access-notifications@w3.org
Update of /w3ccvs/WWW/2002/ws/ra/edcopies In directory hutz:/tmp/cvs-serv21160 Modified Files: wsenum.html wsenum.xml wseventing.html wseventing.xml Log Message: 9702 Index: wseventing.xml =================================================================== RCS file: /w3ccvs/WWW/2002/ws/ra/edcopies/wseventing.xml,v retrieving revision 1.191 retrieving revision 1.192 diff -u -d -r1.191 -r1.192 --- wseventing.xml 12 May 2010 22:24:11 -0000 1.191 +++ wseventing.xml 13 May 2010 20:10:18 -0000 1.192 @@ -379,7 +379,7 @@ (24) </ow:MyId> (25) </wsa:ReferenceParameters> (26) </wse:SubscriptionManager> -(27) <wse:GrantedExpires>P0Y0M0DT30H0M0S</wse:GrantedExpires> +(27) <wse:GrantedExpires>PT0S</wse:GrantedExpires> (28) </wse:SubscribeResponse> (29) </s12:Body> (30) </s12:Envelope></eg> @@ -391,8 +391,7 @@ lines (10-12) indicate that it is a response to the request in <specref ref="Table1"/>. Lines (17-26) provide the subscription manager EPR for this subscription, and line (27) - indicates the subscription will expire in 30 hours unless - renewed. + indicates the subscription will not expire. </p> </div2> </div1> @@ -882,9 +881,7 @@ <wse:EndTo> <emph>endpoint-reference</emph> </wse:EndTo> ? <wse:Delivery ...> <emph>xs:any</emph>* </wse:Delivery> <wse:Format Name="<emph>xs:anyURI</emph>"? > <emph>xs:any</emph>* </wse:Format> ? - <wse:Expires min="(<emph>xs:dateTime</emph> | <emph>xs:duration</emph>)"? - max="(<emph>xs:dateTime</emph> | <emph>xs:duration</emph>)"? - exact="<emph>xs:boolean</emph>"? ...> + <wse:Expires BestEffort="<emph>xs:boolean</emph>"? ...> (<emph>xs:dateTime</emph> | <emph>xs:duration</emph>) </wse:Expires> ? <wse:Filter Dialect="<emph>xs:anyURI</emph>"? ...> <emph>xs:any</emph>* </wse:Filter> ? @@ -993,41 +990,31 @@ <def> <p> 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 wse:InvalidExpirationTime fault. + expiration time of the requested subscription. If this element + is not present, the implied default expiration time is indefinite. + A value of PT0S indicates indefinite. </p> <p> - If the wse: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 - wse:ExpirationTimeExceeded fault. + If the event source does not support the wse:Expires element + being present in a Subscribe request message then a + wse:ExpiresNotSupported fault MUST be generated. </p> <p> - The value of the wse:Expires element as well as those of its @min and - @max attributes MAY be either a duration (xs:duration) or a specific - time (xs:dateTime). Event sources and subscription managers MUST - accept duration values and MAY accept specific time values. Upon - receiving a request that contains specific time values, an event - source or subscription manager that does not support such value - types MUST fail the request and generate a - wse:UnsupportedExpirationType fault. + If the wse:Expires element is present and the event source is not + able to grant an expiration time that matches the specified value + then it MUST generate a wse:UnsupporedExpirationValue fault. </p> <p> - The value types in a wse:Expires element MAY differ among the - element and its attributes. For example, the element value can be a - duration while the @max attribute can be a specific time. Regardless - of the value types, it MUST be true that wse:Expires/@min <= - wse:Expires <= wse:Expires/@max as interpreted by the event source - or subscription manager at the time the wse:Subscribe request is - processed. If this is not true, the request MUST fail and the - receiver MUST generate a wse:InvalidExpirationTime fault. + The value of the wse:Expires element MAY be either a duration + (xs:duration) or a specific time (xs:dateTime). Event sources + and subscription managers MUST accept duration values and MAY + accept specific time values. Upon receiving a request that + contains specific time values, an event source or subscription + manager that does not support such value types MUST fail the + request and generate a wse:UnsupportedExpirationType fault. </p> <p> @@ -1040,33 +1027,15 @@ </gitem> <gitem> - <label> <kw>[Body]</kw>/wse:Subscribe/wse:Expires@min </label> - <def> - <p> - 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>/wse:Subscribe/wse:Expires@max </label> - <def> - <p> - 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>/wse:Subscribe/wse:Expires@exact </label> + <label> <kw>[Body]</kw>/wse:Subscribe/wse:Expires@BestEffort </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 wse:Expires element. + This OPTIONAL attribute, when present with a value of 'true', + indicates that the event 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 event source MUST grant the requested expiration time + or fault the subscription request as defined above. </p> </def> </gitem> @@ -1294,7 +1263,8 @@ <p> If this element does not appear, then the subscription will not expire. That is, the subscription has an indefinite - lifetime. + lifetime. Likewise, a value of PT0S indicates that the + subscription will not expire. </p> </def> </gitem> @@ -1422,7 +1392,7 @@ (28) </x:SubID> (29) </wsa:ReferenceParameters> (30) </wse:SubscriptionManager> -(31) <wse:Expires>2004-07-01T00:00:00.000-00:00</wse:Expires> +(31) <wse:Expires>2004-06-26T21:07:00.000-08:00</wse:Expires> (32) </wse:SubscribeResponse> (33) </s12:Body> (34) </s12:Envelope></eg> @@ -1441,10 +1411,8 @@ parameter to distinguish this subscription EPR from other subscription EPRs. Finally, line (31) indicates the - subscription will expire on 1 July 2004 unless renewed; there is - no requirement that this time be necessarily longer or shorter - than the requested expiration (line (41) of - <specref ref="Table4"/>). + subscription will expire on 26 June 2004 at 9:07 PM Pacific time + unless renewed. </p> </div2> @@ -1465,9 +1433,7 @@ <kw>[Body]</kw> <wse:Renew ...> - <wse:Expires min="(<emph>xs:dateTime</emph> | <emph>xs:duration</emph>)"? - max="(<emph>xs:dateTime</emph> | <emph>xs:duration</emph>)"? - exact="<emph>xs:boolean</emph>"? ...> + <wse:Expires BestEffort="<emph>xs:boolean</emph>"? ...> (<emph>xs:dateTime</emph> | <emph>xs:duration</emph>) </wse:Expires> ? <emph>xs:any</emph>* @@ -1585,7 +1551,7 @@ (14) </s12:Header> (15) <s12:Body> (16) <wse:RenewResponse> -(17) <wse:Expires>2004-06-26T12:00:00.000-00:00</wse:Expires> +(17) <wse:Expires>2004-06-26T21:07:00.000-08:00</wse:Expires> (18) </wse:RenewResponse> (19) </s12:Body> (20) </s12:Envelope></eg> @@ -2181,12 +2147,12 @@ </div2> - <div2 id="InvalidExpirationTime"> - <head>InvalidExpirationTime</head> + <div2 id="ExpiresNotSupported"> + <head>ExpiresNotSupported</head> <p> This fault MUST be generated when a request specifies an - expiration that is malformed. + expiration but the event source does not support Expires. </p> <table border="1"> @@ -2198,12 +2164,12 @@ <tr> <td><kw>[Subcode]</kw></td> - <td>wse:InvalidExpirationTime</td> + <td>wse:ExpiresNotSupported</td> </tr> <tr> <td><kw>[Reason]</kw></td> - <td>The expiration time requested is invalid.</td> + <td>The specification of an Expires element is not allowed.</td> </tr> <tr> @@ -2214,8 +2180,8 @@ </table> </div2> - <div2 id="ExpirationTimeExceeded"> - <head>ExpirationTimeExceeded</head> + <div2 id="UnsupporedExpirationValue"> + <head>UnsupporedExpirationValue</head> <p> This fault MUST be generated when a request specifies an @@ -2231,7 +2197,7 @@ <tr> <td><kw>[Subcode]</kw></td> - <td>wse:ExpirationTimeExceeded</td> + <td>wse:UnsupporedExpirationValue</td> </tr> <tr> @@ -2734,15 +2700,16 @@ <example> <eg><wse:EventSource ...> - <wse:DateTimeSupported .../> ? <wse:FilterDialect URI="<emph>xs:anyURI</emph>" ...> <emph>xs:any</emph>* </wse:FilterDialect> * - <wse:MaxExpires ...> <emph>xs:duration</emph> </wse:MaxExpires> ? <wse:FormatName URI="<emph>xs:anyURI</emph>" ...> <!-- Notification WSDL can go here - see <specref show="title" ref="Advertising"/> --> <emph>xs:any</emph>* </wse:FormatName> * + <wse:ExpiresSupported .../> ? + <wse:DateTimeSupported .../> ? + <wse:MaxExpires ...> <emph>xs:duration</emph> </wse:MaxExpires> ? <wse:EndToSupported .../> ? <wse:NotificationPolicy ...> <emph>xs:any</emph> @@ -2772,16 +2739,6 @@ </gitem> <gitem> - <label> /wse:EventSource/wse: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> /wse:EventSource/wse:FilterDialect </label> <def> <p> @@ -2804,19 +2761,6 @@ </gitem> <gitem> - <label> /wse:EventSource/wse:MaxExpires </label> - <def> - <p> - When present, this OPTIONAL parameter indicates the maximum - subscription expiration time that this endpoint will support. - The implied default is indefinite (no expiry). - Note: a value of "PT0S" indicates that this endpoint supports - subscriptions with an infinite lifetime. - </p> - </def> - </gitem> - - <gitem> <label> /wse:EventSource/wse:FormatName </label> <def> <p> @@ -2840,6 +2784,39 @@ </gitem> <gitem> + <label> /wse:EventSource/wse:ExpiresSupported </label> + <def> + <p> + When present, this OPTIONAL parameter indicates support for + Expires element on the Subscribe operations. + </p> + </def> + </gitem> + + <gitem> + <label> /wse:EventSource/wse: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> /wse:EventSource/wse:MaxExpires </label> + <def> + <p> + When present, this OPTIONAL parameter indicates the maximum + subscription expiration time that this endpoint will support. + The implied default value is indefinite. + Note: a value of "PT0S" indicates that this endpoint supports + subscriptions with an infinite lifetime. + </p> + </def> + </gitem> + + <gitem> <label> /wse:EventSource/wse:EndToSupported </label> <def> <p> @@ -2940,6 +2917,7 @@ <example> <eg><wse:SubscriptionManager ...> + <wse:ExpiresTimeSupported .../> ? <wse:DateTimeSupported .../> ? <wse:MaxExpires ...> <emph>xs:duration</emph> </wse:MaxExpires> ? <emph>xs:any</emph>* @@ -2967,6 +2945,16 @@ </gitem> <gitem> + <label> /wse:SubscriptionManager/wse:ExpiresTimeSupported </label> + <def> + <p> + When present, this OPTIONAL parameter indicates support for + Expires element on the Renew operation. + </p> + </def> + </gitem> + + <gitem> <label> /wse:SubscriptionManager/wse:DateTimeSupported </label> <def> <p> @@ -2982,7 +2970,7 @@ <p> When present, this OPTIONAL parameter indicates the maximum subscriptions expiration time that this endpoint will support. - The implied default is indefinite (no expiry). + The implied default is indefinite. Note: a value of "PT0S" indicates that this endpoint supports subscriptions with an infinite lifetime. </p> @@ -3631,9 +3619,7 @@ <xs:complexType name='ExpirationType'> <xs:simpleContent> <xs:extension base='tns:MiniExpirationType'> - <xs:attribute name='min' type='tns:DurationDateTime' use='optional'/> - <xs:attribute name='max' type='tns:DurationDateTime' use='optional'/> - <xs:attribute name='exact' type='xs:boolean' use='optional'/> + <xs:attribute name='BestEffort' type='xs:boolean' use='optional'/> <xs:anyAttribute namespace='##other' processContents='lax'/> </xs:extension> </xs:simpleContent> @@ -3866,7 +3852,6 @@ <xs:element name='EventSource'> <xs:complexType> <xs:sequence> - <xs:element name='DateTimeSupported' type='tns:Empty' minOccurs='0'/> <xs:element name='FilterDialect' minOccurs='0' maxOccurs='unbounded'> <xs:complexType> <xs:sequence> @@ -3877,7 +3862,6 @@ <xs:anyAttribute namespace="##other" processContents='lax'/> </xs:complexType> </xs:element> - <xs:element name='MaxExpires' type='tns:Duration' minOccurs='0'/> <xs:element name='FormatName' minOccurs='0' maxOccurs='unbounded'> <xs:complexType> <xs:sequence> @@ -3888,6 +3872,9 @@ <xs:anyAttribute namespace="##other" processContents='lax'/> </xs:complexType> </xs:element> + <xs:element name='ExpiresSupported' type='tns:Empty' minOccurs='0'/> + <xs:element name='DateTimeSupported' type='tns:Empty' minOccurs='0'/> + <xs:element name='MaxExpires' type='tns:Duration' minOccurs='0'/> <xs:element name='EndToSupported' type='tns:Empty' minOccurs='0'/> <xs:element name='NotificationPolicy' type='tns:NotificationPolicy' minOccurs='0'/> @@ -3901,6 +3888,7 @@ <xs:element name='SubscriptionManager'> <xs:complexType> <xs:sequence> + <xs:element name='ExpiresSupported' type='tns:Empty' minOccurs='0'/> <xs:element name='DateTimeSupported' type='tns:Empty' minOccurs='0'/> <xs:element name='MaxExpires' type='tns:Duration' minOccurs='0'/> <xs:any namespace='##other' processContents='lax' minOccurs='0' @@ -5113,6 +5101,13 @@ <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=9701">9701</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> </tbody> </table> </div1> Index: wseventing.html =================================================================== RCS file: /w3ccvs/WWW/2002/ws/ra/edcopies/wseventing.html,v retrieving revision 1.198 retrieving revision 1.199 diff -u -d -r1.198 -r1.199 --- wseventing.html 12 May 2010 22:24:11 -0000 1.198 +++ wseventing.html 13 May 2010 20:10:18 -0000 1.199 @@ -61,8 +61,8 @@ 5 <a href="#Notifications">Notifications</a><br/> 6 <a href="#Faults">Faults</a><br/> 6.1 <a href="#FaultDetailRetryElement">Fault Detail RetryAfter Element</a><br/> - 6.2 <a href="#InvalidExpirationTime">InvalidExpirationTime</a><br/> - 6.3 <a href="#ExpirationTimeExceeded">ExpirationTimeExceeded</a><br/> + 6.2 <a href="#ExpiresNotSupported">ExpiresNotSupported</a><br/> + 6.3 <a href="#UnsupporedExpirationValue">UnsupporedExpirationValue</a><br/> 6.4 <a href="#UnsupportedExpirationType">UnsupportedExpirationType</a><br/> 6.5 <a href="#FilteringNotSupported">FilteringNotSupported</a><br/> 6.6 <a href="#FilteringRequestedUnavailable">FilteringRequestedUnavailable</a><br/> @@ -73,26 +73,26 @@ 6.11 <a href="#EndToNotSupported">EndToNotSupported</a><br/> 6.12 <a href="#NoDeliveryMechanismEstablished">NoDeliveryMechanismEstablished</a><br/> 7 <a href="#Security">Security Considerations</a><br/> - 7.1 <a href="#iddiv2_1_2169">Notifications</a><br/> - 7.2 <a href="#iddiv2_1_2178">Subscriptions</a><br/> - 7.3 <a href="#iddiv2_1_2183">Endpoint Verification</a><br/> + 7.1 <a href="#iddiv2_1_2126">Notifications</a><br/> + 7.2 <a href="#iddiv2_1_2135">Subscriptions</a><br/> + 7.3 <a href="#iddiv2_1_2140">Endpoint Verification</a><br/> 8 <a href="#ImplConsideration">Implementation Considerations</a><br/> 9 <a href="#metadata">WS-Eventing Metadata</a><br/> - 9.1 <a href="#iddiv2_1_2209">EventSource Assertion</a><br/> - 9.2 <a href="#iddiv2_1_2330">SubscriptionManager Assertion</a><br/> + 9.1 <a href="#iddiv2_1_2166">EventSource Assertion</a><br/> + 9.2 <a href="#iddiv2_1_2293">SubscriptionManager Assertion</a><br/> 10 <a href="#acks">Acknowledgements</a><br/> 11 <a href="#refs">References</a><br/> - 11.1 <a href="#iddiv2_1_2390">Normative References</a><br/> - 11.2 <a href="#iddiv2_1_2537">Informative References</a><br/> + 11.1 <a href="#iddiv2_1_2359">Normative References</a><br/> + 11.2 <a href="#iddiv2_1_2506">Informative References</a><br/> </p> <h3><a name="appendices" id="appendices"/>Appendices</h3><p class="toc">A <a href="#Advertising">Advertising Event Information</a><br/> A.1 <a href="#ETypes">Event Types & Event Descriptions</a><br/> - A.1.1 <a href="#iddiv3_1_2739">Retrieving Event Descriptions</a><br/> - A.1.2 <a href="#iddiv3_1_2776">Bindings for Event Descriptions</a><br/> - A.1.2.1 <a href="#iddiv4_1_2781">Binding for Unwrapped Notifications</a><br/> - A.1.2.2 <a href="#iddiv4_1_2802">Binding for Wrapped Notifications</a><br/> + A.1.1 <a href="#iddiv3_1_2708">Retrieving Event Descriptions</a><br/> + A.1.2 <a href="#iddiv3_1_2745">Bindings for Event Descriptions</a><br/> + A.1.2.1 <a href="#iddiv4_1_2750">Binding for Unwrapped Notifications</a><br/> + A.1.2.2 <a href="#iddiv4_1_2771">Binding for Wrapped Notifications</a><br/> A.2 <a href="#NWSDL">Notification WSDLs</a><br/> - A.2.1 <a href="#iddiv3_1_2829">Retrieving Notification WSDLs</a><br/> + A.2.1 <a href="#iddiv3_1_2798">Retrieving Notification WSDLs</a><br/> B <a href="#Schema">XML Schema</a><br/> C <a href="#WSDL">WSDL</a><br/> D <a href="#wrappedWSDL">WSDL for Standard Wrapped Delivery</a><br/> @@ -293,7 +293,7 @@ (24) </ow:MyId> (25) </wsa:ReferenceParameters> (26) </wse:SubscriptionManager> -(27) <wse:GrantedExpires>P0Y0M0DT30H0M0S</wse:GrantedExpires> +(27) <wse:GrantedExpires>PT0S</wse:GrantedExpires> (28) </wse:SubscribeResponse> (29) </s12:Body> (30) </s12:Envelope></pre></div></div><p> @@ -302,8 +302,7 @@ lines (10-12) indicate that it is a response to the request in <a href="#Table1">Example 2-1</a>. Lines (17-26) provide the subscription manager EPR for this subscription, and line (27) - indicates the subscription will expire in 30 hours unless - renewed. + indicates the subscription will not expire. </p></div></div><div class="div1"> <h2><a name="notterms" id="notterms"/>3 Notations and Terminology</h2><p> This section specifies the notations, namespaces, and @@ -523,9 +522,7 @@ <wse:EndTo> <em>endpoint-reference</em> </wse:EndTo> ? <wse:Delivery ...> <em>xs:any</em>* </wse:Delivery> <wse:Format Name="<em>xs:anyURI</em>"? > <em>xs:any</em>* </wse:Format> ? - <wse:Expires min="(<em>xs:dateTime</em> | <em>xs:duration</em>)"? - max="(<em>xs:dateTime</em> | <em>xs:duration</em>)"? - exact="<em>xs:boolean</em>"? ...> + <wse:Expires BestEffort="<em>xs:boolean</em>"? ...> (<em>xs:dateTime</em> | <em>xs:duration</em>) </wse:Expires> ? <wse:Filter Dialect="<em>xs:anyURI</em>"? ...> <em>xs:any</em>* </wse:Filter> ? @@ -579,51 +576,37 @@ Indicate the wrapped event delivery format. </p></dd><dt class="label"><b>[Body]</b>/wse:Subscribe/wse:Expires </dt><dd><p> 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 wse:InvalidExpirationTime fault. + expiration time of the requested subscription. If this element + is not present, the implied default expiration time is indefinite. + A value of PT0S indicates indefinite. </p><p> - If the wse: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 - wse:ExpirationTimeExceeded fault. + If the event source does not support the wse:Expires element + being present in a Subscribe request message then a + wse:ExpiresNotSupported fault MUST be generated. </p><p> - The value of the wse:Expires element as well as those of its @min and - @max attributes MAY be either a duration (xs:duration) or a specific - time (xs:dateTime). Event sources and subscription managers MUST - accept duration values and MAY accept specific time values. Upon - receiving a request that contains specific time values, an event - source or subscription manager that does not support such value - types MUST fail the request and generate a - wse:UnsupportedExpirationType fault. + If the wse:Expires element is present and the event source is not + able to grant an expiration time that matches the specified value + then it MUST generate a wse:UnsupporedExpirationValue fault. </p><p> - The value types in a wse:Expires element MAY differ among the - element and its attributes. For example, the element value can be a - duration while the @max attribute can be a specific time. Regardless - of the value types, it MUST be true that wse:Expires/@min <= - wse:Expires <= wse:Expires/@max as interpreted by the event source - or subscription manager at the time the wse:Subscribe request is - processed. If this is not true, the request MUST fail and the - receiver MUST generate a wse:InvalidExpirationTime fault. + The value of the wse:Expires element MAY be either a duration + (xs:duration) or a specific time (xs:dateTime). Event sources + and subscription managers MUST accept duration values and MAY + accept specific time values. Upon receiving a request that + contains specific time values, an event source or subscription + manager that does not support such value types MUST fail the + request and generate a wse:UnsupportedExpirationType fault. </p><p> If a subscriber 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></dd><dt class="label"><b>[Body]</b>/wse:Subscribe/wse: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>/wse:Subscribe/wse: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>/wse:Subscribe/wse: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 wse:Expires element. + </p></dd><dt class="label"><b>[Body]</b>/wse:Subscribe/wse:Expires@BestEffort </dt><dd><p> + This OPTIONAL attribute, when present with a value of 'true', + indicates that the event 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 event source MUST grant the requested expiration time + or fault the subscription request as defined above. </p></dd><dt class="label"><b>[Body]</b>/wse:Subscribe/wse:Filter </dt><dd><p> A Boolean expression in some dialect, either as a string or as an XML fragment (see @@ -752,7 +735,8 @@ </p><p> If this element does not appear, then the subscription will not expire. That is, the subscription has an indefinite - lifetime. + lifetime. Likewise, a value of PT0S indicates that the + subscription will not expire. </p></dd></dl><p> Other components of the outline above are not further constrained by this specification. @@ -854,7 +838,7 @@ (28) </x:SubID> (29) </wsa:ReferenceParameters> (30) </wse:SubscriptionManager> -(31) <wse:Expires>2004-07-01T00:00:00.000-00:00</wse:Expires> +(31) <wse:Expires>2004-06-26T21:07:00.000-08:00</wse:Expires> (32) </wse:SubscribeResponse> (33) </s12:Body> (34) </s12:Envelope></pre></div></div><p> @@ -870,10 +854,8 @@ parameter to distinguish this subscription EPR from other subscription EPRs. Finally, line (31) indicates the - subscription will expire on 1 July 2004 unless renewed; there is - no requirement that this time be necessarily longer or shorter - than the requested expiration (line (41) of - <a href="#Table4">Example 4-1</a>). + subscription will expire on 26 June 2004 at 9:07 PM Pacific time + unless renewed. </p></div><div class="div2"> <h3><a name="Renew" id="Renew"/>4.2 Renew</h3><p> To update, or renew, the expiration for a subscription, a @@ -886,9 +868,7 @@ <b>[Body]</b> <wse:Renew ...> - <wse:Expires min="(<em>xs:dateTime</em> | <em>xs:duration</em>)"? - max="(<em>xs:dateTime</em> | <em>xs:duration</em>)"? - exact="<em>xs:boolean</em>"? ...> + <wse:Expires BestEffort="<em>xs:boolean</em>"? ...> (<em>xs:dateTime</em> | <em>xs:duration</em>) </wse:Expires> ? <em>xs:any</em>* @@ -978,7 +958,7 @@ (14) </s12:Header> (15) <s12:Body> (16) <wse:RenewResponse> -(17) <wse:Expires>2004-06-26T12:00:00.000-00:00</wse:Expires> +(17) <wse:Expires>2004-06-26T21:07:00.000-08:00</wse:Expires> (18) </wse:RenewResponse> (19) </s12:Body> (20) </s12:Envelope></pre></div></div><p> @@ -1361,14 +1341,14 @@ message. Omission of this element indicates that a retry is never likely to succeed. </p></dd></dl></div><div class="div2"> -<h3><a name="InvalidExpirationTime" id="InvalidExpirationTime"/>6.2 InvalidExpirationTime</h3><p> +<h3><a name="ExpiresNotSupported" id="ExpiresNotSupported"/>6.2 ExpiresNotSupported</h3><p> This fault MUST be 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>wse:InvalidExpirationTime</td></tr><tr><td><b>[Reason]</b></td><td>The expiration time requested is invalid.</td></tr><tr><td><b>[Detail]</b></td><td><em>none</em></td></tr></tbody></table></div><div class="div2"> -<h3><a name="ExpirationTimeExceeded" id="ExpirationTimeExceeded"/>6.3 ExpirationTimeExceeded</h3><p> + expiration but the event source does not support Expires. + </p><table border="1"><tbody><tr><td><b>[Code]</b></td><td>s12:Sender</td></tr><tr><td><b>[Subcode]</b></td><td>wse:ExpiresNotSupported</td></tr><tr><td><b>[Reason]</b></td><td>The specification of an Expires element is not allowed.</td></tr><tr><td><b>[Detail]</b></td><td><em>none</em></td></tr></tbody></table></div><div class="div2"> +<h3><a name="UnsupporedExpirationValue" id="UnsupporedExpirationValue"/>6.3 UnsupporedExpirationValue</h3><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><b>[Code]</b></td><td>s12:Sender</td></tr><tr><td><b>[Subcode]</b></td><td>wse: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><em>none</em></td></tr></tbody></table></div><div class="div2"> + </p><table border="1"><tbody><tr><td><b>[Code]</b></td><td>s12:Sender</td></tr><tr><td><b>[Subcode]</b></td><td>wse:UnsupporedExpirationValue</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><em>none</em></td></tr></tbody></table></div><div class="div2"> <h3><a name="UnsupportedExpirationType" id="UnsupportedExpirationType"/>6.4 UnsupportedExpirationType</h3><p> This fault MUST be generated when a Subscribe request specifies an expiration time and the event source is only capable of accepting @@ -1437,7 +1417,7 @@ urged to perform a security analysis to determine their particular threat profile and the appropriate responses to those threats. </p><div class="div2"> -<h3><a name="iddiv2_1_2169" id="iddiv2_1_2169"/>7.1 Notifications</h3><p> +<h3><a name="iddiv2_1_2126" id="iddiv2_1_2126"/>7.1 Notifications</h3><p> The information contained in Notifications might be sensitive. In such cases it is advisable to authenticate and authorize subscribers as part of the processing of the Subscribe request. Note that an @@ -1458,7 +1438,7 @@ and trace the origin of such attempts. Additionally, the authorization of Subscribers reduces the pool of potential attackers. </p></div><div class="div2"> -<h3><a name="iddiv2_1_2178" id="iddiv2_1_2178"/>7.2 Subscriptions</h3><p> +<h3><a name="iddiv2_1_2135" id="iddiv2_1_2135"/>7.2 Subscriptions</h3><p> Once created, subscriptions ought to be treated as protected resources. Renew, GetStatus, and Unsubscribe requests ought to be authenticated and authorized (for example, the identity of the @@ -1473,7 +1453,7 @@ the identities of these entities are discovered and verified) are particular to individual deployments. </p></div><div class="div2"> -<h3><a name="iddiv2_1_2183" id="iddiv2_1_2183"/>7.3 Endpoint Verification</h3><p> +<h3><a name="iddiv2_1_2140" id="iddiv2_1_2140"/>7.3 Endpoint Verification</h3><p> Implementations that perform validity checks on the EPRs used in WS-Eventing (wse:NotifyTo, wse:EndTo) are advised that such checks can be misused to obtain information about a target network. For @@ -1524,7 +1504,7 @@ that indicate a particular security mechanism used to protect the WS-Eventing operations supported by this endpoint. </p><div class="div2"> -<h3><a name="iddiv2_1_2209" id="iddiv2_1_2209"/>9.1 EventSource Assertion</h3><p> +<h3><a name="iddiv2_1_2166" id="iddiv2_1_2166"/>9.1 EventSource Assertion</h3><p> Services indicate support for the WS-Eventing's definition of an event source through the use of the Web Services Policy - Framework <a href="#wspolicy">[WS-Policy]</a> and Web Services Policy - @@ -1533,15 +1513,16 @@ This specification defines a policy assertion (wse:EventSource). The normative outline of this assertion is: </p><div class="exampleOuter"><div class="exampleInner"><pre><wse:EventSource ...> - <wse:DateTimeSupported .../> ? <wse:FilterDialect URI="<em>xs:anyURI</em>" ...> <em>xs:any</em>* </wse:FilterDialect> * - <wse:MaxExpires ...> <em>xs:duration</em> </wse:MaxExpires> ? <wse:FormatName URI="<em>xs:anyURI</em>" ...> <!-- Notification WSDL can go here - see <a href="#Advertising"><b>Advertising Event Information</b></a> --> <em>xs:any</em>* </wse:FormatName> * + <wse:ExpiresSupported .../> ? + <wse:DateTimeSupported .../> ? + <wse:MaxExpires ...> <em>xs:duration</em> </wse:MaxExpires> ? <wse:EndToSupported .../> ? <wse:NotificationPolicy ...> <em>xs:any</em> @@ -1556,9 +1537,6 @@ policy alternative, it indicates that the subject is an event source and the WS-Eventing protocol MUST be used when communicating with this endpoint. - </p></dd><dt class="label"> /wse:EventSource/wse:DateTimeSupported </dt><dd><p> - When present, this OPTIONAL parameter indicates support for - expiration time expressed as specific time (rather than duration). </p></dd><dt class="label"> /wse:EventSource/wse:FilterDialect </dt><dd><p> When present, this OPTIONAL parameter indicates support for the specified filter dialect IRI. @@ -1567,12 +1545,6 @@ specific metadata to be included within the policy assertion. Any metadata that appears is scoped to the use of the specified FilterDialect URI. - </p></dd><dt class="label"> /wse:EventSource/wse:MaxExpires </dt><dd><p> - When present, this OPTIONAL parameter indicates the maximum - subscription expiration time that this endpoint will support. - The implied default is indefinite (no expiry). - Note: a value of "PT0S" indicates that this endpoint supports - subscriptions with an infinite lifetime. </p></dd><dt class="label"> /wse:EventSource/wse:FormatName </dt><dd><p> When present, this OPTIONAL parameter indicates support for the specified event delivery format name URI. @@ -1582,6 +1554,18 @@ that appears is scoped to the use of the specified FormatName URI. If the Event Source advertises Notification WSDL then it MUST appear as a child of the FormatName element. + </p></dd><dt class="label"> /wse:EventSource/wse:ExpiresSupported </dt><dd><p> + When present, this OPTIONAL parameter indicates support for + Expires element on the Subscribe operations. + </p></dd><dt class="label"> /wse:EventSource/wse:DateTimeSupported </dt><dd><p> + When present, this OPTIONAL parameter indicates support for + expiration time expressed as specific time (rather than duration). + </p></dd><dt class="label"> /wse:EventSource/wse:MaxExpires </dt><dd><p> + When present, this OPTIONAL parameter indicates the maximum + subscription expiration time that this endpoint will support. + The implied default value is indefinite. + Note: a value of "PT0S" indicates that this endpoint supports + subscriptions with an infinite lifetime. </p></dd><dt class="label"> /wse:EventSource/wse:EndToSupported </dt><dd><p> When present, this OPTIONAL parameter indicates support for the /wse:Subscribe/wse:EndTo semantics. That is, when a subscription @@ -1634,7 +1618,7 @@ (10) - (12) contains the EventDescription data that describes the syntax of the events that this event source might send. </p></div><div class="div2"> -<h3><a name="iddiv2_1_2330" id="iddiv2_1_2330"/>9.2 SubscriptionManager Assertion</h3><p> +<h3><a name="iddiv2_1_2293" id="iddiv2_1_2293"/>9.2 SubscriptionManager Assertion</h3><p> Services indicate support for the WS-Eventing's definition of a subscription manager through the use of the Web Services @@ -1644,6 +1628,7 @@ This specification defines a policy assertion (wse:SubscriptionManager). The normative outline of this assertion is: </p><div class="exampleOuter"><div class="exampleInner"><pre><wse:SubscriptionManager ...> + <wse:ExpiresTimeSupported .../> ? <wse:DateTimeSupported .../> ? <wse:MaxExpires ...> <em>xs:duration</em> </wse:MaxExpires> ? <em>xs:any</em>* @@ -1656,13 +1641,16 @@ manager and the WS-Eventing protocol MUST be used when communicating with this endpoint. + </p></dd><dt class="label"> /wse:SubscriptionManager/wse:ExpiresTimeSupported </dt><dd><p> + When present, this OPTIONAL parameter indicates support for + Expires element on the Renew operation. </p></dd><dt class="label"> /wse:SubscriptionManager/wse:DateTimeSupported </dt><dd><p> When present, this OPTIONAL parameter indicates support for expiration time expressed as specific time (rather than duration). </p></dd><dt class="label"> /wse:SubscriptionManager/wse:MaxExpires </dt><dd><p> When present, this OPTIONAL parameter indicates the maximum subscriptions expiration time that this endpoint will support. - The implied default is indefinite (no expiry). + The implied default is indefinite. Note: a value of "PT0S" indicates that this endpoint supports subscriptions with an infinite lifetime. </p></dd><dt class="label"> /wse:SubscriptionManager/xs:any </dt><dd><p> @@ -1703,7 +1691,7 @@ Yves Lafon (W3C/ERCIM). </p></div><div class="div1"> <h2><a name="refs" id="refs"/>11 References</h2><div class="div2"> -<h3><a name="iddiv2_1_2390" id="iddiv2_1_2390"/>11.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_2359" id="iddiv2_1_2359"/>11.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. @@ -1760,7 +1748,7 @@ , E. Christensen, et al., Editors. World Wide Web Consortium (W3C), 15 March 2001 Available at <a href="http://www.w3.org/TR/2001/NOTE-wsdl-20010315">http://www.w3.org/TR/2001/NOTE-wsdl-20010315</a>.</dd></dl></div><div class="div2"> -<h3><a name="iddiv2_1_2537" id="iddiv2_1_2537"/>11.2 Informative References</h3><dl><dt class="label"><a name="WSMC" id="WSMC"/>WS-MakeConnection</dt><dd><a href="http://docs.oasis-open.org/ws-rx/wsmc/v1.1/wsmc.doc"><cite> +<h3><a name="iddiv2_1_2506" id="iddiv2_1_2506"/>11.2 Informative References</h3><dl><dt class="label"><a name="WSMC" id="WSMC"/>WS-MakeConnection</dt><dd><a href="http://docs.oasis-open.org/ws-rx/wsmc/v1.1/wsmc.doc"><cite> OASIS Standard, "Web Services Make Connection (WS-MakeConnection) 1.1" Web Services Make Connection (WS-MakeConnection) </cite></a> @@ -1864,7 +1852,7 @@ serve as a description of the Event Type used in <a href="#Table1">Example 2-1</a>. </p><div class="exampleOuter"> -<div class="exampleHeader"><a name="idexample_1_2729" id="idexample_1_2729"/>Example A-1: EventDescriptions</div><div class="exampleInner"><pre>(01) <wsevd:EventDescriptions +<div class="exampleHeader"><a name="idexample_1_2698" id="idexample_1_2698"/>Example A-1: EventDescriptions</div><div class="exampleInner"><pre>(01) <wsevd:EventDescriptions (02) targetNamespace="http://www.example.org/oceanwatch/notifications" (03) xmlns:wsevd="http://www.w3.org/2002/ws/ra/edcopies/ws-evt" (04) xmlns:ow="http://www.example.org/oceanwatch"> @@ -1884,7 +1872,7 @@ GED for this Event Type is defined on line (08) as being of type "{http://www.example.org/oceanwatch}:WindReportType". </p><div class="div3"> -<h4><a name="iddiv3_1_2739" id="iddiv3_1_2739"/>A.1.1 Retrieving Event Descriptions</h4><p> +<h4><a name="iddiv3_1_2708" id="iddiv3_1_2708"/>A.1.1 Retrieving Event Descriptions</h4><p> Although there are many ways in which an event source can make its EventDescriptions available, this specification RECOMMENDS the use of the mechanisms described in WS-MetadataExchange <a href="#MEX">[WS-MetadataExchange]</a>. @@ -1922,7 +1910,7 @@ representation is the Event Description metadata. The data can be retrieved via an HTTP GET to the specified URL. </p></div><div class="div3"> -<h4><a name="iddiv3_1_2776" id="iddiv3_1_2776"/>A.1.2 Bindings for Event Descriptions</h4><p> +<h4><a name="iddiv3_1_2745" id="iddiv3_1_2745"/>A.1.2 Bindings for Event Descriptions</h4><p> For any Notification Format it MUST be possible to determine how a given wsevd:eventType will appear on the wire as a notification in a subscription created with that format. The following sections define @@ -1934,7 +1922,7 @@ Format, implementations MAY provide a Notification WSDL (see below) that explicitly describes the notification operations. </p><div class="div4"> -<h5><a name="iddiv4_1_2781" id="iddiv4_1_2781"/>A.1.2.1 Binding for Unwrapped Notifications</h5><p> +<h5><a name="iddiv4_1_2750" id="iddiv4_1_2750"/>A.1.2.1 Binding for Unwrapped Notifications</h5><p> The information about an Event Type contained in the wsevd:eventType element binds to a Unwrapped Notification for that type as follows: </p><ul><li><p> @@ -1949,7 +1937,7 @@ event being transmitted. If the @element attribute is absent then the <b>[Body]</b> property has no children. </p></li></ul></div><div class="div4"> -<h5><a name="iddiv4_1_2802" id="iddiv4_1_2802"/>A.1.2.2 Binding for Wrapped Notifications</h5><p> +<h5><a name="iddiv4_1_2771" id="iddiv4_1_2771"/>A.1.2.2 Binding for Wrapped Notifications</h5><p> The information about an Event Type contained in the eventType element binds to a Wrapped Notification for that type as follows: </p><ul><li><p> @@ -1975,7 +1963,7 @@ successful Subscribe request that used a particular Format IRI. The following is an example of a Notification WSDL: </p><div class="exampleOuter"> -<div class="exampleHeader"><a name="idexample_1_2823" id="idexample_1_2823"/>Example A-4: Notification WSDL</div><div class="exampleInner"><pre>(01) <wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" +<div class="exampleHeader"><a name="idexample_1_2792" id="idexample_1_2792"/>Example A-4: Notification WSDL</div><div class="exampleInner"><pre>(01) <wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" (02) targetNamespace="http://www.example.org/oceanwatch/notifications" (03) xmlns:xs="http://www.w3.org/2001/XMLSchema" (04) xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" @@ -2010,7 +1998,7 @@ (33) </wsdl:operation> (34) </wsdl:binding> (35) </wsdl:definitions></pre></div></div><div class="div3"> -<h4><a name="iddiv3_1_2829" id="iddiv3_1_2829"/>A.2.1 Retrieving Notification WSDLs</h4><p> +<h4><a name="iddiv3_1_2798" id="iddiv3_1_2798"/>A.2.1 Retrieving Notification WSDLs</h4><p> Although there are many ways in which an event source can make Notification WSDLs available, this specification RECOMMENDS the use of the mechanisms described in WS-MetadataExchange <a href="#MEX">[WS-MetadataExchange]</a>. @@ -2080,9 +2068,7 @@ <xs:complexType name='ExpirationType'> <xs:simpleContent> <xs:extension base='tns:MiniExpirationType'> - <xs:attribute name='min' type='tns:DurationDateTime' use='optional'/> - <xs:attribute name='max' type='tns:DurationDateTime' use='optional'/> - <xs:attribute name='exact' type='xs:boolean' use='optional'/> + <xs:attribute name='BestEffort' type='xs:boolean' use='optional'/> <xs:anyAttribute namespace='##other' processContents='lax'/> </xs:extension> </xs:simpleContent> @@ -2315,7 +2301,6 @@ <xs:element name='EventSource'> <xs:complexType> <xs:sequence> - <xs:element name='DateTimeSupported' type='tns:Empty' minOccurs='0'/> <xs:element name='FilterDialect' minOccurs='0' maxOccurs='unbounded'> <xs:complexType> <xs:sequence> @@ -2326,7 +2311,6 @@ <xs:anyAttribute namespace="##other" processContents='lax'/> </xs:complexType> </xs:element> - <xs:element name='MaxExpires' type='tns:Duration' minOccurs='0'/> <xs:element name='FormatName' minOccurs='0' maxOccurs='unbounded'> <xs:complexType> <xs:sequence> @@ -2337,6 +2321,9 @@ <xs:anyAttribute namespace="##other" processContents='lax'/> </xs:complexType> </xs:element> + <xs:element name='ExpiresSupported' type='tns:Empty' minOccurs='0'/> + <xs:element name='DateTimeSupported' type='tns:Empty' minOccurs='0'/> + <xs:element name='MaxExpires' type='tns:Duration' minOccurs='0'/> <xs:element name='EndToSupported' type='tns:Empty' minOccurs='0'/> <xs:element name='NotificationPolicy' type='tns:NotificationPolicy' minOccurs='0'/> @@ -2350,6 +2337,7 @@ <xs:element name='SubscriptionManager'> <xs:complexType> <xs:sequence> + <xs:element name='ExpiresSupported' type='tns:Empty' minOccurs='0'/> <xs:element name='DateTimeSupported' type='tns:Empty' minOccurs='0'/> <xs:element name='MaxExpires' type='tns:Duration' minOccurs='0'/> <xs:any namespace='##other' processContents='lax' minOccurs='0' @@ -2708,4 +2696,5 @@ <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=9713">9713</a></td></tr><tr><td> 2010/05/12 </td><td> DD </td><td> Added resolution of issue <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=9675">9675</a></td></tr><tr><td> 2010/05/12 </td><td> DD </td><td> Added resolution of issue <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=9717">9717</a></td></tr><tr><td> 2010/05/12 </td><td> DD </td><td> Added resolution of issue - <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=9701">9701</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=9701">9701</a></td></tr><tr><td> 2010/05/13 </td><td> DD </td><td> Added resolution of issue + <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=9702">9702</a></td></tr></tbody></table></div></div></body></html> \ No newline at end of file Index: wsenum.html =================================================================== RCS file: /w3ccvs/WWW/2002/ws/ra/edcopies/wsenum.html,v retrieving revision 1.137 retrieving revision 1.138 diff -u -d -r1.137 -r1.138 --- wsenum.html 12 May 2010 22:16:30 -0000 1.137 +++ wsenum.html 13 May 2010 20:10:17 -0000 1.138 @@ -57,8 +57,8 @@ 4.5 <a href="#Release">Release</a><br/> 4.6 <a href="#EnumerationEnd">EnumerationEnd</a><br/> 5 <a href="#Faults">Faults</a><br/> - 5.1 <a href="#InvalidExpirationTime">InvalidExpirationTime</a><br/> - 5.2 <a href="#ExpirationTimeExceeded">ExpirationTimeExceeded</a><br/> + 5.1 <a href="#ExpiresNotSupported">ExpiresNotSupported</a><br/> + 5.2 <a href="#UnsupportedExpirationValue">UnsupportedExpirationValue</a><br/> 5.3 <a href="#UnsupportedExpirationTime">UnsupportedExpirationTime</a><br/> 5.4 <a href="#FilteringNotSupported">FilteringNotSupported</a><br/> 5.5 <a href="#FilterDialectRequestedUnavailable">FilterDialectRequestedUnavailable</a><br/> @@ -69,15 +69,15 @@ 5.10 <a href="#EndToNotSupported">EndToNotSupported</a><br/> 5.11 <a href="#EmptyFilter">EmptyFilter</a><br/> 6 <a href="#Security">Security Considerations</a><br/> - 6.1 <a href="#iddiv2_1_1976">Creating Enumeration Contexts</a><br/> - 6.2 <a href="#iddiv2_1_1981">Protecting Enumeration Contexts</a><br/> - 6.3 <a href="#iddiv2_1_1988">Endpoint Verification</a><br/> + 6.1 <a href="#iddiv2_1_1936">Creating Enumeration Contexts</a><br/> + 6.2 <a href="#iddiv2_1_1941">Protecting Enumeration Contexts</a><br/> + 6.3 <a href="#iddiv2_1_1948">Endpoint Verification</a><br/> 7 <a href="#metadata">WS-Enumeration Metadata</a><br/> - 7.1 <a href="#iddiv2_1_2008">Enumeration Assertion</a><br/> + 7.1 <a href="#iddiv2_1_1968">Enumeration Assertion</a><br/> 8 <a href="#acks">Acknowledgements</a><br/> 9 <a href="#refs">References</a><br/> - 9.1 <a href="#iddiv2_1_2113">Normative References</a><br/> - 9.2 <a href="#iddiv2_1_2312">Informative References</a><br/> + 9.1 <a href="#iddiv2_1_2091">Normative References</a><br/> + 9.2 <a href="#iddiv2_1_2290">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/> @@ -404,9 +404,7 @@ <b>[Body]</b> <wsen:Enumerate ...> <wsen:EndTo><em>endpoint-reference</em></wsen:EndTo> ? - <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>"? ...> + <wsen:Expires BestEffort="<em>xs:boolean</em>"? ...> (<em>xs:dateTime</em> | <em>xs:duration</em>) </wsen:Expires> ? <wsen:Filter Dialect="<em>xs:anyURI</em>"?> <em>xs:any</em> </wsen:Filter> ? @@ -425,57 +423,43 @@ 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 Subscribe message. + 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></dd><dt class="label"><b>[Body]</b>/wsen:Enumerate/wsen:Expires </dt><dd><p> This OPTIONAL element can be used by the consumer to indicate the - expiration time of the requested enumeration. The value of this - element indicates the desired expiration time for the enumeration. - 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 data source - MUST generate a wsen:InvalidExpirationTime fault. + expiration time of the requested enumeration. If this element + is not present, the implied default expiration time is indefinite. + A value of PT0S indicates indefinite. </p><p> - If the wsen:Expires element is present and the data 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. + If the data source does not support the wsen:Expires element + being present in an Enumerate request message then a + wsen:ExpiresNotSupported fault MUST be generated. </p><p> - The value of the wsen:Expires element as well as those of its @min and - @max attributes 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. + 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:UnsupporedExpirationValue fault. </p><p> - The value types in a wsen:Expires element MAY differ among the - element and its attributes. For example, the element value can be a - duration while the @max attribute can be a specific time. Regardless - of the value types, it MUST be true that wsen:Expires/@min <= - wsen:Expires <= wsen:Expires/@max as interpreted by the data source - at the time the wsen:Enumerate request is - processed. If this is not true, the request MUST fail and the - receiver MUST generate a wsen:InvalidExpirationTime fault. + 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 + Specific time values that lack a time zone MUST be interpreted in the local time zone of the receiver. - </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 consumer 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 consumer 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:Expires@BestEffort </dt><dd><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></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>) @@ -517,7 +501,7 @@ </p></dd><dt class="label"><b>[Body]</b>/wsen:Enumerate/wsen:Filter/@Dialect="<a href="http://www.w3.org/2002/ws/ra/edcopies/ws-enu/Dialects/XPath10"> http://www.w3.org/2002/ws/ra/edcopies/ws-enu/Dialects/XPath10 </a></dt><dd><p> - Value of <b>[Body]</b>/wsenu:Enumerate/wsen:Filter is + Value of <b>[Body]</b>/wsen:Enumerate/wsen:Filter is an XPath <a href="#XPath1">[XPath1.0]</a> predicate expression (PredicateExpr); the context of the expression is: @@ -607,7 +591,10 @@ </p><p> If this element does not appear, then the enumeration will not expire. That is, the enumeration has an - indefinite lifetime. It will terminate when the end of the + indefinite lifetime. + Likewise, a value of PT0S indicates that the enumeration will + not 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 @@ -640,7 +627,7 @@ (17) </s:Header> (18) <s:Body> (19) <wsen:Enumerate> -(20) <wsen:Expires min="PT10M"> PT10M </wsen:Expires> +(20) <wsen:Expires> PT10M </wsen:Expires> (21) </wsen:Enumerate> (22) </s:Body> (23) </s:Envelope></pre></div></div><p> @@ -648,9 +635,8 @@ is an Enumerate request and that the data source is expected to respond with an Enumerate response message. The wsen:Expires element on line (20) indicates that the consumer would like an - enumeration context that will be good for at least 10 minutes; that - is, it expects to complete its enumeration within a 10 minute - period. No wsen:Filter element is present, so the resultant + 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 elements. </p><p><a href="#enumRes">Example 4-2</a> lists a response to the request in @@ -672,7 +658,7 @@ (14) </s:Header> (15) <s:Body> (16) <wsen:EnumerateResponse> -(17) <wsen:Expires> PT15M </wsen:Expires> +(17) <wsen:Expires> PT10M </wsen:Expires> (18) <wsen:EnumerationContext> (19) 123 (20) </wsen:EnumerationContext> @@ -681,8 +667,8 @@ (23) </s:Envelope></pre></div></div><p> Lines (05-07) in <a href="#enumRes">Example 4-2</a> indicate this message is an Enumerate response message. Line (17) indicates that the data - source has actually created an enumeration context with a lifetime - of 15 minutes. Lines (18-20) are the XML representation of the + 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 Pull operation defined below. </p></div><div class="div2"> @@ -886,9 +872,7 @@ <b>[Body]</b> <wsen:Renew ...> <wsen:EnumerationContext ...>...</wsen:EnumerationContext> - <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>"? ...> + <wsen:Expires BestEffort="<em>xs:boolean</em>"? ...> (<em>xs:dateTime</em> | <em>xs:duration</em>) </wsen:Expires> ? <em>xs:any</em>* @@ -1157,16 +1141,16 @@ </s11:Fault> </s11:Body> </s11:Envelope></pre></div></div><div class="div2"> -<h3><a name="InvalidExpirationTime" id="InvalidExpirationTime"/>5.1 InvalidExpirationTime</h3><p> - This fault MUST be generated when a request specified 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. +<h3><a name="ExpiresNotSupported" id="ExpiresNotSupported"/>5.1 ExpiresNotSupported</h3><p> + This fault MUST be generated when a request specified an expiration + but the data source does not support Expires. + </p><table border="1"><tbody><tr><td><b>[Code]</b></td><td> s12:Sender </td></tr><tr><td><b>[Subcode]</b></td><td> wsen:ExpiresNotSupported </td></tr><tr><td><b>[Reason]</b></td><td> + The specification of an Expires element is not allowed. </td></tr><tr><td><b>[Detail]</b></td><td/></tr></tbody></table></div><div class="div2"> -<h3><a name="ExpirationTimeExceeded" id="ExpirationTimeExceeded"/>5.2 ExpirationTimeExceeded</h3><p> +<h3><a name="UnsupportedExpirationValue" id="UnsupportedExpirationValue"/>5.2 UnsupportedExpirationValue</h3><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><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> + </p><table border="1"><tbody><tr><td><b>[Code]</b></td><td> s12:Sender </td></tr><tr><td><b>[Subcode]</b></td><td> wsen:UnsupportedExpirationValue </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"/>5.3 UnsupportedExpirationTime</h3><p> @@ -1241,7 +1225,7 @@ a security analysis to determine their particular threat profile and the appropriate responses to those threats. </p><div class="div2"> -<h3><a name="iddiv2_1_1976" id="iddiv2_1_1976"/>6.1 Creating Enumeration Contexts</h3><p> +<h3><a name="iddiv2_1_1936" id="iddiv2_1_1936"/>6.1 Creating Enumeration Contexts</h3><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 @@ -1252,7 +1236,7 @@ the time the Enumerate request is processed or varies during the lifetime of the enumeration. </p></div><div class="div2"> -<h3><a name="iddiv2_1_1981" id="iddiv2_1_1981"/>6.2 Protecting Enumeration Contexts</h3><p> +<h3><a name="iddiv2_1_1941" id="iddiv2_1_1941"/>6.2 Protecting Enumeration Contexts</h3><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 @@ -1274,7 +1258,7 @@ Data Sources are advised to authenticate and authorize clients sending Pull requests. </p></div><div class="div2"> -<h3><a name="iddiv2_1_1988" id="iddiv2_1_1988"/>6.3 Endpoint Verification</h3><p> +<h3><a name="iddiv2_1_1948" id="iddiv2_1_1948"/>6.3 Endpoint Verification</h3><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 @@ -1316,67 +1300,78 @@ that 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_2008" id="iddiv2_1_2008"/>7.1 Enumeration Assertion</h3><p> +<h3><a name="iddiv2_1_1968" id="iddiv2_1_1968"/>7.1 Enumeration Assertion</h3><p> Services indicate support for the WS-Enumeration's definition of a data source through the use of the Web Services Policy - Framework <a href="#wspolicy">[WS-Policy]</a> and Web Services Policy - Attachment <a href="#wspolicyattach">[WS-Policy Attachment]</a> specifications. </p><p> - This specification defines a policy assertion (wsenu:DataSource). + This specification defines a policy assertion (wsen:DataSource). The normative outline of this assertion is: - </p><div class="exampleOuter"><div class="exampleInner"><pre><wsenu:DataSource ...> - <wsenu:FilterDialect URI="<em>xs:anyURI</em>" ...> + </p><div class="exampleOuter"><div class="exampleInner"><pre><wsen:DataSource ...> + <wsen:FilterDialect URI="<em>xs:anyURI</em>" ...> <em>xs:any</em>* - </wsenu:FilterDialect> * - <wsenu:MaxExpires ...> <em>xs:duration</em> </wsenu:MaxExpires> ? - <wsenu:MaxTime ...> <em>xs:duration</em> </wsenu:MaxTime> ? - <wsenu:MaxElements ...> <em>xs:long</em> </wsenu:MaxElements> ? - <wsenu:MaxCharacters ...> <em>xs:long</em> </wsenu:MaxCharacters> ? - <wsenu:EndToSupported .../> ? + </wsen:FilterDialect> * + <wsen:ExpiresSupported .../> ? + <wsen:DateTimeSupported .../> ? + <wsen:MaxExpires ...> <em>xs:duration</em> </wsen:MaxExpires> ? + <wsen:MaxTime ...> <em>xs:duration</em> </wsen:MaxTime> ? + <wsen:MaxElements ...> <em>xs:long</em> </wsen:MaxElements> ? + <wsen:MaxCharacters ...> <em>xs:long</em> </wsen:MaxCharacters> ? + <wsen:EndToSupported .../> ? <em>xs:any</em>* -</wsenu:DataSource></pre></div></div><p> +</wsen:DataSource></pre></div></div><p> The following describes additional, normative constraints on the outline listed above: - </p><dl><dt class="label"> /wsenu:DataSource </dt><dd><p> + </p><dl><dt class="label"> /wsen:DataSource </dt><dd><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></dd><dt class="label"> /wsenu:DataSource/wsenu:FilterDialect </dt><dd><p> + </p></dd><dt class="label"> /wsen:DataSource/wsen:FilterDialect </dt><dd><p> When present, this OPTIONAL parameter indicates support for the specified Filter Dialect IRI. - </p></dd><dt class="label"> /wsenu:DataSource/wsenu:FilterDialect/xs:any </dt><dd><p> + </p></dd><dt class="label"> /wsen:DataSource/wsen:FilterDialect/xs:any </dt><dd><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></dd><dt class="label"> /wsenu:DataSource/wsenu:MaxExpires </dt><dd><p> + </p></dd><dt class="label"> /wsen:DataSource/wsen:ExpiresSupported </dt><dd><p> + When present, this OPTIONAL parameter indicates support for + Expiration element on the Enumerate and Renew operations. + </p></dd><dt class="label"> /wsen:DataSource/wsen:ExpiresSupported </dt><dd><p> + When present, this OPTIONAL parameter indicates support for + Expires element on the Enumerate and Renew operations. + </p></dd><dt class="label"> /wsen:DataSource/wsen:DateTimeSupported </dt><dd><p> + When present, this OPTIONAL parameter indicates support for + expiration time expressed as specific time (rather than duration). + </p></dd><dt class="label"> /wsen:DataSource/wsen:MaxExpires </dt><dd><p> When present, this OPTIONAL parameter indicates the maximum lifetime of enumerations that this endpoint will support. - The implied default is indefinite (no expiry). + The implied default is indefinite. Note: a value of "PT0S" indicates that this endpoint supports enumerations with an infinite lifetime. - </p></dd><dt class="label"> /wsenu:DataSource/wsenu:MaxTime </dt><dd><p> + </p></dd><dt class="label"> /wsen:DataSource/wsen:MaxTime </dt><dd><p> When present, this OPTIONAL parameter indicates the maximum MaxTime value supported by this endpoint. - The implied default is indefinite (no expiry). + The implied default is indefinite. Note: a value of "PT0S" indicates that this endpoint supports any duration value. - </p></dd><dt class="label"> /wsenu:DataSource/wsenu:MaxElements </dt><dd><p> + </p></dd><dt class="label"> /wsen:DataSource/wsen:MaxElements </dt><dd><p> When present, this OPTIONAL parameter indicates the maximum MaxElements value supported by this endpoint. The value specified MUST be greater than zero. - </p></dd><dt class="label"> /wsenu:DataSource/wsenu:MaxCharacters </dt><dd><p> + </p></dd><dt class="label"> /wsen:DataSource/wsen:MaxCharacters </dt><dd><p> When present, this OPTIONAL parameter indicates the maximum MaxCharacters value supported by this endpoint. The value specified MUST be greater than zero. - </p></dd><dt class="label"> /wsenu:DataSource/wsenu:EndToSupported </dt><dd><p> + </p></dd><dt class="label"> /wsen:DataSource/wsen:EndToSupported </dt><dd><p> When present, this OPTIONAL parameter indicates support for the /wsen:Enumerate/wsen:EndTo semantics. That is, when an 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></dd><dt class="label"> /wsenu:DataSource/xs:any </dt><dd><p> + </p></dd><dt class="label"> /wsen:DataSource/xs:any </dt><dd><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 @@ -1416,7 +1411,7 @@ Yves Lafon (W3C/ERCIM). </p></div><div class="div1"> <h2><a name="refs" id="refs"/>9 References</h2><div class="div2"> -<h3><a name="iddiv2_1_2113" id="iddiv2_1_2113"/>9.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_2091" id="iddiv2_1_2091"/>9.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. @@ -1493,7 +1488,7 @@ , A. Berglund, et al., Editors. World Wide Web Consortium (W3C), 23 January 2007. Available at <a href="http://www.w3.org/TR/xpath20/">http://www.w3.org/TR/xpath20/</a>.</dd></dl></div><div class="div2"> -<h3><a name="iddiv2_1_2312" id="iddiv2_1_2312"/>9.2 Informative References</h3><dl><dt class="label"><a name="MEX" id="MEX"/>WS-MetadataExchange</dt><dd><a href="http://www.w3.org/TR/ws-metadata-exchange"><cite> +<h3><a name="iddiv2_1_2290" id="iddiv2_1_2290"/>9.2 Informative References</h3><dl><dt class="label"><a name="MEX" id="MEX"/>WS-MetadataExchange</dt><dd><a href="http://www.w3.org/TR/ws-metadata-exchange"><cite> W3C Working Group Draft, "Web Services Metadata Exchange (WS-MetadataExchange) 1.1" </cite></a> @@ -1578,9 +1573,7 @@ <xs:complexType name='ExpirationType'> <xs:simpleContent> <xs:extension base='tns:MiniExpirationType'> - <xs:attribute name='min' type='tns:DurationDateTime' use='optional'/> - <xs:attribute name='max' type='tns:DurationDateTime' use='optional'/> - <xs:attribute name='exact' type='xs:boolean' use='optional'/> + <xs:attribute name='BestEffort' type='xs:boolean' use='optional'/> <xs:anyAttribute namespace='##other' processContents='lax'/> </xs:extension> </xs:simpleContent> @@ -1833,6 +1826,8 @@ <xs:anyAttribute namespace="##other" processContents='lax'/> </xs:complexType> </xs:element> + <xs:element name='ExpiresSupported' type='tns:Empty' minOccurs='0'/> + <xs:element name='DateTimeSupported' type='tns:Empty' minOccurs='0'/> <xs:element name='MaxExpires' type='tns:Duration' minOccurs='0'/> <xs:element name='MaxTime' type='tns:Duration' minOccurs='0'/> <xs:element name='MaxElements' type='tns:Long' minOccurs='0'/> @@ -2123,4 +2118,5 @@ <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=9087">9087</a></td></tr><tr><td> 2010/05/11 </td><td> DD </td><td> Added resolution of issue <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=9568">9568</a></td></tr><tr><td> 2010/05/11 </td><td> DD </td><td> Added resolution of issue <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=9699">9699</a></td></tr><tr><td> 2010/05/12 </td><td> DD </td><td> Added resolution of issue - <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=9717">9717</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=9717">9717</a></td></tr><tr><td> 2010/05/13 </td><td> DD </td><td> Added resolution of issue + <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=9702">9702</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.128 retrieving revision 1.129 diff -u -d -r1.128 -r1.129 --- wsenum.xml 12 May 2010 22:16:30 -0000 1.128 +++ wsenum.xml 13 May 2010 20:10:18 -0000 1.129 @@ -681,9 +681,7 @@ <kw>[Body]</kw> <wsen:Enumerate ...> <wsen:EndTo><emph>endpoint-reference</emph></wsen:EndTo> ? - <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>"? ...> + <wsen:Expires BestEffort="<emph>xs:boolean</emph>"? ...> (<emph>xs:dateTime</emph> | <emph>xs:duration</emph>) </wsen:Expires> ? <wsen:Filter Dialect="<emph>xs:anyURI</emph>"?> <emph>xs:any</emph> </wsen:Filter> ? @@ -711,7 +709,7 @@ 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 Subscribe message. + used for the Enumerate message. </p> <p> @@ -726,81 +724,52 @@ <def> <p> This OPTIONAL element can be used by the consumer to indicate the - expiration time of the requested enumeration. The value of this - element indicates the desired expiration time for the enumeration. - 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 data source - MUST generate a wsen:InvalidExpirationTime fault. + expiration time of the requested enumeration. If this element + is not present, the implied default expiration time is indefinite. + A value of PT0S indicates indefinite. </p> <p> - If the wsen:Expires element is present and the data 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. + If the data source does not support the wsen:Expires element + being present in an Enumerate request message then a + wsen:ExpiresNotSupported fault MUST be generated. </p> <p> - The value of the wsen:Expires element as well as those of its @min and - @max attributes 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. + 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:UnsupporedExpirationValue fault. </p> <p> - The value types in a wsen:Expires element MAY differ among the - element and its attributes. For example, the element value can be a - duration while the @max attribute can be a specific time. Regardless - of the value types, it MUST be true that wsen:Expires/@min <= - wsen:Expires <= wsen:Expires/@max as interpreted by the data source - at the time the wsen:Enumerate request is - processed. If this is not true, the request MUST fail and the - receiver MUST generate a wsen:InvalidExpirationTime fault. + 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 + 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:Expires@min </label> - <def> - <p> - The implied default is PT0S. This specifies the minimum expiration - time that the consumer is willing to accept. - </p> - </def> - </gitem> - - <gitem> - <label> <kw>[Body]</kw>/wsen:Enumerate/wsen:Expires@max </label> - <def> - <p> - The implied default is indefinite (no expiry). This specifies the - maximum expiration time that the consumer is willing to accept. - </p> </def> </gitem> <gitem> - <label> <kw>[Body]</kw>/wsen:Enumerate/wsen:Expires@exact </label> + <label> <kw>[Body]</kw>/wsen:Enumerate/wsen:Expires@BestEffort </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. + 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> @@ -876,7 +845,7 @@ <def> <p> - Value of <kw>[Body]</kw>/wsenu:Enumerate/wsen:Filter is + Value of <kw>[Body]</kw>/wsen:Enumerate/wsen:Filter is an XPath <bibref ref="XPath1"/> predicate expression (PredicateExpr); the context of the expression is: @@ -1030,7 +999,10 @@ <p> If this element does not appear, then the enumeration will not expire. That is, the enumeration has an - indefinite lifetime. It will terminate when the end of the + indefinite lifetime. + Likewise, a value of PT0S indicates that the enumeration will + not 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 @@ -1081,7 +1053,7 @@ (17) </s:Header> (18) <s:Body> (19) <wsen:Enumerate> -(20) <wsen:Expires min="PT10M"> PT10M </wsen:Expires> +(20) <wsen:Expires> PT10M </wsen:Expires> (21) </wsen:Enumerate> (22) </s:Body> (23) </s:Envelope></eg> @@ -1092,9 +1064,8 @@ is an Enumerate request and that the data source is expected to respond with an Enumerate response message. The wsen:Expires element on line (20) indicates that the consumer would like an - enumeration context that will be good for at least 10 minutes; that - is, it expects to complete its enumeration within a 10 minute - period. No wsen:Filter element is present, so the resultant + 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 elements. </p> @@ -1122,7 +1093,7 @@ (14) </s:Header> (15) <s:Body> (16) <wsen:EnumerateResponse> -(17) <wsen:Expires> PT15M </wsen:Expires> +(17) <wsen:Expires> PT10M </wsen:Expires> (18) <wsen:EnumerationContext> (19) 123 (20) </wsen:EnumerationContext> @@ -1134,8 +1105,8 @@ <p> Lines (05-07) in <specref ref="enumRes"/> indicate this message is an Enumerate response message. Line (17) indicates that the data - source has actually created an enumeration context with a lifetime - of 15 minutes. Lines (18-20) are the XML representation of the + 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 Pull operation defined below. </p> @@ -1449,9 +1420,7 @@ <kw>[Body]</kw> <wsen:Renew ...> <wsen:EnumerationContext ...>...</wsen:EnumerationContext> - <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>"? ...> + <wsen:Expires BestEffort="<emph>xs:boolean</emph>"? ...> (<emph>xs:dateTime</emph> | <emph>xs:duration</emph>) </wsen:Expires> ? <emph>xs:any</emph>* @@ -1925,12 +1894,12 @@ </s11:Envelope></eg> </example> - <div2 id="InvalidExpirationTime"> - <head>InvalidExpirationTime</head> + <div2 id="ExpiresNotSupported"> + <head>ExpiresNotSupported</head> <p> - This fault MUST be generated when a request specified an expiration that - is malformed. + This fault MUST be generated when a request specified an expiration + but the data source does not support Expires. </p> <table border="1"> @@ -1941,12 +1910,12 @@ </tr> <tr> <td> <kw>[Subcode]</kw> </td> - <td> wsen:InvalidExpirationTime </td> + <td> wsen:ExpiresNotSupported </td> </tr> <tr> <td> <kw>[Reason]</kw> </td> <td> - Invalid expiration time. + The specification of an Expires element is not allowed. </td> </tr> <tr> @@ -1957,8 +1926,8 @@ </table> </div2> - <div2 id="ExpirationTimeExceeded"> - <head>ExpirationTimeExceeded</head> + <div2 id="UnsupportedExpirationValue"> + <head>UnsupportedExpirationValue</head> <p> This fault MUST be generated when a request specifies an @@ -1973,7 +1942,7 @@ </tr> <tr> <td> <kw>[Subcode]</kw> </td> - <td> wsen:ExpirationTimeExceeded </td> + <td> wsen:UnsupportedExpirationValue </td> </tr> <tr> <td> <kw>[Reason]</kw> </td> @@ -2438,22 +2407,24 @@ </p> <p> - This specification defines a policy assertion (wsenu:DataSource). + This specification defines a policy assertion (wsen:DataSource). The normative outline of this assertion is: </p> <example> - <eg><wsenu:DataSource ...> - <wsenu:FilterDialect URI="<emph>xs:anyURI</emph>" ...> + <eg><wsen:DataSource ...> + <wsen:FilterDialect URI="<emph>xs:anyURI</emph>" ...> <emph>xs:any</emph>* - </wsenu:FilterDialect> * - <wsenu:MaxExpires ...> <emph>xs:duration</emph> </wsenu:MaxExpires> ? - <wsenu:MaxTime ...> <emph>xs:duration</emph> </wsenu:MaxTime> ? - <wsenu:MaxElements ...> <emph>xs:long</emph> </wsenu:MaxElements> ? - <wsenu:MaxCharacters ...> <emph>xs:long</emph> </wsenu:MaxCharacters> ? - <wsenu:EndToSupported .../> ? + </wsen:FilterDialect> * + <wsen:ExpiresSupported .../> ? + <wsen:DateTimeSupported .../> ? + <wsen:MaxExpires ...> <emph>xs:duration</emph> </wsen:MaxExpires> ? + <wsen:MaxTime ...> <emph>xs:duration</emph> </wsen:MaxTime> ? + <wsen:MaxElements ...> <emph>xs:long</emph> </wsen:MaxElements> ? + <wsen:MaxCharacters ...> <emph>xs:long</emph> </wsen:MaxCharacters> ? + <wsen:EndToSupported .../> ? <emph>xs:any</emph>* -</wsenu:DataSource></eg> +</wsen:DataSource></eg> </example> <p> @@ -2464,7 +2435,7 @@ <glist> <gitem> - <label> /wsenu:DataSource </label> + <label> /wsen:DataSource </label> <def> <p> This policy assertion has Endpoint Policy Subject. When present in a @@ -2476,7 +2447,7 @@ </gitem> <gitem> - <label> /wsenu:DataSource/wsenu:FilterDialect </label> + <label> /wsen:DataSource/wsen:FilterDialect </label> <def> <p> When present, this OPTIONAL parameter indicates support for the @@ -2486,7 +2457,7 @@ </gitem> <gitem> - <label> /wsenu:DataSource/wsenu:FilterDialect/xs:any </label> + <label> /wsen:DataSource/wsen:FilterDialect/xs:any </label> <def> <p> This extensibility point allows for additional FilterDialect @@ -2498,12 +2469,42 @@ </gitem> <gitem> - <label> /wsenu:DataSource/wsenu:MaxExpires </label> + <label> /wsen:DataSource/wsen:ExpiresSupported </label> + <def> + <p> + When present, this OPTIONAL parameter indicates support for + Expiration element on the Enumerate and Renew operations. + </p> + </def> + </gitem> + + <gitem> + <label> /wsen:DataSource/wsen:ExpiresSupported </label> + <def> + <p> + When present, this OPTIONAL parameter indicates support for + Expires element on the Enumerate and Renew operations. + </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:MaxExpires </label> <def> <p> When present, this OPTIONAL parameter indicates the maximum lifetime of enumerations that this endpoint will support. - The implied default is indefinite (no expiry). + The implied default is indefinite. Note: a value of "PT0S" indicates that this endpoint supports enumerations with an infinite lifetime. </p> @@ -2511,12 +2512,12 @@ </gitem> <gitem> - <label> /wsenu:DataSource/wsenu:MaxTime </label> + <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 indefinite (no expiry). + The implied default is indefinite. Note: a value of "PT0S" indicates that this endpoint supports any duration value. </p> @@ -2524,7 +2525,7 @@ </gitem> <gitem> - <label> /wsenu:DataSource/wsenu:MaxElements </label> + <label> /wsen:DataSource/wsen:MaxElements </label> <def> <p> When present, this OPTIONAL parameter indicates the maximum @@ -2535,7 +2536,7 @@ </gitem> <gitem> - <label> /wsenu:DataSource/wsenu:MaxCharacters </label> + <label> /wsen:DataSource/wsen:MaxCharacters </label> <def> <p> When present, this OPTIONAL parameter indicates the maximum @@ -2546,7 +2547,7 @@ </gitem> <gitem> - <label> /wsenu:DataSource/wsenu:EndToSupported </label> + <label> /wsen:DataSource/wsen:EndToSupported </label> <def> <p> When present, this OPTIONAL parameter indicates support for the @@ -2559,7 +2560,7 @@ </gitem> <gitem> - <label> /wsenu:DataSource/xs:any </label> + <label> /wsen:DataSource/xs:any </label> <def> <p> This extensibility point allows for additional WS-Enumeration @@ -2883,9 +2884,7 @@ <xs:complexType name='ExpirationType'> <xs:simpleContent> <xs:extension base='tns:MiniExpirationType'> - <xs:attribute name='min' type='tns:DurationDateTime' use='optional'/> - <xs:attribute name='max' type='tns:DurationDateTime' use='optional'/> - <xs:attribute name='exact' type='xs:boolean' use='optional'/> + <xs:attribute name='BestEffort' type='xs:boolean' use='optional'/> <xs:anyAttribute namespace='##other' processContents='lax'/> </xs:extension> </xs:simpleContent> @@ -3138,6 +3137,8 @@ <xs:anyAttribute namespace="##other" processContents='lax'/> </xs:complexType> </xs:element> + <xs:element name='ExpiresSupported' type='tns:Empty' minOccurs='0'/> + <xs:element name='DateTimeSupported' type='tns:Empty' minOccurs='0'/> <xs:element name='MaxExpires' type='tns:Duration' minOccurs='0'/> <xs:element name='MaxTime' type='tns:Duration' minOccurs='0'/> <xs:element name='MaxElements' type='tns:Long' minOccurs='0'/> @@ -4028,6 +4029,13 @@ <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> </tbody> </table> </div1>
Received on Thursday, 13 May 2010 20:10:27 UTC