- From: Asir Vedamuthu via cvs-syncmail <cvsmail@w3.org>
- Date: Fri, 27 Oct 2006 22:18:20 +0000
- To: public-ws-policy-eds@w3.org
Update of /sources/public/2006/ws/policy In directory hutz:/tmp/cvs-serv27043 Modified Files: ws-policy-framework.xml ws-policy-framework.html ws-policy-attachment.html Log Message: Implemented the resolution for issue 3705. Index: ws-policy-framework.xml =================================================================== RCS file: /sources/public/2006/ws/policy/ws-policy-framework.xml,v retrieving revision 1.73 retrieving revision 1.74 diff -u -d -r1.73 -r1.74 --- ws-policy-framework.xml 27 Oct 2006 06:59:31 -0000 1.73 +++ ws-policy-framework.xml 27 Oct 2006 22:18:16 -0000 1.74 @@ -340,8 +340,11 @@ <p><termdef id='policy_assertion' term='policy assertion'>A <term>policy assertion</term> represents an individual requirement, capability, or other property of a behavior.</termdef> A <termref def='policy_assertion'>policy assertion</termref> identifies a behavior that is a - requirement or capability of a <termref def='policy_subject'>policy - subject</termref>. Assertions indicate domain-specific (e.g., + requirement or capability of a <termref def='policy_subject'>policy subject</termref>. + <termdef id="policy_subject" term="policy subject">A <term>policy subject</term> is an entity + (e.g., an endpoint, message, resource, operation) with which a + <termref def="policy">policy</termref> can be associated. </termdef> + Assertions indicate domain-specific (e.g., security, transactions) semantics and are expected to be defined in separate, domain-specific specifications.</p> @@ -450,12 +453,18 @@ <div2 id="Web_services"> <head>Policies of Entities in a Web Services Based System</head> - <p>Applied in the Web services based system, <termref + <p>Applied to a Web services based system, <termref def='policy'>policy</termref> is used to convey conditions on an interaction between entities (requester application, - provider service, Web infrastructure component, etc). <termdef id="policy_subject" term="policy subject">A <term>policy subject</term> is an entity - (e.g., an endpoint, message, resource, interaction) with which a - <termref def="policy">policy</termref> can be associated. </termdef> Any entity in a + provider service, Web infrastructure component, etc). + An interaction involves one or more message exchanges between two + entities. It is the responsiblity of assertion authors to define + the interaction scope of an assertion including any constraints on the + <termref def='policy_subject'>policy subjects</termref> to which the assertion may be attached and a clear + specification of the message(s) within that interaction scope to which the + assertion applies. </p> + + <p>Any entity in a Web services based system may expose a policy to convey conditions under which it functions. Satisfying assertions in the policy usually results in behavior that reflects these conditions. For example, if two entities @@ -2060,6 +2069,14 @@ <loc href="http://www.w3.org/2005/06/tracker/wspolicyeds/actions/57">57</loc> PaulC's comments. </td> </tr> + <tr> + <td>20061027</td> + <td>ASV</td> + <td>Implemented the + <loc href="http://lists.w3.org/Archives/Public/public-ws-policy/2006Oct/0093.html">resolution</loc> + for issue <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=3705">3705</loc>. + </td> + </tr> </tbody> </table> </inform-div1> Index: ws-policy-framework.html =================================================================== RCS file: /sources/public/2006/ws/policy/ws-policy-framework.html,v retrieving revision 1.57 retrieving revision 1.58 diff -u -d -r1.57 -r1.58 --- ws-policy-framework.html 20 Oct 2006 21:30:23 -0000 1.57 +++ ws-policy-framework.html 27 Oct 2006 22:18:16 -0000 1.58 @@ -52,7 +52,9 @@ <h1>Web Services Policy 1.5 - Framework</h1> <h2>Editors' copy $Date$ @@ @@@@ @@@@</h2><dl><dt>This version:</dt><dd> <a href="ws-policy-framework.html">ws-policy-framework.html</a> - </dd><dt>Latest version:</dt><dd><a href="http://dev.w3.org/cvsweb/~checkout~/2006/ws/policy/ws-policy-framework.html?content-type=text/html;charset=utf-8">http://dev.w3.org/cvsweb/~checkout~/2006/ws/policy/ws-policy-framework.html?content-type=text/html;charset=utf-8</a></dd><dt>Editors:</dt><dd>Asir S Vedamuthu, Microsoft Corporation</dd><dd>David Orchard, BEA Systems, Inc.</dd><dd>Maryann Hondo, IBM Corporation</dd><dd>Toufic Boubez, Layer 7 Technologies</dd><dd>Prasad Yendluri, webMethods, Inc.</dd></dl><p class="copyright"><a href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">Copyright</a> © @@@@ <a href="http://www.w3.org/"><acronym title="World Wide Web Consortium">W3C</acronym></a><sup>®</sup> (<a href="http://www.csail.mit.edu/"><acronym title="Massachusetts Institute of Technology">MIT</acronym></a>, <a href="http://www.ercim.org/"><acronym title="European Research Consortium for Informatics and Mathematics">ERCIM</acronym></a>, <a href="http://www.keio.ac.jp/>Keio</a>), All Rights Reserved. W3C <a href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>, <a href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a> and <a href="http://www.w3.org/Consortium/Legal/copyright-documents">document use</a> rules apply.</p></div><hr><div> + </dd><dt>Latest version:</dt><dd><a href="http://dev.w3.org/cvsweb/~checkout~/2006/ws/policy/ws-policy-framework.html?content-type=text/html;charset=utf-8">http://dev.w3.org/cvsweb/~checkout~/2006/ws/policy/ws-policy-framework.html?content-type=text/html;charset=utf-8</a></dd><dt>Previous versions:</dt><dd> + <a href="http://www.w3.org/TR/2006/WD-ws-policy-20060927">http://www.w3.org/TR/2006/WD-ws-policy-20060927</a> + </dd><dt>Editors:</dt><dd>Asir S Vedamuthu, Microsoft Corporation</dd><dd>David Orchard, BEA Systems, Inc.</dd><dd>Maryann Hondo, IBM Corporation</dd><dd>Toufic Boubez, Layer 7 Technologies</dd><dd>Prasad Yendluri, webMethods, Inc.</dd></dl><p class="copyright"><a href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">Copyright</a> © @@@@ <a href="http://www.w3.org/"><acronym title="World Wide Web Consortium">W3C</acronym></a><sup>®</sup> (<a href="http://www.csail.mit.edu/"><acronym title="Massachusetts Institute of Technology">MIT</acronym></a>, <a href="http://www.ercim.org/"><acronym title="European Research Consortium for Informatics and Mathematics">ERCIM</acronym></a>, <a href="http://www.keio.ac.jp/">Keio</a>), All Rights Reserved. W3C <a href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>, <a href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a> and <a href="http://www.w3.org/Consortium/Legal/copyright-docments">document use</a> rules apply.</p></div><hr><div> <h2><a name="abstract">Abstract</a></h2><p>The Web Services Policy 1.5 - Framework provides a general purpose model and corresponding syntax to describe the policies of entities in a Web services-based system.</p><p>Web Services Policy Framework defines a base set of constructs that can be used and extended by other Web @@ -177,11 +179,16 @@ <a href="#nested_policy_expression">nested policy expression</a> </dt><dd><p>A <b>nested policy expression</b> is a <a title="policy expression" href="#policy_expression">policy expression</a> that is an Element Information Item in the <strong>[children]</strong> property of a <a title="policy assertion" href="#policy_assertion">policy assertion</a>.</p></dd><dt class="label"> <a href="#policy">policy</a> - </dt><dd><p>A <b>policy</b> is a collection of - <a title="policy alternative" href="#policy_alternative">policy alternatives</a>, </p></dd><dt class="label"> + </dt><dd><p>A <b>policy</b> is a potentially empty collection of + <a title="policy alternative" href="#policy_alternative">policy alternatives</a>. </p></dd><dt class="label"> <a href="#policy_alternative">policy alternative</a> - </dt><dd><p>a <b>policy alternative</b> - is a collection of <a title="policy assertion" href="#policy_assertion">policy assertions</a>.</p></dd><dt class="label"> + </dt><dd><p>A <b>policy alternative</b> + is a potentially empty collection of <a title="policy assertion" href="#policy_assertion">policy assertions</a>.</p></dd><dt class="label"> + <a href="#policy_alternative_vocabulary">policy alternative vocabulary</a> + </dt><dd><p>A <b>policy alternative vocabulary</b> is the set of + all <a title="policy assertion type" href="#policy_assertion_type">policy assertion + types</a> within the <a title="policy alternative" href="#policy_alternative">policy + alternative</a>.</p></dd><dt class="label"> <a href="#policy_assertion">policy assertion</a> </dt><dd><p>A <b>policy assertion</b> represents an individual requirement, capability, or other property of a behavior.</p></dd><dt class="label"> @@ -205,7 +212,7 @@ <a title="policy subject" href="#policy_subject">policy subjects</a> to which a policy may apply.</p></dd><dt class="label"> <a href="#policy_subject">policy subject</a> </dt><dd><p>A <b>policy subject</b> is an entity - (e.g., an endpoint, message, resource, interaction) with which a + (e.g., an endpoint, message, resource, operation) with which a <a title="policy" href="#policy">policy</a> can be associated. </p></dd><dt class="label"> <a href="#policy_vocabulary">policy vocabulary</a> </dt><dd><p>A <b>policy vocabulary</b> is the set of all @@ -214,8 +221,11 @@ <h3><a name="rPolicy_Assertion"></a>3.1 Policy Assertion</h3><p>[<a name="policy_assertion" title="policy assertion">Definition</a>: A <b>policy assertion</b> represents an individual requirement, capability, or other property of a behavior.] A <a title="policy assertion" href="#policy_assertion">policy assertion</a> identifies a behavior that is a - requirement or capability of a <a title="policy subject" href="#policy_subject">policy - subject</a>. Assertions indicate domain-specific (e.g., + requirement or capability of a <a title="policy subject" href="#policy_subject">policy subject</a>. + [<a name="policy_subject" title="policy subject">Definition</a>: A <b>policy subject</b> is an entity + (e.g., an endpoint, message, resource, operation) with which a + <a title="policy" href="#policy">policy</a> can be associated. ] + Assertions indicate domain-specific (e.g., security, transactions) semantics and are expected to be defined in separate, domain-specific specifications.</p><p>Assertions are typed by the authors that define them. [<a name="policy_assertion_type" title="policy assertion type">Definition</a>: A <b>policy assertion type</b> @@ -286,11 +296,15 @@ generally a function of the semantics of assertions within the alternative and is therefore beyond the scope of this specification.</p></div><div class="div2"> -<h3><a name="Web_services"></a>3.4 Policies of Entities in a Web Services Based System</h3><p>Applied in the Web services based system, <a title="policy" href="#policy">policy</a> is used to convey conditions +<h3><a name="Web_services"></a>3.4 Policies of Entities in a Web Services Based System</h3><p>Applied to a Web services based system, <a title="policy" href="#policy">policy</a> is used to convey conditions on an interaction between entities (requester application, - provider service, Web infrastructure component, etc). [<a name="policy_subject" title="policy subject">Definition</a>: A <b>policy subject</b> is an entity - (e.g., an endpoint, message, resource, interaction) with which a - <a title="policy" href="#policy">policy</a> can be associated. ] Any entity in a + provider service, Web infrastructure component, etc). + An interaction involves one or more message exchanges between two + entities. It is the responsiblity of assertion authors to define + the interaction scope of an assertion including any constraints on the + <a title="policy subject" href="#policy_subject">policy subjects</a> to which the assertion may be attached and a clear + specification of the message(s) within that interaction scope to which the + assertion applies. </p><p>Any entity in a Web services based system may expose a policy to convey conditions under which it functions. Satisfying assertions in the policy usually results in behavior that reflects these conditions. For example, if two entities @@ -342,11 +356,11 @@ is a straightforward XML Infoset representation of a policy, enumerating each of its alternatives that in turn enumerate each of their assertions. The schema outline for - the normal form of a policy expression is as follows:</p><div class="exampleInner"><pre>(01) <wsp:Policy … > -(02) <wsp:ExactlyOne> -(03) ( <wsp:All> ( <<emph>Assertion</emph> …> … </<emph>Assertion</emph>> )* </wsp:All> )* -(04) </wsp:ExactlyOne> -(05) </wsp:Policy> </pre></div><p>The following describes the Element Information Items defined in the schema outline above:</p><dl><dt class="label"><code class="elt">/wsp:Policy</code> </dt><dd><p>A policy expression.</p></dd><dt class="label"><code class="elt">/wsp:Policy/wsp:ExactlyOne</code> </dt><dd><p> + the normal form of a policy expression is as follows:</p><div class="exampleInner"><pre><wsp:Policy … > + <wsp:ExactlyOne> + ( <wsp:All> ( <<em>Assertion</em> …> … </<em>Assertion</em>> )* </wsp:All> )* + </wsp:ExactlyOne> +</wsp:Policy> </pre></div><p>The following describes the Element Information Items defined in the schema outline above:</p><dl><dt class="label"><code class="elt">/wsp:Policy</code> </dt><dd><p>A policy expression.</p></dd><dt class="label"><code class="elt">/wsp:Policy/wsp:ExactlyOne</code> </dt><dd><p> A collection of policy alternatives. If there are no Element Information Items in the <strong>[children]</strong> property, there are no admissible policy alternatives, i.e., no behavior is @@ -381,11 +395,11 @@ conversely, if the second alternative is selected, the message body needs to be encrypted. </p></div><div class="div2"> <h3><a name="Policy_Identification"></a>4.2 Policy Identification</h3><p>A <a title="policy expression" href="#policy_expression">policy expression</a> <span class="rfc2119">MAY</span> be associated with an IRI [<cite><a href="#RFC3987">IETF RFC 3987</a></cite>]. The schema outline -for attributes to associate an IRI is as follows:</p><div class="exampleInner"><pre>(01) <wsp:Policy ( Name="<emph>xs:anyURI</emph>" )? -(02) ( wsu:Id="<emph>xs:ID</emph>" | xml:id="<emph>xs:ID</emph>" )? -(03) … > -(04) … -(05) </wsp:Policy></pre></div><p>The following describes the Attribute Information Items listed and defined in the schema outline above:</p><dl><dt class="label"><code class="attr">/wsp:Policy/@Name</code> </dt><dd><p>The identity of the policy expression as an absolute IRI [<cite><a href="#RFC3987">IETF RFC 3987</a></cite>]. If +for attributes to associate an IRI is as follows:</p><div class="exampleInner"><pre><wsp:Policy ( Name="<em>xs:anyURI</em>" )? + ( wsu:Id="<em>xs:ID</em>" | xml:id="<em>xs:ID</em>" )? + … > + … +</wsp:Policy></pre></div><p>The following describes the Attribute Information Items listed and defined in the schema outline above:</p><dl><dt class="label"><code class="attr">/wsp:Policy/@Name</code> </dt><dd><p>The identity of the policy expression as an absolute IRI [<cite><a href="#RFC3987">IETF RFC 3987</a></cite>]. If omitted, there is no implied value. This IRI <span class="rfc2119">MAY</span> be used to refer to a policy from other XML documents using a <a title="policy attachment" href="#policy_attachment">policy attachment</a> mechanism such as those defined in WS-PolicyAttachment [<cite><a href="#WS-PolicyAttachment">Web Services Policy Attachment</a></cite>]. [<a name="policy_attachment" title="policy attachment">Definition</a>: A @@ -448,13 +462,13 @@ assertion</a> is optional, this specification defines an attribute that is a compact authoring style for expressing a pair of policy alternatives, one with and one without that assertion. The schema outline for -this attribute is as follows:</p><div class="exampleInner"><pre>(01) <<emph>Assertion</emph> ( wsp:Optional="<emph>xs:boolean</emph>" )? …> … </<emph>Assertion</emph>></pre></div><p>The following describes the Attribute Information Item defined in -the schema outline above:</p><dl><dt class="label"><code class="attr">/Assertion/@wsp:Optional</code> </dt><dd><p>If the actual value (See XML Schema Part 1 [<cite><a href="#XMLSchemaPart1">XML Schema Structures</a></cite>]) is true, the expression of the assertion is semantically equivalent to the following:</p><div class="exampleInner"><pre>(01) <wsp:ExactlyOne> -(02) <wsp:All> <<emph>Assertion</emph> …> … </<emph>Assertion</emph>> </wsp:All> -(03) <wsp:All /> -(04) </wsp:ExactlyOne></pre></div><p>If the actual value (See XML Schema Part 1 [<cite><a href="#XMLSchemaPart1">XML Schema Structures</a></cite>]) is false, the expression of the assertion is semantically equivalent to the following:</p><div class="exampleInner"><pre>(01) <wsp:ExactlyOne> -(02) <wsp:All> <<emph>Assertion</emph> …> … </<emph>Assertion</emph>> </wsp:All> -(03) </wsp:ExactlyOne></pre></div><p>Omitting this attribute is semantically equivalent to including it +this attribute is as follows:</p><div class="exampleInner"><pre><<em>Assertion</em> ( wsp:Optional="<em>xs:boolean</em>" )? …> … </<em>Assertion</em>></pre></div><p>The following describes the Attribute Information Item defined in +the schema outline above:</p><dl><dt class="label"><code class="attr">/Assertion/@wsp:Optional</code> </dt><dd><p>If the actual value (See XML Schema Part 1 [<cite><a href="#XMLSchemaPart1">XML Schema Structures</a></cite>]) is true, the expression of the assertion is semantically equivalent to the following:</p><div class="exampleInner"><pre><wsp:ExactlyOne> + <wsp:All> <<em>Assertion</em> …> … </<em>Assertion</em>> </wsp:All> + <wsp:All /> +</wsp:ExactlyOne></pre></div><p>If the actual value (See XML Schema Part 1 [<cite><a href="#XMLSchemaPart1">XML Schema Structures</a></cite>]) is false, the expression of the assertion is semantically equivalent to the following:</p><div class="exampleInner"><pre><wsp:ExactlyOne> + <wsp:All> <<em>Assertion</em> …> … </<em>Assertion</em>> </wsp:All> +</wsp:ExactlyOne></pre></div><p>Omitting this attribute is semantically equivalent to including it with a value of false. Policy expressions should not include this attribute with a value of false, but policy parsers must accept this attribute with a value of false.</p></dd></dl><p>For example, the following compact policy expression:</p><div class="exampleInner"><pre>(01) <wsp:Policy @@ -478,11 +492,11 @@ policy expression.</p></div><div class="div3"> <h4><a name="Policy_Assertion_Nesting"></a>4.3.2 Policy Assertion Nesting</h4><p>Any <a title="policy assertion" href="#policy_assertion">policy assertion</a> <span class="rfc2119">MAY</span> contain a <a title="policy expression" href="#policy_expression">policy expression</a>. [<a name="nested_policy_expression" title="nested policy expression">Definition</a>: A <b>nested policy expression</b> is a <a title="policy expression" href="#policy_expression">policy expression</a> that is an Element Information Item in the <strong>[children]</strong> property of a <a title="policy assertion" href="#policy_assertion">policy assertion</a>.] The schema -outline for a <a title="nested policy expression" href="#nested_policy_expression">nested policy expression</a> is:</p><div class="exampleInner"><pre>(01) <<emph>Assertion</emph> …> -(02) … -(03) ( <wsp:Policy …> … </wsp:Policy> )? -(04) … -(05) </<emph>Assertion</emph>></pre></div><p>The following describes additional processing constraints on the outline listed above:</p><dl><dt class="label"><code class="elt">/Assertion/wsp:Policy</code> </dt><dd><p>This indicates that the assertion contains a nested policy +outline for a <a title="nested policy expression" href="#nested_policy_expression">nested policy expression</a> is:</p><div class="exampleInner"><pre><<em>Assertion</em> …> + … + ( <wsp:Policy …> … </wsp:Policy> )? + … +</<em>Assertion</em>></pre></div><p>The following describes additional processing constraints on the outline listed above:</p><dl><dt class="label"><code class="elt">/Assertion/wsp:Policy</code> </dt><dd><p>This indicates that the assertion contains a nested policy expression. If there is no <code class="elt">wsp:Policy</code> Element Information Item in the <strong>[children]</strong> property, the assertion has no nested policy expression. @@ -603,59 +617,59 @@ equivalent to <code class="elt">wsp:All</code> .</p></dd><dt class="label">Empty</dt><dd><ul><li><p><code><wsp:All /></code> expresses a policy with zero policy assertions. Note that since <code class="elt">wsp:Policy</code> is equivalent to <code class="elt">wsp:All</code> , <code><wsp:Policy /></code> is therefore equivalent to <code><wsp:All /></code>, i.e., a policy alternative with zero assertions.</p></li><li><p><code><wsp:ExactlyOne /></code> expresses a policy with zero policy alternatives.</p></li></ul></dd><dt class="label">Commutative</dt><dd><p>In line with the previous statements that policy assertions within a policy alternative and policy alternatives within a policy are not ordered (see <a href="#rPolicy_Alternative"><b>3.2 Policy Alternative</b></a> and <a href="#rPolicy"><b>3.3 Policy</b></a>, respectively), <code class="elt">wsp:All</code> and -<code class="elt">wsp:ExactlyOne</code> are commutative. For example,</p><div class="exampleInner"><pre>(01) <wsp:All> <emph><!-- assertion 1 --> <!-- assertion 2 --> </emph></wsp:All></pre></div><p>is equivalent to:</p><div class="exampleInner"><pre>(01) <wsp:All> <emph><!-- assertion 2 --> <!-- assertion 1 --> </emph></wsp:All></pre></div><p>and:</p><div class="exampleInner"><pre>(01) <wsp:ExactlyOne> -(02) <emph><!-- assertion 1 --> <!-- assertion 2 --></emph> -(03) </wsp:ExactlyOne></pre></div><p>is equivalent to:</p><div class="exampleInner"><pre>(01) <wsp:ExactlyOne> -(02) <emph><!-- assertion 2 --> <!-- assertion 1 --></emph> -(03) </wsp:ExactlyOne></pre></div></dd><dt class="label">Associative</dt><dd><p><code class="elt">wsp:All</code> and <code class="elt">wsp:ExactlyOne</code> are associative. For example,</p><div class="exampleInner"><pre>(01) <wsp:All> -(02) <emph><!-- assertion 1 --></emph> -(03) <emph> </emph><wsp:All> <emph><!-- assertion 2 --> </emph></wsp:All> -(04) </wsp:All></pre></div><p>is equivalent to:</p><div class="exampleInner"><pre>(01) <wsp:All> <emph><!-- assertion 1 --> <!-- assertion 2 --> </emph></wsp:All></pre></div><p>and:</p><div class="exampleInner"><pre>(01) <wsp:ExactlyOne> -(02) <emph><!-- assertion 1 --></emph> -(03) <emph> </emph><wsp:ExactlyOne> <emph><!-- assertion 2 --> </emph></wsp:ExactlyOne> -(04) </wsp:ExactlyOne></pre></div><p>is equivalent to:</p><div class="exampleInner"><pre>(01) <wsp:ExactlyOne> -(02) <emph><!-- assertion 1 --> <!-- assertion 2 --></emph> -(03) </wsp:ExactlyOne></pre></div></dd><dt class="label">Idempotent</dt><dd><p><code class="elt">wsp:All</code> and <code class="elt">wsp:ExactlyOne</code> are idempotent. For example,</p><div class="exampleInner"><pre>(01) <wsp:All> -(02) <wsp:All> <emph><!-- assertion 1 --> <!-- assertion 2 --> </emph></wsp:All> -(03) </wsp:All></pre></div><p>is equivalent to:</p><div class="exampleInner"><pre>(01) <wsp:All> <emph><!-- assertion 1 --> <!-- assertion 2 --> </emph></wsp:All></pre></div><p>and:</p><div class="exampleInner"><pre>(01) <wsp:ExactlyOne> -(02) <wsp:ExactlyOne> -(03) <emph><!-- assertion 1 --> <!-- assertion 2 --></emph> -(04) <emph> </emph></wsp:ExactlyOne> -(05) </wsp:ExactlyOne></pre></div><p>is equivalent to:</p><div class="exampleInner"><pre>(01) <wsp:ExactlyOne> -(02) <emph><!-- assertion 1 --> <!-- assertion 2 --></emph> -(03) </wsp:ExactlyOne></pre></div></dd><dt class="label">Distributive</dt><dd><p><code class="elt">wsp:All</code> distributes over <code class="elt">wsp:ExactlyOne</code> . For example,</p><div class="exampleInner"><pre>(01) <wsp:All> -(02) <wsp:ExactlyOne> -(03) <emph> <!-- assertion 1 --></emph> -(04) <emph> <!-- assertion 2 --></emph> -(05) </wsp:ExactlyOne> -(06) </wsp:All></pre></div><p>is equivalent to:</p><div class="exampleInner"><pre>(01) <wsp:ExactlyOne> -(02) <wsp:All> -(03) <emph> <!-- assertion 1 --></emph> -(04) </wsp:All> -(05) <wsp:All> -(06) <emph> <!-- assertion 2 --></emph> -(07) </wsp:All> -(08) </wsp:ExactlyOne></pre></div><p>Similarly by repeatedly distributing wsp:All over wsp:ExactlyOne,</p><div class="exampleInner"><pre>(01) <wsp:All> -(02) <wsp:ExactlyOne> -(03) <emph> <!-- assertion 1 --></emph> -(04) <emph> <!-- assertion 2 --></emph> -(05) </wsp:ExactlyOne> -(06) <wsp:ExactlyOne> -(07) <emph> <!-- assertion 3 --></emph> -(08) <emph> <!-- assertion 4 --></emph> -(09) </wsp:ExactlyOne> -(10) </wsp:All></pre></div><p>is equivalent to:</p><div class="exampleInner"><pre>(01) <wsp:ExactlyOne> -(02) <wsp:All><emph><!-- assertion 1 --><!-- assertion 3 --></emph></wsp:All> -(03) <wsp:All><emph><!-- assertion 1 --><!-- assertion 4 --></emph></wsp:All> -(04) <wsp:All><emph><!-- assertion 2 --><!-- assertion 3 --></emph></wsp:All> -(05) <wsp:All><emph><!-- assertion 2 --><!-- assertion 4 --></emph></wsp:All> -(06) </wsp:ExactlyOne></pre></div><p>Distributing <code class="elt">wsp:All</code> over an empty <code class="elt">wsp:ExactlyOne</code> is equivalent to no alternatives. For example,</p><div class="exampleInner"><pre>(01) <wsp:All> -(02) <wsp:ExactlyOne> -(03) <emph> <!-- assertion 1 --></emph> -(04) <emph> <!-- assertion 2 --></emph> -(05) </wsp:ExactlyOne> -(06) <wsp:ExactlyOne /> -(07) </wsp:All></pre></div><p>is equivalent to:</p><div class="exampleInner"><pre>(01) <wsp:ExactlyOne /></pre></div><p>For example, given the following compact policy expression:</p><div class="exampleInner"><pre>(01) <wsp:Policy +<code class="elt">wsp:ExactlyOne</code> are commutative. For example,</p><div class="exampleInner"><pre><wsp:All> <em><!-- assertion 1 --> <!-- assertion 2 --> </em></wsp:All></pre></div><p>is equivalent to:</p><div class="exampleInner"><pre><wsp:All> <em><!-- assertion 2 --> <!-- assertion 1 --> </em></wsp:All></pre></div><p>and:</p><div class="exampleInner"><pre><wsp:ExactlyOne> + <em><!-- assertion 1 --> <!-- assertion 2 --></em> +</wsp:ExactlyOne></pre></div><p>is equivalent to:</p><div class="exampleInner"><pre><wsp:ExactlyOne> + <em><!-- assertion 2 --> <!-- assertion 1 --></em> +</wsp:ExactlyOne></pre></div></dd><dt class="label">Associative</dt><dd><p><code class="elt">wsp:All</code> and <code class="elt">wsp:ExactlyOne</code> are associative. For example,</p><div class="exampleInner"><pre><wsp:All> + <em><!-- assertion 1 --></em> +<em> </em><wsp:All> <em><!-- assertion 2 --> </em></wsp:All> +</wsp:All></pre></div><p>is equivalent to:</p><div class="exampleInner"><pre><wsp:All> <em><!-- assertion 1 --> <!-- assertion 2 --> </em></wsp:All></pre></div><p>and:</p><div class="exampleInner"><pre><wsp:ExactlyOne> + <em><!-- assertion 1 --></em> +<em> </em><wsp:ExactlyOne> <em><!-- assertion 2 --> </em></wsp:ExactlyOne> +</wsp:ExactlyOne></pre></div><p>is equivalent to:</p><div class="exampleInner"><pre><wsp:ExactlyOne> + <em><!-- assertion 1 --> <!-- assertion 2 --></em> +</wsp:ExactlyOne></pre></div></dd><dt class="label">Idempotent</dt><dd><p><code class="elt">wsp:All</code> and <code class="elt">wsp:ExactlyOne</code> are idempotent. For example,</p><div class="exampleInner"><pre><wsp:All> + <wsp:All> <em><!-- assertion 1 --> <!-- assertion 2 --> </em></wsp:All> +</wsp:All></pre></div><p>is equivalent to:</p><div class="exampleInner"><pre><wsp:All> <em><!-- assertion 1 --> <!-- assertion 2 --> </em></wsp:All></pre></div><p>and:</p><div class="exampleInner"><pre><wsp:ExactlyOne> + <wsp:ExactlyOne> + <em><!-- assertion 1 --> <!-- assertion 2 --></em> +<em> </em></wsp:ExactlyOne> +</wsp:ExactlyOne></pre></div><p>is equivalent to:</p><div class="exampleInner"><pre><wsp:ExactlyOne> + <em><!-- assertion 1 --> <!-- assertion 2 --></em> +</wsp:ExactlyOne></pre></div></dd><dt class="label">Distributive</dt><dd><p><code class="elt">wsp:All</code> distributes over <code class="elt">wsp:ExactlyOne</code> . For example,</p><div class="exampleInner"><pre><wsp:All> + <wsp:ExactlyOne> +<em> <!-- assertion 1 --></em> +<em> <!-- assertion 2 --></em> + </wsp:ExactlyOne> +</wsp:All></pre></div><p>is equivalent to:</p><div class="exampleInner"><pre><wsp:ExactlyOne> + <wsp:All> +<em> <!-- assertion 1 --></em> + </wsp:All> + <wsp:All> +<em> <!-- assertion 2 --></em> + </wsp:All> +</wsp:ExactlyOne></pre></div><p>Similarly by repeatedly distributing wsp:All over wsp:ExactlyOne,</p><div class="exampleInner"><pre><wsp:All> + <wsp:ExactlyOne> +<em> <!-- assertion 1 --></em> +<em> <!-- assertion 2 --></em> + </wsp:ExactlyOne> + <wsp:ExactlyOne> +<em> <!-- assertion 3 --></em> +<em> <!-- assertion 4 --></em> + </wsp:ExactlyOne> +</wsp:All></pre></div><p>is equivalent to:</p><div class="exampleInner"><pre><wsp:ExactlyOne> + <wsp:All><em><!-- assertion 1 --><!-- assertion 3 --></em></wsp:All> + <wsp:All><em><!-- assertion 1 --><!-- assertion 4 --></em></wsp:All> + <wsp:All><em><!-- assertion 2 --><!-- assertion 3 --></em></wsp:All> + <wsp:All><em><!-- assertion 2 --><!-- assertion 4 --></em></wsp:All> +</wsp:ExactlyOne></pre></div><p>Distributing <code class="elt">wsp:All</code> over an empty <code class="elt">wsp:ExactlyOne</code> is equivalent to no alternatives. For example,</p><div class="exampleInner"><pre><wsp:All> + <wsp:ExactlyOne> +<em> <!-- assertion 1 --></em> +<em> <!-- assertion 2 --></em> + </wsp:ExactlyOne> + <wsp:ExactlyOne /> +</wsp:All></pre></div><p>is equivalent to:</p><div class="exampleInner"><pre><wsp:ExactlyOne /></pre></div><p>For example, given the following compact policy expression:</p><div class="exampleInner"><pre>(01) <wsp:Policy xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy" xmlns:wsp="http://www.w3.org/@@@@/@@/ws-policy" > (02) <sp:RequireDerivedKeys wsp:Optional="true" /> @@ -703,12 +717,12 @@ (16) </wsp:All> (17) </wsp:ExactlyOne> (18) </wsp:Policy></pre></div><p>Note that the two alternatives listed in Lines (03-06) in the second listing are combined with the two alternatives listed in Lines (09-14) in the second listing to create four alternatives in the normalized policy, Lines (03-06), (07-10), (11-13), and (14-16).</p></div><div class="div3"> -<h4><a name="Policy_References"></a>4.3.4 Policy References</h4><p>The <code class="elt">wsp:PolicyReference</code> element is used to reference <a title="policy expression" href="#policy_expression">policy expressions</a>. The semantics of the <code class="elt">wsp:PolicyReference</code> element are determined by the context in which it is used (for an example, see <a href="#Policy_Inclusion"><b>4.3.5 Policy Inclusion</b></a>).</p><p>The schema outline for the <code class="elt">wsp:PolicyReference</code> element is as follows:</p><div class="exampleInner"><pre>(01) <wsp:PolicyReference -(02) URI="<emph>xs:anyURI</emph>" -(03) ( Digest="<emph>xs:base64Binary</emph>" ( DigestAlgorithm="<emph>xs:anyURI</emph>" )? )? -(04) … > -(05) … -(06) </wsp:PolicyReference></pre></div><p>The following describes the Attribute and Element Information Items defined in the schema outline above:</p><dl><dt class="label"><code class="elt">/wsp:PolicyReference</code> </dt><dd><p>This element references a policy expression that is being referenced.</p></dd><dt class="label"><code class="attr">/wsp:PolicyReference/@URI</code> </dt><dd><p>This attribute references a policy expression by an IRI. For a policy +<h4><a name="Policy_References"></a>4.3.4 Policy References</h4><p>The <code class="elt">wsp:PolicyReference</code> element is used to reference <a title="policy expression" href="#policy_expression">policy expressions</a>. The semantics of the <code class="elt">wsp:PolicyReference</code> element are determined by the context in which it is used (for an example, see <a href="#Policy_Inclusion"><b>4.3.5 Policy Inclusion</b></a>).</p><p>The schema outline for the <code class="elt">wsp:PolicyReference</code> element is as follows:</p><div class="exampleInner"><pre><wsp:PolicyReference + URI="<em>xs:anyURI</em>" + ( Digest="<em>xs:base64Binary</em>" ( DigestAlgorithm="<em>xs:anyURI</em>" )? )? + … > + … +</wsp:PolicyReference></pre></div><p>The following describes the Attribute and Element Information Items defined in the schema outline above:</p><dl><dt class="label"><code class="elt">/wsp:PolicyReference</code> </dt><dd><p>This element references a policy expression that is being referenced.</p></dd><dt class="label"><code class="attr">/wsp:PolicyReference/@URI</code> </dt><dd><p>This attribute references a policy expression by an IRI. For a policy expression within the same XML Document, the reference <span class="rfc2119">SHOULD</span> be an IRI-reference to a policy expression identified by an <code>ID</code>. For an external policy expression, there is no requirement that the IRI @@ -873,31 +887,31 @@ is similar to the well-known DTD entity expansion attack). Policy implementers need to anticipate these rogue providers and use a configurable bound with defaults on number of policy alternatives, number of assertions in an alternative, depth of nested policy - expressions, etc.</p><div class="exampleOuter"><p style="text-align: left" class="exampleHead"><a name="ex-chained-policy-reference-elements"></a><i><span>Example 5-1. </span>Chained Policy Reference Elements</i></p><div class="exampleInner"><pre>(01) <Policy wsu:Id="p1"> -(02) <PolicyReference URI="#p2"/ > -(03) <PolicyReference URI="#p2"/> -(04) </Policy> -(05) -(06) <Policy wsu:Id="p2" > -(07) <PolicyReference URI="#p3"/> -(08) <PolicyReference URI="#p3"/> -(09) </Policy> -(10) -(11) <Policy wsu:Id="p3" > -(12) <PolicyReference URI="#p4"/> -(13) <PolicyReference URI="#p4"/> -(14) </Policy> -(15) -(16) <!-- Policy/@wsu:Id p4 through p99 --> -(17) -(18) <Policy wsu:Id="p100" > -(19) <PolicyReference URI="#p101"/> -(20) <PolicyReference URI="#p101"/> -(21) </Policy> -(22) -(23) <Policy wsu:Id="p101" > -(24) <mtom:OptimizedMimeSerialization /> -(25) </Policy></pre></div></div><p>Malicious providers may provide a policy expression that includes multiple + expressions, etc.</p><div class="exampleOuter"><p style="text-align: left" class="exampleHead"><a name="ex-chained-policy-reference-elements"></a><i><span>Example 5-1. </span>Chained Policy Reference Elements</i></p><div class="exampleInner"><pre><Policy wsu:Id="p1"> + <PolicyReference URI="#p2"/ > + <PolicyReference URI="#p2"/> + </Policy> + + <Policy wsu:Id="p2" > + <PolicyReference URI="#p3"/> + <PolicyReference URI="#p3"/> + </Policy> + + <Policy wsu:Id="p3" > + <PolicyReference URI="#p4"/> + <PolicyReference URI="#p4"/> + </Policy> + + <!-- Policy/@wsu:Id p4 through p99 --> + + <Policy wsu:Id="p100" > + <PolicyReference URI="#p101"/> + <PolicyReference URI="#p101"/> + </Policy> + + <Policy wsu:Id="p101" > + <mtom:OptimizedMimeSerialization /> + </Policy></pre></div></div><p>Malicious providers may provide a policy expression that includes multiple PolicyReference elements that use a large number of different internet addresses. These may require the consumers to establish a large number of TCP connections. Policy implementers need to anticipate such rogue providers and use a configurable bound with @@ -905,7 +919,7 @@ <h3><a name="general-xml-considerations"></a>5.6 General XML Considerations</h3><p>Implementers of Web Services policy language should be careful to protect their software against general XML threats like deeply nested XML or XML that contains malicious content.</p></div></div><div class="div1"> -<h2><a name="Conformance"></a>6. Conformance</h2><p>An element information item whose namespace name is "http://www.w3.org/@@@@/@@/policy" and whose local part is Policy or PolicyReference conforms to this specification if it is valid according to the XML Schema [<cite><a href="#XMLSchemaPart1">XML Schema Structures</a></cite>] for that element as defined by this specification (<a href="http://www.w3.org/@@@@/@@/policy/ws-policy.xsd">http://www.w3.org/@@@@/@@/policy/ws-policy.xsd</a>) and additionally adheres to all the constraints contained in this specification. Such a conformant element information item constitutes a <a title="policy expression" href="#policy_expression">policy expression</a>. +<h2><a name="Conformance"></a>6. Conformance</h2><p>An element information item whose namespace name is "http://www.w3.org/@@@@/@@/ws-policy" and whose local part is Policy or PolicyReference conforms to this specification if it is valid according to the XML Schema [<cite><a href="#XMLSchemaPart1">XML Schema Structures</a></cite>] for that element as defined by this specification (<a href="http://www.w3.org/@@@@/@@/ws-policy.xsd">http://www.w3.org/@@@@/@@/ws-policy.xsd</a>) and additionally adheres to all the constraints contained in this specification. Such a conformant element information item constitutes a <a title="policy expression" href="#policy_expression">policy expression</a>. </p></div></div><div class="back"><div class="div1"> <h2><a name="References"></a>A. References</h2><div class="div2"> <h3><a name="Normative-References"></a>A.1 Normative References</h3><dl><dt class="label"><a name="RFC2119"></a>[IETF RFC 2119] </dt><dd> @@ -1237,4 +1251,7 @@ <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=3720">3720</a> </td></tr><tr><td rowspan="1" colspan="1">20061019</td><td rowspan="1" colspan="1">PY</td><td rowspan="1" colspan="1">Completed action item: <a href="http://www.w3.org/2005/06/tracker/wspolicyeds/actions/57">57</a> PaulC's comments. + </td></tr><tr><td rowspan="1" colspan="1">20061027</td><td rowspan="1" colspan="1">ASV</td><td rowspan="1" colspan="1">Implemented the + <a href="http://lists.w3.org/Archives/Public/public-ws-policy/2006Oct/0093.html">resolution</a> + for issue <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=3705">3705</a>. </td></tr></tbody></table><br></div></div></body></html> \ No newline at end of file Index: ws-policy-attachment.html =================================================================== RCS file: /sources/public/2006/ws/policy/ws-policy-attachment.html,v retrieving revision 1.56 retrieving revision 1.57 diff -u -d -r1.56 -r1.57 --- ws-policy-attachment.html 21 Oct 2006 00:06:09 -0000 1.56 +++ ws-policy-attachment.html 27 Oct 2006 22:18:16 -0000 1.57 @@ -52,7 +52,9 @@ <h1>Web Services Policy 1.5 - Attachment</h1> <h2>Editors' copy $Date$ @@ @@@@ @@@@</h2><dl><dt>This version:</dt><dd> <a href="ws-policy-attachment.html">ws-policy-attachment.html</a> -</dd><dt>Latest version:</dt><dd><a href="http://dev.w3.org/cvsweb/~checkout~/2006/ws/policy/ws-policy-attachment.html?content-type=text/html;charset=utf-8">http://dev.w3.org/cvsweb/~checkout~/2006/ws/policy/ws-policy-attachment.html?content-type=text/html;charset=utf-8</a></dd><dt>Editors:</dt><dd>Asir S Vedamuthu, Microsoft Corporation</dd><dd>David Orchard, BEA Systems, Inc.</dd><dd>Maryann Hondo, IBM Corporation</dd><dd>Toufic Boubez, Layer 7 Technologies</dd><dd>Prasad Yendluri, webMethods, Inc.</dd></dl><p class="copyright"><a href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">Copyright</a> © @@@@ <a href="http://www.w3.org/"><acronym title="World Wide Web Consortium">W3C</acronym></a><sup>®</sup> (<a href="http://www.csail.mit.edu/"><acronym title="Massachusetts Institute of Technology">MIT</acronym></a>, <a href="http://www.ercim.org/"><acronym title="European Research Consortium for Informatics and Mathematics">ERCIM</acronym></a>, <a href="http://www.keio.ac.jp/">Keio/a>), All Rights Reserved. W3C <a href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>, <a href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a> and <a href="http://www.w3.org/Consortium/Legal/copyright-documents">document use</a> rules apply.</p></div><hr><div> +</dd><dt>Latest version:</dt><dd><a href="http://dev.w3.org/cvsweb/~checkout~/2006/ws/policy/ws-policy-attachment.html?content-type=text/html;charset=utf-8">http://dev.w3.org/cvsweb/~checkout~/2006/ws/policy/ws-policy-attachment.html?content-type=text/html;charset=utf-8</a></dd><dt>Previous versions:</dt><dd> + <a href="http://www.w3.org/TR/2006/WD-ws-policy-attach-20060927">http://www.w3.org/TR/2006/WD-ws-policy-attach-20060927</a> + </dd><dt>Editors:</dt><dd>Asir S Vedamuthu, Microsoft Corporation</dd><dd>David Orchard, BEA Systems, Inc.</dd><dd>Maryann Hondo, IBM Corporation</dd><dd>Toufic Boubez, Layer 7 Technologies</dd><dd>Prasad Yendluri, webMethods, Inc.</dd></dl><p class="copyright"><a href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">Copyright</a> © @@@@ <a href="http://www.w3.org/"><acronym title="World Wide Web Consortium">W3C</acronym></a><sup>®</sup> (<a href="http://www.csail.mit.edu/"><acronym title="Massachusetts Institute of Technology">MIT</acronym></a>, <a href="http://www.ercim.org/"><acronym title="European Research Consortium for Informatics and Mathematics">ERCIM</acronym></a>, <a href="http://www.keio.ac.jp/">Keio</a>), All Rights Reserved. W3C <a href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>, <a href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a> and <a href="http://www.w3.org/Consortium/Legal/copyright-docments">document use</a> rules apply.</p></div><hr><div> <h2><a name="abstract">Abstract</a></h2><p> This specification, Web Services Policy 1.5 - Attachment, defines two general-purpose mechanisms for associating policies, as @@ -63,7 +65,7 @@ </p></div><div> <h2><a name="status">Status of this Document</a></h2><p><strong>This document is an editors' copy that has no official standing.</strong></p><p></p></div><hr><div class="toc"> -<h2><a name="contents">Table of Contents</a></h2><p class="toc">1. <a href="#tocRange">Introduction</a><br>2. <a href="#NotationsTerminology">Notations and Terminology</a><br> 2.1 <a href="#NotationalConventions">Notational Conventions</a><br> 2.2 <a href="#XMLNamespaces">XML Namespaces</a><br> 2.3 <a href="#Glossary">Terminology</a><br> 2.4 <a href="#Example">Example</a><br>3. <a href="#rPolicyAttachment">Policy Attachment</a><br> 3.1 <a href="#rEffectivePolicy">Effective Policy</a><br> 3.2 <a href="#PolicyAttachmentMechanisms">Policy Attachment Mechanisms</a><br> 3.3 <a href="#XMLElementAttachement">XML Element Attachment</a><br> 3.4 <a href="#ExternalPolicyAttachment">External Policy Attachment</a><br>4. <a href="#AttachingPolicyUsingWSDL1.1">Attaching Policies Using WSDL 1.1</a><br> 4.1 <a href="#CaculatingEffectivyPolicywithWSDL1.1">Calculating Effective Policy in WSDL 1.1</a><br> 4.1.1 <a href="#ServicePolicySubject">Service Policy Subject</a><br> 4.1.2 <a href="#EndpointPolicySubject">Endpoint Policy Subject</a><br> 4.1.3 <a href="#OperationPolicySubject">Operation Policy Subject</a><br> 4.1.4 <a href="#MessagePolicySubject">Message Policy Subject</a><br> 4.1.5 <a href="#Example2">Example</a><br>5. <a href="#ws-policy-attachment-for-wsdl20">WS-Policy Attachment for WSDL 2.0</a><br> 5.1 <a href="#wsdl20-example">Example</a><br> 5.2 <a href="#attaching-policy-expressions">Attaching Policy Expressions</a><br> 5.3 <a href="#extension-to-wsdl-component-model">Extension to WSDL Component Model</a><br>  5.4 <a href="#effective-policy">Effective Policy</a><br> 5.4.1 <a href="#service-policy-subject">Service Policy Subject</a><br> 5.4.2 <a href="#endpoint-policy-subject">Endpoint Policy Subject</a><br> 5.4.3 <a href="#operation-policy-subject">Operation Policy Subject</a><br> 5.4.4 <a href="#message-policy-subject-input">Message Policy Subject (input message)</a><br> 5.4.5 <a href="#message-policy-subject-output">Message Policy Subject (output message)</a><br> 5.4.6 <a href="#message-policy-subject-input-fault">Message Policy Subject (input fault message)</a><br> 5.4.7 <a href="#message-policy-subject-output-fault">Message Policy Subject (output fault message)</a><br>. <a href="#AttachingPoliciesUsingUDDI">Attaching Policies Using UDDI</a><br> 6.1 <a href="#CalculatingEffectivePolicyElementPolicyUDDI">Calculating Effective Policy and Element Policy in UDDI</a><br> 6.1.1 <a href="#ServiceProviderPolicySubjectUDDI">Service Provider Policy Subject</a><br> 6.1.2 <a href="#ServicePolicySubjectUDDI">Service Policy Subject</a><br> 6.1.3 <a href="#EndpointPolicySubjectUDDI">Endpoint Policy Subject</a><br> 6.2 <a href="#ReferencingRemotePolicyExpressions">Referencing Remote Policy Expressions</a><br> 6.3 <a href="#RegisteringReusablePolicyExpressions">Registering Reusable Policy Expressions</a><br> 6.4 <a href="#RegisteringPoliciesUDDIVersion3">Registering Policies in UDDI Version 3</a><br>7. <a href="#SecurityConsiderations">Security Considerations<a><br>8. <a href="#Conformance">Conformance</a><br> 8.1 <a href="#d3e3767">External Policy Attachment Conformance</a><br> 8.2 <a href="#d3e3779">WSDL 1.1 Attachment Conformance</a><br> 8.3 <a href="#d3e3788">WSDL 2.0 Attachment Conformance</a><br></p> +<h2><a name="contents">Table of Contents</a></h2><p class="toc">1. <a href="#tocRange">Introduction</a><br>2. <a href="#NotationsTerminology">Notations and Terminology</a><br> 2.1 <a href="#NotationalConventions">Notational Conventions</a><br> 2.2 <a href="#XMLNamespaces">XML Namespaces</a><br> 2.3 <a href="#Glossary">Terminology</a><br> 2.4 <a href="#Example">Example</a><br>3. <a href="#rPolicyAttachment">Policy Attachment</a><br> 3.1 <a href="#rEffectivePolicy">Effective Policy</a><br> 3.2 <a href="#PolicyAttachmentMechanisms">Policy Attachment Mechanisms</a><br> 3.3 <a href="#XMLElementAttachement">XML Element Attachment</a><br> 3.4 <a href="#ExternalPolicyAttachment">External Policy Attachment</a><br>4. <a href="#AttachingPolicyUsingWSDL1.1">Attaching Policies Using WSDL 1.1</a><br> 4.1 <a href="#CaculatingEffectivyPolicywithWSDL1.1">Calculating Effective Policy in WSDL 1.1</a><br> 4.1.1 <a href="#ServicePolicySubject">Service Policy Subject</a><br> 4.1.2 <a href="#EndpointPolicySubject">Endpoint Policy Subject</a><br> 4.1.3 <a href="#OperationPolicySubject">Operation Policy Subject</a><br> 4.1.4 <a href="#MessagePolicySubject">Message Policy Subject</a><br> 4.1.5 <a href="#Example2">Example</a><br>5. <a href="#ws-policy-attachment-for-wsdl20">WS-Policy Attachment for WSDL 2.0</a><br> 5.1 <a href="#wsdl20-example">Example</a><br> 5.2 <a href="#attaching-policy-expressions">Attaching Policy Expressions</a><br> 5.3 <a href="#extension-to-wsdl-component-model">Extension to WSDL Component Model</a><br>  5.4 <a href="#effective-policy">Effective Policy</a><br> 5.4.1 <a href="#service-policy-subject">Service Policy Subject</a><br> 5.4.2 <a href="#endpoint-policy-subject">Endpoint Policy Subject</a><br> 5.4.3 <a href="#operation-policy-subject">Operation Policy Subject</a><br> 5.4.4 <a href="#message-policy-subject-input">Message Policy Subject (input message)</a><br> 5.4.5 <a href="#message-policy-subject-output">Message Policy Subject (output message)</a><br> 5.4.6 <a href="#message-policy-subject-input-fault">Message Policy Subject (input fault message)</a><br> 5.4.7 <a href="#message-policy-subject-output-fault">Message Policy Subject (output fault message)</a><br>. <a href="#AttachingPoliciesUsingUDDI">Attaching Policies Using UDDI</a><br> 6.1 <a href="#CalculatingEffectivePolicyElementPolicyUDDI">Calculating Effective Policy and Element Policy in UDDI</a><br> 6.1.1 <a href="#ServiceProviderPolicySubjectUDDI">Service Provider Policy Subject</a><br> 6.1.2 <a href="#ServicePolicySubjectUDDI">Service Policy Subject</a><br> 6.1.3 <a href="#EndpointPolicySubjectUDDI">Endpoint Policy Subject</a><br> 6.2 <a href="#ReferencingRemotePolicyExpressions">Referencing Remote Policy Expressions</a><br> 6.3 <a href="#RegisteringReusablePolicyExpressions">Registering Reusable Policy Expressions</a><br> 6.4 <a href="#RegisteringPoliciesUDDIVersion3">Registering Policies in UDDI Version 3</a><br>7. <a href="#SecurityConsiderations">Security Considerations<a><br>8. <a href="#Conformance">Conformance</a><br> 8.1 <a href="#d3e3771">External Policy Attachment Conformance</a><br> 8.2 <a href="#d3e3783">WSDL 1.1 Attachment Conformance</a><br> 8.3 <a href="#d3e3792">WSDL 2.0 Attachment Conformance</a><br></p> <h3><a name="appendix" id="appendix">Appendices</a></h3><p class="toc">A. <a href="#References">References</a><br> A.1 <a href="#Normative-References">Normative References</a><br> A.2 <a href="#Informative-References">Other References</a><br>B. <a href="#AppendixA">UDDI tModel Definitions</a><br> B.1 <a href="#RemotePolicyReferenceCategorySystem">Remote Policy Reference Category System</a><br> B.1.1 <a href="#DesigGoals1">Design Goals</a><br> B.1.2 <a href="#tModelDefinition1">tModel Definition</a><br> B.1.3 <a href="#ModelStructure1">tModel Structure</a><br> B.2 <a href="#WS-PolicyTypesCategorySystem">Web Services Policy Types Category System</a><br> B.2.1 <a href="#DesignGoals2">Design Goals</a><br> &bsp; B.2.2 <a href="#tModelDefinition2">tModel Definition</a><br> B.2.3 <a href="#ModelStructure2">tModel Structure</a><br> B.3 <a href="#LocalPolicyReferenceCategorySystem">Local Policy Reference Category System</a><br> B.3.1 <a href="#DesignGoals3">Design Goals</a><br> B.3.2 <a href="#tModelDefinition3">tModel Definition</a><br> B.3.3 <a href="#ModelStructure3">tModel Structure</a><br>C. <a href="#acknowledgments">Acknowledgements</a> (Non-Normative)<br>D. <a href="#change-description">Changes in this Version of the Document</a> (Non-Normative)<br>E. <a href="#change-log">Web Services Policy 1.5 - Attachment Change Log</a> (Non-Normative)<br></p></div><hr><div class="body"><div class="div1"> <h2><a name="tocRange"></a>1. Introduction</h2><p> The Web Services Policy 1.5 - Framework [<cite><a href="#WS-Policy">Web Services Policy Framework</a></cite>] @@ -203,11 +205,11 @@ children of a wrapper <code class="elt">wsp:Policy</code> element.</p></dd><dt class="label"> <a href="ws-policy-framework.html#policy">policy</a> - </dt><dd><p id="policy">A <b>policy</b> is a collection of - <a title="" href="#policy_alternative">policy alternatives</a>, </p></dd><dt class="label"> + </dt><dd><p id="policy">A <b>policy</b> is a potentially empty collection of + <a title="" href="#policy_alternative">policy alternatives</a>. </p></dd><dt class="label"> <a href="ws-policy-framework.html#policy_alternative">policy alternative</a> - </dt><dd><p id="policy_alternative">a <b>policy alternative</b> - is a collection of <a title="" href="#policy_assertion">policy assertions</a>.</p></dd><dt class="label"> + </dt><dd><p id="policy_alternative">A <b>policy alternative</b> + is a potentially empty collection of <a title="" href="#policy_assertion">policy assertions</a>.</p></dd><dt class="label"> <a href="ws-policy-framework.html#policy_assertion">policy assertion</a> </dt><dd><p id="policy_assertion">A <b>policy assertion</b> represents an individual requirement, capability, or other property of a behavior.</p></dd><dt class="label"> @@ -224,7 +226,7 @@ <a title="" href="#policy_subject">policy subjects</a> to which a policy may apply.</p></dd><dt class="label"> <a href="ws-policy-framework.html#policy_subject">policy subject</a> </dt><dd><p id="policy_subject">A <b>policy subject</b> is an entity - (e.g., an endpoint, message, resource, interaction) with which a + (e.g., an endpoint, message, resource, operation) with which a <a title="" href="#policy">policy</a> can be associated. </p></dd></dl></div><div class="div2"> <h3><a name="Example"></a>2.4 Example</h3><p>This specification defines several mechanisms for associating policies (Web Services Policy 1.5 - Framework, [<cite><a href="#WS-Policy">Web Services Policy Framework</a></cite>]) with various XML Web service entities. For @@ -285,7 +287,7 @@ (36) </wsp:Policy></pre></div></div><p>The document containing both of these policy expressions is assumed to be located at <code>http://www.example.com/policies</code>. Per Section - <a href="http://dev.w3.org/cvsweb/~checkout~/2006/ws/policy/ws-policy-framework.html?content-type=text/html;charset=utf-8/#Policy_Identification">3.2 + <a href="ws-policy-framework.html/#Policy_Identification">3.2 Policy Identification</a> of Web Services Policy 1.5 - Framework [<cite><a href="#WS-Policy">Web Services Policy Framework</a></cite>], the IRIs used for these <a title="" href="#policy_expression">policy expressions</a> in the remainder of this document are <code>http://www.example.com/policies#RmPolicy</code> and @@ -337,13 +339,13 @@ on WSDL [<cite><a href="#WSDL11">WSDL 1.1</a></cite>] and Policy.</p><p>This specification defines a global attribute that allows <a title="" href="#policy_expression">policy expressions</a> to be attached to an arbitrary XML element. The following is the schema definition for the - <code class="attr">wsp:PolicyURIs</code> attribute:</p><div class="exampleInner"><pre>(01) <xs:schema> -(02) <xs:attribute name="PolicyURIs"> -(03) <xs:simpleType> -(04) <xs:list itemType="xs:anyURI" /> -(05) </xs:simpleType> -(06) </xs:attribute> -(07) </xs:schema></pre></div><p>The namespace URI [<cite><a href="#XML-NS">XML Namespaces</a></cite>] for this attribute is <code>http://www.w3.org/@@@@/@@/ws-policy</code>.</p><p>The <code class="attr">wsp:PolicyURIs</code> attribute contains a white + <code class="attr">wsp:PolicyURIs</code> attribute:</p><div class="exampleInner"><pre><xs:schema> + <xs:attribute name="PolicyURIs"> + <xs:simpleType> + <xs:list itemType="xs:anyURI" /> + </xs:simpleType> + </xs:attribute> +</xs:schema></pre></div><p>The namespace URI [<cite><a href="#XML-NS">XML Namespaces</a></cite>] for this attribute is <code>http://www.w3.org/@@@@/@@/ws-policy</code>.</p><p>The <code class="attr">wsp:PolicyURIs</code> attribute contains a white space-separated list of one or more IRIs [<cite><a href="#RFC3987">IETF RFC 3987</a></cite>]. When this attribute is used, each of the values identifies a <a title="" href="#policy_expression">policy expression</a> as defined by [<cite><a href="#WS-Policy">Web Services Policy Framework</a></cite>]. If more than one IRI is specified, the @@ -359,9 +361,9 @@ attachment</a> mechanism using this attribute <span class="rfc2119">MUST</span> define the <a title="" href="#policy_scope">policy scope</a> of the attachment.</p><p>An example of <a title="element policy" href="#element_policy">element policy</a> through the use of this global attribute is given below using the sample policies stated in Section -<a href="#Example"><b>2.4 Example</b></a>.</p><p>If the <a title="" href="#policy">policies</a> referenced by the following XML element</p><div class="exampleInner"><pre>(01) <MyElement wsp:PolicyURIs=" -(02) http://www.example.com/policies#RmPolicy -(03) http://www.example.com/policies#X509EndpointPolicy" /></pre></div><p>have been processed and <a title="merge" href="#merge">merged</a>, +<a href="#Example"><b>2.4 Example</b></a>.</p><p>If the <a title="" href="#policy">policies</a> referenced by the following XML element</p><div class="exampleInner"><pre><MyElement wsp:PolicyURIs=" + http://www.example.com/policies#RmPolicy + http://www.example.com/policies#X509EndpointPolicy" /></pre></div><p>have been processed and <a title="merge" href="#merge">merged</a>, it would result in an <a title="element policy" href="#element_policy">element policy</a> whose XML 1.0 representation is listed in <a href="#Table4">Example 3-1</a>:</p><div class="exampleOuter"><p style="text-align: left" class="exampleHead"><a name="Table4"></a><i><span>Example 3-1. </span>Example Merged Policy Expression.</i></p><div class="exampleInner"><pre>(01) <wsp:Policy xmlns:rmp="http://docs.oasis-open.org/ws-rx/wsrmp/200602" @@ -385,16 +387,16 @@ associating <a title="" href="#policy_expression">policy expressions</a> with XML-based constructs.</p><p>Alternatively, rather than using the global attribute, XML elements may use the <code class="elt">wsp:Policy</code> or <code class="elt">wsp:PolicyReference</code> elements directly as children, in order to support <a title="element policy" href="#element_policy">element policy</a> (Per Section - <a href="http://dev.w3.org/cvsweb/~checkout~/2006/ws/policy/ws-policy-framework.html?content-type=text/html;charset=utf-8/#Policy_References">4.3.4 + <a href="ws-policy-framework.html/#Policy_References">4.3.4 Policy References</a> of Web Services Policy 1.5 - Framework [<cite><a href="#WS-Policy">Web Services Policy Framework</a></cite>]), and the semantics for this are the same as for the use of the global attribute. For example, an alternative way of attaching the policies in the above example, -using child elements, would be as follows: </p><div class="exampleInner"><pre>(01) <MyElement> -(02) <wsp:PolicyReference -(03) URI="http://www.example.com/policies#RmPolicy" /> -(04) <wsp:PolicyReference -(05) URI="http://www.example.com/policies#X509EndpointPolicy" /> -(06) <MyElement/></pre></div></div><div class="div2"> +using child elements, would be as follows: </p><div class="exampleInner"><pre><MyElement> + <wsp:PolicyReference + URI="http://www.example.com/policies#RmPolicy" /> + <wsp:PolicyReference + URI="http://www.example.com/policies#X509EndpointPolicy" /> +<MyElement/></pre></div></div><div class="div2"> <h3><a name="ExternalPolicyAttachment"></a>3.4 External Policy Attachment</h3><p>This mechanism allows <a title="" href="#policy">policies</a> to be associated with a <a title="" href="#policy_subject">policy subject</a> independent of that subject's definition and/or representation through the use of a <code class="elt">wsp:PolicyAttachment</code> @@ -413,15 +415,15 @@ considered in scope. For example, an Endpoint Reference may be used as a domain expression, and it may contain <a title="" href="#policy_expression">policy expressions</a> within it, but this <a title="" href="#policy_expression">policy expressions</a> are not considered in scope with respect -to the <code class="elt">wsp:PolicyAttachment</code> element using it.</p><p>The following is the pseudo-schema for the <code class="elt">wsp:PolicyAttachment</code> element:</p><div class="exampleInner"><pre>(01) <wsp:PolicyAttachment … > -(02) <wsp:AppliesTo> -(03) <x:DomainExpression/> + -(04) </wsp:AppliesTo> -(05) ( <wsp:Policy>…</wsp:Policy> | -(06) <wsp:PolicyReference>…</wsp:PolicyReference> ) + -(07) <wsse:Security>…</wsse:Security> ? -(08) … -(09) </wsp:PolicyAttachment></pre></div><p>The following describes the attributes and elements listed in the pseudo-schema outlined above:</p><dl><dt class="label"> +to the <code class="elt">wsp:PolicyAttachment</code> element using it.</p><p>The following is the pseudo-schema for the <code class="elt">wsp:PolicyAttachment</code> element:</p><div class="exampleInner"><pre><wsp:PolicyAttachment … > + <wsp:AppliesTo> + <x:DomainExpression/> + + </wsp:AppliesTo> + ( <wsp:Policy>…</wsp:Policy> | + <wsp:PolicyReference>…</wsp:PolicyReference> ) + + <wsse:Security>…</wsse:Security> ? + … +</wsp:PolicyAttachment></pre></div><p>The following describes the attributes and elements listed in the pseudo-schema outlined above:</p><dl><dt class="label"> <code class="elt">/wsp:PolicyAttachment</code> </dt><dd><p>This describes an external <a title="" href="#policy_attachment">policy attachment</a>.</p></dd><dt class="label"> <code class="elt">/wsp:PolicyAttachment/wsp:AppliesTo</code> @@ -459,15 +461,15 @@ or resources with which a policy can be associated. For example, domain expressions may be used to refer to WSDL 1.1 definitions, WSDL 2.0 components, endpoint references, etc.</p><p>The following example illustrates the use of this mechanism with an EndpointReference domain expression for a deployed endpoint as defined -in Web Services Addressing [<cite><a href="#WS-Addressing">WS-Addressing Core</a></cite>]:</p><div class="exampleInner"><pre>(01) <wsp:PolicyAttachment> -(02) <wsp:AppliesTo> -(03) <wsa:EndpointReference> -(04) <wsa:Address>http://www.example.com/acct</wsa:Address> -(05) </wsa:EndpointReference> -(06) </wsp:AppliesTo> -(07) <wsp:PolicyReference -(08) URI="http://www.example.com/policies#RmPolicy" /> -(09) </wsp:PolicyAttachment></pre></div><p>In this example, the <a title="" href="#policy_expression">policy expression</a> at +in Web Services Addressing [<cite><a href="#WS-Addressing">WS-Addressing Core</a></cite>]:</p><div class="exampleInner"><pre><wsp:PolicyAttachment> + <wsp:AppliesTo> + <wsa:EndpointReference> + <wsa:Address>http://www.example.com/acct</wsa:Address> + </wsa:EndpointReference> + </wsp:AppliesTo> + <wsp:PolicyReference + URI="http://www.example.com/policies#RmPolicy" /> +</wsp:PolicyAttachment></pre></div><p>In this example, the <a title="" href="#policy_expression">policy expression</a> at <code>http://www.example.com/policies#RmPolicy</code> applies to all interactions with the endpoint at <code>http://www.example.com/acct</code>.</p></div></div><div class="div1"> @@ -529,7 +531,7 @@ <a title="merge" href="#merge">merged</a> into the <a title="effective policy" href="#effective_policy">effective policy</a> of every implementation of that abstract WSDL definition.</p><p>Policies that are attached to a deployed resource (e.g., services or ports) are only considered in the <a title="effective policy" href="#effective_policy">effective policy</a> of that deployed -resource itself.</p><div class="figure" style="text-align: center"><a name="Figure1"></a><br><img src="effective-policy-scope.jpg" alt="Effective Policy and Policy Scopes in WSDL"><p style="text-align:left"><i><span>Figure 4-1. </span>Effective Policy and Policy Scopes in WSDL</i></p><br></div><p>(This graphic is also available in SVG format <a href="effective-policy-scope.svg">here</a>.)</p><p>When attaching policies at different levels of the WSDL hierarchy, care must be taken. +resource itself.</p><div class="figure" style="text-align: center"><a name="Figure1"></a><br><img src="effective-policy-scope.jpg" alt="Effective Policy and Policy Scopes in WSDL"><p style="text-align:left"><i><span>Figure 4-1. </span>Effective Policy and Policy Scopes in WSDL</i></p><br></div><p>(This graphic is also available in SVG format <a href="ws-policy-attachment.html/effective-policy-scope.svg">here</a>.)</p><p>When attaching policies at different levels of the WSDL hierarchy, care must be taken. A message exchange with an endpoint <span class="rfc2119">MAY</span> be described by the <a title="effective policy" href="#effective_policy">effective policies</a> in all four subject types simultaneously.</p><p>For example, in <a href="#Figure1">Figure 4-1</a>, for a particular input message to a deployed @@ -1119,17 +1121,17 @@ <code class="elt">businessService</code> , and a tModel using the entity's <code class="elt">categoryBag</code> . For example, associating the <a title="" href="#policy_expression">policy expression</a> that is identified by the IRI <code>http://www.example.com/myservice/policy</code> with a <code class="elt">businessService</code> is -done as follows: </p><div class="exampleInner"><pre>(01) <businessService serviceKey="…" > -(02) <name>…</name> -(03) <description>…</description> -(04) <bindingTemplates>…</bindingTemplates> -(05) <categoryBag> -(06) <keyedReference -(07) keyName="Policy Expression for example's Web services" -(08) keyValue="http://www.example.com/myservice/policy" -(09) tModelKey="uuid:a27078e4-fd38-320a-806f-6749e84f8005" /> -(10) </categoryBag> -(11) </businessService></pre></div><p>The <code class="attr">tModelKey</code> of the <code class="elt">keyedReference</code> +done as follows: </p><div class="exampleInner"><pre><businessService serviceKey="…" > + <name>…</name> + <description>…</description> + <bindingTemplates>…</bindingTemplates> + <categoryBag> + <keyedReference + keyName="Policy Expression for example's Web services" + keyValue="http://www.example.com/myservice/policy" + tModelKey="uuid:a27078e4-fd38-320a-806f-6749e84f8005" /> + </categoryBag> +</businessService></pre></div><p>The <code class="attr">tModelKey</code> of the <code class="elt">keyedReference</code> <span class="rfc2119">MUST</span> match the fixed <code class="attr">tModelKey</code> from the remote policy reference category system. The <code class="attr">keyValue</code> @@ -1138,19 +1140,19 @@ expression</a> with a <code class="elt">bindingTemplate</code> , since bindingTemplates do not contain a <code class="elt">categoryBag</code> in UDDI Version 2. Therefore, the <code class="elt">bindingTemplate</code> 's <code class="elt">tModelInstanceInfo</code> and <code class="elt">instanceParms</code> -<span class="rfc2119">MUST</span> be used as follows: </p><div class="exampleInner"><pre>(01) <bindingTemplate bindingKey="…" > -(02) <accessPoint>…</accessPoint> -(03) <tModelInstanceDetails> -(04) <tModelInstanceInfo -(05) tModelKey="uuid:a27078e4-fd38-320a-806f-6749e84f8005" > -(06) <instanceDetails> -(07) <instanceParms> -(08) http://www.example.com/myservice/policy -(09) </instanceParms> -(10) </instanceDetails> -(11) </tModelInstanceInfo> -(12) </tModelInstanceDetails> -(13) </bindingTemplate></pre></div><p>The <code class="attr">tModelKey</code> of the <code class="elt">tModelInstanceInfo</code> +<span class="rfc2119">MUST</span> be used as follows: </p><div class="exampleInner"><pre><bindingTemplate bindingKey="…" > + <accessPoint>…</accessPoint> + <tModelInstanceDetails> + <tModelInstanceInfo + tModelKey="uuid:a27078e4-fd38-320a-806f-6749e84f8005" > + <instanceDetails> + <instanceParms> + http://www.example.com/myservice/policy + </instanceParms> + </instanceDetails> + </tModelInstanceInfo> + </tModelInstanceDetails> +</bindingTemplate></pre></div><p>The <code class="attr">tModelKey</code> of the <code class="elt">tModelInstanceInfo</code> <span class="rfc2119">MUST</span> match the fixed <code class="attr">tModelKey</code> from the remote policy reference category system as defined above. The <code class="elt">instanceParms</code> @@ -1163,26 +1165,26 @@ Types category system as a tModel. This tModel is defined in Appendix <a href="#WS-PolicyTypesCategorySystem"><b>B.2 Web Services Policy Types Category System</b></a>.</p><p>The following illustrates a tModel for the <a title="" href="#policy_expression">policy expression</a> identified by the IRI -<code>http://www.example.com/myservice/policy</code>.</p><div class="exampleInner"><pre>(01) <tModel tModelKey="uuid:04cfa…"> -(02) <name>…</name> -(03) <description xml:lang="EN"> -(04) Policy Expression for example's Web services -(05) </description> -(06) <overviewDoc> -(07) <description xml:lang="EN">Web Services Policy Expression</description> -(08) <overviewURL>http://www.example.com/myservice/policy</overviewURL> -(09) </overviewDoc> -(10) <categoryBag> -(11) <keyedReference -(12) keyName="Reusable policy Expression" -(13) keyValue="policy" -(14) tModelKey="uuid:fa1d77dc-edf0-3a84-a99a-5972e434e993" /> -(15) <keyedReference -(16) keyName="Policy Expression for example's Web services" -(17) keyValue="http://www.example.com/myservice/policy" -(18) tModelKey="uuid:a27078e4-fd38-320a-806f-6749e84f8005" /> -(19) </categoryBag> -(20) </tModel></pre></div><p>The first <code class="elt">keyedReference</code> specifies that the tModel represents a +<code>http://www.example.com/myservice/policy</code>.</p><div class="exampleInner"><pre><tModel tModelKey="uuid:04cfa…"> + <name>…</name> + <description xml:lang="EN"> + Policy Expression for example's Web services + </description> + <overviewDoc> + <description xml:lang="EN">Web Services Policy Expression</description> + <overviewURL>http://www.example.com/myservice/policy</overviewURL> + </overviewDoc> + <categoryBag> + <keyedReference + keyName="Reusable policy Expression" + keyValue="policy" + tModelKey="uuid:fa1d77dc-edf0-3a84-a99a-5972e434e993" /> + <keyedReference + keyName="Policy Expression for example's Web services" + keyValue="http://www.example.com/myservice/policy" + tModelKey="uuid:a27078e4-fd38-320a-806f-6749e84f8005" /> + </categoryBag> +</tModel></pre></div><p>The first <code class="elt">keyedReference</code> specifies that the tModel represents a <a title="" href="#policy_expression">policy expression</a> — rather than only being associated with one — by using the Web Services Policy Types category system's built-in category <code>"policy"</code>, which is its single valid value. This is necessary @@ -1207,17 +1209,17 @@ <code class="elt">businessService</code> , and a tModel using the entity's <code class="elt">categoryBag</code> . For example, associating the <a title="" href="#policy_expression">policy expression</a> tModel with the <code class="attr">tModelKey</code> <code>"uuid:04cfa…"</code> from above with a <code class="elt">businessService</code> is done as -follows: </p><div class="exampleInner"><pre>(01) <businessService serviceKey="…" > -(02) <name>…</name> -(03) <description>…</description> -(04) <bindingTemplates>…</bindingTemplates> -(05) <categoryBag> -(06) <keyedReference -(07) keyName="Policy Expression for example's Web services" -(08) keyValue="uuid:04cfa…" -(09) tModelKey="uuid:a27f7d45-ec90-31f7-a655-efe91433527c" /> -(10) </categoryBag> -(11) </businessService></pre></div><p>The <code class="attr">tModelKey</code> of the <code class="elt">keyedReference</code> +follows: </p><div class="exampleInner"><pre><businessService serviceKey="…" > + <name>…</name> + <description>…</description> + <bindingTemplates>…</bindingTemplates> + <categoryBag> + <keyedReference + keyName="Policy Expression for example's Web services" + keyValue="uuid:04cfa…" + tModelKey="uuid:a27f7d45-ec90-31f7-a655-efe91433527c" /> + </categoryBag> +</businessService></pre></div><p>The <code class="attr">tModelKey</code> of the <code class="elt">keyedReference</code> <span class="rfc2119">MUST</span> match the fixed <code class="attr">tModelKey</code> from the local policy reference category system. The keyValue <span class="rfc2119">MUST</span> be the <code class="attr">tModelKey</code> of the @@ -1225,17 +1227,17 @@ expression</a> with a <code class="elt">bindingTemplate</code> , since bindingTemplates do not contain a <code class="elt">categoryBag</code> in UDDI Version 2. Therefore, the <code class="elt">bindingTemplate</code> 's <code class="elt">tModelInstanceInfo</code> and <code class="elt">instanceParms</code> -<span class="rfc2119">MUST</span> be used as follows: </p><div class="exampleInner"><pre>(01) <bindingTemplate bindingKey="…" > -(02) <accessPoint>…</accessPoint> -(03) <tModelInstanceDetails> -(04) <tModelInstanceInfo -(05) tModelKey="uuid:a27f7d45-ec90-31f7-a655-efe91433527c" > -(06) <instanceDetails> -(07) <instanceParms>uuid:04cfa…</instanceParms> -(08) </instanceDetails> -(09) </tModelInstanceInfo> -(10) </tModelInstanceDetails> -(11) </bindingTemplate></pre></div><p>The tModelKey of the <code class="elt">tModelInstanceInfo</code> +<span class="rfc2119">MUST</span> be used as follows: </p><div class="exampleInner"><pre><bindingTemplate bindingKey="…" > + <accessPoint>…</accessPoint> + <tModelInstanceDetails> + <tModelInstanceInfo + tModelKey="uuid:a27f7d45-ec90-31f7-a655-efe91433527c" > + <instanceDetails> + <instanceParms>uuid:04cfa…</instanceParms> + </instanceDetails> + </tModelInstanceInfo> + </tModelInstanceDetails> +</bindingTemplate></pre></div><p>The tModelKey of the <code class="elt">tModelInstanceInfo</code> <span class="rfc2119">MUST</span> match the fixed <code class="attr">tModelKey</code> from the local policy reference category system. The <code class="elt">instanceParms</code> <span class="rfc2119">MUST</span> be the <code class="attr">tModelKey</code> of the <a title="" href="#policy_expression">policy @@ -1255,34 +1257,34 @@ <code class="elt">bindingTemplate</code> 's <code class="elt">categoryBag</code> , analogous to the mechanism described for other UDDI entities. For example, the example <code class="elt">bindingTemplate</code> from section <a href="#CalculatingEffectivePolicyElementPolicyUDDI"><b>6.1 Calculating Effective Policy and Element Policy in UDDI</b></a> would be -changed as follows: </p><div class="exampleInner"><pre>(01) <bindingTemplate bindingKey="…" > -(02) <accessPoint>…</accessPoint> -(03) <tModelInstanceDetails>…</tModelInstanceDetails> -(04) <categoryBag> -(05) <keyedReference -(06) keyName="Policy Expression for example's Web services" -(07) keyValue="http://www.example.com/myservice/policy" -(08) tModelKey="uddi:schemas.xmlsoap.org:remotepolicyreference:2003_03" -(09) /> -(10) </categoryBag> -(11) </bindingTemplate></pre></div><p>Third, inquiries for reusable <a title="" href="#policy_expression">policy expression</a> tModels +changed as follows: </p><div class="exampleInner"><pre><bindingTemplate bindingKey="…" > + <accessPoint>…</accessPoint> + <tModelInstanceDetails>…</tModelInstanceDetails> + <categoryBag> + <keyedReference + keyName="Policy Expression for example's Web services" + keyValue="http://www.example.com/myservice/policy" + tModelKey="uddi:schemas.xmlsoap.org:remotepolicyreference:2003_03" + /> + </categoryBag> +</bindingTemplate></pre></div><p>Third, inquiries for reusable <a title="" href="#policy_expression">policy expression</a> tModels described in Section <a href="#RegisteringReusablePolicyExpressions"><b>6.3 Registering Reusable Policy Expressions</b></a> and UDDI tModel entities that are associated with remote <a title="" href="#policy_expression">policy expression</a> is enhanced by the wildcard mechanism for keyValues in keyedReferences. For example, searching for all <a title="" href="#policy_expression">policy expression</a> tModels whose IRI starts with <code>http://www.example.com/</code>, the following <code>find_tModel</code> API call can -be used: </p><div class="exampleInner"><pre>(01) <find_tModel +be used: </p><div class="exampleInner"><pre><find_tModel xmlns="urn:uddi-org:api_v3" > -(02) <categoryBag> -(03) <keyedReference -(04) keyValue="http://www.example.com/" -(05) tModelKey="uddi:schemas.xmlsoap.org:remotepolicyreference:2003_03" -(06) /> -(07) </categoryBag> -(08) <findQualifiers> -(09) <findQualifier>approximateMatch</findQualifier> -(10) </findQualifiers> -(11) </find_tModel></pre></div><p>Fourth, all UDDI entities may be digitally signed using XML digital + <categoryBag> + <keyedReference + keyValue="http://www.example.com/" + tModelKey="uddi:schemas.xmlsoap.org:remotepolicyreference:2003_03" + /> + </categoryBag> + <findQualifiers> + <findQualifier>approximateMatch</findQualifier> + </findQualifiers> +</find_tModel></pre></div><p>Fourth, all UDDI entities may be digitally signed using XML digital signatures [<cite><a href="#XML-Signature">XML-Signature</a></cite>]. Publishers who want to digitally sign their <a title="" href="#policy_expression">policy expression</a> tModels or <a title="" href="#policy_expression">policy expression</a> references in UDDI <span class="rfc2119">MUST</span> use the Schema-centric @@ -1294,11 +1296,11 @@ signed and have an associated security token to specify the signer has the right to "speak for" the scope containing the <a title="" href="#policy">policy</a>.</p></div><div class="div1"> <h2><a name="Conformance"></a>8. Conformance</h2><div class="div2"> -<h3><a name="d3e3767"></a>8.1 External Policy Attachment Conformance</h3><p>An element information item whose namespace name is "http://www.w3.org/@@@@/@@/policy" and whose local part is PolicyAttachment conforms to this specification if it is valid according to the XML Schema [<cite><a href="#XMLSchemaPart1">XML Schema Structures</a></cite>] for that element as defined by this specification (<a href="http://www.w3.org/@@@@/@@/policy/ws-policy.xsd">http://www.w3.org/@@@@/@@/policy/ws-policy.xsd</a>) and additionally adheres to all the constraints contained in Section <a href="#ExternalPolicyAttachment"><b>3.4 External Policy Attachment</b></a> of this specification. Such a conformant element information item constitutes an external policy attachment. </p></div><div class="div2"> -<h3><a name="d3e3779"></a>8.2 WSDL 1.1 Attachment Conformance</h3><p> +<h3><a name="d3e3771"></a>8.1 External Policy Attachment Conformance</h3><p>An element information item whose namespace name is "http://www.w3.org/@@@@/@@/ws-policy" and whose local part is PolicyAttachment conforms to this specification if it is valid according to the XML Schema [<cite><a href="#XMLSchemaPart1">XML Schema Structures</a></cite>] for that element as defined by this specification (<a href="http://www.w3.org/@@@@/@@/ws-policy.xsd">http://www.w3.org/@@@@/@@/ws-policy.xsd</a>) and additionally adheres to all the constraints contained in Section <a href="#ExternalPolicyAttachment"><b>3.4 External Policy Attachment</b></a> of this specification. Such a conformant element information item constitutes an external policy attachment. </p></div><div class="div2"> +<h3><a name="d3e3783"></a>8.2 WSDL 1.1 Attachment Conformance</h3><p> A WSDL 1.1 [<cite><a href="#WSDL11">WSDL 1.1</a></cite>] description conforms to this specification when it incorporates one or more element policies and additionally adheres to all the constraints contained in section <a href="#AttachingPolicyUsingWSDL1.1"><b>4. Attaching Policies Using WSDL 1.1</b></a> </p></div><div class="div2"> -<h3><a name="d3e3788"></a>8.3 WSDL 2.0 Attachment Conformance</h3><p> +<h3><a name="d3e3792"></a>8.3 WSDL 2.0 Attachment Conformance</h3><p> A WSDL 2.0 [<cite><a href="#WSDL20">WSDL 2.0 Core Language</a></cite>] description conforms to this specification when it incorporates one or more element policies and additionally adheres to all the constraints contained in section <a href="#ws-policy-attachment-for-wsdl20"><b>5. WS-Policy Attachment for WSDL 2.0</b></a> </p></div></div></div><div class="back"><div class="div1"> <h2><a name="References"></a>A. References</h2><div class="div2"> @@ -1491,16 +1493,18 @@ </td></tr><tr><th rowspan="1" colspan="1">UDDI V1,V2 format key:</th><td rowspan="1" colspan="1"> <code>uuid:a27078e4-fd38-320a-806f-6749e84f8005</code> </td></tr><tr><th rowspan="1" colspan="1">Categorization:</th><td rowspan="1" colspan="1">categorization</td></tr><tr><th rowspan="1" colspan="1">Checked:</th><td rowspan="1" colspan="1">No</td></tr></tbody></table><br></div><div class="div3"> -<h4><a name="ModelStructure1"></a>B.1.3 tModel Structure</h4><div class="exampleInner"><pre>(01) <tModel tModelKey="uuid:a27078e4-fd38-320a-806f-6749e84f8005" > -(02) <name>http://schemas.xmlsoap.org/ws/2003/03/remotepolicyreference</name> -(03) <description xml:lang="EN">Category system used for UDDI entities to point to an external Web Services Policy Attachment policy expression that describes their characteristics. See Web Services Policy 1.5 - Attachment specification for further details.</description> -(04) <categoryBag> -(05) <keyedReference -(06) keyName="uddi-org:types:categorization" -(07) keyValue="categorization" -(08) tModelKey="uuid:c1acf26d-9672-4404-9d70-39b756e62ab4" /> -(09) </categoryBag> -(10) </tModel></pre></div></div></div><div class="div2"> +<h4><a name="ModelStructure1"></a>B.1.3 tModel Structure</h4><div class="exampleInner"><pre><tModel tModelKey="uuid:a27078e4-fd38-320a-806f-6749e84f8005" > + <name>http://schemas.xmlsoap.org/ws/2003/03/remotepolicyreference</name> + <description xml:lang="EN">Category system used for UDDI entities to point to an external + Web Services Policy Attachment policy expression that describes their characteristics. + See Web Services Policy 1.5 - Attachment specification for further details.</description> + <categoryBag> + <keyedReference + keyName="uddi-org:types:categorization" + keyValue="categorization" + tModelKey="uuid:c1acf26d-9672-4404-9d70-39b756e62ab4" /> + </categoryBag> +</tModel></pre></div></div></div><div class="div2"> <h3><a name="WS-PolicyTypesCategorySystem"></a>B.2 Web Services Policy Types Category System</h3><div class="div3"> <h4><a name="DesignGoals2"></a>B.2.1 Design Goals</h4><p>This tModel is used to categorize tModels as representing <a title="" href="#policy_expression">policy expressions</a>. There is only one valid value, namely <code>"policy"</code>, that @@ -1516,16 +1520,17 @@ </td></tr><tr><th rowspan="1" colspan="1">UDDI V1,V2 format key:</th><td rowspan="1" colspan="1"> <code>uuid:fa1d77dc-edf0-3a84-a99a-5972e434e993</code> </td></tr><tr><th rowspan="1" colspan="1">Categorization:</th><td rowspan="1" colspan="1">categorization</td></tr><tr><th rowspan="1" colspan="1">Checked:</th><td rowspan="1" colspan="1">No</td></tr></tbody></table><br></div><div class="div3"> -<h4><a name="ModelStructure2"></a>B.2.3 tModel Structure</h4><div class="exampleInner"><pre>(01) <tModel tModelKey="uuid:fa1d77dc-edf0-3a84-a99a-5972e434e993" > -(02) <name>http://schemas.xmlsoap.org/ws/2003/03/policytypes</name> -(03) <description xml:lang="EN">Web Services Policy Types category system used for UDDI tModels to characterize them as Web Services Policy – based policy expressions.</description> -(04) <categoryBag> -(05) <keyedReference -(06) keyName="uddi-org:types:categorization" -(07) keyValue="categorization" -(08) tModelKey="uuid:c1acf26d-9672-4404-9d70-39b756e62ab4" /> -(09) </categoryBag> -(10) </tModel></pre></div></div></div><div class="div2"> +<h4><a name="ModelStructure2"></a>B.2.3 tModel Structure</h4><div class="exampleInner"><pre><tModel tModelKey="uuid:fa1d77dc-edf0-3a84-a99a-5972e434e993" > + <name>http://schemas.xmlsoap.org/ws/2003/03/policytypes</name> + <description xml:lang="EN">Web Services Policy Types category system used for UDDI tModels + to characterize them as Web Services Policy – based policy expressions.</description> + <categoryBag> + <keyedReference + keyName="uddi-org:types:categorization" + keyValue="categorization" + tModelKey="uuid:c1acf26d-9672-4404-9d70-39b756e62ab4" /> + </categoryBag> +</tModel></pre></div></div></div><div class="div2"> <h3><a name="LocalPolicyReferenceCategorySystem"></a>B.3 Local Policy Reference Category System</h3><div class="div3"> <h4><a name="DesignGoals3"></a>B.3.1 Design Goals</h4><p>This tModel is used to attach a <a title="" href="#policy_expression">policy expression</a> to a UDDI entity by referencing the UDDI entity that represents this <a title="" href="#policy_expression">policy expression</a>. The local policy @@ -1544,24 +1549,26 @@ </td></tr><tr><th rowspan="1" colspan="1">UDDI V1,V2 format key:</th><td rowspan="1" colspan="1"> <code>uuid:a27f7d45-ec90-31f7-a655-efe91433527c</code> </td></tr><tr><th rowspan="1" colspan="1">Categorization:</th><td rowspan="1" colspan="1">categorization</td></tr><tr><th rowspan="1" colspan="1">Checked:</th><td rowspan="1" colspan="1">Yes</td></tr></tbody></table><br></div><div class="div3"> -<h4><a name="ModelStructure3"></a>B.3.3 tModel Structure</h4><div class="exampleInner"><pre>(01) <tModel tModelKey="uuid:a27f7d45-ec90-31f7-a655-efe91433527c" > -(02) <name>http://schemas.xmlsoap.org/ws/2003/03/localpolicyreference</name> -(03) <description xml:lang="en">Category system used for UDDI entities to point to a Web Services Policy policy expression tModel that describes their characteristics. See Web Services Policy 1.5 - Attachment specification for further details.</description> -(04) <categoryBag> -(05) <keyedReference -(06) keyName="uddi-org:types:categorization" -(07) keyValue="categorization" -(08) tModelKey="uuid:c1acf26d-9672-4404-9d70-39b756e62aB4" /> -(09) <keyedReference -(10) keyName="uddi-org:types:checked" -(11) keyValue="checked" -(12) tModelKey="uuid:c1acf26d-9672-4404-9d70-39b756e62aB4" /> -(13) <keyedReference -(14) keyName="uddi-org:entityKeyValues" -(15) keyValue="tModelKey" -(16) tModelKey="uuid:916b87bf-0756-3919-8eae-97dfa325e5a4" /> -(17) </categoryBag> -(18) </tModel> </pre></div></div></div></div><div class="div1"> +<h4><a name="ModelStructure3"></a>B.3.3 tModel Structure</h4><div class="exampleInner"><pre><tModel tModelKey="uuid:a27f7d45-ec90-31f7-a655-efe91433527c" > + <name>http://schemas.xmlsoap.org/ws/2003/03/localpolicyreference</name> + <description xml:lang="en">Category system used for UDDI entities to point to a + Web Services Policy policy expression tModel that describes their characteristics. + See Web Services Policy 1.5 - Attachment specification for further details.</description> + <categoryBag> + <keyedReference + keyName="uddi-org:types:categorization" + keyValue="categorization" + tModelKey="uuid:c1acf26d-9672-4404-9d70-39b756e62aB4" /> + <keyedReference + keyName="uddi-org:types:checked" + keyValue="checked" + tModelKey="uuid:c1acf26d-9672-4404-9d70-39b756e62aB4" /> + <keyedReference + keyName="uddi-org:entityKeyValues" + keyValue="tModelKey" + tModelKey="uuid:916b87bf-0756-3919-8eae-97dfa325e5a4" /> + </categoryBag> +</tModel> </pre></div></div></div></div><div class="div1"> <h2><a name="acknowledgments"></a>C. Acknowledgements (Non-Normative)</h2><p>This document is the work of the <a href="http://www.w3.org/2002/ws/policy/">W3C Web Services Policy Working Group</a>.</p><p> Members of the Working Group are (at the time of writing, and by
Received on Friday, 27 October 2006 22:18:51 UTC