- From: Asir Vedamuthu via cvs-syncmail <cvsmail@w3.org>
- Date: Wed, 24 Jan 2007 02:41:26 +0000
- To: public-ws-policy-eds@w3.org
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"><wsp:Policy … >
+ ( <wsp:Policy …>…</wsp:Policy> |
+ <wsp:ExactlyOne>…</wsp:ExactlyOne> |
+ <wsp:All>…</wsp:All> |
+ <wsp:PolicyReference … >…</wsp:PolicyReference> |
+ …
+ )*
+</wsp:Policy></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"><wsp:ExactlyOne>
+ ( <wsp:Policy … >…</wsp:Policy> |
+ <wsp:ExactlyOne>…</wsp:ExactlyOne> |
+ <wsp:All>…</wsp:All> |
+ <wsp:PolicyReference … >…</wsp:PolicyReference> |
+ …
+ )*
+</wsp:ExactlyOne></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"><wsp:All>
+ ( <wsp:Policy … >…</wsp:Policy> |
+ <wsp:ExactlyOne>…</wsp:ExactlyOne> |
+ <wsp:All>…</wsp:All> |
+ <wsp:PolicyReference … >…</wsp:PolicyReference> |
+ …
+ )*
+</wsp:All></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) </wsp:Policy></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> 1.1 <a href="#Example">Example</a><br>2. <a href="#Notation_Terminlogy">Notations and Terminology</a><br> 2.1 <a href="#Notational_Conventions">Notational Conventions</a><br> 2.2 <a href="#Extensibility">Extensibility</a><br> 2.3 <a href="#XML_Namespaces">XML Namespaces</a><br> 2.4 <a href="#Terminology">Terminology</a><br>3. <a href="#Policy_Model">Policy Model</a><br> 3.1 <a href="#rPolicy_Assertion">Policy Assertion</a><br> 3.2 <a href="#rPolicy_Alternative">Policy Alternative</a><br> 3.3 <a href="#rPolicy">Policy</a><br> 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> 4.1 <ahref="#Normal_Form_Policy_Expression">Normal Form Policy Expression</a><br> 4.2 <a href="#Policy_Identification">Policy Identification</a><br> 4.3 <a href="#Compact_Policy_Expression">Compact Policy Expression</a><br> 4.3.1 <a href="#Optional_Policy_Assertions">Optional Policy Assertions</a><br> 4.3.2 <a href="#Policy_Assertion_Nesting">Policy Assertion Nesting</a><br> 4.3.3 <a href="#Policy_Operators">Policy Operators</a><br> 4.3.4 <a href="#Policy_References">Policy References</a><br> 4.3.5 <a href="#Policy_Inclusion">Policy Inclusion</a><br> 4.4 <a href="#ignorable-policy-assertions">Ignorable Policy Assertions</a><br> 4.5 <a href="#Policy_Intersection">Policy Intersection</a><br>&nbp; 4.6 <a href="#IRI_Policy_Expressions">Use of IRIs in Policy Expressions</a><br>5. <a href="#Security_Considerations">Security Considerations</a><br> 5.1 <a href="#information-disclosure-threats">Information Disclosure Threats</a><br> 5.2 <a href="#spoofing-and-tampering-threats">Spoofing and Tampering Threats</a><br> 5.3 <a href="#downgrade-threats">Downgrade Threats</a><br> 5.4 <a href="#repudiation-threats">Repudiation Threats</a><br> 5.5 <a href="#denial-of-service-threats">Denial of Service Threats</a><br> 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> 1.1 <a href="#Example">Example</a><br>2. <a href="#Notation_Terminlogy">Notations and Terminology</a><br> 2.1 <a href="#Notational_Conventions">Notational Conventions</a><br> 2.2 <a href="#Extensibility">Extensibility</a><br> 2.3 <a href="#XML_Namespaces">XML Namespaces</a><br> 2.4 <a href="#Terminology">Terminology</a><br>3. <a href="#Policy_Model">Policy Model</a><br> 3.1 <a href="#rPolicy_Assertion">Policy Assertion</a><br> 3.2 <a href="#rPolicy_Alternative">Policy Alternative</a><br> 3.3 <a href="#rPolicy">Policy</a><br> 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> 4.1 <ahref="#Normal_Form_Policy_Expression">Normal Form Policy Expression</a><br> 4.2 <a href="#Policy_Identification">Policy Identification</a><br> 4.3 <a href="#Compact_Policy_Expression">Compact Policy Expression</a><br> 4.3.1 <a href="#Optional_Policy_Assertions">Optional Policy Assertions</a><br> 4.3.2 <a href="#Policy_Assertion_Nesting">Policy Assertion Nesting</a><br> 4.3.3 <a href="#Policy_Operators">Policy Operators</a><br> 4.3.4 <a href="#Policy_References">Policy References</a><br> 4.3.5 <a href="#Policy_Inclusion">Policy Inclusion</a><br> 4.3.6 <a href="#normalization">Normalization</a><br> 4.4 <a href="#ignorable-policy-assertions">Ignorable Policy Assertins</a><br> 4.5 <a href="#Policy_Intersection">Policy Intersection</a><br> 4.6 <a href="#IRI_Policy_Expressions">Use of IRIs in Policy Expressions</a><br>5. <a href="#Security_Considerations">Security Considerations</a><br> 5.1 <a href="#information-disclosure-threats">Information Disclosure Threats</a><br> 5.2 <a href="#spoofing-and-tampering-threats">Spoofing and Tampering Threats</a><br> 5.3 <a href="#downgrade-threats">Downgrade Threats</a><br> 5.4 <a href="#repudiation-threats">Repudiation Threats</a><br> 5.5 <a href="#denial-of-service-threats">Denial of Service Threats</a><br> 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> A.1 <a href="#ietf-reg">Registration</a><br>B. <a href="#References">References</a><br> B.1 <a href="#Normative-References">Normative References</a><br> 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) <wsp:Policy … >
+(02) ( <wsp:Policy …>…</wsp:Policy> |
+(03) <wsp:ExactlyOne>…</wsp:ExactlyOne> |
+(04) <wsp:All>…</wsp:All> |
+(05) <wsp:PolicyReference … >…</wsp:PolicyReference> |
+(06) …
+(07) )*
+(08) </wsp:Policy></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) <wsp:ExactlyOne>
+(02) ( <wsp:Policy … >…</wsp:Policy> |
+(03) <wsp:ExactlyOne>…</wsp:ExactlyOne> |
+(04) <wsp:All>…</wsp:All> |
+(05) <wsp:PolicyReference … >…</wsp:PolicyReference> |
+(06) …
+(07) )*
+(08) </wsp:ExactlyOne></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) <wsp:All>
+(02) ( <wsp:Policy … >…</wsp:Policy> |
+(03) <wsp:ExactlyOne>…</wsp:ExactlyOne> |
+(04) <wsp:All>…</wsp:All> |
+(05) <wsp:PolicyReference … >…</wsp:PolicyReference> |
+(06) …
+(07) )*
+(08) </wsp:All></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) <sp:IncludeTimestamp />
(03) <wsp:PolicyReference URI="#Protection" />
(04) <sp:OnlySignEntireHeadersAndBody />
-(05) </wsp:Policy></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) </wsp:Policy></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) <Assertion ( wsp:Ignorable="xs:boolean" )? … > … </Assertion></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