2006/ws/policy ws-policy-framework.xml,1.110,1.111 ws-policy-framework.html,1.90,1.91

Update of /sources/public/2006/ws/policy
In directory hutz:/tmp/cvs-serv22649

Modified Files:
	ws-policy-framework.xml ws-policy-framework.html 
Log Message:
Implemented the resolution for issues 4196 and 4238. Editors' action 142.

Index: ws-policy-framework.xml
===================================================================
RCS file: /sources/public/2006/ws/policy/ws-policy-framework.xml,v
retrieving revision 1.110
retrieving revision 1.111
diff -u -d -r1.110 -r1.111
--- ws-policy-framework.xml	23 Jan 2007 02:17:30 -0000	1.110
+++ ws-policy-framework.xml	24 Jan 2007 02:41:23 -0000	1.111
@@ -210,7 +210,8 @@
     <ulist>
         <item>
         	<p>An element extensibility point is referred to using {any} in place of the element name. This 
-indicates that any element name can be used, from any namespace. </p>
+        	    indicates that any element name can be used, from any namespace, 
+        	    unless specified otherwise such as in Section <specref ref='Policy_Operators'/>. </p>
 		</item>
 		<item>
 			<p>An attribute extensibility point is referred to using @{any} in place of the attribute name. This 
@@ -531,11 +532,21 @@
 		is an XML Infoset representation of a <termref def='policy'>policy</termref>, 
 		either in a normal form or in an equivalent compact form.</termdef>
 	  </p>
-	  <p> The normal form of a policy expression is the most straightforward
-	  Infoset representation; equivalent, alternative Infosets allow compactly
-	  expressing a policy through a number of constructs.</p>
-	  
-
+	    
+	    <p>The normal form (see Section <specref ref="Normal_Form_Policy_Expression"/>) of a policy expression is the most 
+	    straightforward XML Infoset representation of the policy data model. 
+	    Equivalent, alternative representations allow policy authors to compactly 
+	    express a policy (see Section <specref ref="Compact_Policy_Expression" />). 
+	    Policy authors might be more 
+	        interested in the compact form (see Section 
+	        <specref ref="Compact_Policy_Expression" />), where the outlines and 
+	    definitions describe what is valid with regards to the policy language XML 
+	    Schema.</p> 
+	    
+	    <p>While the policy language XML Schema is a representation of the compact 
+	    form, the normal form is more restrictive as outlined in Section 
+	    <specref ref="Normal_Form_Policy_Expression"/>.</p>
+	    
 	  <div2 id="Normal_Form_Policy_Expression">
 	    <head>Normal Form Policy Expression</head>
 
@@ -690,51 +701,18 @@
 XML Infoset, this specification defines three constructs: an attribute
 to decorate an <termref def='policy_assertion'>assertion</termref>,
 semantics for recursively nested policy operators, and a policy
-reference/inclusion mechanism. Each is described in the subsections
-below.</p>
+    reference/inclusion mechanism. Each sub section below 
+    describes a construct and its equivalent normal form. 
+    To interpret a compact expression in an interoperable form, a 
+    policy expression in the compact form can be converted 
+    (see Section <specref ref="normalization"/>) to the normal form (see Section <specref ref="Normal_Form_Policy_Expression"/>).</p>
+<p>A <termref def='policy_expression'>policy expression</termref> 
+    consists of a <el>wsp:Policy</el> wrapper element and 
+    zero or more child and descendent elements.</p>
+
+
 
-<p>To interpret a compact <termref def="policy_expression">expression</termref> in an interoperable form,
-a compact expression may be converted to the corresponding normal form
-expression by the following procedure:</p>
 
-<olist>
-<item><p>Start with the Element Information Item E (as defined in the XML Information Set [<bibref
-	      ref="XMLInfoset"/>]) of the
-policy expression. The <emph role="infoset-property">namespace
-name</emph> of E is always <code>"&nsuri;"</code>. In the base case,
-the <emph role="infoset-property">local name</emph> property of E is
-<code>"Policy"</code>; in the recursive case, the <emph
-role="infoset-property">local name</emph> property of E is
-<code>"Policy"</code>, <code>"ExactlyOne"</code>, or
-<code>"All"</code>.</p></item>
-<item><p>Expand Element Information Items (as defined in the XML Information Set [<bibref
-	      ref="XMLInfoset"/>]) in the <emph
-role="infoset-property">children</emph> property of E that are policy
-references per Section <specref ref='Policy_Inclusion'/>.</p></item>
-<item><p>Convert each Element Information Item C in the <emph
-role="infoset-property">children</emph> property of E into normal
-form.</p>
-<olist>
-<item><p>If the <emph role="infoset-property">namespace name</emph>
-property of C is <code>"&nsuri;"</code> and the <emph role="infoset-property">local
-name</emph> property of C is <code>"Policy"</code>,
-<code>"ExactlyOne"</code>, or <code>"All"</code>, C is an expression
-of a policy operator; normalize C by recursively applying this
-procedure.</p></item>
-<item><p>Otherwise the Element Information Item C is an assertion;
-normalize C per Sections <specref ref='Optional_Policy_Assertions'/>
-and <specref ref='Policy_Assertion_Nesting'/>.</p></item>
-</olist>
-</item>
-<item><p>Apply the policy operator indicated by E to the normalized
-Element Information Items in its <emph
-role="infoset-property">children</emph> property and construct a
-normal form per Section <specref ref='Policy_Operators'/> and <specref ref="Normal_Form_Policy_Expression" />.</p></item>
-</olist>
-<p>Note that an implementation may use a more efficient procedure and
-is not required to explicitly convert a compact expression into the
-normal form as long as the processing results are indistinguishable
-from doing so.</p>
 <div3 id="Optional_Policy_Assertions">
 <head>Optional Policy Assertions</head>
 <p>To indicate that a <termref def='policy_assertion'>policy
@@ -938,7 +916,7 @@
 <head>Policy Operators</head>
     <p><termref def='policy'>Policies</termref> are used to convey a set of capabilities, requirements, and general characteristics of entities (see <specref ref="tocRange"/>).
     These are generally expressible as a set of <termref def='policy_alternative'>policy alternatives</termref>.
-    Policy operators (<el>wsp:Policy</el>, <el>wsp:All</el> and <el>wsp:ExactlyOne</el>)
+    Policy operators (<el>wsp:Policy</el>, <el>wsp:All</el> and <el>wsp:ExactlyOne</el> elements)
     are used to group <termref def='policy_assertion'>policy assertions</termref>
     into <termref def='policy_alternative'>policy alternatives</termref>.
 To compactly express complex policies, policy operators
@@ -947,6 +925,107 @@
 <el>wsp:ExactlyOne</el> <rfc2119>MAY</rfc2119> be nested within
 <el>wsp:Policy</el>, <el>wsp:All</el>, and/or
 <el>wsp:ExactlyOne</el>.</p>
+
+<p>The schema outline for the <el>wsp:Policy</el> element in the compact form is as follows:</p>
+    <eg xml:space="preserve" role="needs-numbering">&lt;wsp:Policy &hellip; &gt;
+  ( &lt;wsp:Policy &hellip;&gt;&hellip;&lt;/wsp:Policy&gt; |
+    &lt;wsp:ExactlyOne&gt;&hellip;&lt;/wsp:ExactlyOne&gt; |         
+    &lt;wsp:All&gt;&hellip;&lt;/wsp:All&gt; |
+    &lt;wsp:PolicyReference &hellip; &gt;&hellip;&lt;/wsp:PolicyReference&gt; |
+    &hellip;
+  )* 
+&lt;/wsp:Policy&gt;</eg>
+    <p>The following describes the Attribute and Element Information Items defined in the schema outline above:</p>
+    <glist>
+        <gitem><label><el>/wsp:Policy</el></label> 
+            <def><p>This element is the <el>wsp:Policy</el> operator.</p></def></gitem>
+        <gitem><label><el>/wsp:Policy/wsp:Policy</el></label> 
+            <def><p>This element is a nested <el>wsp:Policy</el> operator.</p></def></gitem>
+        <gitem><label><el>/wsp:Policy/wsp:ExactlyOne</el></label> 
+            <def><p>This element is a nested <el>wsp:ExactlyOne</el> operator.</p></def></gitem> 
+        <gitem><label><el>/wsp:Policy/wsp:All</el></label> 
+            <def><p>This element is a nested <el>wsp:All</el> operator.</p></def></gitem>
+        <gitem><label><el>/wsp:Policy/wsp:PolicyReference</el></label> 
+            <def><p>This element references a policy expression to be included per Section 
+                <specref ref="Policy_Inclusion"/>.</p></def></gitem> 
+        <gitem><label><el>/wsp:Policy/@{any}</el></label> 
+            <def><p>Additional attributes <rfc2119>MAY</rfc2119> be specified but 
+                <rfc2119>MUST NOT</rfc2119> contradict the semantics of the 
+                <emph role="infoset-property">owner element</emph>; 
+                if an attribute is not recognized, it <rfc2119>SHOULD</rfc2119> be ignored.</p></def></gitem> 
+        <gitem><label><el>/wsp:Policy/{any}</el></label> 
+            <def><p>Additional elements <rfc2119>MAY</rfc2119> be specified. Such elements 
+            <rfc2119>MUST NOT</rfc2119> use the Web Services Policy language 
+                XML namespace name and <rfc2119>MUST NOT</rfc2119> contradict the semantics 
+                of the <emph role="infoset-property">parent element</emph>.</p></def></gitem> 
+    </glist>
+
+    <p>The schema outline for the <el>wsp:ExactlyOne</el> element in the compact form is as follows:</p>
+    <eg xml:space="preserve" role="needs-numbering">&lt;wsp:ExactlyOne&gt;
+  ( &lt;wsp:Policy &hellip; &gt;&hellip;&lt;/wsp:Policy&gt; |
+    &lt;wsp:ExactlyOne&gt;&hellip;&lt;/wsp:ExactlyOne&gt; |
+    &lt;wsp:All&gt;&hellip;&lt;/wsp:All&gt; |
+    &lt;wsp:PolicyReference &hellip; &gt;&hellip;&lt;/wsp:PolicyReference&gt; |
+    &hellip;
+  )* 
+&lt;/wsp:ExactlyOne&gt;</eg>
+    <p>The following describes the Attribute and Element Information Items defined in the schema outline above:</p>
+    
+    <glist>
+        <gitem><label><el>/wsp:ExactlyOne</el></label> 
+            <def><p>This element is the <el>wsp:ExactlyOne</el> operator.</p></def></gitem> 
+        <gitem><label><el>/wsp:ExactlyOne/wsp:Policy</el></label> 
+            <def><p>This element is a nested  <el>wsp:Policy</el> operator.</p></def></gitem> 
+        <gitem><label><el>/wsp:ExactlyOne/wsp:ExactlyOne</el></label> 
+            <def><p>This element is a nested <el>wsp:ExactlyOne</el> operator.</p></def></gitem> 
+        <gitem><label><el>/wsp:ExactlyOne/wsp:All</el></label> 
+            <def><p>This element is a nested <el>wsp:All operator</el>.</p></def></gitem> 
+        <gitem><label><el>/wsp:ExactlyOne/wsp:PolicyReference</el></label> 
+            <def><p>This element references a policy expression to be included per Section 
+            <specref ref="Policy_Inclusion"/>.</p></def></gitem> 
+        <gitem><label><el>/wsp:ExactlyOne/{any}</el></label> 
+            <def><p>Additional elements <rfc2119>MAY</rfc2119> be specified. Such elements 
+                <rfc2119>MUST NOT</rfc2119> use the Web Services Policy language 
+                XML namespace name and <rfc2119>MUST NOT</rfc2119> contradict the semantics 
+                of the <emph role="infoset-property">parent element</emph>.</p></def></gitem> 
+    </glist>
+    <p>The schema outline for the <el>wsp:All</el> element in the compact form is as follows:</p>
+    
+    <eg xml:space="preserve" role="needs-numbering">&lt;wsp:All&gt;
+  ( &lt;wsp:Policy &hellip; &gt;&hellip;&lt;/wsp:Policy&gt; |
+    &lt;wsp:ExactlyOne&gt;&hellip;&lt;/wsp:ExactlyOne&gt; |
+    &lt;wsp:All&gt;&hellip;&lt;/wsp:All&gt; |
+    &lt;wsp:PolicyReference &hellip; &gt;&hellip;&lt;/wsp:PolicyReference&gt; |
+    &hellip;
+  )* 
+&lt;/wsp:All&gt;</eg>
+    
+<p>The following describes the Attribute and Element Information Items defined in the schema outline above:</p>
+    <glist>
+        <gitem><label><el>/wsp:All</el></label> 
+            <def><p>This element is the <el>wsp:All</el> operator.</p></def></gitem> 
+        <gitem><label><el>/wsp:All/wsp:Policy</el></label> 
+            <def><p>This element is a nested <el>wsp:Policy</el> operator.</p></def></gitem> 
+        <gitem><label><el>/wsp:All/wsp:ExactlyOne</el></label> 
+            <def><p>This element is a nested <el>wsp:ExactlyOne</el> operator.</p></def></gitem> 
+        <gitem><label><el>/wsp:All/wsp:All</el></label> 
+            <def><p>This element is a nested <el>wsp:All</el> operator.</p></def></gitem> 
+        <gitem><label><el>/wsp:All/wsp:PolicyReference</el></label> 
+            <def><p>This element references a policy expression to be included per Section 
+            <specref ref="Policy_Inclusion"/>.</p></def></gitem> 
+        <gitem><label><el>/wsp:All/{any}</el></label> 
+            <def><p>Additional elements <rfc2119>MAY</rfc2119> be specified. Such elements 
+                <rfc2119>MUST NOT</rfc2119> use the Web Services Policy language 
+                XML namespace name and <rfc2119>MUST NOT</rfc2119> contradict the semantics 
+                of the <emph role="infoset-property">parent element</emph>.</p></def></gitem>
+    </glist>    
+
+    <note><p>The <el>wsp:Policy element</el> allows attribute extensibility to 
+    accommodate the use of attributes specified in Section <specref ref="Policy_Identification"/>. 
+    Otherwise, policy operators (<el>wsp:Policy</el> , <el>wsp:All</el> and 
+    <el>wsp:ExactlyOne</el> elements) do not allow attribute extensibility 
+    because such attributes are not preserved through normalization.</p></note>    
+            
 <p>The following rules are used to transform a compact policy expression into a normal form policy expression:</p>
 <glist><gitem>
 <label>Equivalence</label>
@@ -1258,6 +1337,51 @@
 (05) &lt;/wsp:Policy&gt;</eg>
 <p>There are times when it is desirable to "re-use" a portion of a policy expression. Generally, this can be accomplished by placing the common assertions in a separate policy expression and referencing it. </p>
 </div3>
+<div3 id="normalization">
+    <head>Normalization</head>
+    <p>To interpret a compact <termref def="policy_expression">expression</termref> in an interoperable form,
+        a compact expression may be converted to the corresponding normal form
+        expression by the following procedure:</p>
+    
+    <olist>
+        <item><p>Start with the Element Information Item E (as defined in the XML Information Set [<bibref
+            ref="XMLInfoset"/>]) of the
+            policy expression. The <emph role="infoset-property">namespace
+                name</emph> of E is always <code>"&nsuri;"</code>. In the base case,
+            the <emph role="infoset-property">local name</emph> property of E is
+            <code>"Policy"</code>; in the recursive case, the <emph
+                role="infoset-property">local name</emph> property of E is
+            <code>"Policy"</code>, <code>"ExactlyOne"</code>, or
+            <code>"All"</code>.</p></item>
+        <item><p>Expand Element Information Items (as defined in the XML Information Set [<bibref
+            ref="XMLInfoset"/>]) in the <emph
+                role="infoset-property">children</emph> property of E that are policy
+            references per Section <specref ref='Policy_Inclusion'/>.</p></item>
+        <item><p>Convert each Element Information Item C in the <emph
+            role="infoset-property">children</emph> property of E into normal
+            form.</p>
+            <olist>
+                <item><p>If the <emph role="infoset-property">namespace name</emph>
+                    property of C is <code>"&nsuri;"</code> and the <emph role="infoset-property">local
+                        name</emph> property of C is <code>"Policy"</code>,
+                    <code>"ExactlyOne"</code>, or <code>"All"</code>, C is an expression
+                    of a policy operator; normalize C by recursively applying this
+                    procedure.</p></item>
+                <item><p>Otherwise the Element Information Item C is an assertion;
+                    normalize C per Sections <specref ref='Optional_Policy_Assertions'/>
+                    and <specref ref='Policy_Assertion_Nesting'/>.</p></item>
+            </olist>
+        </item>
+        <item><p>Apply the policy operator indicated by E to the normalized
+            Element Information Items in its <emph
+                role="infoset-property">children</emph> property and construct a
+            normal form per Section <specref ref='Policy_Operators'/> and <specref ref="Normal_Form_Policy_Expression" />.</p></item>
+    </olist>
+    <p>Note that an implementation may use a more efficient procedure and
+        is not required to explicitly convert a compact expression into the
+        normal form as long as the processing results are indistinguishable
+        from doing so.</p>
+</div3>
 </div2>
 <div2 id="ignorable-policy-assertions">
 <head>Ignorable Policy Assertions</head>
@@ -2492,7 +2616,17 @@
                             for issue <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=4235">4235</loc>.
                             Editors' action <loc href="http://www.w3.org/2005/06/tracker/wspolicyeds/actions/147">147</loc>.
                         </td>
-                    </tr>  
+                    </tr>
+                    <tr>
+                        <td>20070123</td>
+                        <td>ASV</td>
+                        <td>Implemented the 
+                            <loc href="http://lists.w3.org/Archives/Public/public-ws-policy/2007Jan/0186.html">resolution</loc> 
+                            for issues <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=4196">4196</loc>
+                            and <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=4238">4238</loc>.
+                            Editors' action <loc href="http://www.w3.org/2005/06/tracker/wspolicyeds/actions/142">142</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.90
retrieving revision 1.91
diff -u -d -r1.90 -r1.91
--- ws-policy-framework.html	23 Jan 2007 02:17:30 -0000	1.90
+++ ws-policy-framework.html	24 Jan 2007 02:41:23 -0000	1.91
@@ -62,7 +62,7 @@
 	  requirements and capabilities.</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>&nbsp;&nbsp;&nbsp;&nbsp;1.1 <a href="#Example">Example</a><br>2. <a href="#Notation_Terminlogy">Notations and Terminology</a><br>&nbsp;&nbsp;&nbsp;&nbsp;2.1 <a href="#Notational_Conventions">Notational Conventions</a><br>&nbsp;&nbsp;&nbsp;&nbsp;2.2 <a href="#Extensibility">Extensibility</a><br>&nbsp;&nbsp;&nbsp;&nbsp;2.3 <a href="#XML_Namespaces">XML Namespaces</a><br>&nbsp;&nbsp;&nbsp;&nbsp;2.4 <a href="#Terminology">Terminology</a><br>3. <a href="#Policy_Model">Policy Model</a><br>&nbsp;&nbsp;&nbsp;&nbsp;3.1 <a href="#rPolicy_Assertion">Policy Assertion</a><br>&nbsp;&nbsp;&nbsp;&nbsp;3.2 <a href="#rPolicy_Alternative">Policy Alternative</a><br>&nbsp;&nbsp;&nbsp;&nbsp;3.3 <a href="#rPolicy">Policy</a><br>&nbsp;&nbsp;&nbsp;&nbsp;3.4 <a href="#Web_services">Policies of Entities in a Web Services Based System</a><br>4. <a href="#rPolicy_Expression">Policy Expression</a><br>&nbsp;&nbsp;&nbsp;&nbsp;4.1 <ahref="#Normal_Form_Policy_Expression">Normal Form Policy Expression</a><br>&nbsp;&nbsp;&nbsp;&nbsp;4.2 <a href="#Policy_Identification">Policy Identification</a><br>&nbsp;&nbsp;&nbsp;&nbsp;4.3 <a href="#Compact_Policy_Expression">Compact Policy Expression</a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4.3.1 <a href="#Optional_Policy_Assertions">Optional Policy Assertions</a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4.3.2 <a href="#Policy_Assertion_Nesting">Policy Assertion Nesting</a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4.3.3 <a href="#Policy_Operators">Policy Operators</a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4.3.4 <a href="#Policy_References">Policy References</a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4.3.5 <a href="#Policy_Inclusion">Policy Inclusion</a><br>&nbsp;&nbsp;&nbsp;&nbsp;4.4 <a href="#ignorable-policy-assertions">Ignorable Policy Assertions</a><br>&nbsp;&nbsp;&nbsp;&nbsp;4.5 <a href="#Policy_Intersection">Policy Intersection</a><br>&nbp;&nbsp;&nbsp;&nbsp;4.6 <a href="#IRI_Policy_Expressions">Use of IRIs in Policy Expressions</a><br>5. <a href="#Security_Considerations">Security Considerations</a><br>&nbsp;&nbsp;&nbsp;&nbsp;5.1 <a href="#information-disclosure-threats">Information Disclosure Threats</a><br>&nbsp;&nbsp;&nbsp;&nbsp;5.2 <a href="#spoofing-and-tampering-threats">Spoofing and Tampering Threats</a><br>&nbsp;&nbsp;&nbsp;&nbsp;5.3 <a href="#downgrade-threats">Downgrade Threats</a><br>&nbsp;&nbsp;&nbsp;&nbsp;5.4 <a href="#repudiation-threats">Repudiation Threats</a><br>&nbsp;&nbsp;&nbsp;&nbsp;5.5 <a href="#denial-of-service-threats">Denial of Service Threats</a><br>&nbsp;&nbsp;&nbsp;&nbsp;5.6 <a href="#general-xml-considerations">General XML Considerations</a><br>6. <a href="#Conformance">Conformance</a><br></p>
+<h2><a name="contents">Table of Contents</a></h2><p class="toc">1. <a href="#tocRange">Introduction</a><br>&nbsp;&nbsp;&nbsp;&nbsp;1.1 <a href="#Example">Example</a><br>2. <a href="#Notation_Terminlogy">Notations and Terminology</a><br>&nbsp;&nbsp;&nbsp;&nbsp;2.1 <a href="#Notational_Conventions">Notational Conventions</a><br>&nbsp;&nbsp;&nbsp;&nbsp;2.2 <a href="#Extensibility">Extensibility</a><br>&nbsp;&nbsp;&nbsp;&nbsp;2.3 <a href="#XML_Namespaces">XML Namespaces</a><br>&nbsp;&nbsp;&nbsp;&nbsp;2.4 <a href="#Terminology">Terminology</a><br>3. <a href="#Policy_Model">Policy Model</a><br>&nbsp;&nbsp;&nbsp;&nbsp;3.1 <a href="#rPolicy_Assertion">Policy Assertion</a><br>&nbsp;&nbsp;&nbsp;&nbsp;3.2 <a href="#rPolicy_Alternative">Policy Alternative</a><br>&nbsp;&nbsp;&nbsp;&nbsp;3.3 <a href="#rPolicy">Policy</a><br>&nbsp;&nbsp;&nbsp;&nbsp;3.4 <a href="#Web_services">Policies of Entities in a Web Services Based System</a><br>4. <a href="#rPolicy_Expression">Policy Expression</a><br>&nbsp;&nbsp;&nbsp;&nbsp;4.1 <ahref="#Normal_Form_Policy_Expression">Normal Form Policy Expression</a><br>&nbsp;&nbsp;&nbsp;&nbsp;4.2 <a href="#Policy_Identification">Policy Identification</a><br>&nbsp;&nbsp;&nbsp;&nbsp;4.3 <a href="#Compact_Policy_Expression">Compact Policy Expression</a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4.3.1 <a href="#Optional_Policy_Assertions">Optional Policy Assertions</a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4.3.2 <a href="#Policy_Assertion_Nesting">Policy Assertion Nesting</a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4.3.3 <a href="#Policy_Operators">Policy Operators</a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4.3.4 <a href="#Policy_References">Policy References</a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4.3.5 <a href="#Policy_Inclusion">Policy Inclusion</a><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4.3.6 <a href="#normalization">Normalization</a><br>&nbsp;&nbsp;&nbsp;&nbsp;4.4 <a href="#ignorable-policy-assertions">Ignorable Policy Assertins</a><br>&nbsp;&nbsp;&nbsp;&nbsp;4.5 <a href="#Policy_Intersection">Policy Intersection</a><br>&nbsp;&nbsp;&nbsp;&nbsp;4.6 <a href="#IRI_Policy_Expressions">Use of IRIs in Policy Expressions</a><br>5. <a href="#Security_Considerations">Security Considerations</a><br>&nbsp;&nbsp;&nbsp;&nbsp;5.1 <a href="#information-disclosure-threats">Information Disclosure Threats</a><br>&nbsp;&nbsp;&nbsp;&nbsp;5.2 <a href="#spoofing-and-tampering-threats">Spoofing and Tampering Threats</a><br>&nbsp;&nbsp;&nbsp;&nbsp;5.3 <a href="#downgrade-threats">Downgrade Threats</a><br>&nbsp;&nbsp;&nbsp;&nbsp;5.4 <a href="#repudiation-threats">Repudiation Threats</a><br>&nbsp;&nbsp;&nbsp;&nbsp;5.5 <a href="#denial-of-service-threats">Denial of Service Threats</a><br>&nbsp;&nbsp;&nbsp;&nbsp;5.6 <a href="#general-xml-considerations">General XML Considerations</a><br>6. <a href="#Conformance">Conformance</a><br></p>
 <h3><a name="appendix" id="appendix">Appendices</a></h3><p class="toc">A. <a href="#media-type">The application/wspolicy+xml Media Type</a><br>&nbsp;&nbsp;&nbsp;&nbsp;A.1 <a href="#ietf-reg">Registration</a><br>B. <a href="#References">References</a><br>&nbsp;&nbsp;&nbsp;&nbsp;B.1 <a href="#Normative-References">Normative References</a><br>&nbsp;&nbsp;&nbsp;&nbsp;B.2 <a href="#Informative-References">Other References</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 - Framework Change Log</a> (Non-Normative)<br></p></div><hr><div class="body"><div class="div1">
 <h2><a name="tocRange"></a>1. Introduction</h2><p>Web Services Policy 1.5 - Framework defines a framework and a model for expressing policies that
             refer to domain-specific capabilities, requirements, and general characteristics of
@@ -133,7 +133,8 @@
 	    Element or Attribute Information Items.</p></li></ul><p>Elements and Attributes defined by this specification are referred to in the text of this document using 
 XPath 1.0 [XPATH 1.0] expressions. Extensibility points are referred to using an extended version of this 
 syntax:</p><ul><li><p>An element extensibility point is referred to using {any} in place of the element name. This 
-indicates that any element name can be used, from any namespace. </p></li><li><p>An attribute extensibility point is referred to using @{any} in place of the attribute name. This 
+        	    indicates that any element name can be used, from any namespace, 
+        	    unless specified otherwise such as in Section <a href="#Policy_Operators"><b>4.3.3 Policy Operators</b></a>. </p></li><li><p>An attribute extensibility point is referred to using @{any} in place of the attribute name. This 
 indicates that any attribute name can be used, from any namespace. </p></li></ul><p>
 	    Normative text within this specification takes precedence
 	    over normative outlines, which in turn take precedence
@@ -358,9 +359,17 @@
 	  using the XML Infoset representation of a policy.   [<a name="policy_expression" title="policy expression">Definition</a>: A <b>policy expression</b> 
 		is an XML Infoset representation of a <a title="policy" href="#policy">policy</a>, 
 		either in a normal form or in an equivalent compact form.]
-	  </p><p> The normal form of a policy expression is the most straightforward
-	  Infoset representation; equivalent, alternative Infosets allow compactly
-	  expressing a policy through a number of constructs.</p><div class="div2">
+	  </p><p>The normal form (see Section <a href="#Normal_Form_Policy_Expression"><b>4.1 Normal Form Policy Expression</b></a>) of a policy expression is the most 
+	    straightforward XML Infoset representation of the policy data model. 
+	    Equivalent, alternative representations allow policy authors to compactly 
+	    express a policy (see Section <a href="#Compact_Policy_Expression"><b>4.3 Compact Policy Expression</b></a>). 
+	    Policy authors might be more 
+	        interested in the compact form (see Section 
+	        <a href="#Compact_Policy_Expression"><b>4.3 Compact Policy Expression</b></a>), where the outlines and 
+	    definitions describe what is valid with regards to the policy language XML 
+	    Schema.</p><p>While the policy language XML Schema is a representation of the compact 
+	    form, the normal form is more restrictive as outlined in Section 
+	    <a href="#Normal_Form_Policy_Expression"><b>4.1 Normal Form Policy Expression</b></a>.</p><div class="div2">
 <h3><a name="Normal_Form_Policy_Expression"></a>4.1 Normal Form Policy Expression</h3><p>To facilitate interoperability, this specification
 	    defines a normal form for <a title="policy expression" href="#policy_expression">policy expressions</a> that
 	    is a straightforward XML Infoset representation of a
@@ -443,30 +452,13 @@
 XML Infoset, this specification defines three constructs: an attribute
 to decorate an <a title="policy assertion" href="#policy_assertion">assertion</a>,
 semantics for recursively nested policy operators, and a policy
-reference/inclusion mechanism. Each is described in the subsections
-below.</p><p>To interpret a compact <a title="policy expression" href="#policy_expression">expression</a> in an interoperable form,
-a compact expression may be converted to the corresponding normal form
-expression by the following procedure:</p><ol><li><p>Start with the Element Information Item E (as defined in the XML Information Set [<cite><a href="#XMLInfoset">XML Information Set</a></cite>]) of the
-policy expression. The <strong>[namespace
-name]</strong> of E is always <code>"http://www.w3.org/ns/ws-policy"</code>. In the base case,
-the <strong>[local name]</strong> property of E is
-<code>"Policy"</code>; in the recursive case, the <strong>[local name]</strong> property of E is
-<code>"Policy"</code>, <code>"ExactlyOne"</code>, or
-<code>"All"</code>.</p></li><li><p>Expand Element Information Items (as defined in the XML Information Set [<cite><a href="#XMLInfoset">XML Information Set</a></cite>]) in the <strong>[children]</strong> property of E that are policy
-references per Section <a href="#Policy_Inclusion"><b>4.3.5 Policy Inclusion</b></a>.</p></li><li><p>Convert each Element Information Item C in the <strong>[children]</strong> property of E into normal
-form.</p><ol><li><p>If the <strong>[namespace name]</strong>
-property of C is <code>"http://www.w3.org/ns/ws-policy"</code> and the <strong>[local
-name]</strong> property of C is <code>"Policy"</code>,
-<code>"ExactlyOne"</code>, or <code>"All"</code>, C is an expression
-of a policy operator; normalize C by recursively applying this
-procedure.</p></li><li><p>Otherwise the Element Information Item C is an assertion;
-normalize C per Sections <a href="#Optional_Policy_Assertions"><b>4.3.1 Optional Policy Assertions</b></a>
-and <a href="#Policy_Assertion_Nesting"><b>4.3.2 Policy Assertion Nesting</b></a>.</p></li></ol></li><li><p>Apply the policy operator indicated by E to the normalized
-Element Information Items in its <strong>[children]</strong> property and construct a
-normal form per Section <a href="#Policy_Operators"><b>4.3.3 Policy Operators</b></a> and <a href="#Normal_Form_Policy_Expression"><b>4.1 Normal Form Policy Expression</b></a>.</p></li></ol><p>Note that an implementation may use a more efficient procedure and
-is not required to explicitly convert a compact expression into the
-normal form as long as the processing results are indistinguishable
-from doing so.</p><div class="div3">
+    reference/inclusion mechanism. Each sub section below 
+    describes a construct and its equivalent normal form. 
+    To interpret a compact expression in an interoperable form, a 
+    policy expression in the compact form can be converted 
+    (see Section <a href="#normalization"><b>4.3.6 Normalization</b></a>) to the normal form (see Section <a href="#Normal_Form_Policy_Expression"><b>4.1 Normal Form Policy Expression</b></a>).</p><p>A <a title="policy expression" href="#policy_expression">policy expression</a> 
+    consists of a <code class="elt">wsp:Policy</code>  wrapper element and 
+    zero or more child and descendent elements.</p><div class="div3">
 <h4><a name="Optional_Policy_Assertions"></a>4.3.1 Optional Policy Assertions</h4><p>To indicate that a <a title="policy assertion" href="#policy_assertion">policy
 assertion</a> is optional, this specification defines an attribute 
 that is a compact authoring style for expressing a pair of <a title="policy alternative" href="#policy_alternative">alternatives</a>, 
@@ -618,7 +610,7 @@
 24). </p></div><div class="div3">
 <h4><a name="Policy_Operators"></a>4.3.3 Policy Operators</h4><p><a title="policy" href="#policy">Policies</a> are used to convey a set of capabilities, requirements, and general characteristics of entities (see <a href="#tocRange"><b>1. Introduction</b></a>).
     These are generally expressible as a set of <a title="policy alternative" href="#policy_alternative">policy alternatives</a>.
-    Policy operators (<code class="elt">wsp:Policy</code> , <code class="elt">wsp:All</code>  and <code class="elt">wsp:ExactlyOne</code> )
+    Policy operators (<code class="elt">wsp:Policy</code> , <code class="elt">wsp:All</code>  and <code class="elt">wsp:ExactlyOne</code>  elements)
     are used to group <a title="policy assertion" href="#policy_assertion">policy assertions</a>
     into <a title="policy alternative" href="#policy_alternative">policy alternatives</a>.
 To compactly express complex policies, policy operators
@@ -626,7 +618,47 @@
 instances of <code class="elt">wsp:Policy</code> , <code class="elt">wsp:All</code> , and/or
 <code class="elt">wsp:ExactlyOne</code>  <span class="rfc2119">MAY</span> be nested within
 <code class="elt">wsp:Policy</code> , <code class="elt">wsp:All</code> , and/or
-<code class="elt">wsp:ExactlyOne</code> .</p><p>The following rules are used to transform a compact policy expression into a normal form policy expression:</p><dl><dt class="label">Equivalence</dt><dd><p>Use of <code class="elt">wsp:Policy</code>  as an operator within a policy expression is  
+<code class="elt">wsp:ExactlyOne</code> .</p><p>The schema outline for the <code class="elt">wsp:Policy</code>  element in the compact form is as follows:</p><div class="exampleInner"><pre>(01) &lt;wsp:Policy … &gt;
+(02)   ( &lt;wsp:Policy …&gt;…&lt;/wsp:Policy&gt; |
+(03)     &lt;wsp:ExactlyOne&gt;…&lt;/wsp:ExactlyOne&gt; |         
+(04)     &lt;wsp:All&gt;…&lt;/wsp:All&gt; |
+(05)     &lt;wsp:PolicyReference … &gt;…&lt;/wsp:PolicyReference&gt; |
+(06)     …
+(07)   )* 
+(08) &lt;/wsp:Policy&gt;</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:Policy</code> </dt><dd><p>This element is the <code class="elt">wsp:Policy</code>  operator.</p></dd><dt class="label"><code class="elt">/wsp:Policy/wsp:Policy</code> </dt><dd><p>This element is a nested <code class="elt">wsp:Policy</code>  operator.</p></dd><dt class="label"><code class="elt">/wsp:Policy/wsp:ExactlyOne</code> </dt><dd><p>This element is a nested <code class="elt">wsp:ExactlyOne</code>  operator.</p></dd><dt class="label"><code class="elt">/wsp:Policy/wsp:All</code> </dt><dd><p>This element is a nested <code class="elt">wsp:All</code>  operator.</p></dd><dt class="label"><code class="elt">/wsp:Policy/wsp:PolicyReference</code> </dt><dd><p>This element references a policy expression to be included per Section 
+                <a href="#Policy_Inclusion"><b>4.3.5 Policy Inclusion</b></a>.</p></dd><dt class="label"><code class="elt">/wsp:Policy/@{any}</code> </dt><dd><p>Additional attributes <span class="rfc2119">MAY</span> be specified but 
+                <span class="rfc2119">MUST NOT</span> contradict the semantics of the 
+                <strong>[owner element]</strong>; 
+                if an attribute is not recognized, it <span class="rfc2119">SHOULD</span> be ignored.</p></dd><dt class="label"><code class="elt">/wsp:Policy/{any}</code> </dt><dd><p>Additional elements <span class="rfc2119">MAY</span> be specified. Such elements 
+            <span class="rfc2119">MUST NOT</span> use the Web Services Policy language 
+                XML namespace name and <span class="rfc2119">MUST NOT</span> contradict the semantics 
+                of the <strong>[parent element]</strong>.</p></dd></dl><p>The schema outline for the <code class="elt">wsp:ExactlyOne</code>  element in the compact form is as follows:</p><div class="exampleInner"><pre>(01) &lt;wsp:ExactlyOne&gt;
+(02)   ( &lt;wsp:Policy … &gt;…&lt;/wsp:Policy&gt; |
+(03)     &lt;wsp:ExactlyOne&gt;…&lt;/wsp:ExactlyOne&gt; |
+(04)     &lt;wsp:All&gt;…&lt;/wsp:All&gt; |
+(05)     &lt;wsp:PolicyReference … &gt;…&lt;/wsp:PolicyReference&gt; |
+(06)     …
+(07)   )* 
+(08) &lt;/wsp:ExactlyOne&gt;</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:ExactlyOne</code> </dt><dd><p>This element is the <code class="elt">wsp:ExactlyOne</code>  operator.</p></dd><dt class="label"><code class="elt">/wsp:ExactlyOne/wsp:Policy</code> </dt><dd><p>This element is a nested  <code class="elt">wsp:Policy</code>  operator.</p></dd><dt class="label"><code class="elt">/wsp:ExactlyOne/wsp:ExactlyOne</code> </dt><dd><p>This element is a nested <code class="elt">wsp:ExactlyOne</code>  operator.</p></dd><dt class="label"><code class="elt">/wsp:ExactlyOne/wsp:All</code> </dt><dd><p>This element is a nested <code class="elt">wsp:All operator</code> .</p></dd><dt class="label"><code class="elt">/wsp:ExactlyOne/wsp:PolicyReference</code> </dt><dd><p>This element references a policy expression to be included per Section 
+            <a href="#Policy_Inclusion"><b>4.3.5 Policy Inclusion</b></a>.</p></dd><dt class="label"><code class="elt">/wsp:ExactlyOne/{any}</code> </dt><dd><p>Additional elements <span class="rfc2119">MAY</span> be specified. Such elements 
+                <span class="rfc2119">MUST NOT</span> use the Web Services Policy language 
+                XML namespace name and <span class="rfc2119">MUST NOT</span> contradict the semantics 
+                of the <strong>[parent element]</strong>.</p></dd></dl><p>The schema outline for the <code class="elt">wsp:All</code>  element in the compact form is as follows:</p><div class="exampleInner"><pre>(01) &lt;wsp:All&gt;
+(02)   ( &lt;wsp:Policy … &gt;…&lt;/wsp:Policy&gt; |
+(03)     &lt;wsp:ExactlyOne&gt;…&lt;/wsp:ExactlyOne&gt; |
+(04)     &lt;wsp:All&gt;…&lt;/wsp:All&gt; |
+(05)     &lt;wsp:PolicyReference … &gt;…&lt;/wsp:PolicyReference&gt; |
+(06)     …
+(07)   )* 
+(08) &lt;/wsp:All&gt;</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:All</code> </dt><dd><p>This element is the <code class="elt">wsp:All</code>  operator.</p></dd><dt class="label"><code class="elt">/wsp:All/wsp:Policy</code> </dt><dd><p>This element is a nested <code class="elt">wsp:Policy</code>  operator.</p></dd><dt class="label"><code class="elt">/wsp:All/wsp:ExactlyOne</code> </dt><dd><p>This element is a nested <code class="elt">wsp:ExactlyOne</code>  operator.</p></dd><dt class="label"><code class="elt">/wsp:All/wsp:All</code> </dt><dd><p>This element is a nested <code class="elt">wsp:All</code>  operator.</p></dd><dt class="label"><code class="elt">/wsp:All/wsp:PolicyReference</code> </dt><dd><p>This element references a policy expression to be included per Section 
+            <a href="#Policy_Inclusion"><b>4.3.5 Policy Inclusion</b></a>.</p></dd><dt class="label"><code class="elt">/wsp:All/{any}</code> </dt><dd><p>Additional elements <span class="rfc2119">MAY</span> be specified. Such elements 
+                <span class="rfc2119">MUST NOT</span> use the Web Services Policy language 
+                XML namespace name and <span class="rfc2119">MUST NOT</span> contradict the semantics 
+                of the <strong>[parent element]</strong>.</p></dd></dl><div class="note"><p class="prefix"><b>Note:</b></p><p>The <code class="elt">wsp:Policy element</code>  allows attribute extensibility to 
+    accommodate the use of attributes specified in Section <a href="#Policy_Identification"><b>4.2 Policy Identification</b></a>. 
+    Otherwise, policy operators (<code class="elt">wsp:Policy</code>  , <code class="elt">wsp:All</code>  and 
+    <code class="elt">wsp:ExactlyOne</code>  elements) do not allow attribute extensibility 
+    because such attributes are not preserved through normalization.</p></div><p>The following rules are used to transform a compact policy expression into a normal form policy expression:</p><dl><dt class="label">Equivalence</dt><dd><p>Use of <code class="elt">wsp:Policy</code>  as an operator within a policy expression is  
     equivalent to <code class="elt">wsp:All</code> .</p></dd><dd><p>
         A collection of assertions in an <code class="elt">wsp:All</code>  operator is equivalent 
         to a <a title="policy alternative" href="#policy_alternative">policy alternative</a>. For instance,
@@ -786,7 +818,30 @@
 (02)&nbsp; &nbsp;&lt;sp:IncludeTimestamp /&gt;
 (03)&nbsp; &nbsp;&lt;wsp:PolicyReference URI="#Protection" /&gt;
 (04)&nbsp; &nbsp;&lt;sp:OnlySignEntireHeadersAndBody /&gt;
-(05) &lt;/wsp:Policy&gt;</pre></div><p>There are times when it is desirable to "re-use" a portion of a policy expression. Generally, this can be accomplished by placing the common assertions in a separate policy expression and referencing it. </p></div></div><div class="div2">
+(05) &lt;/wsp:Policy&gt;</pre></div><p>There are times when it is desirable to "re-use" a portion of a policy expression. Generally, this can be accomplished by placing the common assertions in a separate policy expression and referencing it. </p></div><div class="div3">
+<h4><a name="normalization"></a>4.3.6 Normalization</h4><p>To interpret a compact <a title="policy expression" href="#policy_expression">expression</a> in an interoperable form,
+        a compact expression may be converted to the corresponding normal form
+        expression by the following procedure:</p><ol><li><p>Start with the Element Information Item E (as defined in the XML Information Set [<cite><a href="#XMLInfoset">XML Information Set</a></cite>]) of the
+            policy expression. The <strong>[namespace
+                name]</strong> of E is always <code>"http://www.w3.org/ns/ws-policy"</code>. In the base case,
+            the <strong>[local name]</strong> property of E is
+            <code>"Policy"</code>; in the recursive case, the <strong>[local name]</strong> property of E is
+            <code>"Policy"</code>, <code>"ExactlyOne"</code>, or
+            <code>"All"</code>.</p></li><li><p>Expand Element Information Items (as defined in the XML Information Set [<cite><a href="#XMLInfoset">XML Information Set</a></cite>]) in the <strong>[children]</strong> property of E that are policy
+            references per Section <a href="#Policy_Inclusion"><b>4.3.5 Policy Inclusion</b></a>.</p></li><li><p>Convert each Element Information Item C in the <strong>[children]</strong> property of E into normal
+            form.</p><ol><li><p>If the <strong>[namespace name]</strong>
+                    property of C is <code>"http://www.w3.org/ns/ws-policy"</code> and the <strong>[local
+                        name]</strong> property of C is <code>"Policy"</code>,
+                    <code>"ExactlyOne"</code>, or <code>"All"</code>, C is an expression
+                    of a policy operator; normalize C by recursively applying this
+                    procedure.</p></li><li><p>Otherwise the Element Information Item C is an assertion;
+                    normalize C per Sections <a href="#Optional_Policy_Assertions"><b>4.3.1 Optional Policy Assertions</b></a>
+                    and <a href="#Policy_Assertion_Nesting"><b>4.3.2 Policy Assertion Nesting</b></a>.</p></li></ol></li><li><p>Apply the policy operator indicated by E to the normalized
+            Element Information Items in its <strong>[children]</strong> property and construct a
+            normal form per Section <a href="#Policy_Operators"><b>4.3.3 Policy Operators</b></a> and <a href="#Normal_Form_Policy_Expression"><b>4.1 Normal Form Policy Expression</b></a>.</p></li></ol><p>Note that an implementation may use a more efficient procedure and
+        is not required to explicitly convert a compact expression into the
+        normal form as long as the processing results are indistinguishable
+        from doing so.</p></div></div><div class="div2">
 <h3><a name="ignorable-policy-assertions"></a>4.4 Ignorable Policy Assertions</h3><p>The <code class="attr">wsp:Ignorable</code>  attribute indicates if a policy assertion is an 
 <a title="ignorable policy assertion" href="#ignorable_policy_assertion">ignorable policy assertion</a>. The schema 
 outline for this attribute is as follows:</p><div class="exampleInner"><pre>(01) &lt;Assertion ( wsp:Ignorable="xs:boolean" )? … &gt; … &lt;/Assertion&gt;</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:Ignorable</code> </dt><dd><p>This attribute is of type <code>xs:boolean</code>. If the actual 
@@ -1420,4 +1475,9 @@
                             <a href="http://lists.w3.org/Archives/Public/public-ws-policy/2007Jan/0159.html">resolution</a> 
                             for issue <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=4235">4235</a>.
                             Editors' action <a href="http://www.w3.org/2005/06/tracker/wspolicyeds/actions/147">147</a>.
+                        </td></tr><tr><td rowspan="1" colspan="1">20070123</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/2007Jan/0186.html">resolution</a> 
+                            for issues <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=4196">4196</a>
+                            and <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=4238">4238</a>.
+                            Editors' action <a href="http://www.w3.org/2005/06/tracker/wspolicyeds/actions/142">142</a>.
                         </td></tr></tbody></table><br></div></div></body></html>
\ No newline at end of file

Received on Wednesday, 24 January 2007 02:41:33 UTC