You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
3698 lines
160 KiB
3698 lines
160 KiB
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
|
<html lang="en-US" xmlns="http://www.w3.org/1999/xhtml" xml:lang=
|
|
"en-US">
|
|
<head>
|
|
<meta name="generator" content=
|
|
"HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
|
|
<meta http-equiv="Content-Type" content=
|
|
"text/html; charset=utf-8" />
|
|
<title>Web Services Policy 1.5 - Attachment</title>
|
|
|
|
<style type="text/css">
|
|
/*<![CDATA[*/
|
|
/**/
|
|
code { font-family: monospace; }
|
|
|
|
div.constraint,
|
|
div.issue,
|
|
div.note,
|
|
div.notice { margin-left: 2em; }
|
|
|
|
ol.enumar { list-style-type: decimal; }
|
|
ol.enumla { list-style-type: lower-alpha; }
|
|
ol.enumlr { list-style-type: lower-roman; }
|
|
ol.enumua { list-style-type: upper-alpha; }
|
|
ol.enumur { list-style-type: upper-roman; }
|
|
|
|
dt.label { display: run-in; }
|
|
|
|
li, p { margin-top: 0.3em;
|
|
margin-bottom: 0.3em; }
|
|
|
|
.diff-chg { background-color: yellow; }
|
|
.diff-del { background-color: red; text-decoration: line-through;}
|
|
.diff-add { background-color: lime; }
|
|
|
|
table { empty-cells: show; }
|
|
|
|
table caption {
|
|
font-weight: normal;
|
|
font-style: italic;
|
|
text-align: left;
|
|
margin-bottom: .5em;
|
|
}
|
|
|
|
div.issue {
|
|
color: red;
|
|
}
|
|
.rfc2119 {
|
|
font-variant: small-caps;
|
|
}
|
|
|
|
div.exampleInner pre { margin-left: 1em;
|
|
margin-top: 0em; margin-bottom: 0em}
|
|
div.exampleOuter {border: 4px double gray;
|
|
margin: 0em; padding: 0em}
|
|
div.exampleInner { background-color: #d5dee3;
|
|
border-top-width: 4px;
|
|
border-top-style: double;
|
|
border-top-color: #d3d3d3;
|
|
border-bottom-width: 4px;
|
|
border-bottom-style: double;
|
|
border-bottom-color: #d3d3d3;
|
|
padding: 4px; margin: 0em }
|
|
div.exampleWrapper { margin: 4px }
|
|
div.exampleHeader { font-weight: bold;
|
|
margin: 4px}
|
|
/**/
|
|
/*]]>*/
|
|
</style>
|
|
<link rel="stylesheet" type="text/css" href=
|
|
"http://www.w3.org/StyleSheets/TR/W3C-REC.css" />
|
|
</head>
|
|
<body>
|
|
<div class="head">
|
|
<p><a href="http://www.w3.org/"><img src=
|
|
"http://www.w3.org/Icons/w3c_home" alt="W3C" height="48" width=
|
|
"72" /></a></p>
|
|
<h1><a name="title" id="title"></a>Web Services Policy 1.5 -
|
|
Attachment</h1>
|
|
<h2><a name="w3c-doctype" id="w3c-doctype"></a>W3C Recommendation
|
|
04 September 2007</h2>
|
|
<dl>
|
|
<dt>This version:</dt>
|
|
<dd><a href=
|
|
"http://www.w3.org/TR/2007/REC-ws-policy-attach-20070904">http://www.w3.org/TR/2007/REC-ws-policy-attach-20070904</a></dd>
|
|
<dt>Latest version:</dt>
|
|
<dd><a href=
|
|
"http://www.w3.org/TR/ws-policy-attach">http://www.w3.org/TR/ws-policy-attach</a></dd>
|
|
<dt>Previous version:</dt>
|
|
<dd><a href=
|
|
"http://www.w3.org/TR/2007/PR-ws-policy-attach-20070706/">http://www.w3.org/TR/2007/PR-ws-policy-attach-20070706/</a></dd>
|
|
<dt>Editors:</dt>
|
|
<dd>Asir S Vedamuthu, Microsoft Corporation</dd>
|
|
<dd>David Orchard, BEA Systems, Inc.</dd>
|
|
<dd>Frederick Hirsch, Nokia</dd>
|
|
<dd>Maryann Hondo, IBM Corporation</dd>
|
|
<dd>Prasad Yendluri, webMethods (A subsidiary of Software AG)</dd>
|
|
<dd>Toufic Boubez, Layer 7 Technologies</dd>
|
|
<dd>Ümit Yalçinalp, SAP AG.</dd>
|
|
</dl>
|
|
<p>Please refer to the <a href=
|
|
"http://www.w3.org/2002/ws/policy/7/attachment-errata.html"><strong>
|
|
errata</strong></a> for this document, which may include some
|
|
normative corrections.</p>
|
|
<p>See also <a href=
|
|
"http://www.w3.org/2003/03/Translations/byTechnology?technology=ws-policy-attachment">
|
|
<strong>translations</strong></a>.</p>
|
|
<p>This document is also available in these non-normative formats:
|
|
<a href="ws-policy-attachment.pdf">PDF</a>, <a href=
|
|
"ws-policy-attachment.ps">PostScript</a>, <a href=
|
|
"ws-policy-attachment.xml">XML</a>, and <a href=
|
|
"ws-policy-attachment.txt">plain text</a>.</p>
|
|
<p class="copyright"><a href=
|
|
"http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">Copyright</a> © 2007 <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>
|
|
<h2><a name="abstract" id="abstract"></a>Abstract</h2>
|
|
<p>This specification, Web Services Policy 1.5 - Attachment,
|
|
defines two general-purpose mechanisms for associating policies, as
|
|
defined in Web Services Policy 1.5 - Framework, with the subjects
|
|
to which they apply. This specification also defines how these
|
|
general-purpose mechanisms may be used to associate policies with
|
|
WSDL and UDDI descriptions.</p>
|
|
</div>
|
|
<div>
|
|
<h2><a name="status" id="status"></a>Status of this Document</h2>
|
|
<p><em>This section describes the status of this document at the
|
|
time of its publication. Other documents may supersede this
|
|
document. A list of current W3C publications and the latest
|
|
revision of this technical report can be found in the <a href=
|
|
"http://www.w3.org/TR/">W3C technical reports index</a> at
|
|
http://www.w3.org/TR/.</em></p>
|
|
<p>This is the <a href=
|
|
"http://www.w3.org/2005/10/Process-20051014/tr.html#RecsW3C">W3C
|
|
Recommendation</a> of the Web Services Policy 1.5 - Attachment
|
|
specification. It has been produced by the <a href=
|
|
"http://www.w3.org/2002/ws/policy/">Web Services Policy Working
|
|
Group</a>, which is part of the <a href=
|
|
"http://www.w3.org/2002/ws/Activity">W3C Web Services
|
|
Activity</a>.</p>
|
|
<p>This document has been reviewed by W3C Members, by software
|
|
developers, and by other W3C groups and interested parties, and is
|
|
endorsed by the Director as a W3C Recommendation. It is a stable
|
|
document and may be used as reference material or cited from
|
|
another document. W3C's role in making the Recommendation is to
|
|
draw attention to the specification and to promote its widespread
|
|
deployment. This enhances the functionality and interoperability of
|
|
the Web.</p>
|
|
<p>The Working Group released a test suite along with an <a href=
|
|
"http://dev.w3.org/2006/ws/policy/interop/results/dashboard-summary.html">
|
|
implementation report</a>. A <a href=
|
|
"ws-policy-attachment-diff20070706.html">diff-marked version
|
|
against the previous version of this document</a> is available.</p>
|
|
<p>The Working Group is tracking all comments via <a href=
|
|
"http://www.w3.org/Bugs/Public/buglist.cgi?query_format=advanced&short_desc_type=allwordssubstr&short_desc=&product=WS-Policy&component=Framework&component=Framework%2BAttachment&component=Framework%2BAttachment%2BGuidelines&component=Framework%2BAttachment%2BPrimer">
|
|
Bugzilla</a> and highly prefers to receive comments via this
|
|
system. If access to Bugzilla is not feasible, you may send your
|
|
comments to the mailing list <a href=
|
|
"mailto:public-ws-policy-comments@w3.org">public-ws-policy-comments@w3.org</a>
|
|
mailing list (<a href=
|
|
"http://lists.w3.org/Archives/Public/public-ws-policy-comments/">public
|
|
archive</a>). Each Bugzilla entry and email message should contain
|
|
only one comment. All comments on this specification should be made
|
|
following the <a href=
|
|
"http://www.w3.org/2002/ws/policy/#issues">Description for
|
|
Issues</a> of the Working Group.</p>
|
|
<p>This document was produced by a group operating under the
|
|
<a href="http://www.w3.org/Consortium/Patent-Policy-20040205/">5
|
|
February 2004 W3C Patent Policy</a>. W3C maintains a <a href=
|
|
"http://www.w3.org/2004/01/pp-impl/39293/status">public list of any
|
|
patent disclosures</a> made in connection with the deliverables of
|
|
the group; that page also includes instructions for disclosing a
|
|
patent. An individual who has actual knowledge of a patent which
|
|
the individual believes contains <a href=
|
|
"http://www.w3.org/Consortium/Patent-Policy-20040205/#def-essential">
|
|
Essential Claim(s)</a> must disclose the information in accordance
|
|
with <a href=
|
|
"http://www.w3.org/Consortium/Patent-Policy-20040205/#sec-Disclosure">
|
|
section 6 of the W3C Patent Policy</a>.</p>
|
|
</div>
|
|
<div class="toc">
|
|
<h2><a name="contents" id="contents"></a>Table of Contents</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 />
|
|
3.4.1 <a href=
|
|
"#uri-domain-expression">URI Domain Expression</a><br />
|
|
3.5 <a href="#IRI_Policy_Attachment">Use of
|
|
IRIs in Policy Attachment</a><br />
|
|
4. <a href="#AttachingPolicyUsingWSDL1.1">Attaching Policies Using
|
|
WSDL 1.1</a><br />
|
|
4.1 <a href=
|
|
"#CalculatingEffectivyPolicywithWSDL1.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 />
|
|
6. <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="#d3e4075">External Policy
|
|
Attachment Conformance</a><br />
|
|
8.2 <a href="#d3e4087">WSDL 1.1 Attachment
|
|
Conformance</a><br />
|
|
8.3 <a href="#d3e4096">WSDL 2.0 Attachment
|
|
Conformance</a><br /></p>
|
|
<h3><a name="appendices" id="appendices"></a>Appendices</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 />
|
|
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 /></p>
|
|
</div>
|
|
<hr />
|
|
<div class="body">
|
|
<div class="div1">
|
|
<h2><a name="tocRange" id="tocRange"></a>1. Introduction</h2>
|
|
<p>The Web Services Policy 1.5 - Framework [<cite><a href=
|
|
"#WS-Policy">Web Services Policy Framework</a></cite>]
|
|
specification defines an abstract model and an XML-based language
|
|
for expressing <a title="" href="#policy">policies</a> of entities
|
|
in a Web services-based system. This specification, Web Services
|
|
Policy 1.5 - Attachment, defines two general-purpose mechanisms for
|
|
associating policies with the <a title="" href=
|
|
"#policy_subject">subjects</a> to which they apply; the policies
|
|
may be defined as part of existing metadata about the subject or
|
|
the policies may be defined independently and associated through an
|
|
external binding to the subject.</p>
|
|
<p>To enable Web Services Policy to be used with existing Web
|
|
service technologies, this specification describes the use of these
|
|
general-purpose mechanisms with WSDL [<cite><a href="#WSDL11">WSDL
|
|
1.1</a></cite>, <cite><a href="#WSDL20">WSDL 2.0 Core
|
|
Language</a></cite>] definitions and UDDI [<cite><a href=
|
|
"#UDDIAPI20">UDDI API 2.0</a></cite>, <cite><a href=
|
|
"#UDDIDataStructure20">UDDI Data Structure 2.0</a></cite>,
|
|
<cite><a href="#UDDI30">UDDI 3.0</a></cite>].</p>
|
|
</div>
|
|
<div class="div1">
|
|
<h2><a name="NotationsTerminology" id="NotationsTerminology"></a>2.
|
|
Notations and Terminology</h2>
|
|
<p>This section specifies the notations, namespaces, and
|
|
terminology used in this specification.</p>
|
|
<div class="div2">
|
|
<h3><a name="NotationalConventions" id=
|
|
"NotationalConventions"></a>2.1 Notational Conventions</h3>
|
|
<p>This specification uses the following syntax within normative
|
|
outlines:</p>
|
|
<ul>
|
|
<li>
|
|
<p>The syntax appears as an XML instance, but values in
|
|
<em>italics</em> indicate data types instead of literal values.</p>
|
|
</li>
|
|
<li>
|
|
<p>Characters are appended to elements and attributes to indicate
|
|
cardinality:</p>
|
|
<ul>
|
|
<li>
|
|
<p>"?" (0 or 1)</p>
|
|
</li>
|
|
<li>
|
|
<p>"*" (0 or more)</p>
|
|
</li>
|
|
<li>
|
|
<p>"+" (1 or more)</p>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
<li>
|
|
<p>The character "|" is used to indicate a choice between
|
|
alternatives.</p>
|
|
</li>
|
|
<li>
|
|
<p>The characters "(" and ")" are used to indicate that contained
|
|
items are to be treated as a group with respect to cardinality or
|
|
choice.</p>
|
|
</li>
|
|
<li>
|
|
<p>This document relies on the XML Information Set [<cite><a href=
|
|
"#XMLInfoset">XML Information Set</a></cite>]. Information items
|
|
properties are indicated by the style <strong>[infoset
|
|
property]</strong>.</p>
|
|
</li>
|
|
<li>
|
|
<p>XML namespace prefixes (see <a href="#nsprefix">Table 2-1</a>)
|
|
are used to indicate the namespace of the element or attribute
|
|
being defined.</p>
|
|
</li>
|
|
<li>
|
|
<p>The ellipses characters "…" are used to indicate a point of
|
|
extensibility that allows other 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 other than the
|
|
http://www.w3.org/ns/ws-policy namespace.</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. namespace.</p>
|
|
</li>
|
|
</ul>
|
|
<p>Normative text within this specification takes precedence over
|
|
normative outlines, which in turn take precedence over the XML
|
|
Schema [<cite><a href="#XMLSchemaPart1">XML Schema
|
|
Structures</a></cite>] descriptions.</p>
|
|
</div>
|
|
<div class="div2">
|
|
<h3><a name="XMLNamespaces" id="XMLNamespaces"></a>2.2 XML
|
|
Namespaces</h3>
|
|
<p>This specification uses a number of namespace prefixes
|
|
throughout; they are listed in <a href="#nsprefix">Table 2-1</a>.
|
|
Note that the choice of any namespace prefix is arbitrary and not
|
|
semantically significant (see [<cite><a href="#XML-NS">XML
|
|
Namespaces</a></cite>]).</p>
|
|
<a name="nsprefix" id="nsprefix"></a>
|
|
<table summary="Namespace prefixes usage in this specification"
|
|
border="1" cellspacing="0" cellpadding="5">
|
|
<caption>Table 2-1. Prefixes and Namespaces used in this
|
|
specification</caption>
|
|
<thead>
|
|
<tr>
|
|
<th rowspan="1" colspan="1">Prefix</th>
|
|
<th rowspan="1" colspan="1">XML Namespace</th>
|
|
<th rowspan="1" colspan="1">Specification</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><code>mtom</code></td>
|
|
<td rowspan="1" colspan="1">
|
|
<code>http://schemas.xmlsoap.org/ws/2004/09/policy/optimizedmimeserialization</code></td>
|
|
<td rowspan="1" colspan="1">[<cite><a href=
|
|
"#WS-MTOMPolicy">WS-MTOMPolicy</a></cite>]</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><code>rmp</code></td>
|
|
<td rowspan="1" colspan="1">
|
|
<code>http://docs.oasis-open.org/ws-rx/wsrmp/200702</code></td>
|
|
<td rowspan="1" colspan="1">[<cite><a href="#WS-RMPolicy">WS-RM
|
|
Policy</a></cite>]</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><code>sp</code></td>
|
|
<td rowspan="1" colspan="1">
|
|
<code>http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702</code></td>
|
|
<td rowspan="1" colspan="1">[<cite><a href=
|
|
"#WS-SecurityPolicy">WS-SecurityPolicy</a></cite>]</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><code>wsa</code></td>
|
|
<td rowspan="1" colspan="1">
|
|
<code>http://www.w3.org/2005/08/addressing</code></td>
|
|
<td rowspan="1" colspan="1">[<cite><a href=
|
|
"#WS-Addressing">WS-Addressing Core</a></cite>]</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><code>wsam</code></td>
|
|
<td rowspan="1" colspan="1">
|
|
<code>http://www.w3.org/2007/05/addressing/metadata</code></td>
|
|
<td rowspan="1" colspan="1">[<cite><a href=
|
|
"#WS-AddressingMetadata">WS-Addressing Metadata</a></cite>]</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><code>wsdl11</code></td>
|
|
<td rowspan="1" colspan="1">
|
|
<code>http://schemas.xmlsoap.org/wsdl/</code></td>
|
|
<td rowspan="1" colspan="1">[<cite><a href="#WSDL11">WSDL
|
|
1.1</a></cite>]</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><code>wsdl20</code></td>
|
|
<td rowspan="1" colspan="1">
|
|
<code>http://www.w3.org/ns/wsdl</code></td>
|
|
<td rowspan="1" colspan="1">[<cite><a href="#WSDL20">WSDL 2.0 Core
|
|
Language</a></cite>]</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><code>wsoap12</code></td>
|
|
<td rowspan="1" colspan="1">
|
|
<code>http://schemas.xmlsoap.org/wsdl/soap12/</code></td>
|
|
<td rowspan="1" colspan="1">[<cite><a href=
|
|
"#WSDL11BindingforSOAP12">WSDL 1.1 Binding for SOAP
|
|
1.2</a></cite>]</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><code>(none), wsp</code></td>
|
|
<td rowspan="1" colspan="1">
|
|
<code>http://www.w3.org/ns/ws-policy</code></td>
|
|
<td rowspan="1" colspan="1">This specification</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><code>wsse</code></td>
|
|
<td rowspan="1" colspan="1">
|
|
<code>http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd</code></td>
|
|
<td rowspan="1" colspan="1">[<cite><a href=
|
|
"#WS-Security">WS-Security 2004</a></cite>]</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><code>wsu</code></td>
|
|
<td rowspan="1" colspan="1">
|
|
<code>http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd</code></td>
|
|
<td rowspan="1" colspan="1">[<cite><a href=
|
|
"#WS-Security">WS-Security 2004</a></cite>]</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><code>xs</code></td>
|
|
<td rowspan="1" colspan="1">
|
|
<code>http://www.w3.org/2001/XMLSchema</code></td>
|
|
<td rowspan="1" colspan="1">[<cite><a href="#XMLSchemaPart1">XML
|
|
Schema Structures</a></cite>]</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<br />
|
|
<p>All information items defined by this specification are
|
|
identified by the XML namespace URI [<cite><a href="#XML-NS">XML
|
|
Namespaces</a></cite>] http://www.w3.org/ns/ws-policy. A <a href=
|
|
"http://www.w3.org/2007/02/ws-policy.xsd">normative XML Schema</a>
|
|
[<cite><a href="#XMLSchemaPart1">XML Schema Structures</a></cite>,
|
|
<cite><a href="#XMLSchemaPart2">XML Schema Datatypes</a></cite>]
|
|
document can be obtained indirectly by dereferencing the namespace
|
|
document at the WS-Policy 1.5 namespace URI.</p>
|
|
<p>In this document reference is made to the <code>wsu:Id</code>
|
|
attribute in a utility schema (<a href=
|
|
"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd</a>).
|
|
The <code>wsu:Id</code> attribute was added to the utility schema
|
|
with the intent that other specifications requiring such an Id
|
|
could reference it (as is done here).</p>
|
|
<p>It is the intent of the W3C Web Services Policy Working Group
|
|
that the Web Services Policy 1.5 - Framework and Web Services
|
|
Policy 1.5 - Attachment XML namespace URI will not change
|
|
arbitrarily with each subsequent revision of the corresponding XML
|
|
Schema documents as the specifications transition through Candidate
|
|
Recommendation, Proposed Recommendation and Recommendation status.
|
|
However, should the specifications revert to Working Draft status,
|
|
and a subsequent revision, published as a WD, CR or PR draft,
|
|
results in non-backwardly compatible changes from a previously
|
|
published WD, CR or PR draft of the specification, the namespace
|
|
URI will be changed accordingly.</p>
|
|
<p>Under this policy, the following are examples of backwards
|
|
compatible changes that would not result in assignment of a new XML
|
|
namespace URI:</p>
|
|
<ul>
|
|
<li>
|
|
<p>Addition of new global element, attribute, complexType and
|
|
simpleType definitions.</p>
|
|
</li>
|
|
<li>
|
|
<p>Addition of new elements or attributes in locations covered by a
|
|
previously specified wildcard.</p>
|
|
</li>
|
|
<li>
|
|
<p>Modifications to the pattern facet of a type definition for
|
|
which the value-space of the previous definition remains valid or
|
|
for which the value-space of the preponderance of instance would
|
|
remain valid.</p>
|
|
</li>
|
|
<li>
|
|
<p>Modifications to the cardinality of elements for which the
|
|
value-space of possible instance documents conformant to the
|
|
previous revision of the schema would still be valid with regards
|
|
to the revised cardinality rule.</p>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<div class="div2">
|
|
<h3><a name="Glossary" id="Glossary"></a>2.3 Terminology</h3>
|
|
<p>The keywords "<span class="rfc2119">MUST</span>", "<span class=
|
|
"rfc2119">MUST NOT</span>", "<span class=
|
|
"rfc2119">REQUIRED</span>", "<span class="rfc2119">SHALL</span>",
|
|
"<span class="rfc2119">SHALL NOT</span>", "<span class=
|
|
"rfc2119">SHOULD</span>", "<span class="rfc2119">SHOULD
|
|
NOT</span>", "<span class="rfc2119">RECOMMENDED</span>",
|
|
"<span class="rfc2119">MAY</span>", and "<span class=
|
|
"rfc2119">OPTIONAL</span>" in this document are to be interpreted
|
|
as described in RFC 2119 [<cite><a href="#RFC2119">IETF RFC
|
|
2119</a></cite>].</p>
|
|
<p>We introduce the following terms that are used throughout this
|
|
document:</p>
|
|
<dl>
|
|
<dt class="label"><a href=
|
|
"http://www.w3.org/TR/2007/PR-ws-policy-20070706/#collection">collection</a></dt>
|
|
<dd>
|
|
<p id="collection">The items in a <b>collection</b> in this
|
|
specification are unordered and may contain duplicates.</p>
|
|
</dd>
|
|
<dt class="label"><a href="#effective_policy">effective
|
|
policy</a></dt>
|
|
<dd>
|
|
<p>The <b>effective policy</b>, for a given <a title="" href=
|
|
"#policy_subject">policy subject</a>, is the combination of
|
|
relevant policies. The relevant policies are those attached to
|
|
<a title="" href="#policy_scope">policy scopes</a> that contain the
|
|
<a title="" href="#policy_subject">policy subject</a>.</p>
|
|
</dd>
|
|
<dt class="label"><a href="#element_policy">element policy</a></dt>
|
|
<dd>
|
|
<p>The <b>element policy</b> is the <a title="" href=
|
|
"#policy">policy</a> attached to the <a title="" href=
|
|
"#policy_subject">policy subjects</a> associated with the element
|
|
information item that contains it.</p>
|
|
</dd>
|
|
<dt class="label"><a href=
|
|
"http://www.w3.org/TR/2007/PR-ws-policy-20070706/#ignorable_policy_assertion">
|
|
ignorable policy assertion</a></dt>
|
|
<dd>
|
|
<p id="ignorable_policy_assertion">An <b>ignorable policy
|
|
assertion</b> is an assertion that may be ignored for purposes of
|
|
determining the compatibility of alternatives in policy
|
|
intersection in a lax mode (as defined in <a href=
|
|
"http://www.w3.org/TR/ws-policy#Policy_Intersection">4.5 Policy
|
|
Intersection</a>).</p>
|
|
</dd>
|
|
<dt class="label"><a href="#merge">merge</a></dt>
|
|
<dd>
|
|
<p>A <b>merge</b> consists of serializing each policy as a
|
|
<a title="" href="#policy_expression">policy expression</a>,
|
|
replacing their <code>wsp:Policy</code> element with a
|
|
<code>wsp:All</code> element, and placing each as children of a
|
|
wrapper <code>wsp:Policy</code> element.</p>
|
|
</dd>
|
|
<dt class="label"><a href=
|
|
"http://www.w3.org/TR/2007/PR-ws-policy-20070706/#policy">policy</a></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=
|
|
"http://www.w3.org/TR/2007/PR-ws-policy-20070706/#policy_alternative">
|
|
policy alternative</a></dt>
|
|
<dd>
|
|
<p id="policy_alternative">A <b>policy alternative</b> is a
|
|
potentially empty <a title="" href="#collection">collection</a> of
|
|
<a title="" href="#policy_assertion">policy assertions</a>.</p>
|
|
</dd>
|
|
<dt class="label"><a href=
|
|
"http://www.w3.org/TR/2007/PR-ws-policy-20070706/#policy_assertion">
|
|
policy assertion</a></dt>
|
|
<dd>
|
|
<p id="policy_assertion">A <b>policy assertion</b> represents a
|
|
requirement, a capability, or other property of a behavior.</p>
|
|
</dd>
|
|
<dt class="label"><a href=
|
|
"http://www.w3.org/TR/2007/PR-ws-policy-20070706/#policy_attachment">
|
|
policy attachment</a></dt>
|
|
<dd>
|
|
<p id="policy_attachment">A <b>policy attachment</b> is a mechanism
|
|
for associating <a title="" href="#policy">policy</a> with one or
|
|
more <a title="" href="#policy_scope">policy scopes</a>.</p>
|
|
</dd>
|
|
<dt class="label"><a href=
|
|
"http://www.w3.org/TR/2007/PR-ws-policy-20070706/#policy_expression">
|
|
policy expression</a></dt>
|
|
<dd>
|
|
<p id="policy_expression">A <b>policy expression</b> is an XML
|
|
Infoset representation of a <a title="" href="#policy">policy</a>,
|
|
either in a normal form or in an equivalent compact form.</p>
|
|
</dd>
|
|
<dt class="label"><a href=
|
|
"http://www.w3.org/TR/2007/PR-ws-policy-20070706/#policy_scope">policy
|
|
scope</a></dt>
|
|
<dd>
|
|
<p id="policy_scope">A <b>policy scope</b> is a collection of
|
|
<a title="" href="#policy_subject">policy subjects</a> to which a
|
|
policy may apply.</p>
|
|
</dd>
|
|
<dt class="label"><a href=
|
|
"http://www.w3.org/TR/2007/PR-ws-policy-20070706/#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, operation) with which a <a title=""
|
|
href="#policy">policy</a> can be associated.</p>
|
|
</dd>
|
|
</dl>
|
|
</div>
|
|
<div class="div2">
|
|
<h3><a name="Example" id="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 brevity, we define two sample
|
|
<a title="" href="#policy_expression">policy expressions</a> that
|
|
the remainder of this document references.</p>
|
|
<p><a href="#Table2">Example 2-1</a> indicates a <a title="" href=
|
|
"#policy">policy</a> for reliable messaging [<cite><a href=
|
|
"#WS-RMPolicy">WS-RM Policy</a></cite>]. <a href="#Table3">Example
|
|
2-2</a> is a policy for securing messages using X509 certificates
|
|
[<cite><a href=
|
|
"#WS-SecurityPolicy">WS-SecurityPolicy</a></cite>].</p>
|
|
<div class="exampleOuter">
|
|
<p style="text-align: left" class="exampleHead"><a name="Table2"
|
|
id="Table2"></a><i><span>Example 2-1.</span> Example RM Policy
|
|
Expression.</i></p>
|
|
<div class="exampleInner">
|
|
<pre>
|
|
(01) <wsp:Policy
|
|
xmlns:rmp="http://docs.oasis-open.org/ws-rx/wsrmp/200702"
|
|
xmlns:wsp="http://www.w3.org/ns/ws-policy"
|
|
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
|
|
wsu:Id="RmPolicy" >
|
|
(02) <rmp:RMAssertion>
|
|
(03) <wsp:Policy/>
|
|
(04) </rmp:RMAssertion>
|
|
(05) </wsp:Policy>
|
|
</pre></div>
|
|
</div>
|
|
<div class="exampleOuter">
|
|
<p style="text-align: left" class="exampleHead"><a name="Table3"
|
|
id="Table3"></a><i><span>Example 2-2.</span> Example X509 Security
|
|
Policy Expression.</i></p>
|
|
<div class="exampleInner">
|
|
<pre>
|
|
(01) <wsp:Policy
|
|
xmlns:sp="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702"
|
|
xmlns:wsp="http://www.w3.org/ns/ws-policy"
|
|
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
|
|
wsu:Id="X509EndpointPolicy" >
|
|
(02) <sp:AsymmetricBinding>
|
|
(03) <wsp:Policy>
|
|
(04) <sp:RecipientToken>
|
|
(05) <wsp:Policy>
|
|
(06) <sp:X509Token sp:IncludeToken="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/IncludeToken/Never">
|
|
(07) <wsp:Policy>
|
|
(08) <sp:WssX509V3Token10 />
|
|
(09) </wsp:Policy>
|
|
(10) </sp:X509Token>
|
|
(11) </wsp:Policy>
|
|
(12) </sp:RecipientToken>
|
|
(13) <sp:InitiatorToken>
|
|
(14) <wsp:Policy>
|
|
(15) <sp:X509Token sp:IncludeToken="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/IncludeToken/AlwaysToRecipient" >
|
|
(16) <wsp:Policy>
|
|
(17) <sp:WssX509V3Token10 />
|
|
(18) </wsp:Policy>
|
|
(19) </sp:X509Token>
|
|
(20) </wsp:Policy>
|
|
(21) </sp:InitiatorToken>
|
|
(22) <sp:AlgorithmSuite>
|
|
(23) <wsp:Policy>
|
|
(24) <sp:Basic256Rsa15 />
|
|
(25) </wsp:Policy>
|
|
(26) </sp:AlgorithmSuite>
|
|
(27) <sp:Layout>
|
|
(28) <wsp:Policy>
|
|
(29) <sp:Lax />
|
|
(30) </wsp:Policy>
|
|
(31) </sp:Layout>
|
|
(32) <sp:IncludeTimestamp />
|
|
(33) <sp:OnlySignEntireHeadersAndBody />
|
|
(34) </wsp:Policy>
|
|
(35) </sp:AsymmetricBinding>
|
|
(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://www.w3.org/TR/2007/REC-ws-policy-20070904/#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
|
|
<code>http://www.example.com/policies#X509EndpointPolicy</code>,
|
|
for the examples in <a href="#Table2">Example 2-1</a> and <a href=
|
|
"#Table3">Example 2-2</a>, respectively.</p>
|
|
</div>
|
|
</div>
|
|
<div class="div1">
|
|
<h2><a name="rPolicyAttachment" id="rPolicyAttachment"></a>3.
|
|
Policy Attachment</h2>
|
|
<p>This section defines two general-purpose mechanisms for
|
|
associating <a title="" href="#policy">policies</a> with one or
|
|
more <a title="" href="#policy_subject">policy subjects</a>. The
|
|
first allows XML-based descriptions of resources (represented as
|
|
XML elements) to associate policy as part of their intrinsic
|
|
definition. The second allows policies to be associated with
|
|
arbitrary policy subjects independently from their definition.</p>
|
|
<p>In addition it defines the processing rules for scenarios where
|
|
multiple policies are attached to a policy subject.</p>
|
|
<div class="div2">
|
|
<h3><a name="rEffectivePolicy" id="rEffectivePolicy"></a>3.1
|
|
Effective Policy</h3>
|
|
<p><a title="" href="#policy">Policies</a> will often be associated
|
|
with a particular <a title="" href="#policy_subject">policy
|
|
subject</a> using multiple <a title="" href=
|
|
"#policy_attachment">policy attachments</a>. For example, there may
|
|
be attachments at different points in a WSDL description that apply
|
|
to one policy subject, and other attachments may be made by UDDI
|
|
and other mechanisms.</p>
|
|
<p>When multiple attachments are made, their relevent policies can
|
|
be combined. [<a name="effective_policy" id="effective_policy"
|
|
title="effective policy">Definition</a>: The <b>effective
|
|
policy</b>, for a given <a title="" href="#policy_subject">policy
|
|
subject</a>, is the combination of relevant policies. The relevant
|
|
policies are those attached to <a title="" href=
|
|
"#policy_scope">policy scopes</a> that contain the <a title=""
|
|
href="#policy_subject">policy subject</a>.]</p>
|
|
<p>This combination can be achieved through a merge. [<a name=
|
|
"merge" id="merge" title="merge">Definition</a>: A <b>merge</b>
|
|
consists of serializing each policy as a <a title="" href=
|
|
"#policy_expression">policy expression</a>, replacing their
|
|
<code>wsp:Policy</code> element with a <code>wsp:All</code>
|
|
element, and placing each as children of a wrapper
|
|
<code>wsp:Policy</code> element.] The resulting policy expression
|
|
is considered to represent the combined policy of all of the
|
|
attachments to that policy subject.</p>
|
|
<p>Such calculated policy expressions have no meaningful IRI of
|
|
their own.</p>
|
|
</div>
|
|
<div class="div2">
|
|
<h3><a name="PolicyAttachmentMechanisms" id=
|
|
"PolicyAttachmentMechanisms"></a>3.2 Policy Attachment
|
|
Mechanisms</h3>
|
|
<p>This section defines two general-purpose mechanisms for
|
|
associating policies [<cite><a href="#WS-Policy">Web Services
|
|
Policy Framework</a></cite>] with one or more <a title="" href=
|
|
"#policy_subject">policy subjects</a>. The first allows XML-based
|
|
descriptions of resources to associate <a title="" href=
|
|
"#policy">policy</a> as part of their intrinsic definition. The
|
|
second allows policies to be associated with arbitrary policy
|
|
subjects independently from their definition.</p>
|
|
<p>The <a title="" href="#policy_scope">policy scope</a> of an
|
|
attachment is specific to the <a title="" href=
|
|
"#policy_attachment">policy attachment</a> Mechanism using it.
|
|
Accordingly, any <a title="" href="#policy_attachment">policy
|
|
attachment</a> mechanism <span class="rfc2119">MUST</span> define
|
|
the <a title="" href="#policy_scope">policy scope</a> of the
|
|
attachment.</p>
|
|
</div>
|
|
<div class="div2">
|
|
<h3><a name="XMLElementAttachement" id=
|
|
"XMLElementAttachement"></a>3.3 XML Element Attachment</h3>
|
|
<p>It is often desirable to associate <a title="" href=
|
|
"#policy">policies</a> with Web services <a title="" href=
|
|
"#policy_subject">policy subjects</a> represented as XML elements
|
|
(i.e., WSDL 1.1 elements - Section <a href=
|
|
"#AttachingPolicyUsingWSDL1.1"><b>4. Attaching Policies Using WSDL
|
|
1.1</b></a> for the specific details of WSDL attachment).</p>
|
|
<p>Since <a title="" href="#policy_assertion">policy assertions</a>
|
|
are strongly typed by the authors, the precise semantics of how
|
|
element policy is to be processed once discovered is
|
|
domain-specific; however, implementations are likely to follow the
|
|
precedent specified in the section below 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>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/ns/ws-policy</code>.</p>
|
|
<p>The <code>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
|
|
individual referenced <a title="" href="#policy">policies</a> need
|
|
to be <a title="merge" href="#merge">merged</a> together to form a
|
|
single element <a title="" href="#policy_expression">policy
|
|
expression</a>. The resultant <a title="" href="#policy">policy</a>
|
|
is then associated with the element information item's <a title=
|
|
"element policy" href="#element_policy">element policy</a>
|
|
property. [<a name="element_policy" id="element_policy" title=
|
|
"element policy">Definition</a>: The <b>element policy</b> is the
|
|
<a title="" href="#policy">policy</a> attached to the <a title=""
|
|
href="#policy_subject">policy subjects</a> associated with the
|
|
element information item that contains it.]</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>, 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"
|
|
id="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/200702"
|
|
xmlns:sp="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702"
|
|
xmlns:wsp="http://www.w3.org/ns/ws-policy" >
|
|
(02) <wsp:All>
|
|
(03) <rmp:RMAssertion>
|
|
(04) <wsp:Policy/>
|
|
(05) </rmp:RMAssertion>
|
|
(06) </wsp:All>
|
|
(07) <wsp:All>
|
|
(08) <sp:AsymmetricBinding>
|
|
(09) <wsp:Policy>
|
|
(10) <!-- Details omitted for readability -->
|
|
(11) <sp:IncludeTimestamp />
|
|
(12) <sp:OnlySignEntireHeadersAndBody />
|
|
(13) </wsp:Policy>
|
|
(14) </sp:AsymmetricBinding>
|
|
(15) </wsp:All>
|
|
(16) </wsp:Policy>
|
|
</pre></div>
|
|
</div>
|
|
<p>Note that this <a title="element policy" href=
|
|
"#element_policy">element policy</a> has no meaningful IRI.</p>
|
|
<p>The presence of the <code>wsp:PolicyURIs</code> attribute does
|
|
not prohibit implementations from using additional mechanisms for
|
|
associating <a title="" href="#policy_expression">policy
|
|
expressions</a> with XML-based constructs.</p>
|
|
<p>Alternatively, rather than using the global attribute, XML
|
|
elements <span class="rfc2119">MAY</span> use the
|
|
<code>wsp:Policy</code> or <code>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://www.w3.org/TR/2007/REC-ws-policy-20070904/#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">
|
|
<h3><a name="ExternalPolicyAttachment" id=
|
|
"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>wsp:PolicyAttachment</code> element.</p>
|
|
<p>This element has three components: the <a title="" href=
|
|
"#policy_scope">policy scope</a> of the attachment, the <a title=""
|
|
href="#policy_expression">policy expressions</a> being bound, and
|
|
optional security information. The <a title="" href=
|
|
"#policy_scope">policy scope</a> of the attachment is defined using
|
|
one or more extensible domain expressions that identify <a title=""
|
|
href="#policy_subject">policy subjects</a>, typically using
|
|
IRIs.</p>
|
|
<p>Domain expressions identify the domain of the association. That
|
|
is, the set of <a title="" href="#policy_subject">policy
|
|
subjects</a> that will be considered for inclusion in the scope
|
|
using an extensible domain expression model. Domain expressions
|
|
identify <a title="" href="#policy_subject">policy subjects</a> to
|
|
be included within the <a title="" href="#policy_scope">policy
|
|
scope</a>. Domain expressions yield an unordered set of <a title=""
|
|
href="#policy_subject">policy subjects</a> for consideration.</p>
|
|
<p>For the purposes of attaching <a title="" href=
|
|
"#policy">policy</a> to a <a title="" href="#policy_subject">policy
|
|
subject</a> through this mechanism, any <a title="" href=
|
|
"#policy_expression">policy expression</a> contained inside of the
|
|
<code>wsp:AppliesTo</code> element <span class="rfc2119">MUST
|
|
NOT</span> be 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>wsp:PolicyAttachment</code> element using it.</p>
|
|
<p>The following is the pseudo-schema for the
|
|
<code>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"><code>/wsp:PolicyAttachment</code></dt>
|
|
<dd>
|
|
<p>This describes an external <a title="" href=
|
|
"#policy_attachment">policy attachment</a>.</p>
|
|
</dd>
|
|
<dt class="label">
|
|
<code>/wsp:PolicyAttachment/wsp:AppliesTo</code></dt>
|
|
<dd>
|
|
<p>This required element's children describe the <a title="" href=
|
|
"#policy_scope">policy scope</a>.</p>
|
|
</dd>
|
|
<dt class="label">
|
|
<code>/wsp:PolicyAttachment/wsp:AppliesTo/{any}</code></dt>
|
|
<dd>
|
|
<p>These child elements <span class="rfc2119">MUST</span> specify
|
|
and/or refine the domain expression(s) that define the <a title=""
|
|
href="#policy_scope">policy scope</a>. They <span class=
|
|
"rfc2119">MUST NOT</span> contradict the semantics of their root
|
|
element; if an element is not recognized, it <span class=
|
|
"rfc2119">SHOULD</span> be ignored. Domain expressions are XML
|
|
elements that describe <a title="" href="#policy_subject">policy
|
|
subjects</a> within a <a title="" href="#policy_scope">policy
|
|
scope</a>. When more than one domain expression is present, the
|
|
<a title="" href="#policy_scope">policy scope</a> contains the
|
|
union of the <a title="" href="#policy_subject">policy subjects</a>
|
|
identified by each expression.</p>
|
|
</dd>
|
|
<dt class="label">
|
|
<code>/wsp:PolicyAttachment/wsp:Policy</code></dt>
|
|
<dd>
|
|
<p>This element is a <a title="" href="#policy_expression">policy
|
|
expression</a> representing a <a title="" href="#policy">policy</a>
|
|
that is attached to the <a title="" href="#policy_subject">policy
|
|
subjects</a> within the <a title="" href="#policy_scope">policy
|
|
scope</a>.</p>
|
|
</dd>
|
|
<dt class="label">
|
|
<code>/wsp:PolicyAttachment/wsp:PolicyReference</code></dt>
|
|
<dd>
|
|
<p>This element references a <a title="" href=
|
|
"#policy_expression">policy expression</a> to be attached to the
|
|
<a title="" href="#policy_subject">policy subjects</a> that are in
|
|
the <a title="" href="#policy_scope">policy scope</a>. Refer to Web
|
|
Services Policy 1.5 - Framework [<cite><a href="#WS-Policy">Web
|
|
Services Policy Framework</a></cite>] for additional details.</p>
|
|
</dd>
|
|
<dt class="label">
|
|
<code>/wsp:PolicyAttachment/wsse:Security</code></dt>
|
|
<dd>
|
|
<p>This element is of type <code>wsse:Security</code> and allows
|
|
security information such as signatures to be included. The syntax
|
|
of this element is described in WS-Security [<cite><a href=
|
|
"#WS-Security">WS-Security 2004</a></cite>].</p>
|
|
</dd>
|
|
<dt class="label"><code>/wsp:PolicyAttachment/@{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>/wsp:PolicyAttachment/{any}</code></dt>
|
|
<dd>
|
|
<p>Other child elements for binding constructs <span class=
|
|
"rfc2119">MAY</span> be specified but <span class="rfc2119">MUST
|
|
NOT</span> contradict the semantics of the parent element; if an
|
|
element is not recognized, it <span class="rfc2119">SHOULD</span>
|
|
be ignored.</p>
|
|
</dd>
|
|
</dl>
|
|
<p>Domain expressions are used to identify entities such as
|
|
endpoints, messages 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
|
|
<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 class="div3">
|
|
<h4><a name="uri-domain-expression" id=
|
|
"uri-domain-expression"></a>3.4.1 URI Domain Expression</h4>
|
|
<p>This section defines a domain expression for identifying
|
|
resources as <a title="" href="#policy_subject">policy subjects</a>
|
|
for the external attachment mechanism. The following is a
|
|
pseudo-schema for the URI domain expression:</p>
|
|
<div class="exampleInner">
|
|
<pre>
|
|
(01) <wsp:PolicyAttachment … >
|
|
(02) <wsp:AppliesTo>
|
|
(03) <wsp:URI … >xs:anyURI</wsp:URI> *
|
|
(04) </wsp:AppliesTo>
|
|
(05) …
|
|
(06) </wsp:PolicyAttachment>
|
|
</pre></div>
|
|
<p>The following describes the URI domain expression element listed
|
|
in the pseudo-schema outlined above:</p>
|
|
<dl>
|
|
<dt class="label">
|
|
<code>/wsp:PolicyAttachment/wsp:AppliesTo/wsp:URI</code></dt>
|
|
<dd>
|
|
<p>This element is an IRI that references a resource as a <a title=
|
|
"" href="#policy_subject">policy subject</a>. There is no
|
|
requirement that the IRI be resolvable; retrieval mechanisms are
|
|
beyond the scope of this specification.</p>
|
|
</dd>
|
|
<dt class="label">
|
|
<code>/wsp:PolicyReference/wsp:AppliesTo/wsp:URI/@{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>
|
|
</dl>
|
|
<p>URI domain expressions are used to identify resources that are
|
|
identified using IRI or IRI References (such as endpoint, message
|
|
or operation definitions) with which <a title="" href=
|
|
"#policy">policies</a> can be associated. For example, URI domain
|
|
expressions can be used to identify WSDL 1.1 definitions, WSDL 2.0
|
|
components, etc. When a URI domain expression identifies multiple
|
|
resources, i.e. WSDL 1.1 supports multiple operations with the same
|
|
name (sometimes called operation name overloading), the Policy
|
|
applies to all the resources that are identified.</p>
|
|
<p>IRI References for WSDL 2.0 components are defined in Appendix C
|
|
of the Web Services Description Language (WSDL) Version 2.0 Part 1:
|
|
Core Language [<cite><a href="#WSDL20">WSDL 2.0 Core
|
|
Language</a></cite>]. The following example illustrates the use of
|
|
URI domain expression with a WSDL 2.0 IRI Reference:</p>
|
|
<div class="exampleInner">
|
|
<pre>
|
|
(01) <wsp:PolicyAttachment>
|
|
(02) <wsp:AppliesTo>
|
|
(03) <wsp:URI>http://example.org/TicketAgent.wsdl20#wsdl.endpoint(TicketAgentService/Endpoint)</wsp:URI>
|
|
(04) </wsp:AppliesTo>
|
|
(05) <wsp:PolicyReference URI="http://www.example.com/policies#RmPolicy" />
|
|
(06) </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://example.org/TicketAgent.wsdl20#wsdl.endpoint(TicketAgentService/Endpoint)</code>.</p>
|
|
<p>IRI References for WSDL 1.1 elements are defined in WSDL 1.1
|
|
Element Identifiers [<cite><a href="#WSDL11EI">WSDL11
|
|
ElementIds</a></cite>].</p>
|
|
<p>The scope of URI domain expressions for WSDL 2.0 components or
|
|
WSDL 1.1 elements is limited to the subjects defined in Section
|
|
<a href="#ws-policy-attachment-for-wsdl20"><b>5. WS-Policy
|
|
Attachment for WSDL 2.0</b></a> and <a href=
|
|
"#AttachingPolicyUsingWSDL1.1"><b>4. Attaching Policies Using WSDL
|
|
1.1</b></a>.</p>
|
|
</div>
|
|
</div>
|
|
<div class="div2">
|
|
<h3><a name="IRI_Policy_Attachment" id=
|
|
"IRI_Policy_Attachment"></a>3.5 Use of IRIs in Policy
|
|
Attachment</h3>
|
|
<p>Policy attachment mechanisms use IRIs for some identifiers. This
|
|
document does not define a base URI but relies on the mechanisms
|
|
defined in XML Base [<cite><a href="#XMLBASE">XML BASE</a></cite>]
|
|
and RFCs 3023 [<cite><a href="#RFC3023">IETF RFC 3023</a></cite>],
|
|
3986 [<cite><a href="#RFC3986">IETF RFC 3986</a></cite>] and 3987
|
|
[<cite><a href="#RFC3987">IETF RFC 3987</a></cite>] for
|
|
establishing a base URI against which relative IRIs can be made
|
|
absolute.</p>
|
|
</div>
|
|
</div>
|
|
<div class="div1">
|
|
<h2><a name="AttachingPolicyUsingWSDL1.1" id=
|
|
"AttachingPolicyUsingWSDL1.1"></a>4. Attaching Policies Using WSDL
|
|
1.1</h2>
|
|
<p>This section describes a mechanism for associating policy
|
|
expressions with Web service constructs in WSDL 1.1 [<cite><a href=
|
|
"#WSDL11">WSDL 1.1</a></cite>]. The mechanism consists of:</p>
|
|
<ul>
|
|
<li>
|
|
<p>A model for attaching policies to WSDL 1.1 constructs. The model
|
|
defines:</p>
|
|
<ul>
|
|
<li>
|
|
<p>A partitioning of WSDL constructs into service, endpoint,
|
|
operation and message policy subjects.</p>
|
|
</li>
|
|
<li>
|
|
<p>The semantics of attaching a <a title="" href=
|
|
"#policy">policy</a> to each <a title="" href=
|
|
"#policy_subject">policy subject</a></p>
|
|
</li>
|
|
<li>
|
|
<p>How to combine policies attached to more than one WSDL construct
|
|
within a single policy subject.</p>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
<li>
|
|
<p>An XML representation of policy expressions attached to WSDL 1.1
|
|
constructs.</p>
|
|
</li>
|
|
<li>
|
|
<p>The annotation of such policy expressions as required extensions
|
|
using the WSDL-defined extensibility flag
|
|
<code>@wsdl:required</code>.</p>
|
|
</li>
|
|
</ul>
|
|
<p>WSDL 1.1 disallows the use of extensibility elements on certain
|
|
elements and the use of extensibility attributes on others.
|
|
However, the WS-I Basic Profile 1.1 [<cite><a href="#BP11">BP
|
|
1.1</a></cite>] overrules this restriction and allows element
|
|
extensibility everywhere. Therefore, when attaching a reference
|
|
directly to the WSDL element the policy reference SHOULD be
|
|
attached using <code>wsp:PolicyReference</code> as child element
|
|
unless it is absolutely necessary to maintain the original WSDL 1.1
|
|
restriction, in which case the <code>@wsp:PolicyURIs</code>
|
|
attribute MAY be used for the following WSDL elements:</p>
|
|
<ul>
|
|
<li>
|
|
<p><code>wsdl11:portType</code></p>
|
|
</li>
|
|
<li>
|
|
<p><code>wsdl11:portType/wsdl11:operation/wsdl11:input</code></p>
|
|
</li>
|
|
<li>
|
|
<p><code>wsdl11:portType/wsdl11:operation/wsdl11:output</code></p>
|
|
</li>
|
|
<li>
|
|
<p><code>wsdl11:portType/wsdl11:operation/wsdl11:fault</code></p>
|
|
</li>
|
|
</ul>
|
|
<p>If it is necessary to include the actual <a title="" href=
|
|
"#policy_expression">policy expressions</a> within the WSDL
|
|
description itself, it is <span class="rfc2119">RECOMMENDED</span>
|
|
that their <code>wsp:Policy</code> elements be included as children
|
|
of the <code>wsdl11:definition</code> element, and referenced using
|
|
the mechanisms just described. Alternatively, the <a title="" href=
|
|
"#policy_expression">policy expressions</a> <span class=
|
|
"rfc2119">MAY</span> be made available through some other means,
|
|
such as WS-MetadataExchange [<cite><a href=
|
|
"#WS-MetadataExchange">WS-MetadataExchange</a></cite>].</p>
|
|
<p>To ensure that consumers of policy-annotated WSDL elements are
|
|
capable of processing such <a title="" href=
|
|
"#policy_attachment">policy attachments</a>, attachments using
|
|
<code>wsp:PolicyReference</code> <span class=
|
|
"rfc2119">SHOULD</span> be marked as a mandatory extension (e.g.,
|
|
with a <code>@wsdl11:required="true"</code> attribute).</p>
|
|
<p>The rest of this section defines how to interpret the <a title=
|
|
"" href="#policy_attachment">policy attachments</a> when they
|
|
appear within a WSDL description.</p>
|
|
<div class="div2">
|
|
<h3><a name="CalculatingEffectivyPolicywithWSDL1.1" id=
|
|
"CalculatingEffectivyPolicywithWSDL1.1"></a>4.1 Calculating
|
|
Effective Policy in WSDL 1.1</h3>
|
|
<p><a title="" href="#policy_attachment">Policy attachments</a> in
|
|
WSDL 1.1 can be used to associate <a title="" href=
|
|
"#policy">policies</a> with four different types of <a title=""
|
|
href="#policy_subject">policy subject</a>, identified as the
|
|
service policy subject, the endpoint policy subject, the operation
|
|
policy subject, and the message policy subject. These policy
|
|
subjects should be considered as nested, due to the hierarchical
|
|
nature of WSDL.</p>
|
|
<p>When attaching a <a title="" href="#policy">policy</a> to a WSDL
|
|
element, a <a title="" href="#policy_scope">policy scope</a> is
|
|
implied for that attachment. The <a title="" href=
|
|
"#policy_scope">policy scope</a> only contains the <a title=""
|
|
href="#policy_subject">policy subject</a> associated with that
|
|
element and not those associated with the children of that element.
|
|
Therefore, it is <span class="rfc2119">RECOMMENDED</span> that each
|
|
<a title="" href="#policy_assertion">policy assertion</a> contained
|
|
within a WSDL element's <a title="element policy" href=
|
|
"#element_policy">element policy</a> should have the correct
|
|
semantic such that the policy subject for that assertion is that
|
|
WSDL element. For example, assertions that describe behaviours
|
|
regarding the manipulation of messages should only be contained
|
|
within policies attached to WSDL message elements.</p>
|
|
<p>Figure 1 represents how the <a title="effective policy" href=
|
|
"#effective_policy">effective policies</a>, with regard to WSDL,
|
|
are calculated for each of these <a title="" href=
|
|
"#policy_subject">policy subjects</a>. In the diagram, the dashed
|
|
boxes represent <a title="" href="#policy_scope">policy scope</a>s
|
|
implied by WSDL elements. For a particular <a title="" href=
|
|
"#policy_subject">policy subject</a>, the <a title=
|
|
"effective policy" href="#effective_policy">effective policy</a>
|
|
<span class="rfc2119">MUST</span> <em>merge</em> the <a title=
|
|
"element policy" href="#element_policy">element policy</a> of each
|
|
element with a <a title="" href="#policy_scope">policy scope</a>
|
|
that contains the <a title="" href="#policy_subject">policy
|
|
subject</a>.</p>
|
|
<p>For abstract WSDL definitions, the <a title="element policy"
|
|
href="#element_policy">element policy</a> is considered an
|
|
intrinsic part of the definition and applies to all uses of that
|
|
definition. In particular, it <span class="rfc2119">MUST</span> be
|
|
<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"
|
|
id="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=
|
|
"http://www.w3.org/TR/2007/REC-ws-policy-attach-20070904/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 endpoint, there are four
|
|
<a title="" href="#policy_subject">policy subjects</a> involved,
|
|
each with their own <a title="effective policy" href=
|
|
"#effective_policy">effective policy</a>. There is an <a title=
|
|
"effective policy" href="#effective_policy">effective policy</a>
|
|
for the message, as well as an <a title="effective policy" href=
|
|
"#effective_policy">effective policy</a> for the parent operation
|
|
of that message, an <a title="effective policy" href=
|
|
"#effective_policy">effective policy</a> for the deployed endpoint,
|
|
and the <a title="effective policy" href=
|
|
"#effective_policy">effective policy</a> for the service as a
|
|
whole. All four <a title="effective policy" href=
|
|
"#effective_policy">effective policies</a> are applicable in
|
|
relation to that specific input message.</p>
|
|
<p>It is <span class="rfc2119">RECOMMENDED</span> that, where
|
|
specific <a title="" href="#policy_assertion">policy assertions</a>
|
|
associated with one <a title="" href="#policy_subject">policy
|
|
subject</a> are only compatible with specific <a title="" href=
|
|
"#policy_assertion">policy assertions</a> on another <a title=""
|
|
href="#policy_subject">policy subject</a> in the same hierarchical
|
|
chain, the policies containing these assertions should be attached
|
|
within a single WSDL binding hierarchy.</p>
|
|
<p>For any given port, the <a title="" href=
|
|
"#policy_alternative">policy alternatives</a> for each <a title=""
|
|
href="#policy_subject">policy subject</a> type <span class=
|
|
"rfc2119">SHOULD</span> be compatible with each of the <a title=""
|
|
href="#policy_attachment">policy alternatives</a> at each of the
|
|
<a title="" href="#policy_subject">policy subjects</a> parent and
|
|
child <a title="" href="#policy_subject">policy subjects</a>, such
|
|
that choices between <a title="" href="#policy_alternative">policy
|
|
alternatives</a> at each level are independent of each other.</p>
|
|
<p>The rest of this section describes these <a title="" href=
|
|
"#policy_subject">policy subject</a> types, and how the <a title=
|
|
"effective policy" href="#effective_policy">effective policy</a>
|
|
for each <a title="" href="#policy_subject">policy subject</a> is
|
|
calculated.</p>
|
|
<div class="div3">
|
|
<h4><a name="ServicePolicySubject" id=
|
|
"ServicePolicySubject"></a>4.1.1 Service Policy Subject</h4>
|
|
<p>The following WSDL 1.1 element is considered as the service
|
|
policy subject:</p>
|
|
<ul>
|
|
<li>
|
|
<p><code>wsdl11:service</code></p>
|
|
</li>
|
|
</ul>
|
|
<p>This element <span class="rfc2119">MAY</span> have <a title=
|
|
"element policy" href="#element_policy">element policy</a> as per
|
|
Section <a href="#rPolicyAttachment"><b>3. Policy
|
|
Attachment</b></a>, and if present <span class=
|
|
"rfc2119">MUST</span> be <a title="merge" href="#merge">merged</a>
|
|
into the <a title="effective policy" href=
|
|
"#effective_policy">effective policy</a> of the WSDL service policy
|
|
subject.</p>
|
|
<p>A policy associated with a service policy subject applies to any
|
|
message exchange using any of the endpoints offered by that
|
|
service.</p>
|
|
</div>
|
|
<div class="div3">
|
|
<h4><a name="EndpointPolicySubject" id=
|
|
"EndpointPolicySubject"></a>4.1.2 Endpoint Policy Subject</h4>
|
|
<p>The following WSDL 1.1 elements collectively describe an
|
|
endpoint:</p>
|
|
<ul>
|
|
<li>
|
|
<p><code>wsdl11:port</code></p>
|
|
</li>
|
|
<li>
|
|
<p><code>wsdl11:portType</code></p>
|
|
</li>
|
|
<li>
|
|
<p><code>wsdl11:binding</code></p>
|
|
</li>
|
|
</ul>
|
|
<p>These elements <span class="rfc2119">MAY</span> have <a title=
|
|
"element policy" href="#element_policy">element policy</a> as per
|
|
Section <a href="#rPolicyAttachment"><b>3. Policy
|
|
Attachment</b></a>. The <a title="" href="#policy_scope">policy
|
|
scope</a> implied by each of these elements contains the endpoint
|
|
policy subject representing the deployed endpoint.</p>
|
|
<p>Since the <code>wsdl11:portType</code> may be used by more than
|
|
one binding, it is <span class="rfc2119">RECOMMENDED</span> that
|
|
only policies containing abstract (i.e., binding independent)
|
|
assertions should be attached to this type of element.</p>
|
|
<p>Policies associated with an endpoint policy subject apply to any
|
|
message exchange made using that endpoint.</p>
|
|
<p>The <a title="effective policy" href=
|
|
"#effective_policy">effective policy</a> for a WSDL endpoint policy
|
|
subject includes the <a title="element policy" href=
|
|
"#element_policy">element policy</a> of the
|
|
<code>wsdl11:port</code> element that defines the endpoint
|
|
<a title="merge" href="#merge">merged</a> with the <a title=
|
|
"element policy" href="#element_policy">element policy</a> of the
|
|
referenced <code>wsdl11:binding</code> element and the <a title=
|
|
"element policy" href="#element_policy">element policy</a> of the
|
|
referenced <code>wsdl11:portType</code> element that defines the
|
|
interface of the endpoint.</p>
|
|
</div>
|
|
<div class="div3">
|
|
<h4><a name="OperationPolicySubject" id=
|
|
"OperationPolicySubject"></a>4.1.3 Operation Policy Subject</h4>
|
|
<p>The following WSDL 1.1 elements collectively describe an
|
|
operation:</p>
|
|
<ul>
|
|
<li>
|
|
<p><code>wsdl11:portType/wsdl11:operation</code></p>
|
|
</li>
|
|
<li>
|
|
<p><code>wsdl11:binding/wsdl11:operation</code></p>
|
|
</li>
|
|
</ul>
|
|
<p>These elements <span class="rfc2119">MAY</span> have <a title=
|
|
"element policy" href="#element_policy">element policy</a> as per
|
|
Section <a href="#rPolicyAttachment"><b>3. Policy
|
|
Attachment</b></a>.</p>
|
|
<p>The <a title="" href="#policy_scope">policy scope</a> implied by
|
|
each of these elements contains the operation policy subject
|
|
representing the specific operation of the endpoint policy
|
|
subject.</p>
|
|
<p>Since the <code>wsdl11:portType/wsdl11:operation</code> may be
|
|
used by more than one binding, it is <span class=
|
|
"rfc2119">RECOMMENDED</span> that only policies containing abstract
|
|
(i.e., binding independent) assertions should be attached to this
|
|
type of element.</p>
|
|
<p>Policies associated with an operation policy subject apply to
|
|
the message exchange described by that operation.</p>
|
|
<p>The <a title="effective policy" href=
|
|
"#effective_policy">effective policy</a> for a WSDL operation
|
|
policy subject is calculated in relation to a specific port, and
|
|
includes the <a title="element policy" href=
|
|
"#element_policy">element policy</a> of the
|
|
<code>wsdl11:portType/wsdl11:operation</code> element that defines
|
|
the operation <a title="merge" href="#merge">merged</a> with that
|
|
of the corresponding <code>wsdl11:binding/wsdl11:operation</code>
|
|
element.</p>
|
|
</div>
|
|
<div class="div3">
|
|
<h4><a name="MessagePolicySubject" id=
|
|
"MessagePolicySubject"></a>4.1.4 Message Policy Subject</h4>
|
|
<p>The following WSDL 1.1 elements are used to describe
|
|
messages:</p>
|
|
<ul>
|
|
<li>
|
|
<p><code>wsdl11:message</code></p>
|
|
</li>
|
|
<li>
|
|
<p><code>wsdl11:portType/wsdl11:operation/wsdl11:input</code></p>
|
|
</li>
|
|
<li>
|
|
<p><code>wsdl11:portType/wsdl11:operation/wsdl11:output</code></p>
|
|
</li>
|
|
<li>
|
|
<p><code>wsdl11:portType/wsdl11:operation/wsdl11:fault</code></p>
|
|
</li>
|
|
<li>
|
|
<p><code>wsdl11:binding/wsdl11:operation/wsdl11:input</code></p>
|
|
</li>
|
|
<li>
|
|
<p><code>wsdl11:binding/wsdl11:operation/wsdl11:output</code></p>
|
|
</li>
|
|
<li>
|
|
<p><code>wsdl11:binding/wsdl11:operation/wsdl11:fault</code></p>
|
|
</li>
|
|
</ul>
|
|
<p>These elements <span class="rfc2119">MAY</span> have <a title=
|
|
"element policy" href="#element_policy">element policy</a> as per
|
|
Section <a href="#rPolicyAttachment"><b>3. Policy
|
|
Attachment</b></a>.</p>
|
|
<p>The <a title="" href="#policy_scope">policy scope</a> implied by
|
|
these elements contains the message policy subject representing the
|
|
specific input, output, or fault message in relation to the
|
|
operation policy subject.</p>
|
|
<p>Policies associated with a message policy subject apply to that
|
|
message (i.e. input, output or fault message).</p>
|
|
<p>The <a title="effective policy" href=
|
|
"#effective_policy">effective policy</a> for a specific WSDL
|
|
message (i.e., input, output, or fault message) is calculated in
|
|
relation to a specific port, and includes the <a title=
|
|
"element policy" href="#element_policy">element policy</a> of the
|
|
<code>wsdl11:message</code> element that defines the message's type
|
|
<a title="merge" href="#merge">merged</a> with the <a title=
|
|
"element policy" href="#element_policy">element policy</a> of the
|
|
<code>wsdl11:binding</code> and <code>wsdl11:portType</code>
|
|
message definitions that describe that message.</p>
|
|
<p>For example, the <a title="effective policy" href=
|
|
"#effective_policy">effective policy</a> of a specific input
|
|
message for a specific port would be the <em>merge</em> of the
|
|
<code>wsdl11:message</code> element defining the message type, the
|
|
<code>wsdl11:portType/wsdl11:operation/wsdl11:input</code> element,
|
|
and the corresponding
|
|
<code>wsdl11:binding/wsdl11:operation/wsdl11:input</code> element
|
|
for that message.</p>
|
|
<p>Since a <code>wsdl11:message</code> may be used by more than one
|
|
<code>wsdl11:portType</code>, it is <span class=
|
|
"rfc2119">RECOMMENDED</span> that only policies containing abstract
|
|
(i.e., binding independent) assertions should be attached to this
|
|
type of element.</p>
|
|
<p>Since <code>wsdl11:input</code>, <code>wsdl11:output</code>, and
|
|
<code>wsdl11:fault</code> elements in a
|
|
<code>wsdl11:portType/wsdl11:operation</code> may be used by
|
|
more than one binding, it is <span class=
|
|
"rfc2119">RECOMMENDED</span> that only policies containing abstract
|
|
(i.e., binding independent) assertions should be attached to these
|
|
types of elements.</p>
|
|
<p>Care should be taken when attaching policies to outbound
|
|
messages as the result may not be what is expected. For example,
|
|
expressing a choice on a service's outbound message without a
|
|
mechanism for a requester of that service to communicate its choice
|
|
to the service before the outbound message is sent may not result
|
|
in the desired behaviours. It is therefore <span class=
|
|
"rfc2119">RECOMMENDED</span> that <a title="" href=
|
|
"#policy_alternative">policy alternatives</a> on outbound messages
|
|
<span class="rfc2119">SHOULD</span> be avoided without the use of
|
|
some form of mutual <a title="" href="#policy">policy</a> exchange
|
|
between the parties involved.</p>
|
|
</div>
|
|
<div class="div3">
|
|
<h4><a name="Example2" id="Example2"></a>4.1.5 Example</h4>
|
|
<p>As an example of the combination of these <a title="" href=
|
|
"#policy_subject">policy subjects</a> and <a title=
|
|
"effective policy" href="#effective_policy">effective policy</a>
|
|
calculation, consider the WSDL type definition in <a href=
|
|
"#Table5">Example 4-1</a> that references policies.</p>
|
|
<div class="exampleOuter">
|
|
<p style="text-align: left" class="exampleHead"><a name="Table5"
|
|
id="Table5"></a><i><span>Example 4-1.</span> Example Policy
|
|
Attached to WSDL.</i></p>
|
|
<div class="exampleInner">
|
|
<pre>
|
|
(01) <wsdl11:definitions name="StockQuote"
|
|
targetNamespace="http://www.example.com/stock/binding"
|
|
xmlns:tns="http://www.example.com/stock/binding"
|
|
xmlns:fab="http://www.example.com/stock"
|
|
xmlns:rmp="http://docs.oasis-open.org/ws-rx/wsrmp/200702"
|
|
xmlns:sp="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702"
|
|
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
|
|
xmlns:wsoap12="http://schemas.xmlsoap.org/wsdl/soap12/"
|
|
xmlns:wsp="http://www.w3.org/ns/ws-policy"
|
|
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" >
|
|
(02) <wsp:Policy wsu:Id="RmPolicy" >
|
|
(03) <rmp:RMAssertion>
|
|
(04) <wsp:Policy/>
|
|
(05) </rmp:RMAssertion>
|
|
(06) </wsp:Policy>
|
|
(07) <wsp:Policy wsu:Id="X509EndpointPolicy" >
|
|
(08) <sp:AsymmetricBinding>
|
|
(09) <wsp:Policy>
|
|
<!-- Details omitted for readability -->
|
|
(10) <sp:IncludeTimestamp />
|
|
(11) <sp:OnlySignEntireHeadersAndBody />
|
|
(12) </wsp:Policy>
|
|
(13) </sp:AsymmetricBinding>
|
|
(14) </wsp:Policy>
|
|
(15) <wsp:Policy wsu:Id="SecureMessagePolicy" >
|
|
(16) <sp:SignedParts>
|
|
(17) <sp:Body />
|
|
(18) </sp:SignedParts>
|
|
(19) <sp:EncryptedParts>
|
|
(20) <sp:Body />
|
|
(21) </sp:EncryptedParts>
|
|
(22) </wsp:Policy>
|
|
(23) <wsdl11:import namespace="http://www.example.com/stock"
|
|
location="http://www.example.com/stock/stock.wsdl" />
|
|
(24) <wsdl11:binding name="StockQuoteSoapBinding" type="fab:Quote" >
|
|
(25) <wsoap12:binding style="document"
|
|
(26) transport="http://schemas.xmlsoap.org/soap/http" />
|
|
(27) <wsp:PolicyReference URI="#RmPolicy" wsdl11:required="true" />
|
|
(28) <wsp:PolicyReference URI="#X509EndpointPolicy" wsdl11:required="true" />
|
|
(29) <wsdl11:operation name="GetLastTradePrice" >
|
|
(30) <wsoap12:operation soapAction="http://www.example.com/stock/Quote/GetLastTradePriceRequest" />
|
|
(31) <wsdl11:input>
|
|
(32) <wsoap12:body use="literal" />
|
|
(33) <wsp:PolicyReference URI="#SecureMessagePolicy"
|
|
wsdl11:required="true" />
|
|
(34) </wsdl11:input>
|
|
(35) <wsdl11:output>
|
|
(36) <wsoap12:body use="literal" />
|
|
(37) <wsp:PolicyReference URI="#SecureMessagePolicy"
|
|
(38) wsdl11:required="true" />
|
|
(39) </wsdl11:output>
|
|
(40) </wsdl11:operation>
|
|
(41) </wsdl11:binding>
|
|
(42) </wsdl11:definitions>
|
|
</pre></div>
|
|
</div>
|
|
<p>For endpoints bound to <code>StockQuoteSoapBinding</code>, the
|
|
<a title="effective policy" href="#effective_policy">effective
|
|
policy</a> of the endpoint is listed in <a href="#Table4">Example
|
|
3-1</a> (above). For the <code>GetLastTradePrice</code> operation,
|
|
an additional message-level <a title="effective policy" href=
|
|
"#effective_policy">effective policy</a> is in effect for the input
|
|
message, whose XML 1.0 representation is listed in <a href=
|
|
"#Table6">Example 4-2</a>.</p>
|
|
<div class="exampleOuter">
|
|
<p style="text-align: left" class="exampleHead"><a name="Table6"
|
|
id="Table6"></a><i><span>Example 4-2.</span> Example Message
|
|
Security Policy Expression.</i></p>
|
|
<div class="exampleInner">
|
|
<pre>
|
|
(01) <wsp:Policy
|
|
xmlns:sp="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702"
|
|
xmlns:wsp="http://www.w3.org/ns/ws-policy"
|
|
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
|
|
wsu:Id="SecureMessagePolicy" >
|
|
(02) <sp:SignedParts>
|
|
(03) <sp:Body />
|
|
(04) </sp:SignedParts>
|
|
(05) <sp:EncryptedParts>
|
|
(06) <sp:Body />
|
|
(07) </sp:EncryptedParts>
|
|
(08) </wsp:Policy>
|
|
</pre></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="div1">
|
|
<h2><a name="ws-policy-attachment-for-wsdl20" id=
|
|
"ws-policy-attachment-for-wsdl20"></a>5. WS-Policy Attachment for
|
|
WSDL 2.0</h2>
|
|
<p>This section describes a mechanism for associating policy
|
|
expressions with Web service constructs in WSDL 2.0. The mechanism
|
|
consists of:</p>
|
|
<ul>
|
|
<li>
|
|
<p>A model for attaching policies to WSDL 2.0 constructs. The model
|
|
defines:</p>
|
|
<ul>
|
|
<li>
|
|
<p>A partitioning of WSDL constructs into service, endpoint,
|
|
operation and message policy subjects.</p>
|
|
</li>
|
|
<li>
|
|
<p>The semantics of attaching a policy to each policy subject.</p>
|
|
</li>
|
|
<li>
|
|
<p>How to combine policies attached to more than one WSDL component
|
|
within a single policy subject.</p>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
<li>
|
|
<p>An XML representation of policy expressions attached to WSDL 2.0
|
|
constructs.</p>
|
|
</li>
|
|
<li>
|
|
<p>The annotation of such policy expressions as required extensions
|
|
using the WSDL-defined extensibility flag
|
|
<code>@wsdl20:required</code>.</p>
|
|
</li>
|
|
</ul>
|
|
<p><a href="#XMLNamespaces"><b>2.2 XML Namespaces</b></a> lists all
|
|
the XML Namespaces that are used in this section. (XML elements
|
|
without a namespace prefix are from the Web Services Policy XML
|
|
Namespace.)</p>
|
|
<div class="div2">
|
|
<h3><a name="wsdl20-example" id="wsdl20-example"></a>5.1
|
|
Example</h3>
|
|
<p>The example below illustrates the use of WS-Policy Attachment
|
|
for WSDL 2.0:</p>
|
|
<div class="exampleOuter">
|
|
<p style="text-align: left" class="exampleHead"><a name=
|
|
"table-wsdl20-example" id=
|
|
"table-wsdl20-example"></a><i><span>Example 5-1.</span> Example
|
|
Policy Attached to WSDL 2.0</i></p>
|
|
<div class="exampleInner">
|
|
<pre>
|
|
(01) <wsdl20:description>
|
|
(02) …
|
|
(03) <wsp:Policy wsu:Id="common">
|
|
(04) <mtom:OptimizedMimeSerialization wsp:Optional="true"/>
|
|
(05) <wsam:Addressing>…</wsam:Addressing>
|
|
(06) </wsp:Policy>
|
|
|
|
(07) <wsp:Policy wsu:Id="secure">
|
|
(08) <wsp:ExactlyOne>
|
|
(09) <sp:TransportBinding>…</sp:TransportBinding>
|
|
(10) <sp:AsymmetricBinding>…</sp:AsymmetricBinding >
|
|
(11) </wsp:ExactlyOne>
|
|
(12) </wsp:Policy>
|
|
|
|
(13) <wsdl20:binding name="SecureBinding"
|
|
(14) interface="tns:RealTimeDataInterface" >
|
|
(15) <wsp:PolicyReference URI="#secure" />
|
|
(16) <wsdl20:operation name="GetRealQuote" >…</wsdl20:operation>
|
|
(17) …
|
|
(18) </wsdl20:binding>
|
|
|
|
(19) <wsdl20:service name="RealTimeDataService"
|
|
(20) interface="tns:RealTimeDataInterface" >
|
|
(21) <wsdl20:endpoint name="RealTimeDataPort"
|
|
(22) binding="tns:SecureBinding">
|
|
(23) <wsp:PolicyReference URI="#common" />
|
|
(24) …
|
|
(25) </wsdl20:endpoint>
|
|
(26) </wsdl20:service>
|
|
(27) …
|
|
(28) </wsdl20:description>
|
|
</pre></div>
|
|
</div>
|
|
<p>The <code>SecureBinding</code> WSDL binding description
|
|
describes a binding for an interface that provides real-time quotes
|
|
and book information on securities. (The prefixes
|
|
<code>wsdl20</code> and <code>tns</code> are used here to denote
|
|
the Web Services Description Language 2.0 XML Namespace and the
|
|
target namespace of this WSDL document respectively.) To require
|
|
the use of security for these offerings, a <a title="" href=
|
|
"#policy_expression">policy expression</a> that requires the use of
|
|
either transport-level or message-level security is attached to the
|
|
binding description. The <a title="" href=
|
|
"#policy_expression">policy expression</a> applies to any message
|
|
exchange associated with any <code>endpoint</code> that supports
|
|
this binding description.</p>
|
|
<p>The <code>RealTimeDataPort</code> WSDL endpoint description
|
|
describes an endpoint that supports the <code>SecureBinding</code>
|
|
WSDL binding description. To require the use of addressing and
|
|
allow the use of optimization (Optimized MIME Serialization as
|
|
defined in the MTOM specification [<cite><a href=
|
|
"#MTOM">MTOM</a></cite>]), a <a title="" href=
|
|
"#policy_expression">policy expression</a> that represents the
|
|
addressing requirement and optimization capability is attached to
|
|
the endpoint description. The <a title="" href=
|
|
"#policy_expression">policy expression</a> applies to any message
|
|
exchange associated with the <code>RealTimeDataPort</code>
|
|
endpoint.</p>
|
|
<p>In the above example, the <code>#secure</code> and
|
|
<code>#common</code> <a title="" href="#policy_expression">policy
|
|
expressions</a> attached to the <code>SecureBinding</code> WSDL
|
|
binding and <code>RealTimeDataPort</code> WSDL endpoint
|
|
descriptions collectively apply to any message exchange associated
|
|
with the RealTimeDataPort endpoint. The example below represents
|
|
the combination of these two <a title="" href=
|
|
"#policy">policies</a>, that is, the <a title="effective policy"
|
|
href="#effective_policy">effective policy</a> for the
|
|
<code>RealTimeDataPort</code> endpoint.</p>
|
|
<div class="exampleOuter">
|
|
<p style="text-align: left" class="exampleHead"><a name=
|
|
"table-wsdl20-effective-policy-example" id=
|
|
"table-wsdl20-effective-policy-example"></a><i><span>Example
|
|
5-2.</span> Effective Policy for the RealTimeDataPort
|
|
endpoint</i></p>
|
|
<div class="exampleInner">
|
|
<pre>
|
|
(01) <wsp:Policy>
|
|
(02) <wsp:All>
|
|
(03) <wsp:Policy>
|
|
(04) <mtom:OptimizedMimeSerialization wsp:Optional="true"/>
|
|
(05) <wsam:Addressing>…</wsam:Addressing>
|
|
(06) </wsp:Policy>
|
|
(07) <wsp:Policy>
|
|
(08) <wsp:ExactlyOne>
|
|
(09) <sp:TransportBinding>…</sp:TransportBinding>
|
|
(10) <sp:AsymmetricBinding>…</sp:AsymmetricBinding >
|
|
(11) </wsp:ExactlyOne>
|
|
(12) </wsp:Policy>
|
|
(13) </wsp:All>
|
|
(14) </wsp:Policy>
|
|
</pre></div>
|
|
</div>
|
|
</div>
|
|
<div class="div2">
|
|
<h3><a name="attaching-policy-expressions" id=
|
|
"attaching-policy-expressions"></a>5.2 Attaching Policy
|
|
Expressions</h3>
|
|
<p>Policy attachment points in a WSDL 2.0 document are:</p>
|
|
<ul>
|
|
<li>
|
|
<p><code>wsdl20:service</code></p>
|
|
</li>
|
|
<li>
|
|
<p><code>wsdl20:endpoint</code></p>
|
|
</li>
|
|
<li>
|
|
<p><code>wsdl20:binding</code></p>
|
|
</li>
|
|
<li>
|
|
<p><code>wsdl20:binding/wsdl20:operation</code></p>
|
|
</li>
|
|
<li>
|
|
<p><code>wsdl20:binding/wsdl20:fault</code></p>
|
|
</li>
|
|
<li>
|
|
<p><code>wsdl20:binding/wsdl20:operation/wsdl20:input</code></p>
|
|
</li>
|
|
<li>
|
|
<p><code>wsdl20:binding/wsdl20:operation/wsdl20:output</code></p>
|
|
</li>
|
|
<li>
|
|
<p><code>wsdl20:binding/wsdl20:operation/wsdl20:infault</code></p>
|
|
</li>
|
|
<li>
|
|
<p><code>wsdl20:binding/wsdl20:operation/wsdl20:outfault</code></p>
|
|
</li>
|
|
<li>
|
|
<p><code>wsdl20:interface</code></p>
|
|
</li>
|
|
<li>
|
|
<p><code>wsdl20:interface/wsdl20:operation</code></p>
|
|
</li>
|
|
<li>
|
|
<p><code>wsdl20:interface/wsdl20:fault</code></p>
|
|
</li>
|
|
<li>
|
|
<p><code>wsdl20:interface/wsdl20:operation/wsdl20:input</code></p>
|
|
</li>
|
|
<li>
|
|
<p><code>wsdl20:interface/wsdl20:operation/wsdl20:output</code></p>
|
|
</li>
|
|
<li>
|
|
<p><code>wsdl20:interface/wsdl20:operation/wsdl20:infault</code>
|
|
and</p>
|
|
</li>
|
|
<li>
|
|
<p>
|
|
<code>wsdl20:interface/wsdl20:operation/wsdl20:outfault.</code></p>
|
|
</li>
|
|
</ul>
|
|
<p>Any of these elements <span class="rfc2119">MAY</span> have one
|
|
or more <code>wsp:Policy</code> or <code>wsp:PolicyReference</code>
|
|
child elements.</p>
|
|
<p>Policy attachment points in a WSDL document are associated with
|
|
specific <a title="" href="#policy_subject">policy subjects</a> as
|
|
described in the table below. There are four <a title="" href=
|
|
"#policy_subject">policy subjects</a> in WSDL: the service policy
|
|
subject, the endpoint policy subject, the operation policy subject
|
|
and the message policy subject. When a <a title="" href=
|
|
"#policy_expression">policy expression</a> is attached to a
|
|
<a title="" href="#policy_subject">policy subject</a> in a WSDL
|
|
document, capabilities and requirements represented by the
|
|
<a title="" href="#policy_expression">policy expression</a> apply
|
|
to any message exchange or message associated with (or described
|
|
by) the <a title="" href="#policy_subject">policy subject</a>.</p>
|
|
<a name=
|
|
"association-of-policy-attachment-points-with-policy-subjects" id=
|
|
"association-of-policy-attachment-points-with-policy-subjects"></a>
|
|
<table border="1" cellspacing="0" cellpadding="5">
|
|
<caption>Table 5-1. Association of Policy Attachment Points with
|
|
Policy Subjects</caption>
|
|
<thead>
|
|
<tr>
|
|
<th rowspan="1" colspan="1">Policy Attachment Point in a WSDL
|
|
document</th>
|
|
<th rowspan="1" colspan="1">WSDL Component</th>
|
|
<th rowspan="1" colspan="1">Policy Subject</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><code>wsdl20:service</code></td>
|
|
<td rowspan="1" colspan="1">Service</td>
|
|
<td rowspan="1" colspan="1">Service</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><code>wsdl20:endpoint</code></td>
|
|
<td rowspan="1" colspan="1">Endpoint</td>
|
|
<td rowspan="3" colspan="1">Endpoint</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><code>wsdl20:binding</code></td>
|
|
<td rowspan="1" colspan="1">Binding</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><code>wsdl20:interface</code></td>
|
|
<td rowspan="1" colspan="1">Interface</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">
|
|
<code>wsdl20:binding/wsdl20:operation</code></td>
|
|
<td rowspan="1" colspan="1">Binding Operation</td>
|
|
<td rowspan="2" colspan="1">Operation</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">
|
|
<code>wsdl20:interface/wsdl20:operation</code></td>
|
|
<td rowspan="1" colspan="1">Interface Operation</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><code>wsdl20:binding/wsdl20:operation/
|
|
wsdl20:input</code></td>
|
|
<td rowspan="1" colspan="1">Binding Message Reference</td>
|
|
<td rowspan="2" colspan="1">Message for an input message</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">
|
|
<code>wsdl20:interface/wsdl20:operation/wsdl20:input</code></td>
|
|
<td rowspan="1" colspan="1">Interface Message Reference whose
|
|
{direction} property is ‘in’</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><code>wsdl20:binding/wsdl20:operation/
|
|
wsdl20:output</code></td>
|
|
<td rowspan="1" colspan="1">Binding Message Reference</td>
|
|
<td rowspan="2" colspan="1">Message for an output message</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">
|
|
<code>wsdl20:interface/wsdl20:operation/ wsdl20:output</code></td>
|
|
<td rowspan="1" colspan="1">Interface Message Reference whose
|
|
{direction} property is ‘out’</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">
|
|
<code>wsdl20:binding/wsdl20:fault</code></td>
|
|
<td rowspan="1" colspan="1">Binding Fault</td>
|
|
<td rowspan="4" colspan="1">Message for an input fault message</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><code>wsdl20:binding/wsdl20:operation/
|
|
wsdl20:infault</code></td>
|
|
<td rowspan="1" colspan="1">Binding Fault Reference</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">
|
|
<code>wsdl20:interface/wsdl20:fault</code></td>
|
|
<td rowspan="1" colspan="1">Interface Fault</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">
|
|
<code>wsdl20:interface/wsdl20:operation/wsdl20:infault</code></td>
|
|
<td rowspan="1" colspan="1">Interface Fault Reference whose
|
|
{direction} property is ‘in’</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">
|
|
<code>wsdl20:binding/wsdl20:fault</code></td>
|
|
<td rowspan="1" colspan="1">Binding Fault</td>
|
|
<td rowspan="4" colspan="1">Message for an output fault
|
|
message</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">
|
|
<code>wsdl20:binding/wsdl20:operation/wsdl20:outfault</code></td>
|
|
<td rowspan="1" colspan="1">Binding Fault Reference</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">
|
|
<code>wsdl20:interface/wsdl20:fault</code></td>
|
|
<td rowspan="1" colspan="1">Interface Fault</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">
|
|
<code>wsdl20:interface/wsdl20:operation/wsdl20:outfault</code></td>
|
|
<td rowspan="1" colspan="1">Interface Fault Reference whose
|
|
{direction} property is ‘out’</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<br />
|
|
<p>For a WSDL component, the attached <a title="" href=
|
|
"#policy">policy</a> (extension to the WSDL component model is
|
|
described in <a href="#extension-to-wsdl-component-model"><b>5.3
|
|
Extension to WSDL Component Model</b></a>) is considered an
|
|
intrinsic part of the WSDL component definition and applies to all
|
|
uses of that definition. For example, when attached to a WSDL
|
|
Interface component, capabilities and requirements represented by a
|
|
<a title="" href="#policy">policy</a> apply to all the use of this
|
|
WSDL Interface description. When attached to a WSDL Binding
|
|
component, capabilities and requirements represented by a <a title=
|
|
"" href="#policy">policy</a> apply to all the Endpoints that
|
|
support this binding description.</p>
|
|
<p>A <a title="" href="#policy">policy</a> associated with a
|
|
service policy subject applies to any message exchange (that is
|
|
explicitly described by the Interface component in the Service
|
|
component's {interface} property) using any of the endpoints
|
|
offered by that service.</p>
|
|
<p><a title="" href="#policy">Policies</a> associated with an
|
|
endpoint policy subject apply to any message exchange (that is
|
|
explicitly described by the Interface component in the Service
|
|
component’s {interface} property of the Endpoint component’s
|
|
{parent} property) made using that endpoint. Given that a WSDL
|
|
Interface component may be used by one or more binding
|
|
descriptions, it is <span class="rfc2119">RECOMMENDED</span> that
|
|
only a <a title="" href="#policy">policy</a> containing <a title=""
|
|
href="#policy_assertion">policy assertions</a> that apply to any
|
|
possible binding description should be attached.</p>
|
|
<p><a title="" href="#policy">Policies</a> associated with an
|
|
operation policy subject apply to the message exchange described by
|
|
that operation. Given that a WSDL Interface Operation component may
|
|
be used by one or more binding descriptions, it is <span class=
|
|
"rfc2119">RECOMMENDED</span> that only a <a title="" href=
|
|
"#policy">policy</a> containing <a title="" href=
|
|
"#policy_assertion">policy assertions</a> that apply to any
|
|
possible binding description should be attached.</p>
|
|
<p><a title="" href="#policy">Policies</a> associated with a
|
|
message policy subject apply to that message (input, output or
|
|
fault). Given that a WSDL Interface Message Reference, Interface
|
|
Fault, Interface Fault Reference components may be used by one or
|
|
more binding descriptions, it is <span class=
|
|
"rfc2119">RECOMMENDED</span> that only a <a title="" href=
|
|
"#policy">policy</a> containing <a title="" href=
|
|
"#policy_assertion">policy assertions</a> that apply to any
|
|
possible binding should be attached.</p>
|
|
<p><a title="" href="#policy">Policies</a> <span class=
|
|
"rfc2119">MAY</span> be attached at different levels of the WSDL
|
|
component hierarchy. A message exchange with an endpoint
|
|
<span class="rfc2119">MAY</span> be described by the <a title=""
|
|
href="#policy">policies</a> in all four <a title="" href=
|
|
"#policy_subject">policy subjects</a> simultaneously.</p>
|
|
<p>The common mechanism of associating a <a title="" href=
|
|
"#policy_expression">policy expression</a> with a <a title="" href=
|
|
"#policy_subject">policy subject</a> is to attach a reference to
|
|
the <a title="" href="#policy_expression">policy expression</a> to
|
|
the <a title="" href="#policy_subject">policy subject</a>. As
|
|
described in the WS-Policy specification [<cite><a href=
|
|
"#WS-Policy">Web Services Policy Framework</a></cite>], a reference
|
|
to a <a title="" href="#policy_expression">policy expression</a> is
|
|
represented using the <code>wsp:PolicyReference</code> element. A
|
|
policy attachment to a WSDL element is represented by attaching a
|
|
<code>wsp:PolicyReference</code> element as a child element of the
|
|
WSDL element.</p>
|
|
<p><a title="" href="#policy_expression">Policy expressions</a> can
|
|
be included within a WSDL document or may reside external to a WSDL
|
|
document. If including <a title="" href="#policy_expression">policy
|
|
expressions</a> with a WSDL document is the chosen approach, it is
|
|
<span class="rfc2119">RECOMMENDED</span> that the
|
|
<code>wsp:Policy</code> elements are included as children of the
|
|
<code>wsdl20:description</code> element after the
|
|
<code>wsdl20:types</code> element and referenced using the
|
|
<code>wsp:PolicyReference</code> elements.</p>
|
|
<p>To mandate the processing of a <a title="" href=
|
|
"#policy_expression">policy expression</a> attached to a policy
|
|
attachment point in a WSDL document, the expression <span class=
|
|
"rfc2119">MUST</span> be marked as required using the
|
|
<code>@wsdl20:required</code> flag.</p>
|
|
<p>If the <code>wsp:Policy</code> elements are included as children
|
|
of the <code>wsdl20:description</code> element, these Policy
|
|
elements <span class="rfc2119">MUST NOT</span> be marked as
|
|
required using the <code>@wsdl20:required</code>. (Note: these
|
|
<a title="" href="#policy_expression">policy expressions</a> may be
|
|
included as children of the <code>wsdl20:description</code> element
|
|
and may not be attached to any policy attachment point in a WSDL
|
|
document.)</p>
|
|
</div>
|
|
<div class="div2">
|
|
<h3><a name="extension-to-wsdl-component-model" id=
|
|
"extension-to-wsdl-component-model"></a>5.3 Extension to WSDL
|
|
Component Model</h3>
|
|
<p>This document adds an optional {policy} property to the
|
|
following WSDL components:</p>
|
|
<ul>
|
|
<li>
|
|
<p>Service</p>
|
|
</li>
|
|
<li>
|
|
<p>Endpoint</p>
|
|
</li>
|
|
<li>
|
|
<p>Binding</p>
|
|
</li>
|
|
<li>
|
|
<p>Binding Operation</p>
|
|
</li>
|
|
<li>
|
|
<p>Binding Fault</p>
|
|
</li>
|
|
<li>
|
|
<p>Binding Message Reference</p>
|
|
</li>
|
|
<li>
|
|
<p>Binding Fault Reference</p>
|
|
</li>
|
|
<li>
|
|
<p>Interface</p>
|
|
</li>
|
|
<li>
|
|
<p>Interface Operation</p>
|
|
</li>
|
|
<li>
|
|
<p>Interface Fault</p>
|
|
</li>
|
|
<li>
|
|
<p>Interface Message Reference</p>
|
|
</li>
|
|
<li>
|
|
<p>Interface Fault Reference</p>
|
|
</li>
|
|
</ul>
|
|
<p>The {policy} property, when present, represents the capabilities
|
|
and requirements as a <a title="" href="#policy">policy</a>. The
|
|
value of the {policy} property is a <a title="" href=
|
|
"#policy">policy</a> as defined by Section 3 - Policy Model in the
|
|
WS-Policy specification [<cite><a href="#WS-Policy">Web Services
|
|
Policy Framework</a></cite>]. The following table describes the
|
|
mapping from XML representation to the {policy} property.</p>
|
|
<a name="mapping-from-xml-representation-to-policy-property" id=
|
|
"mapping-from-xml-representation-to-policy-property"></a>
|
|
<table border="1" cellspacing="0" cellpadding="5">
|
|
<caption>Table 5-2. Mapping from XML representation to the {policy}
|
|
property</caption>
|
|
<thead>
|
|
<tr>
|
|
<th rowspan="1" colspan="1">Component</th>
|
|
<th rowspan="1" colspan="1">Value</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">Service</td>
|
|
<td rowspan="1" colspan="1">A <a title="" href="#policy">policy</a>
|
|
corresponding to the <a title="merge" href="#merge">merge</a> of
|
|
<code>wsp:Policy</code> or <code>wsp:PolicyReference</code>
|
|
elements, if any, in the <code>[children]</code> of the
|
|
<code>wsdl20:service</code> element.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">Endpoint</td>
|
|
<td rowspan="1" colspan="1">A <a title="" href="#policy">policy</a>
|
|
corresponding to the <a title="merge" href="#merge">merge</a> of
|
|
<code>wsp:Policy</code> or <code>wsp:PolicyReference</code>
|
|
elements, if any, in the <code>[children]</code> of the
|
|
<code>wsdl20:endpoint</code> element.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">Binding</td>
|
|
<td rowspan="1" colspan="1">A <a title="" href="#policy">policy</a>
|
|
corresponding to the <a title="merge" href="#merge">merge</a> of
|
|
<code>wsp:Policy</code> or <code>wsp:PolicyReference</code>
|
|
elements, if any, in the <code>[children]</code> of the
|
|
<code>wsdl20:binding</code> element.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">Binding Operation</td>
|
|
<td rowspan="1" colspan="1">A <a title="" href="#policy">policy</a>
|
|
corresponding to the <a title="merge" href="#merge">merge</a> of
|
|
<code>wsp:Policy</code> or <code>wsp:PolicyReference</code>
|
|
elements, if any, in the <code>[children]</code> of the
|
|
<code>wsdl20:binding/wsdl20:operation</code> element.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">Binding Fault</td>
|
|
<td rowspan="1" colspan="1">A <a title="" href="#policy">policy</a>
|
|
corresponding to the <a title="merge" href="#merge">merge</a> of
|
|
<code>wsp:Policy</code> or <code>wsp:PolicyReference</code>
|
|
elements, if any, in the <code>[children]</code> of the
|
|
<code>wsdl20:binding/wsdl20:fault</code> element.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">Binding Message Reference</td>
|
|
<td rowspan="1" colspan="1">A <a title="" href="#policy">policy</a>
|
|
corresponding to the <a title="merge" href="#merge">merge</a> of
|
|
<code>wsp:Policy</code> or <code>wsp:PolicyReference</code>
|
|
elements, if any, in the <code>[children]</code> of the
|
|
<code>wsdl20:binding/wsdl20:operation/wsdl20:input</code> or
|
|
<code>wsdl20:binding/wsdl20:operation/wsdl20:output</code>
|
|
element.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">Binding Fault Reference</td>
|
|
<td rowspan="1" colspan="1">A <a title="" href="#policy">policy</a>
|
|
corresponding to the <a title="merge" href="#merge">merge</a> of
|
|
<code>wsp:Policy</code> or <code>wsp:PolicyReference</code>
|
|
elements, if any, in the <code>[children]</code> of the
|
|
<code>wsdl20:binding/wsdl20:operation/wsdl20:infault</code> or
|
|
<code>wsdl20:binding/wsdl20:operation/wsdl20:outfault</code>
|
|
element.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">Interface</td>
|
|
<td rowspan="1" colspan="1">A <a title="" href="#policy">policy</a>
|
|
corresponding to the <a title="merge" href="#merge">merge</a> of
|
|
<code>wsp:Policy</code> or <code>wsp:PolicyReference</code>
|
|
elements, if any, in the <code>[children]</code> of the
|
|
<code>wsdl20:interface</code> element.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">Interface Operation</td>
|
|
<td rowspan="1" colspan="1">A <a title="" href="#policy">policy</a>
|
|
corresponding to the <a title="merge" href="#merge">merge</a> of
|
|
<code>wsp:Policy</code> or <code>wsp:PolicyReference</code>
|
|
elements, if any, in the <code>[children]</code> of the
|
|
<code>wsdl20:interface/wsdl20:operation</code> element, if
|
|
any.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">Interface Fault</td>
|
|
<td rowspan="1" colspan="1">A <a title="" href="#policy">policy</a>
|
|
corresponding to the <a title="merge" href="#merge">merge</a> of
|
|
<code>wsp:Policy</code> or <code>wsp:PolicyReference</code>
|
|
elements, if any, in the <code>[children]</code> of the
|
|
<code>wsdl20:interface/wsdl20:fault</code> element.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">Interface Message Reference</td>
|
|
<td rowspan="1" colspan="1">A <a title="" href="#policy">policy</a>
|
|
corresponding to the <a title="merge" href="#merge">merge</a> of
|
|
<code>wsp:Policy</code> or <code>wsp:PolicyReference</code>
|
|
elements, if any, in the <code>[children]</code> of the
|
|
<code>wsdl20:interface/wsdl20:operation/wsdl20:input</code> or
|
|
<code>wsdl20:interface/wsdl20:operation/wsdl20:output</code>
|
|
element.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">Interface Fault Reference</td>
|
|
<td rowspan="1" colspan="1">A <a title="" href="#policy">policy</a>
|
|
corresponding to the <a title="merge" href="#merge">merge</a> of
|
|
<code>wsp:Policy</code> or <code>wsp:PolicyReference</code>
|
|
elements, if any, in the <code>[children]</code> of the
|
|
<code>wsdl20:interface/wsdl20:operation/wsdl20:infault</code> or
|
|
<code>wsdl20:interface/wsdl20:operation/wsdl20:outfault</code>
|
|
element.</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<br />
|
|
<p>Two {policy} properties are equivalent when they represent
|
|
policies that contain the same number of <a title="" href=
|
|
"#policy_alternative">policy alternatives</a>, and each <a title=""
|
|
href="#policy_alternative">policy alternative</a> in the first
|
|
policy is equivalent to some <a title="" href=
|
|
"#policy_alternative">policy alternative</a> in the second policy,
|
|
and conversely.</p>
|
|
<p>Two <a title="" href="#policy_alternative">policy
|
|
alternatives</a> are equivalent when each <a title="" href=
|
|
"#policy_assertion">policy assertion</a> in the first <a title=""
|
|
href="#policy_alternative">policy alternative</a> is equivalent to
|
|
some <a title="" href="#policy_assertion">policy assertion</a> in
|
|
the second <a title="" href="#policy_alternative">policy
|
|
alternative</a>, and conversely. If either <a title="" href=
|
|
"#policy_alternative">policy alternative</a> contains multiple
|
|
<a title="" href="#policy_assertion">policy assertions</a> of the
|
|
same type, <a title="" href="#policy_alternative">policy
|
|
alternative</a> equality is dependent on the semantics of that
|
|
assertion type.</p>
|
|
<p>Two <a title="" href="#policy_assertion">policy assertions</a>
|
|
are equivalent if they have the same QName, if either policy
|
|
assertion is an <a title="" href=
|
|
"#ignorable_policy_assertion">ignorable policy assertion</a>, both
|
|
assertions must be <a title="" href=
|
|
"#ignorable_policy_assertion">ignorable policy assertions</a> and,
|
|
if either <a title="" href="#policy_assertion">policy assertion</a>
|
|
has a nested policy, both assertions must have a nested policy and
|
|
the nested policies must be equal. If either assertion contains
|
|
policy assertion parameters, then the policy assertion parameters
|
|
SHOULD be compared for equality. Comparing policy assertion
|
|
parameters for equality is not defined by this document, but
|
|
<a title="" href="#policy_assertion">policy assertion</a> equality
|
|
may be further refined by the corresponding <a title="" href=
|
|
"#policy_assertion">policy assertion</a> specification.</p>
|
|
</div>
|
|
<div class="div2">
|
|
<h3><a name="effective-policy" id="effective-policy"></a>5.4
|
|
Effective Policy</h3>
|
|
<p>The following diagram illustrates the four <a title="" href=
|
|
"#policy_subject">policy subjects</a> in WSDL and how the <a title=
|
|
"effective policy" href="#effective_policy">effective policy</a> is
|
|
calculated for each of these <a title="" href=
|
|
"#policy_subject">policy subjects</a>.</p>
|
|
<div class="figure" style="text-align: center"><br />
|
|
<img src="ws-policyattachment-4-wsdl20.jpg" alt=
|
|
"Policy Subjects and Effective Policy in WSDL 2.0" />
|
|
<p style="text-align:left"><i><span>Figure 5-1.</span> Policy
|
|
Subjects and Effective Policy in WSDL 2.0</i></p>
|
|
<br /></div>
|
|
<p>If multiple <a title="" href="#policy">policies</a> are attached
|
|
to WSDL components that collectively represent a <a title="" href=
|
|
"#policy_subject">policy subject</a> then the <a title=
|
|
"effective policy" href="#effective_policy">effective policy</a> of
|
|
these <a title="" href="#policy">policies</a> applies. (For
|
|
example, there is a <a title="" href="#policy">policy</a> attached
|
|
to an Endpoint component that describes the component and there is
|
|
a <a title="" href="#policy">policy</a> attached to the Binding
|
|
component in the Endpoint component’s {binding} property.) The
|
|
<a title="effective policy" href="#effective_policy">effective
|
|
policy</a> is the <a title="merge" href="#merge">merge</a> of the
|
|
<a title="" href="#policy">policies</a> that are attached to the
|
|
same <a title="" href="#policy_subject">policy subject</a>. The
|
|
rest of this section describes how the <a title="effective policy"
|
|
href="#effective_policy">effective policy</a> is calculated for
|
|
each of these <a title="" href="#policy_subject">policy
|
|
subjects</a>.</p>
|
|
<div class="div3">
|
|
<h4><a name="service-policy-subject" id=
|
|
"service-policy-subject"></a>5.4.1 Service Policy Subject</h4>
|
|
<p>The <a title="effective policy" href=
|
|
"#effective_policy">effective policy</a> of a service policy
|
|
subject is the <a title="" href="#policy">policy</a> in the
|
|
{policy} property of a Service component that describes the
|
|
service.</p>
|
|
</div>
|
|
<div class="div3">
|
|
<h4><a name="endpoint-policy-subject" id=
|
|
"endpoint-policy-subject"></a>5.4.2 Endpoint Policy Subject</h4>
|
|
<p>The <a title="effective policy" href=
|
|
"#effective_policy">effective policy</a> of an endpoint policy
|
|
subject is the <a title="merge" href="#merge">merge</a> of
|
|
<a title="" href="#policy">policies</a> in the {policy} properties
|
|
of:</p>
|
|
<ul>
|
|
<li>
|
|
<p>An Endpoint component that describes the endpoint,</p>
|
|
</li>
|
|
<li>
|
|
<p>The Binding component in the Endpoint component’s {binding}
|
|
property,</p>
|
|
</li>
|
|
<li>
|
|
<p>The Interface component in the Service component’s {interface}
|
|
property of the Endpoint component’s {parent} property and</p>
|
|
</li>
|
|
<li>
|
|
<p>The Interface components in the {extended interfaces} property
|
|
of the Interface component in the Service component’s {interface}
|
|
property of the Endpoint component’s {parent} property.</p>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<div class="div3">
|
|
<h4><a name="operation-policy-subject" id=
|
|
"operation-policy-subject"></a>5.4.3 Operation Policy Subject</h4>
|
|
<p>If the Binding component has an Interface component in the
|
|
{interface} property, then the <a title="effective policy" href=
|
|
"#effective_policy">effective policy</a> of an operation policy
|
|
subject <span class="rfc2119">MAY</span> be calculated by <a title=
|
|
"merge" href="#merge">merging</a> the <a title="" href=
|
|
"#policy">policies</a> in the {policy} properties of:</p>
|
|
<ul>
|
|
<li>
|
|
<p>The Interface Operation component that describes the operation
|
|
and</p>
|
|
</li>
|
|
<li>
|
|
<p>The Binding Operation component (if any) whose {interface
|
|
operation} property has the Interface Operation component.</p>
|
|
</li>
|
|
</ul>
|
|
<p>If the Binding component does not have an Interface component in
|
|
the {interface} property, then the <a title="effective policy"
|
|
href="#effective_policy">effective policy</a> of an operation
|
|
policy subject <span class="rfc2119">MUST</span> be calculated in
|
|
relation to a specific endpoint, and is the <a title="" href=
|
|
"#policy">policy</a> in the {policy} property of the Interface
|
|
Operation component that describes the operation.</p>
|
|
</div>
|
|
<div class="div3">
|
|
<h4><a name="message-policy-subject-input" id=
|
|
"message-policy-subject-input"></a>5.4.4 Message Policy Subject
|
|
(input message)</h4>
|
|
<p>If the Binding component has an Interface component in the
|
|
{interface} property, then the <a title="effective policy" href=
|
|
"#effective_policy">effective policy</a> of an input message
|
|
<span class="rfc2119">MAY</span> be calculated by <a title="merge"
|
|
href="#merge">merging</a> the <a title="" href=
|
|
"#policy">policies</a> in the {policy} properties of:</p>
|
|
<ul>
|
|
<li>
|
|
<p>The Interface Message Reference component that describes the
|
|
input message and</p>
|
|
</li>
|
|
<li>
|
|
<p>The Binding Message Reference component whose {interface message
|
|
reference} property has the Interface Message Reference
|
|
component.</p>
|
|
</li>
|
|
</ul>
|
|
<p>If the Binding component does not have an Interface component in
|
|
the {interface} property, then the <a title="effective policy"
|
|
href="#effective_policy">effective policy</a> of an input message
|
|
<span class="rfc2119">MUST</span> be calculated in relation to a
|
|
specific endpoint, and is the <a title="" href="#policy">policy</a>
|
|
in the {policy} property of the Interface Message Reference
|
|
component that describes the input message.</p>
|
|
</div>
|
|
<div class="div3">
|
|
<h4><a name="message-policy-subject-output" id=
|
|
"message-policy-subject-output"></a>5.4.5 Message Policy Subject
|
|
(output message)</h4>
|
|
<p>If the Binding component has an Interface component in the
|
|
{interface} property, then the <a title="effective policy" href=
|
|
"#effective_policy">effective policy</a> of an output message
|
|
<span class="rfc2119">MAY</span> be calculated by <a title="merge"
|
|
href="#merge">merging</a> the <a title="" href=
|
|
"#policy">policies</a> in the {policy} properties of:</p>
|
|
<ul>
|
|
<li>
|
|
<p>The Interface Message Reference component that describes the
|
|
output message and</p>
|
|
</li>
|
|
<li>
|
|
<p>The Binding Message Reference component whose {interface message
|
|
reference} property has the Interface Message Reference
|
|
component.</p>
|
|
</li>
|
|
</ul>
|
|
<p>If the Binding component does not have an Interface component in
|
|
the {interface} property, then the effective policy of an output
|
|
message <span class="rfc2119">MUST</span> be calculated in relation
|
|
to a specific endpoint, and is the <a title="" href=
|
|
"#policy">policy</a> in the {policy} property of the Interface
|
|
Message Reference component that describes the output message.</p>
|
|
</div>
|
|
<div class="div3">
|
|
<h4><a name="message-policy-subject-input-fault" id=
|
|
"message-policy-subject-input-fault"></a>5.4.6 Message Policy
|
|
Subject (input fault message)</h4>
|
|
<p>If the Binding component has an Interface component in the
|
|
{interface} property, then the <a title="effective policy" href=
|
|
"#effective_policy">effective policy</a> of an input fault message
|
|
<span class="rfc2119">MAY</span> be calculated by <a title="merge"
|
|
href="#merge">merging</a> the <a title="" href=
|
|
"#policy">policies</a> in the {policy} properties of:</p>
|
|
<ul>
|
|
<li>
|
|
<p>The Interface Fault Reference component that describes the input
|
|
fault message,</p>
|
|
</li>
|
|
<li>
|
|
<p>The Interface Fault component in the Interface Fault Reference
|
|
component’s {interface fault} property,</p>
|
|
</li>
|
|
<li>
|
|
<p>The Binding Fault Reference component whose {interface fault
|
|
reference} property has the Interface Fault Reference component
|
|
and</p>
|
|
</li>
|
|
<li>
|
|
<p>The Binding Fault component whose {interface fault} property has
|
|
the Interface Fault component in the Interface Fault Reference
|
|
component’s {interface fault} property.</p>
|
|
</li>
|
|
</ul>
|
|
<p>If the Binding component does not have an Interface component in
|
|
the {interface} property, then the <a title="effective policy"
|
|
href="#effective_policy">effective policy</a> of an input fault
|
|
message <span class="rfc2119">MUST</span> be calculated in relation
|
|
to a specific endpoint, and is the <a title="merge" href=
|
|
"#merge">merge</a> of <a title="" href="#policy">policies</a> in
|
|
the {policy} properties of:</p>
|
|
<ul>
|
|
<li>
|
|
<p>The Interface Fault Reference component that describes the input
|
|
fault message and</p>
|
|
</li>
|
|
<li>
|
|
<p>The Interface Fault component in the Interface Fault Reference
|
|
component’s {interface fault} property.</p>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<div class="div3">
|
|
<h4><a name="message-policy-subject-output-fault" id=
|
|
"message-policy-subject-output-fault"></a>5.4.7 Message Policy
|
|
Subject (output fault message)</h4>
|
|
<p>If the Binding component has an Interface component in the
|
|
{interface} property, then the <a title="effective policy" href=
|
|
"#effective_policy">effective policy</a> of an output fault message
|
|
<span class="rfc2119">MAY</span> be calculated by <a title="merge"
|
|
href="#merge">merging</a> the <a title="" href=
|
|
"#policy">policies</a> in the {policy} properties of:</p>
|
|
<ul>
|
|
<li>
|
|
<p>The Interface Fault Reference component that describes the
|
|
output fault message,</p>
|
|
</li>
|
|
<li>
|
|
<p>The Interface Fault component in the Interface Fault Reference
|
|
component’s {interface fault} property,</p>
|
|
</li>
|
|
<li>
|
|
<p>The Binding Fault Reference component whose {interface fault
|
|
reference} property has the Interface Fault Reference component
|
|
and</p>
|
|
</li>
|
|
<li>
|
|
<p>The Binding Fault component whose {interface fault} property has
|
|
the Interface Fault component in the Interface Fault Reference
|
|
component’s {interface fault} property for the endpoint.</p>
|
|
</li>
|
|
</ul>
|
|
<p>If the Binding component does not have an Interface component in
|
|
the {interface} property, then the <a title="effective policy"
|
|
href="#effective_policy">effective policy</a> of an output fault
|
|
message <span class="rfc2119">MUST</span> be calculated in relation
|
|
to a specific endpoint, and is the <a title="merge" href=
|
|
"#merge">merge</a> of <a title="" href="#policy">policies</a> in
|
|
the {policy} properties of:</p>
|
|
<ul>
|
|
<li>
|
|
<p>The Interface Fault Reference component that describes the
|
|
output fault message and</p>
|
|
</li>
|
|
<li>
|
|
<p>The Interface Fault component in the Interface Fault Reference
|
|
component’s {interface fault} property.</p>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="div1">
|
|
<h2><a name="AttachingPoliciesUsingUDDI" id=
|
|
"AttachingPoliciesUsingUDDI"></a>6. Attaching Policies Using
|
|
UDDI</h2>
|
|
<p>This section defines a mechanism for associating policies with
|
|
<a title="" href="#policy_subject">policy subjects</a> through the
|
|
use of UDDI. It defines a minimum level of support for associating
|
|
<a title="" href="#policy_expression">policy expressions</a> with
|
|
entities in a UDDI registry. The calculation of <a title=
|
|
"effective policy" href="#effective_policy">effective policy</a>
|
|
for UDDI entities is described in Section <a href=
|
|
"#CalculatingEffectivePolicyElementPolicyUDDI"><b>6.1 Calculating
|
|
Effective Policy and Element Policy in UDDI</b></a>. While the
|
|
general concept for associating <a title="" href=
|
|
"#policy_expression">policy expressions</a> with UDDI entities,
|
|
which is specified in Sections <a href=
|
|
"#ReferencingRemotePolicyExpressions"><b>6.2 Referencing Remote
|
|
Policy Expressions</b></a> and <a href=
|
|
"#RegisteringReusablePolicyExpressions"><b>6.3 Registering Reusable
|
|
Policy Expressions</b></a>, is based on UDDI Version 2
|
|
[<cite><a href="#UDDIAPI20">UDDI API 2.0</a></cite>, <cite><a href=
|
|
"#UDDIDataStructure20">UDDI Data Structure 2.0</a></cite>], the
|
|
necessary changes with respect to UDDI Version 3 [<cite><a href=
|
|
"#UDDI30">UDDI 3.0</a></cite>] are explained in Section <a href=
|
|
"#RegisteringPoliciesUDDIVersion3"><b>6.4 Registering Policies in
|
|
UDDI Version 3</b></a>.</p>
|
|
<p>There are essentially two approaches for registering policies in
|
|
UDDI. One approach is to directly reference remotely accessible
|
|
<a title="" href="#policy_expression">policy expressions</a> in
|
|
UDDI entities, the other is to register <a title="" href=
|
|
"#policy_expression">policy expressions</a> as distinct tModels and
|
|
then reference these tModels in each UDDI entity that is using the
|
|
<a title="" href="#policy_expression">policy expression</a>. While
|
|
the former approach (see Section <a href=
|
|
"#ReferencingRemotePolicyExpressions"><b>6.2 Referencing Remote
|
|
Policy Expressions</b></a>) is expected to be used for <a title=""
|
|
href="#policy_expression">policy expressions</a> that are mainly
|
|
unique for a given Web service, the latter approach (see Section
|
|
<a href="#RegisteringReusablePolicyExpressions"><b>6.3 Registering
|
|
Reusable Policy Expressions</b></a>) is expected to be used for
|
|
more modular and reusable <a title="" href=
|
|
"#policy_expression">policy expressions</a>.</p>
|
|
<div class="div2">
|
|
<h3><a name="CalculatingEffectivePolicyElementPolicyUDDI" id=
|
|
"CalculatingEffectivePolicyElementPolicyUDDI"></a>6.1 Calculating
|
|
Effective Policy and Element Policy in UDDI</h3>
|
|
<p>When attaching a <a title="" href="#policy">policy</a> to a UDDI
|
|
entity a <a title="" href="#policy_scope">policy scope</a> is
|
|
implied for that attachment. The <a title="" href=
|
|
"#policy_scope">policy scope</a> only contains the <a title=""
|
|
href="#policy_subject">policy subjects</a> associated with that
|
|
entity, and not those associated with the children of that entity.
|
|
This <a title="" href="#policy">policy</a> is the entity's
|
|
<a title="element policy" href="#element_policy">element
|
|
policy</a>.</p>
|
|
<p>Each <a title="" href="#policy_assertion">policy assertion</a>
|
|
contained within a UDDI entity's <a title="element policy" href=
|
|
"#element_policy">element policy</a> should have the correct
|
|
semantic such that the policy subject for that assertion is that
|
|
UDDI entity. For example, assertions that describe behaviours
|
|
regarding a service provider should only be contained within
|
|
policies attached to a businessEntity structure.</p>
|
|
<p>For UDDI tModels that represent Web service types, the <a title=
|
|
"element policy" href="#element_policy">element policy</a> is
|
|
considered an intrinsic part of the tModel and applies to all uses
|
|
of that tModel. In particular, it <span class="rfc2119">MUST</span>
|
|
be <a title="merge" href="#merge">merged</a> into the <a title=
|
|
"effective policy" href="#effective_policy">effective policy</a> of
|
|
every bindingTemplate that references that tModel.</p>
|
|
<p>Policies that apply to deployed Web services (bindingTemplates)
|
|
are only considered in the <a title="effective policy" href=
|
|
"#effective_policy">effective policy</a> of that deployed resource
|
|
itself.</p>
|
|
<p>Each of these entities <span class="rfc2119">MAY</span> have an
|
|
<a title="element policy" href="#element_policy">element policy</a>
|
|
per Section <a href="#rPolicyAttachment"><b>3. Policy
|
|
Attachment</b></a>. The remainder of this section defines how that
|
|
<a title="element policy" href="#element_policy">element policy</a>
|
|
is interpreted to calculate the <a title="effective policy" href=
|
|
"#effective_policy">effective policy</a>.</p>
|
|
<div class="div3">
|
|
<h4><a name="ServiceProviderPolicySubjectUDDI" id=
|
|
"ServiceProviderPolicySubjectUDDI"></a>6.1.1 Service Provider
|
|
Policy Subject</h4>
|
|
<p>The following UDDI element is considered as the service provider
|
|
policy subject:</p>
|
|
<ul>
|
|
<li>
|
|
<p><code>uddi:businessEntity</code></p>
|
|
</li>
|
|
</ul>
|
|
<p>This element <span class="rfc2119">MAY</span> have <a title=
|
|
"element policy" href="#element_policy">element policy</a> as per
|
|
Section <a href="#rPolicyAttachment"><b>3. Policy
|
|
Attachment</b></a>, and if present <span class=
|
|
"rfc2119">MUST</span> be <a title="merge" href="#merge">merged</a>
|
|
into the <a title="effective policy" href=
|
|
"#effective_policy">effective policy</a> of the UDDI businessEntity
|
|
Subject.</p>
|
|
<p>Policy attached to the service provider policy subject applies
|
|
to behaviors or aspects of the service provider as a whole,
|
|
irrespective of interactions over any particular service. This
|
|
includes — but is not limited to — acting as a service consumer or
|
|
a service provider in general.</p>
|
|
</div>
|
|
<div class="div3">
|
|
<h4><a name="ServicePolicySubjectUDDI" id=
|
|
"ServicePolicySubjectUDDI"></a>6.1.2 Service Policy Subject</h4>
|
|
<p>The following UDDI element is considered as the service policy
|
|
subject:</p>
|
|
<ul>
|
|
<li>
|
|
<p><code>uddi:businessService</code></p>
|
|
</li>
|
|
</ul>
|
|
<p>This element <span class="rfc2119">MAY</span> have <a title=
|
|
"element policy" href="#element_policy">element policy</a> as per
|
|
Section <a href="#rPolicyAttachment"><b>3. Policy
|
|
Attachment</b></a>, and if present <span class=
|
|
"rfc2119">MUST</span> be <a title="merge" href="#merge">merged</a>
|
|
into the <a title="effective policy" href=
|
|
"#effective_policy">effective policy</a> of the UDDI
|
|
businessService Subject.</p>
|
|
<p>Policy attached to the service policy subject applies to
|
|
behaviors or aspects of the service as a whole, irrespective of
|
|
interactions over any particular endpoint. This includes — but is
|
|
not limited to — acting as a consumer or a provider of the
|
|
service.</p>
|
|
</div>
|
|
<div class="div3">
|
|
<h4><a name="EndpointPolicySubjectUDDI" id=
|
|
"EndpointPolicySubjectUDDI"></a>6.1.3 Endpoint Policy Subject</h4>
|
|
<p>The following UDDI elements collectively describe an
|
|
endpoint:</p>
|
|
<ul>
|
|
<li>
|
|
<p><code>uddi:bindingTemplate</code></p>
|
|
</li>
|
|
<li>
|
|
<p><code>uddi:tModel</code></p>
|
|
</li>
|
|
</ul>
|
|
<p>These elements <span class="rfc2119">MAY</span> have <a title=
|
|
"element policy" href="#element_policy">element policy</a> as per
|
|
Section <a href="#rPolicyAttachment"><b>3. Policy
|
|
Attachment</b></a>. The <a title="" href="#policy_scope">policy
|
|
scope</a> implied by each of these elements contains the endpoint
|
|
policy subject representing the deployed endpoint.</p>
|
|
<p>An endpoint policy subject applies to behaviours associated with
|
|
an entire endpoint of the service, irrespective of any message
|
|
exchange made. This includes — but is not limited to — aspects of
|
|
communicating with or instantiating the endpoint.</p>
|
|
<p>The <a title="effective policy" href=
|
|
"#effective_policy">effective policy</a> for a UDDI endpoint
|
|
includes the <a title="element policy" href=
|
|
"#element_policy">element policy</a> of the
|
|
<code>uddi:bindingTemplate</code> element that defines the endpoint
|
|
<a title="merge" href="#merge">merged</a> with the <a title=
|
|
"element policy" href="#element_policy">element policy</a> of those
|
|
<code>uddi:tModel</code> elements that are referenced in contained
|
|
<code>uddi:tModelInstanceInfo</code> elements.</p>
|
|
</div>
|
|
</div>
|
|
<div class="div2">
|
|
<h3><a name="ReferencingRemotePolicyExpressions" id=
|
|
"ReferencingRemotePolicyExpressions"></a>6.2 Referencing Remote
|
|
Policy Expressions</h3>
|
|
<p>UDDI tModels provide a generic mechanism for associating
|
|
arbitrary metadata with services and other entities in a UDDI
|
|
registry. To properly integrate Web Services Policy into the UDDI
|
|
model, Web Services Policy 1.5 - Attachment pre-defines one tModel
|
|
that is used to associate a remotely accessible <a title="" href=
|
|
"#policy">policy</a> with an entity in a UDDI registry.</p>
|
|
<p>This new tModel is called the remote policy reference category
|
|
system and is defined in Appendix <a href=
|
|
"#RemotePolicyReferenceCategorySystem"><b>B.1 Remote Policy
|
|
Reference Category System</b></a>.</p>
|
|
<p>UDDI registries <span class="rfc2119">MUST</span> use the (UDDI
|
|
V2 [<cite><a href="#UDDIDataStructure20">UDDI Data Structure
|
|
2.0</a></cite>]) <code>tModelKey</code>
|
|
<code>uuid:2ea5f9d3-9b84-39f9-b334-e9d5f535b4c1</code> to uniquely
|
|
identify this tModel so that UDDI registry users can expect the
|
|
same behavior across different UDDI registries.</p>
|
|
<p>The tModel's valid values are those IRIs that identify external
|
|
<a title="" href="#policy_expression">policy expressions</a>; that
|
|
is, when referencing this category system in a
|
|
<code>categoryBag</code>, the corresponding <code>keyValue</code>
|
|
of the <code>keyedReference</code> is the IRI of the <a title=""
|
|
href="#policy_expression">policy expression</a>.</p>
|
|
<p>Using the remote policy reference category system, one can then
|
|
associate a <a title="" href="#policy_expression">policy
|
|
expression</a> with a <code>businessEntity</code>, a
|
|
<code>businessService</code>, and a tModel using the entity's
|
|
<code>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>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:2ea5f9d3-9b84-39f9-b334-e9d5f535b4c1" />
|
|
(10) </categoryBag>
|
|
(11) </businessService>
|
|
</pre></div>
|
|
<p>The <code>tModelKey</code> of the <code>keyedReference</code>
|
|
<span class="rfc2119">MUST</span> match the fixed
|
|
<code>tModelKey</code> from the remote policy reference category
|
|
system. The <code>keyValue</code> <span class="rfc2119">MUST</span>
|
|
be the IRI that identifies the <a title="" href=
|
|
"#policy_expression">policy expression</a>.</p>
|
|
<p>A different approach has to be taken to associate a <a title=""
|
|
href="#policy_expression">policy expression</a> with a
|
|
<code>bindingTemplate</code>, since bindingTemplates do not contain
|
|
a <code>categoryBag</code> in UDDI Version 2. Therefore, the
|
|
<code>bindingTemplate</code>'s <code>tModelInstanceInfo</code> and
|
|
<code>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:2ea5f9d3-9b84-39f9-b334-e9d5f535b4c1" >
|
|
(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>tModelKey</code> of the
|
|
<code>tModelInstanceInfo</code> <span class="rfc2119">MUST</span>
|
|
match the fixed <code>tModelKey</code> from the remote policy
|
|
reference category system as defined above. The
|
|
<code>instanceParms</code> <span class="rfc2119">MUST</span> be the
|
|
IRI that identifies the <a title="" href=
|
|
"#policy_expression">policy expression</a>.</p>
|
|
</div>
|
|
<div class="div2">
|
|
<h3><a name="RegisteringReusablePolicyExpressions" id=
|
|
"RegisteringReusablePolicyExpressions"></a>6.3 Registering Reusable
|
|
Policy Expressions</h3>
|
|
<p>In addition to using the approach outlined in the section above,
|
|
publishers may register a specific <a title="" href=
|
|
"#policy_expression">policy expression</a> in a UDDI registry as a
|
|
distinct tModel. To properly categorize tModels as <a title=""
|
|
href="#policy_expression">policy expressions</a>, Web Services
|
|
Policy 1.5 - Attachment pre-defines the Web Services Policy 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:90eda65e-ffd7-33df-965f-98ebb1c2a941" />
|
|
(15) <keyedReference
|
|
(16) keyName="Policy Expression for example's Web services"
|
|
(17) keyValue="http://www.example.com/myservice/policy"
|
|
(18) tModelKey="uuid:2ea5f9d3-9b84-39f9-b334-e9d5f535b4c1" />
|
|
(19) </categoryBag>
|
|
(20) </tModel>
|
|
</pre></div>
|
|
<p>The first <code>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 in order to enable UDDI inquiries for <a title=""
|
|
href="#policy_expression">policy expressions</a> in general. The
|
|
second <code>keyedReference</code> designates the <a title="" href=
|
|
"#policy_expression">policy expression</a> the tModel represents by
|
|
using the approach from the section above. This is necessary in
|
|
order to enable UDDI inquiries for particular <a title="" href=
|
|
"#policy_expression">policy expressions</a> based on their IRI.</p>
|
|
<p>Note that the <a title="" href="#policy_expression">policy
|
|
expression</a> IRI is also specified in the tModel's overview URL
|
|
to indicate that it is a resolvable URL to actually retrieve the
|
|
<a title="" href="#policy_expression">policy expression</a>.</p>
|
|
<p>Web Services Policy 1.5 - Attachment pre-defines another tModel
|
|
that is used to associate such a pre-registered, locally available
|
|
<a title="" href="#policy_expression">policy expressions</a> with
|
|
an entity in a UDDI registry</p>
|
|
<p>This new tModel is called the local policy reference category
|
|
system and is defined in Appendix <a href=
|
|
"#LocalPolicyReferenceCategorySystem"><b>B.3 Local Policy Reference
|
|
Category System</b></a>.</p>
|
|
<p>UDDI registries <span class="rfc2119">MUST</span> use the
|
|
<code>tModelKey</code>
|
|
<code>uuid:5da4fc61-a302-35ad-91d3-775150429035</code> to uniquely
|
|
identify this tModel so that UDDI registry users can expect the
|
|
same behavior across different UDDI registries.</p>
|
|
<p>The local policy reference category system is based on
|
|
tModelKeys. The valid values of this category system are those
|
|
tModelKeys identifying tModels that</p>
|
|
<ul>
|
|
<li>
|
|
<p>exist in the same UDDI registry</p>
|
|
</li>
|
|
<li>
|
|
<p>and are categorized as <code>"policy"</code> using the Web
|
|
Services Policy Types category system.</p>
|
|
</li>
|
|
</ul>
|
|
<p>That is, when referencing this category system in a category
|
|
bag, the corresponding <code>keyValue</code> of the
|
|
<code>keyedReference</code> is the <code>tModelKey</code> of the
|
|
tModel that represents the <a title="" href=
|
|
"#policy_expression">policy expression</a>.</p>
|
|
<p>Given the local policy reference category system, one can then
|
|
associate a <a title="" href="#policy_expression">policy
|
|
expression</a> tModel with a <code>businessEntity</code>, a
|
|
<code>businessService</code>, and a tModel using the entity's
|
|
<code>categoryBag</code>. For example, associating the <a title=""
|
|
href="#policy_expression">policy expression</a> tModel with the
|
|
<code>tModelKey</code> <code>"uuid:04cfa…"</code> from above with a
|
|
<code>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:5da4fc61-a302-35ad-91d3-775150429035" />
|
|
(10) </categoryBag>
|
|
(11) </businessService>
|
|
</pre></div>
|
|
<p>The <code>tModelKey</code> of the <code>keyedReference</code>
|
|
<span class="rfc2119">MUST</span> match the fixed
|
|
<code>tModelKey</code> from the local policy reference category
|
|
system. The keyValue <span class="rfc2119">MUST</span> be the
|
|
<code>tModelKey</code> of the <a title="" href=
|
|
"#policy_expression">policy expression</a> that is registered with
|
|
the UDDI registry.</p>
|
|
<p>A different approach has to be taken to associate a <a title=""
|
|
href="#policy_expression">policy expression</a> with a
|
|
<code>bindingTemplate</code>, since bindingTemplates do not contain
|
|
a <code>categoryBag</code> in UDDI Version 2. Therefore, the
|
|
<code>bindingTemplate</code>'s <code>tModelInstanceInfo</code> and
|
|
<code>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:5da4fc61-a302-35ad-91d3-775150429035" >
|
|
(06) <instanceDetails>
|
|
(07) <instanceParms>uuid:04cfa…</instanceParms>
|
|
(08) </instanceDetails>
|
|
(09) </tModelInstanceInfo>
|
|
(10) </tModelInstanceDetails>
|
|
(11) </bindingTemplate>
|
|
</pre></div>
|
|
<p>The tModelKey of the <code>tModelInstanceInfo</code>
|
|
<span class="rfc2119">MUST</span> match the fixed
|
|
<code>tModelKey</code> from the local policy reference category
|
|
system. The <code>instanceParms</code> <span class=
|
|
"rfc2119">MUST</span> be the <code>tModelKey</code> of the
|
|
<a title="" href="#policy_expression">policy expression</a> that is
|
|
registered with the UDDI registry.</p>
|
|
</div>
|
|
<div class="div2">
|
|
<h3><a name="RegisteringPoliciesUDDIVersion3" id=
|
|
"RegisteringPoliciesUDDIVersion3"></a>6.4 Registering Policies in
|
|
UDDI Version 3</h3>
|
|
<p>UDDI Version 3 [<cite><a href="#UDDI30">UDDI 3.0</a></cite>]
|
|
provides a number of enhancements in the areas of modeling and
|
|
entity keying. Special considerations for UDDI multi-version
|
|
support are outlined in chapter 10 of [<cite><a href="#UDDI30">UDDI
|
|
3.0</a></cite>]. The changes with respect to the previous sections
|
|
are as follows.</p>
|
|
<p>First, the tModelKeys of the pre-defined tModels are migrated to
|
|
domain-based keys. The migration is unique since the Version 2 keys
|
|
introduced in this specification are already programmatically
|
|
derived from the Version 3 keys given below.</p>
|
|
<p>The <code>tModelKey</code> for the remote policy reference
|
|
tModel changes from
|
|
<code>"uuid:2ea5f9d3-9b84-39f9-b334-e9d5f535b4c1"</code> to
|
|
<code>"uddi:w3.org:ws-policy:v1.5:attachment:remotepolicyreference"</code>.</p>
|
|
<p>The <code>tModelKey</code> for the Web Services Policy Types
|
|
tModel changes from
|
|
<code>"uuid:90eda65e-ffd7-33df-965f-98ebb1c2a941"</code> to
|
|
<code>"uddi:w3.org:ws-policy:v1.5:attachment:policytypes"</code>.</p>
|
|
<p>The <code>tModelKey</code> for the local policy reference tModel
|
|
changes from
|
|
<code>"uuid:5da4fc61-a302-35ad-91d3-775150429035"</code> to
|
|
<code>"uddi:w3.org:ws-policy:v1.5:attachment:localpolicyreference"</code>.</p>
|
|
<p>Second, rather than putting <a title="" href=
|
|
"#policy_expression">policy expression</a> references in a
|
|
<code>bindingTemplate</code>'s <code>tModelInstanceInfo</code>,
|
|
they are added to the <code>bindingTemplate</code>'s
|
|
<code>categoryBag</code>, analogous to the mechanism described for
|
|
other UDDI entities. For example, the example
|
|
<code>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:w3.org:ws-policy:v1.5:attachment:remotepolicyreference"
|
|
(09) />
|
|
(10) </categoryBag>
|
|
(11) </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
|
|
xmlns="urn:uddi-org:api_v3" >
|
|
(02) <categoryBag>
|
|
(03) <keyedReference
|
|
(04) keyValue="http://www.example.com/"
|
|
(05) tModelKey="uddi:w3.org:ws-policy:v1.5:attachment:remotepolicyreference"
|
|
(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 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
|
|
canonicalization algorithm [<cite><a href=
|
|
"#SCC14N">SCC14N</a></cite>].</p>
|
|
</div>
|
|
</div>
|
|
<div class="div1">
|
|
<h2><a name="SecurityConsiderations" id=
|
|
"SecurityConsiderations"></a>7. Security Considerations</h2>
|
|
<p>It is <span class="rfc2119">RECOMMENDED</span> that <a title=""
|
|
href="#policy_attachment">policy attachments</a> be integrity
|
|
protected to permit the detection of tampering. This can be done
|
|
using a technology such as XML DSig [<cite><a href=
|
|
"#XML-Signature">XML-Signature</a></cite>], SSL/TLS [<cite><a href=
|
|
"#RFC2246">IETF RFC 2246</a></cite>], or WS-Security 2004
|
|
[<cite><a href="#WS-Security">WS-Security 2004</a></cite>]. This
|
|
also provides a mechanism for authenticating <a title="" href=
|
|
"#policy_attachment">policy attachments</a> by determining if the
|
|
signer has the right to "speak for" the scope of the <a title=""
|
|
href="#policy_attachment">policy attachment</a>.</p>
|
|
<p>Policies <span class="rfc2119">SHOULD NOT</span> be accepted
|
|
unless they are 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>
|
|
<p>A more complete discussion of security considerations can be
|
|
found in the Security Considerations section of the Web Services
|
|
Policy 1.5 - Framework document [<cite><a href="#WS-Policy">Web
|
|
Services Policy Framework</a></cite>].</p>
|
|
</div>
|
|
<div class="div1">
|
|
<h2><a name="Conformance" id="Conformance"></a>8. Conformance</h2>
|
|
<div class="div2">
|
|
<h3><a name="d3e4075" id="d3e4075"></a>8.1 External Policy
|
|
Attachment Conformance</h3>
|
|
<p>An element information item whose namespace name is
|
|
"http://www.w3.org/ns/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/2007/02/ws-policy.xsd">http://www.w3.org/2007/02/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="d3e4087" id="d3e4087"></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="d3e4096" id="d3e4096"></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" id="References"></a>A. References</h2>
|
|
<div class="div2">
|
|
<h3><a name="Normative-References" id=
|
|
"Normative-References"></a>A.1 Normative References</h3>
|
|
<dl>
|
|
<dt class="label"><a name="BP11" id="BP11"></a>[BP 1.1]</dt>
|
|
<dd><cite><a href=
|
|
"http://www.ws-i.org/Profiles/BasicProfile-1.1-2006-04-10.html">Basic
|
|
Profile Version 1.1</a></cite>, K. Ballinger, et al, Editors. The
|
|
Web Services-Interoperability Organization, 10 April 2006. This
|
|
version of the Basic Profile Version 1.1 is
|
|
http://www.ws-i.org/Profiles/BasicProfile-1.1-2006-04-10.html. The
|
|
<a href="http://www.ws-i.org/Profiles/BasicProfile-1.1.html">latest
|
|
version of the Basic Profile Version 1.1</a> is available at
|
|
http://www.ws-i.org/Profiles/BasicProfile-1.1.html</dd>
|
|
<dt class="label"><a name="RFC3023" id="RFC3023"></a>[IETF RFC
|
|
3023]</dt>
|
|
<dd>IETF "RFC 3023: XML Media Types", M. Murata, S. St. Laurent, D.
|
|
Kohn, January 2001. (See <cite><a href=
|
|
"http://www.ietf.org/rfc/rfc3023.txt">http://www.ietf.org/rfc/rfc3023.txt</a></cite>.)</dd>
|
|
<dt class="label"><a name="RFC2119" id="RFC2119"></a>[IETF RFC
|
|
2119]</dt>
|
|
<dd><cite><a href="http://www.ietf.org/rfc/rfc2119.txt">Key words
|
|
for use in RFCs to Indicate Requirement Levels</a></cite>, S.
|
|
Bradner, Author. Internet Engineering Task Force, March 1997.
|
|
Available at http://www.ietf.org/rfc/rfc2119.txt.</dd>
|
|
<dt class="label"><a name="RFC3986" id="RFC3986"></a>[IETF RFC
|
|
3986]</dt>
|
|
<dd><cite><a href="http://www.ietf.org/rfc/rfc3986.txt">Uniform
|
|
Resource Identifier (URI): Generic Syntax</a></cite> , T.
|
|
Berners-Lee, R. Fielding and L. Masinter, Authors. Network Working
|
|
Group, January 2005. Available at
|
|
http://www.ietf.org/rfc/rfc3986.txt.</dd>
|
|
<dt class="label"><a name="RFC3987" id="RFC3987"></a>[IETF RFC
|
|
3987]</dt>
|
|
<dd><cite><a href=
|
|
"http://www.ietf.org/rfc/rfc3987.txt">Internationalized Resource
|
|
Identifiers (IRIs)</a></cite> , M. Duerst and M. Suignard, Authors.
|
|
Internet Engineering Task Force, January 2005. Available at
|
|
http://www.ietf.org/rfc/rfc3987.txt.</dd>
|
|
<dt class="label"><a name="UDDIAPI20" id="UDDIAPI20"></a>[UDDI API
|
|
2.0]</dt>
|
|
<dd><cite><a href=
|
|
"http://uddi.org/pubs/ProgrammersAPI-V2.04-Published-20020719.htm">UDDI
|
|
Version 2.04 API</a></cite>, T. Bellwood, Editor. Organization for
|
|
the Advancement of Structured Information Standards, 19 July 2002.
|
|
This version of UDDI Version 2.0 API is
|
|
http://uddi.org/pubs/ProgrammersAPI-V2.04-Published-20020719.htm.
|
|
The <a href="http://uddi.org/pubs/ProgrammersAPI_v2.htm">latest
|
|
version of the UDDI 2.0 API</a> is available at
|
|
http://uddi.org/pubs/ProgrammersAPI_v2.htm.</dd>
|
|
<dt class="label"><a name="UDDIDataStructure20" id=
|
|
"UDDIDataStructure20"></a>[UDDI Data Structure 2.0]</dt>
|
|
<dd><cite><a href=
|
|
"http://uddi.org/pubs/DataStructure-V2.03-Published-20020719.htm">UDDI
|
|
Version 2.03 Data Structure Reference</a></cite>, C. von Riegen,
|
|
Editor. Organization for the Advancement of Structured Information
|
|
Standards, 19 July 2002. This version of UDDI Version 2.0 Data
|
|
Structures is
|
|
http://uddi.org/pubs/DataStructure-V2.03-Published-20020719.htm.
|
|
The <a href="http://uddi.org/pubs/DataStructure_v2.htm">latest
|
|
version of the UDDI 2.0 Data Structures</a> is available at
|
|
http://uddi.org/pubs/DataStructure_v2.htm.</dd>
|
|
<dt class="label"><a name="UDDI30" id="UDDI30"></a>[UDDI 3.0]</dt>
|
|
<dd><cite><a href=
|
|
"http://www.oasis-open.org/committees/uddi-spec/doc/spec/v3/uddi-v3.0.2-20041019.htm">
|
|
UDDI Version 3.0.2</a></cite>, L. Clément, et al, Editors.
|
|
Organization for the Advancement of Structured Information
|
|
Standards, 19 October 2004. This version of the UDDI 3.0
|
|
specification is
|
|
http://www.oasis-open.org/committees/uddi-spec/doc/spec/v3/uddi-v3.0.2-20041019.htm.
|
|
The <a href=
|
|
"http://www.oasis-open.org/committees/uddi-spec/doc/spec/v3/uddi_v3.htm">
|
|
latest version of the UDDI 3.0</a> specification is available at
|
|
http://www.oasis-open.org/committees/uddi-spec/doc/spec/v3/uddi_v3.htm.</dd>
|
|
<dt class="label"><a name="WS-Policy" id="WS-Policy"></a>[Web
|
|
Services Policy Framework]</dt>
|
|
<dd><cite><a href=
|
|
"http://www.w3.org/TR/2007/REC-ws-policy-20070904">Web Services
|
|
Policy 1.5 - Framework</a></cite>, A. S. Vedamuthu, D. Orchard, F.
|
|
Hirsch, M. Hondo, P. Yendluri, T. Boubez and Ü. Yalçinalp, Editors.
|
|
World Wide Web Consortium, 04, September 2007. This version of the
|
|
specification of the Web Services Policy 1.5 - Framework
|
|
specification is http://www.w3.org/TR/2007/REC-ws-policy-20070904.
|
|
The <a href="http://www.w3.org/TR/ws-policy">latest version of Web
|
|
Services Policy 1.5 - Framework</a> is available at
|
|
http://www.w3.org/TR/ws-policy.</dd>
|
|
<dt class="label"><a name="WS-Addressing" id=
|
|
"WS-Addressing"></a>[WS-Addressing Core]</dt>
|
|
<dd><cite><a href=
|
|
"http://www.w3.org/TR/2006/REC-ws-addr-core-20060509/">Web Services
|
|
Addressing 1.0 - Core</a></cite>, M. Gudgin, M. Hadley, and T.
|
|
Rogers, Editors. World Wide Web Consortium, 9 May 2006. This
|
|
version of the Web Services Addressing 1.0 - Core Recommendation is
|
|
http://www.w3.org/TR/2006/REC-ws-addr-core-20060509/. The <a href=
|
|
"http://www.w3.org/TR/ws-addr-core/">latest version of Web Services
|
|
Addressing 1.0 - Core</a> is available at
|
|
http://www.w3.org/TR/ws-addr-core.</dd>
|
|
<dt class="label"><a name="WSDL11" id="WSDL11"></a>[WSDL 1.1]</dt>
|
|
<dd><cite><a href=
|
|
"http://www.w3.org/TR/2001/NOTE-wsdl-20010315">Web Services
|
|
Description Language (WSDL) 1.1</a></cite>, E. Christensen, et al,
|
|
Authors. World Wide Web Consortium, March 2001. Available at
|
|
http://www.w3.org/TR/2001/NOTE-wsdl-20010315.</dd>
|
|
<dt class="label"><a name="WSDL20" id="WSDL20"></a>[WSDL 2.0 Core
|
|
Language]</dt>
|
|
<dd><cite><a href=
|
|
"http://www.w3.org/TR/2007/REC-wsdl20-20070626/">Web Services
|
|
Description Language (WSDL) Version 2.0 Part 1: Core
|
|
Language</a></cite>, R. Chinnici, J. J. Moreau, A. Ryman, S.
|
|
Weerawarana, Editors. World Wide Web Consortium, 26 June 2007. This
|
|
version of the WSDL 2.0 specification is
|
|
http://www.w3.org/TR/2007/REC-wsdl20-20070626/. The <a href=
|
|
"http://www.w3.org/TR/wsdl20/">latest version of WSDL 2.0</a> is
|
|
available at http://www.w3.org/TR/wsdl20/.</dd>
|
|
<dt class="label"><a name="WS-Security" id=
|
|
"WS-Security"></a>[WS-Security 2004]</dt>
|
|
<dd><cite><a href=
|
|
"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0.pdf">
|
|
Web Services Security: SOAP Message Security 1.0 (WS-Security
|
|
2004)</a></cite>, A. Nadalin, C. Kaler, P. Hallam-Baker, and R.
|
|
Monzillo, Editors. Organization for the Advancement of Structured
|
|
Information Standards, March 2004. Available at
|
|
http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0.pdf.</dd>
|
|
<dt class="label"><a name="XMLBASE" id="XMLBASE"></a>[XML
|
|
BASE]</dt>
|
|
<dd><cite><a href=
|
|
"http://www.w3.org/TR/2001/REC-xmlbase-20010627/">XML
|
|
Base</a></cite>, Jonathan Marsh, Editor. World Wide Web Consortium,
|
|
27 June 2001. This version of the XML Base Recommendation is
|
|
http://www.w3.org/TR/2001/REC-xmlbase-20010627/. The <a href=
|
|
"http://www.w3.org/TR/xmlbase/">latest version of XML Base</a> is
|
|
available at http://www.w3.org/TR/xmlbase/.</dd>
|
|
<dt class="label"><a name="XMLInfoset" id="XMLInfoset"></a>[XML
|
|
Information Set]</dt>
|
|
<dd><cite><a href=
|
|
"http://www.w3.org/TR/2004/REC-xml-infoset-20040204/">XML
|
|
Information Set (Second Edition)</a></cite>, J. Cowan and R. Tobin,
|
|
Editors. World Wide Web Consortium, 24 October 2001, revised 4
|
|
February 2004. This version of the XML Information Set
|
|
Recommendation is
|
|
http://www.w3.org/TR/2004/REC-xml-infoset-20040204. The <a href=
|
|
"http://www.w3.org/TR/xml-infoset/">latest version of XML
|
|
Information Set</a> is available at
|
|
http://www.w3.org/TR/xml-infoset.</dd>
|
|
<dt class="label"><a name="XML-NS" id="XML-NS"></a>[XML
|
|
Namespaces]</dt>
|
|
<dd><cite><a href=
|
|
"http://www.w3.org/TR/2006/REC-xml-names-20060816/">Namespaces in
|
|
XML 1.0 (Second Edition)</a></cite>, T. Bray, D. Hollander, A.
|
|
Layman, and R. Tobin, Editors. World Wide Web Consortium, 14
|
|
January 1999, revised 16 August 2006. This version of the XML
|
|
Information Set Recommendation is
|
|
http://www.w3.org/TR/2006/REC-xml-names-20060816/. The <a href=
|
|
"http://www.w3.org/TR/REC-xml-names/">latest version of Namespaces
|
|
in XML</a> is available at http://www.w3.org/TR/REC-xml-names.</dd>
|
|
<dt class="label"><a name="XMLSchemaPart2" id=
|
|
"XMLSchemaPart2"></a>[XML Schema Datatypes]</dt>
|
|
<dd><cite><a href=
|
|
"http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/">XML Schema
|
|
Part 2: Datatypes Second Edition</a></cite>, P. Byron and A.
|
|
Malhotra, Editors. World Wide Web Consortium, 2 May 2001, revised
|
|
28 October 2004. This version of the XML Schema Part 2
|
|
Recommendation is
|
|
http://www.w3.org/TR/2004/REC-xmlschema-2-20041028. The <a href=
|
|
"http://www.w3.org/TR/xmlschema-2/">latest version of XML Schema
|
|
Part 2</a> is available at http://www.w3.org/TR/xmlschema-2.</dd>
|
|
<dt class="label"><a name="XMLSchemaPart1" id=
|
|
"XMLSchemaPart1"></a>[XML Schema Structures]</dt>
|
|
<dd><cite><a href=
|
|
"http://www.w3.org/TR/2004/REC-xmlschema-1-20041028/">XML Schema
|
|
Part 1: Structures Second Edition</a></cite>, H. Thompson, D.
|
|
Beech, M. Maloney, and N. Mendelsohn, Editors. World Wide Web
|
|
Consortium, 2 May 2001, revised 28 October 2004. This version of
|
|
the XML Schema Part 1 Recommendation is
|
|
http://www.w3.org/TR/2004/REC-xmlschema-1-20041028. The <a href=
|
|
"http://www.w3.org/TR/xmlschema-1/">latest version of XML Schema
|
|
Part 1</a> is available at http://www.w3.org/TR/xmlschema-1.</dd>
|
|
</dl>
|
|
</div>
|
|
<div class="div2">
|
|
<h3><a name="Informative-References" id=
|
|
"Informative-References"></a>A.2 Other References</h3>
|
|
<dl>
|
|
<dt class="label"><a name="RFC2246" id="RFC2246"></a>[IETF RFC
|
|
2246]</dt>
|
|
<dd>IETF "RFC 2246: The TLS Protocol", T. Dierks, C. Allen, January
|
|
1999. (See <cite><a href=
|
|
"http://www.ietf.org/rfc/rfc2246.txt">http://www.ietf.org/rfc/rfc2246.txt</a></cite>.)</dd>
|
|
<dt class="label"><a name="WSDL11EI" id="WSDL11EI"></a>[WSDL11
|
|
ElementIds]</dt>
|
|
<dd><cite><a href=
|
|
"http://www.w3.org/TR/2007/NOTE-wsdl11elementidentifiers-20070720/">
|
|
WSDL 1.1 Element Identifiers</a></cite> D. Orchard, A. S.
|
|
Vedamuthu, F. Hirsch, M. Hondo, P. Yendluri, T. Boubez, Ü.
|
|
Yalçinalp, Editors. World Wide Web Consortium, 20 July 2007. This
|
|
version of the WSDL 1.1 Element Identifiers Working Group Note is
|
|
http://www.w3.org/TR/2007/NOTE-wsdl11elementidentifiers-20070720/.
|
|
The <a href="http://www.w3.org/TR/wsdl11elementidentifiers/">latest
|
|
version of WSDL 1.1 Element Identifiers</a> is available at
|
|
http://www.w3.org/TR/wsdl11elementidentifiers/.</dd>
|
|
<dt class="label"><a name="MTOM" id="MTOM"></a>[MTOM]</dt>
|
|
<dd><cite><a href=
|
|
"http://www.w3.org/TR/2005/REC-soap12-mtom-20050125/">SOAP Message
|
|
Transmission Optimization Mechanism</a></cite>, M. Gudgin, N.
|
|
Mendelsohn, M. Nottingham and H. Ruellan, Editors. World Wide Web
|
|
Consortium, 25 January 2005. This version of the SOAP Message
|
|
Transmission Optimization Mechanism Recommendation is
|
|
http://www.w3.org/TR/2005/REC-soap12-mtom-20050125/. The <a href=
|
|
"http://www.w3.org/TR/soap12-mtom/">latest version of SOAP Message
|
|
Transmission Optimization Mechanism</a> is available at
|
|
http://www.w3.org/TR/soap12-mtom/.</dd>
|
|
<dt class="label"><a name="WS-MTOMPolicy" id=
|
|
"WS-MTOMPolicy"></a>[WS-MTOMPolicy]</dt>
|
|
<dd><cite><a href=
|
|
"http://schemas.xmlsoap.org/ws/2004/09/policy/optimizedmimeserialization/">
|
|
MTOM Serialization Policy Assertion (WS-MTOMPolicy)</a></cite>, C.
|
|
Ferris, et al, Authors. International Business Machines Corporation
|
|
and Microsoft Corporation, Inc., September 2006. Available at
|
|
http://schemas.xmlsoap.org/ws/2004/09/policy/optimizedmimeserialization/</dd>
|
|
<dt class="label"><a name="SCC14N" id="SCC14N"></a>[SCC14N]</dt>
|
|
<dd><cite><a href=
|
|
"http://uddi.org/pubs/SchemaCentricCanonicalization-20050523.htm">Schema
|
|
Centric XML Canonicalization Version 1.0</a></cite>, S. Aissi, A.
|
|
Hately, and M. Hondo, Editors. Organization for the Advancement of
|
|
Structured Information Standards, 23 May 2005. This version of the
|
|
Schema Centric XML Canonicalization Version 1.0 is
|
|
http://uddi.org/pubs/SchemaCentricCanonicalization-20050523.htm.
|
|
The <a href=
|
|
"http://uddi.org/pubs/SchemaCentricCanonicalization.htm">latest
|
|
version of Schema Centric XML Canonicalization Version 1.0</a> is
|
|
available at
|
|
http://uddi.org/pubs/SchemaCentricCanonicalization.htm.</dd>
|
|
<dt class="label"><a name="WS-AddressingMetadata" id=
|
|
"WS-AddressingMetadata"></a>[WS-Addressing Metadata]</dt>
|
|
<dd><cite><a href=
|
|
"http://www.w3.org/TR/2007/REC-ws-addr-metadata-20070904/">Web
|
|
Services Addressing 1.0 - Metadata</a></cite>, M. Gudgin, M.
|
|
Hadley, T. Rogers and Ü. Yalçinalp, Editors. World Wide Web
|
|
Consortium, 4 September 2007. This version of the Web Services
|
|
Addressing 1.0 - Metadata is
|
|
http://www.w3.org/TR/2007/REC-ws-addr-metadata-20070904/. The
|
|
<a href="http://www.w3.org/TR/ws-addr-metadata">latest version of
|
|
Web Services Addressing 1.0 - Metadata</a> is available at
|
|
http://www.w3.org/TR/ws-addr-metadata.</dd>
|
|
<dt class="label"><a name="WS-MetadataExchange" id=
|
|
"WS-MetadataExchange"></a>[WS-MetadataExchange]</dt>
|
|
<dd><cite><a href="http://schemas.xmlsoap.org/ws/2004/09/mex/">Web
|
|
Services Metadata Exchange (WS-MetadataExchange)</a></cite>, K.
|
|
Ballinger, et al, Authors. BEA Systems Inc., Computer Associates
|
|
International, Inc., International Business Machines Corporation,
|
|
Microsoft Corporation, Inc., SAP AG, Sun Microsystems, and
|
|
webMethods, August 2006. Available at
|
|
http://schemas.xmlsoap.org/ws/2004/09/mex/</dd>
|
|
<dt class="label"><a name="WS-RMPolicy" id="WS-RMPolicy"></a>[WS-RM
|
|
Policy]</dt>
|
|
<dd><cite><a href=
|
|
"http://docs.oasis-open.org/ws-rx/wsrmp/200702">Web Services
|
|
Reliable Messaging Policy Assertion (WS-RM Policy)</a></cite>, D.
|
|
David, A. Kamarkar, G. Pilz, and Ü. Yalçinalp, Editors.
|
|
Organization for the Advancement of Structured Information
|
|
Standards, 14 June 2007. Available at
|
|
http://docs.oasis-open.org/ws-rx/wsrmp/200702.</dd>
|
|
<dt class="label"><a name="WS-SecurityPolicy" id=
|
|
"WS-SecurityPolicy"></a>[WS-SecurityPolicy]</dt>
|
|
<dd><cite><a href=
|
|
"http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/ws-securitypolicy-1.2-spec-os.pdf">
|
|
WS-SecurityPolicy v1.2</a></cite>, A. Nadalin, M. Goodner M.
|
|
Gudgin, A. Barbir, and H. Granqvist, Editors. Organization for the
|
|
Advancement of Structured Information Standards, 1 July 2007.
|
|
Available at
|
|
http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/ws-securitypolicy-1.2-spec-os.pdf.
|
|
Namespace document available at
|
|
http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702.</dd>
|
|
<dt class="label"><a name="WSDL11BindingforSOAP12" id=
|
|
"WSDL11BindingforSOAP12"></a>[WSDL 1.1 Binding for SOAP 1.2]</dt>
|
|
<dd><cite><a href=
|
|
"http://www.w3.org/Submission/2006/SUBM-wsdl11soap12-20060405/">WSDL
|
|
1.1 Binding for SOAP 1.2</a></cite>, D. Angelov, et al, Authors.
|
|
World Wide Web Consortium, 5 April 2006. Available at
|
|
http://www.w3.org/Submission/2006/SUBM-wsdl11soap12-20060405/.</dd>
|
|
<dt class="label"><a name="XML-Signature" id=
|
|
"XML-Signature"></a>[XML-Signature]</dt>
|
|
<dd><cite><a href=
|
|
"http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/">XML-Signature
|
|
Syntax and Processing</a></cite>, D. Eastlake, J. Reagle, and D.
|
|
Solo, Editors. The Internet Society & World Wide Web
|
|
Consortium, 12 February 2002. This version of the XML-Signature
|
|
Syntax and Processing Recommendation is
|
|
http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/. The <a href=
|
|
"http://www.w3.org/TR/xmldsig-core/">latest version of
|
|
XML-Signature Syntax and Processing</a> is available at
|
|
http://www.w3.org/TR/xmldsig-core/.</dd>
|
|
<dt class="label"><a name="XOP" id="XOP"></a>[XOP]</dt>
|
|
<dd><cite><a href=
|
|
"http://www.w3.org/TR/2005/REC-xop10-20050125/">XML-binary
|
|
Optimized Packaging</a></cite>, M. Gudgin, N. Mendelsohn, M.
|
|
Nottingham and H. Ruellan, Editors. World Wide Web Consortium, 25
|
|
January 2005. This version of the XML-binary Optimized Packaging
|
|
Recommendation is http://www.w3.org/TR/2005/REC-xop10-20050125/.
|
|
The <a href="http://www.w3.org/TR/xop10/">latest version of
|
|
XML-binary Optimized Packaging</a> is available at
|
|
http://www.w3.org/TR/xop10/.</dd>
|
|
<dt class="label"><a name="XPointer" id="XPointer"></a>[XPointer
|
|
Framework]</dt>
|
|
<dd><cite><a href=
|
|
"http://www.w3.org/TR/2003/REC-xptr-framework-20030325/">XPointer
|
|
Framework</a></cite>, Paul Grosso, Eve Maler, Jonathan Marsh,
|
|
Norman Walsh, Editors. World Wide Web Consortium, 25 March 2003.
|
|
This version of the XPointer Framework Proposed Recommendation is
|
|
http://www.w3.org/TR/2003/REC-xptr-framework-20030325/ The <a href=
|
|
"http://www.w3.org/TR/xptr-framework/">latest version of XPointer
|
|
Framework</a> is available at
|
|
http://www.w3.org/TR/xptr-framework/.</dd>
|
|
</dl>
|
|
</div>
|
|
</div>
|
|
<div class="div1">
|
|
<h2><a name="AppendixA" id="AppendixA"></a>B. UDDI tModel
|
|
Definitions</h2>
|
|
<p>This section contains the UDDI tModel definitions for the
|
|
canonical tModels used in Section <a href=
|
|
"#AttachingPoliciesUsingUDDI"><b>6. Attaching Policies Using
|
|
UDDI</b></a>. The tModelKeys shown in the tModel structure sections
|
|
are valid UDDI Version 3 keys. When using UDDI Version 2, the
|
|
corresponding derived UDDI Version 2 keys must be used.</p>
|
|
<div class="div2">
|
|
<h3><a name="RemotePolicyReferenceCategorySystem" id=
|
|
"RemotePolicyReferenceCategorySystem"></a>B.1 Remote Policy
|
|
Reference Category System</h3>
|
|
<div class="div3">
|
|
<h4><a name="DesigGoals1" id="DesigGoals1"></a>B.1.1 Design
|
|
Goals</h4>
|
|
<p>This tModel is used to attach a <a title="" href=
|
|
"#policy">policy</a> to a UDDI entity by referencing the policy's
|
|
IRI.</p>
|
|
</div>
|
|
<div class="div3">
|
|
<h4><a name="tModelDefinition1" id="tModelDefinition1"></a>B.1.2
|
|
tModel Definition</h4>
|
|
<a name="Table7" id="Table7"></a>
|
|
<table cellspacing="0" cellpadding="5" border="1">
|
|
<tbody>
|
|
<tr>
|
|
<th rowspan="1" colspan="1">Name:</th>
|
|
<td rowspan="1" colspan="1"><a href=
|
|
"http://www.w3.org/ns/ws-policy/remotepolicyreference">http://www.w3.org/ns/ws-policy/remotepolicyreference</a></td>
|
|
</tr>
|
|
<tr>
|
|
<th rowspan="1" colspan="1">Description:</th>
|
|
<td rowspan="1" colspan="1">Category system used for UDDI entities
|
|
to point to an external Web services policy attachment policy that
|
|
describes their characteristics. See Web Services Policy 1.5 -
|
|
Attachment specification for further details.</td>
|
|
</tr>
|
|
<tr>
|
|
<th rowspan="1" colspan="1">UDDI Key (V3):</th>
|
|
<td rowspan="1" colspan="1">
|
|
<code>uddi:w3.org:ws-policy:v1.5:attachment:remotepolicyreference</code></td>
|
|
</tr>
|
|
<tr>
|
|
<th rowspan="1" colspan="1">UDDI V1,V2 format key:</th>
|
|
<td rowspan="1" colspan="1">
|
|
<code>uuid:2ea5f9d3-9b84-39f9-b334-e9d5f535b4c1</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" id="ModelStructure1"></a>B.1.3 tModel
|
|
Structure</h4>
|
|
<div class="exampleInner">
|
|
<pre>
|
|
(01) <tModel tModelKey="uuid:2ea5f9d3-9b84-39f9-b334-e9d5f535b4c1" >
|
|
(02) <name>http://www.w3.org/ns/ws-policy/remotepolicyreference</name>
|
|
(03) <description xml:lang="EN">Category system used for UDDI entities to point to an external
|
|
(04) Web Services Policy Attachment policy expression that describes their characteristics.
|
|
(05) See Web Services Policy 1.5 - Attachment specification for further details.</description>
|
|
(06) <categoryBag>
|
|
(07) <keyedReference
|
|
(08) keyName="uddi-org:types:categorization"
|
|
(09) keyValue="categorization"
|
|
(10) tModelKey="uuid:c1acf26d-9672-4404-9d70-39b756e62ab4" />
|
|
(11) </categoryBag>
|
|
(12) </tModel>
|
|
</pre></div>
|
|
</div>
|
|
</div>
|
|
<div class="div2">
|
|
<h3><a name="WS-PolicyTypesCategorySystem" id=
|
|
"WS-PolicyTypesCategorySystem"></a>B.2 Web Services Policy Types
|
|
Category System</h3>
|
|
<div class="div3">
|
|
<h4><a name="DesignGoals2" id="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
|
|
indicates this very fact. It is <span class=
|
|
"rfc2119">RECOMMENDED</span> that tModels categorized as
|
|
representing <a title="" href="#policy_expression">policy
|
|
expressions</a> reference no more and no less than this very
|
|
<a title="" href="#policy_expression">policy expression</a> using
|
|
the remote policy reference category system.</p>
|
|
</div>
|
|
<div class="div3">
|
|
<h4><a name="tModelDefinition2" id="tModelDefinition2"></a>B.2.2
|
|
tModel Definition</h4>
|
|
<a name="Table8" id="Table8"></a>
|
|
<table cellspacing="0" cellpadding="5" border="1">
|
|
<tbody>
|
|
<tr>
|
|
<th rowspan="1" colspan="1">Name:</th>
|
|
<td rowspan="1" colspan="1"><a href=
|
|
"http://www.w3.org/ns/ws-policy/policytypes">http://www.w3.org/ns/ws-policy/policytypes</a></td>
|
|
</tr>
|
|
<tr>
|
|
<th rowspan="1" colspan="1">Description:</th>
|
|
<td rowspan="1" colspan="1">Web services policy types category
|
|
system used for UDDI tModels to characterize them as Web services
|
|
policy–based <a title="" href="#policy_expression">policy
|
|
expressions</a>.</td>
|
|
</tr>
|
|
<tr>
|
|
<th rowspan="1" colspan="1">UDDI Key (V3):</th>
|
|
<td rowspan="1" colspan="1">
|
|
<code>uddi:w3.org:ws-policy:v1.5:attachment:policytypes</code></td>
|
|
</tr>
|
|
<tr>
|
|
<th rowspan="1" colspan="1">UDDI V1,V2 format key:</th>
|
|
<td rowspan="1" colspan="1">
|
|
<code>uuid:90eda65e-ffd7-33df-965f-98ebb1c2a941</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" id="ModelStructure2"></a>B.2.3 tModel
|
|
Structure</h4>
|
|
<div class="exampleInner">
|
|
<pre>
|
|
(01) <tModel tModelKey="uuid:90eda65e-ffd7-33df-965f-98ebb1c2a941" >
|
|
(02) <name>http://www.w3.org/ns/ws-policy/policytypes</name>
|
|
(03) <description xml:lang="EN">Web Services Policy Types category system used for UDDI tModels
|
|
(04) to characterize them as Web Services Policy – based policy expressions.</description>
|
|
(05) <categoryBag>
|
|
(06) <keyedReference
|
|
(07) keyName="uddi-org:types:categorization"
|
|
(08) keyValue="categorization"
|
|
(09) tModelKey="uuid:c1acf26d-9672-4404-9d70-39b756e62ab4" />
|
|
(10) </categoryBag>
|
|
(11) </tModel>
|
|
</pre></div>
|
|
</div>
|
|
</div>
|
|
<div class="div2">
|
|
<h3><a name="LocalPolicyReferenceCategorySystem" id=
|
|
"LocalPolicyReferenceCategorySystem"></a>B.3 Local Policy Reference
|
|
Category System</h3>
|
|
<div class="div3">
|
|
<h4><a name="DesignGoals3" id="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
|
|
reference category system is based on tModelKeys. It is expected
|
|
that referenced tModels are registered with the same UDDI registry
|
|
and are categorized as representing <a title="" href=
|
|
"#policy_expression">policy expressions</a> using the Web services
|
|
policy types category system.</p>
|
|
</div>
|
|
<div class="div3">
|
|
<h4><a name="tModelDefinition3" id="tModelDefinition3"></a>B.3.2
|
|
tModel Definition</h4>
|
|
<a name="Table9" id="Table9"></a>
|
|
<table cellspacing="0" cellpadding="5" border="1">
|
|
<tbody>
|
|
<tr>
|
|
<th rowspan="1" colspan="1">Name:</th>
|
|
<td rowspan="1" colspan="1"><a href=
|
|
"http://www.w3.org/ns/ws-policy/localpolicyreference">http://www.w3.org/ns/ws-policy/localpolicyreference</a></td>
|
|
</tr>
|
|
<tr>
|
|
<th rowspan="1" colspan="1">Description:</th>
|
|
<td rowspan="1" colspan="1">Category system used for UDDI entities
|
|
to point to a Web services policy <a title="" href=
|
|
"#policy_expression">policy expression</a> tModel that describes
|
|
their characteristics. See Web Services Policy 1.5 - Attachment
|
|
specification for further details.</td>
|
|
</tr>
|
|
<tr>
|
|
<th rowspan="1" colspan="1">UDDI Key (V3):</th>
|
|
<td rowspan="1" colspan="1">
|
|
<code>uddi:w3.org:ws-policy:v1.5:attachment:localpolicyreference</code></td>
|
|
</tr>
|
|
<tr>
|
|
<th rowspan="1" colspan="1">UDDI V1,V2 format key:</th>
|
|
<td rowspan="1" colspan="1">
|
|
<code>uuid:5da4fc61-a302-35ad-91d3-775150429035</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" id="ModelStructure3"></a>B.3.3 tModel
|
|
Structure</h4>
|
|
<div class="exampleInner">
|
|
<pre>
|
|
(01) <tModel tModelKey="uuid:5da4fc61-a302-35ad-91d3-775150429035" >
|
|
(02) <name>http://www.w3.org/ns/ws-policy/localpolicyreference</name>
|
|
(03) <description xml:lang="en">Category system used for UDDI entities to point to a
|
|
(04) Web Services Policy policy expression tModel that describes their characteristics.
|
|
(05) See Web Services Policy 1.5 - Attachment specification for further details.</description>
|
|
(06) <categoryBag>
|
|
(07) <keyedReference
|
|
(08) keyName="uddi-org:types:categorization"
|
|
(09) keyValue="categorization"
|
|
(10) tModelKey="uuid:c1acf26d-9672-4404-9d70-39b756e62aB4" />
|
|
(11) <keyedReference
|
|
(12) keyName="uddi-org:types:checked"
|
|
(13) keyValue="checked"
|
|
(14) tModelKey="uuid:c1acf26d-9672-4404-9d70-39b756e62aB4" />
|
|
(15) <keyedReference
|
|
(16) keyName="uddi-org:entityKeyValues"
|
|
(17) keyValue="tModelKey"
|
|
(18) tModelKey="uuid:916b87bf-0756-3919-8eae-97dfa325e5a4" />
|
|
(19) </categoryBag>
|
|
(20) </tModel>
|
|
</pre></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="div1">
|
|
<h2><a name="acknowledgments" id="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
|
|
alphabetical order): Dimitar Angelov (SAP AG), Abbie Barbir (Nortel
|
|
Networks), Charlton Barreto (Adobe Systems Inc.), Sergey Beryozkin
|
|
(IONA Technologies, Inc.), Vladislav Bezrukov (SAP AG), Toufic
|
|
Boubez (Layer 7 Technologies), Symon Chang (BEA Systems, Inc.),
|
|
Paul Cotton (Microsoft Corporation), Glen Daniels (Progress
|
|
Software), Doug Davis (IBM Corporation), Jacques Durand (Fujitsu
|
|
Limited), Ruchith Fernando (WSO2), Christopher Ferris (IBM
|
|
Corporation), William Henry (IONA Technologies, Inc.), Frederick
|
|
Hirsch (Nokia), Maryann Hondo (IBM Corporation), Ondrej Hrebicek
|
|
(Microsoft Corporation), Steve Jones (Layer 7 Technologies), Tom
|
|
Jordahl (Adobe Systems Inc.), Paul Knight (Nortel Networks),
|
|
Philippe Le Hégaret (W3C/MIT), Mark Little (JBoss Inc.), Mohammad
|
|
Makarechian (Microsoft Corporation), Ashok Malhotra (Oracle
|
|
Corporation), Jonathan Marsh (WSO2), Monica Martin (Sun
|
|
Microsystems, Inc.), Arnaud Meyniel (Axway Software), Jeff
|
|
Mischkinsky (Oracle Corporation), Dale Moberg (Axway Software),
|
|
Anthony Nadalin (IBM Corporation), David Orchard (BEA Systems,
|
|
Inc.), Sanjay Patil (SAP AG), Manjula Peiris (WSO2), Fabian
|
|
Ritzmann (Sun Microsystems, Inc.), Daniel Roth (Microsoft
|
|
Corporation), Tom Rutt (Fujitsu Limited), Sanka Samaranayake
|
|
(WSO2), Felix Sasaki (W3C/Keio), Yakov Sverdlov (CA), Asir
|
|
Vedamuthu (Microsoft Corporation), Sanjiva Weerawarana (WSO2), Ümit
|
|
Yalçinalp (SAP AG), Prasad Yendluri (webMethods (A subsidiary of
|
|
Software AG)).</p>
|
|
<p>Previous members of the Working Group were: Jeffrey Crump, Jong
|
|
Lee, Bob Natale, Eugene Osovetsky, Bijan Parsia, Skip Snow, Seumas
|
|
Soltysik, Mark Temple-Raston.</p>
|
|
<p>The people who have contributed to <a href=
|
|
"http://lists.w3.org/Archives/Public/public-ws-policy/">discussions
|
|
on public-ws-policy@w3.org</a> are also gratefully
|
|
acknowledged.</p>
|
|
</div>
|
|
</div>
|
|
</body>
|
|
</html>
|