- From: Doug Davis via cvs-syncmail <cvsmail@w3.org>
- Date: Wed, 12 May 2010 07:34:31 +0000
- To: public-ws-resource-access-notifications@w3.org
Update of /w3ccvs/WWW/2002/ws/ra/edcopies In directory hutz:/tmp/cvs-serv24308 Modified Files: wsmex.html wsmex.xml Log Message: 9671 Index: wsmex.xml =================================================================== RCS file: /w3ccvs/WWW/2002/ws/ra/edcopies/wsmex.xml,v retrieving revision 1.112 retrieving revision 1.113 diff -u -d -r1.112 -r1.113 --- wsmex.xml 11 May 2010 23:27:53 -0000 1.112 +++ wsmex.xml 12 May 2010 07:34:29 -0000 1.113 @@ -600,6 +600,16 @@ terminology. Valid Infoset for this specification is the one serializable in XML 1.0, hence the use of XML 1.0. </p> + + <p> + The term "generate" is used in relation to the various faults defined + by this specification to imply that a fault is produced and no + further processing SHOULD be performed. In these cases the fault + SHOULD be transmitted. However, there might be reasons when a compliant + implementation can choose not to transmit the fault - for example, + security concerns - in these situations the service MAY choose [...980 lines suppressed...] -</wsdl:definitions></eg> +</wsdl:definitions></eg> </example> </div1> @@ -3457,6 +4243,13 @@ <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=9699">9699</loc> </td> </tr> + <tr> + <td> 2010/05/11 </td> + <td> DD </td> + <td> Added resolution of issue + <loc href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=9671">9699</loc> + </td> + </tr> </tbody> </table> </div1> Index: wsmex.html =================================================================== RCS file: /w3ccvs/WWW/2002/ws/ra/edcopies/wsmex.html,v retrieving revision 1.125 retrieving revision 1.126 diff -u -d -r1.125 -r1.126 --- wsmex.html 11 May 2010 23:27:53 -0000 1.125 +++ wsmex.html 12 May 2010 07:34:29 -0000 1.126 @@ -58,23 +58,28 @@ 6 <a href="#Retrieving-Metadata">Retrieving Metadata about Service Endpoints</a><br/> 6.1 <a href="#GetWSDL">GetWSDL</a><br/> 6.2 <a href="#GetMetadata">GetMetadata</a><br/> + 6.3 <a href="#PutMetadata">PutMetadata</a><br/> + 6.4 <a href="#DeleteMetadata">DeleteMetadata</a><br/> 7 <a href="#MetadataReferences">Metadata References</a><br/> 7.1 <a href="#mexLocation">mex:Location</a><br/> 7.2 <a href="#mexReference">mex:Reference</a><br/> - 7.3 <a href="#iddiv2_1_1246">Examples</a><br/> + 7.3 <a href="#iddiv2_1_1445">Examples</a><br/> 8 <a href="#Metadata-in-Endpoint-References">Metadata in Endpoint References</a><br/> 8.1 <a href="#EPRwithMEX">Endpoint References Containing Metadata</a><br/> 8.2 <a href="#WSPAEPR">Associating Policies with Endpoint References</a><br/> 9 <a href="#ImplicitWSDL">Exposing Metadata for Implicitly Defined Features</a><br/> -10 <a href="#Security">Security Considerations</a><br/> - 10.1 <a href="#iddiv2_1_1565">Metadata and Security Bootstrapping</a><br/> -11 <a href="#metadata">WS-MetadataExchange Metadata</a><br/> - 11.1 <a href="#iddiv2_1_1586">MetadataExchange Assertion</a><br/> -12 <a href="#bootstrapping">Boostrapping Metadata Retrieval</a><br/> -13 <a href="#acks">Acknowledgements</a><br/> -14 <a href="#References">References</a><br/> - 14.1 <a href="#iddiv2_1_1742">Normative References</a><br/> - 14.2 <a href="#iddiv2_1_1928">Informative References</a><br/> +10 <a href="#Faults">Faults</a><br/> + 10.1 <a href="#UnsupportedMetadata">UnsupportedMetadata</a><br/> + 10.2 <a href="#InvalidMetadata">UnknownDialect</a><br/> +11 <a href="#Security">Security Considerations</a><br/> + 11.1 <a href="#iddiv2_1_1995">Metadata and Security Bootstrapping</a><br/> +12 <a href="#metadata">WS-MetadataExchange Metadata</a><br/> + 12.1 <a href="#iddiv2_1_2016">MetadataExchange Assertion</a><br/> +13 <a href="#bootstrapping">Boostrapping Metadata Retrieval</a><br/> +14 <a href="#acks">Acknowledgements</a><br/> +15 <a href="#References">References</a><br/> + 15.1 <a href="#iddiv2_1_2274">Normative References</a><br/> + 15.2 <a href="#iddiv2_1_2473">Informative References</a><br/> </p> <h3><a name="appendices" id="appendices"/>Appendices</h3><p class="toc">A <a href="#Appendix-A">XML Schema</a><br/> B <a href="#Appendix-B">WSDL</a><br/> @@ -412,6 +417,14 @@ <a href="#XMLInfoset">[XML Infoset]</a>, even though the specification uses XML 1.0 terminology. Valid Infoset for this specification is the one serializable in XML 1.0, hence the use of XML 1.0. + </p><p> + The term "generate" is used in relation to the various faults defined + by this specification to imply that a fault is produced and no + further processing SHOULD be performed. In these cases the fault + SHOULD be transmitted. However, there might be reasons when a compliant + implementation can choose not to transmit the fault - for example, + security concerns - in these situations the service MAY choose + not to transmit the fault. </p></div><div class="div2"> <h3><a name="extensions" id="extensions"/>3.2 Considerations on the Use of Extensibility Points</h3><p> The elements defined in this specification MAY be extended at the @@ -774,8 +787,8 @@ http://www.w3.org/2002/ws/ra/edcopies/ws-mex/GetMetadataResponse <b>[Body]</b> - <mex:GetMetadataResponse> - <mex:Metadata ...> ... </mex:Metadata> + <mex:GetMetadataResponse ...> + <mex:Metadata ...> ... </mex:Metadata> <em>xs:any</em>* </mex:GetMetadataResponse></pre></div></div><p> The following describes additional, normative constraints on the @@ -788,6 +801,163 @@ imputable to the requester. This means that in case of an underlying protocol error that might get unnoticed, resending the same request can be done automatically. + </p></div><div class="div2"> +<h3><a name="PutMetadata" id="PutMetadata"/>6.3 PutMetadata</h3><p> + A requester MAY send a PutMetadata request message to an endpoint to + update the metadata associated with that endpoint. This operation MAY + be supported by WS-MetadataExchange compliant service endpoints. Observe + that, in the case where a service endpoint is also a + <a href="#WS-Transfer">[WS-Transfer]</a> resource, the <a href="#WS-Transfer">[WS-Transfer]</a> Put + operation allows requesters to update the resource representation + associated with that endpoint (i.e. the "data"), while the PutMetadata + operation can be used to update that endpoint's metadata. + </p><p> + The normative outline for a PutMetadata request is: + </p><div class="exampleOuter"><div class="exampleInner"><pre><b>[Action]</b> + http://www.w3.org/2002/ws/ra/edcopies/ws-mex/PutMetadata + +<b>[Body]</b> + <mex:PutMetadata ...> + <mex:Metadata ...> ... </mex:Metadata> + <em>xs:any</em>* + </mex:PutMetadata></pre></div></div><p> + The following describes additional, normative constraints on the + outline listed above: + </p><dl><dt class="label"><b>[Body]</b>/mex:PutMetadata </dt><dd><p> + This REQUIRED element MUST have as its first child element an + element that comprises the representation of the metadata that + is to be replaced. Additional extension elements MAY be included + after the element representing the metadata to be updated. + </p></dd><dt class="label"><b>[Body]</b>/mex:PutMetadata/mex:Metadata </dt><dd><p> + The body of the PutMetadata message MUST contain one + mex:Metadata element as defined in + <a href="#web-services-metadata"><b>4 Web Services Metadata Collection</b></a>. + </p><p> + The mex:Metadata element contains one MetadataSection child for + each distinct unit of metadata to be updated. The resource + metadata (identified by the dialect and identifier) specified by + each metadata section MUST be replaced in its entirety by the + metadata specified in the PutMetadata request message. + </p><p> + If there is no Metadata associated with the resource that + corresponds to a MetadataSection child contained within the + mex:Metadata element, the endpoint MUST create the Metadata if + the MetadataSection has a dialect that is supported by the + endpoint and if the creation of the Metadata will not invalidate + the endpoint. + </p><p> + If a MetadataSection child contains a MetadataReference or + MetadataLocation instead of the metadata in-lined, the endpoint + MAY reject the PutMetadata request with an mex:UnsupportedMetadata + fault. + </p></dd></dl><p> + An endpoint MUST reject a PutMetadata request if it is unable to + process all of the metadata updates requested. If the dialect or + identifier specified in one or more MetadataSections is unsupported + by the endpoint, the endpoint MUST generate a mex:UnsupportedMetadata + fault. + If the creation or update of the endpoint's Metadata will render the + endpoint invalid (either because the metadata is of an invalid syntax + for the dialect or because the metadata will cause a semantic conflict + with the endpoint's definition), the endpoint MUST generate an + mex:InvalidMetadata fault. + </p><p> + If an endpoint accepts a PutMetadata request, it MUST reply with a + PutMetadataResponse message. The normative outline for a + PutMetadataResponse is: + </p><div class="exampleOuter"><div class="exampleInner"><pre><b>[Action]</b> + http://www.w3.org/2002/ws/ra/edcopies/ws-mex/PutMetadataResponse + +<b>[Body]</b> + <mex:PutMetadataResponse> + <mex:Metadata ...> ... </mex:Metadata> ? + <em>xs:any</em>* + </mex:PutMetadataResponse></pre></div></div><p> + The following describes additional, normative constraints on the + outline listed above: + </p><dl><dt class="label"><b>[Body]</b>/mex:PutMetadataResponse </dt><dd><p> + This REQUIRED element, if it contains any child elements, MUST have + as its first child element, a mex:Metadata element that comprises + the representation of the metadata that has been updated. Additional + extension elements MAY be included after the element representing + the metadata updates. + </p><p> + As an optimization and as a service to the requester, if there are + no extension elements this element SHOULD be empty if the updated + representation does not differ from the representation sent in + the PutMetadata request message; that is, if the service accepted + the new representation (including all Metadata updates) verbatim. + </p><p> + Such a response (an empty mex:PutMetadataResponse) implies that the + update request was successful in its entirety (assuming no + intervening mutating operations are performed). A service MAY return + the current representation of the resource as the child of the + mex:PutMetadataResponse element even in this case, however. + </p></dd><dt class="label"><b>[Body]</b>/mex:PutMetadataResponse/mex:Metadata </dt><dd><p> + This OPTIONAL element comprises the representation of all the + metadata sections of the resource that have been updated during + the PutMetadata operation. + </p></dd></dl></div><div class="div2"> +<h3><a name="DeleteMetadata" id="DeleteMetadata"/>6.4 DeleteMetadata</h3><p> + A requester MAY send a DeleteMetadata request message to an endpoint + to delete the metadata associated with that endpoint. This operation + MAY be supported by WS-MetadataExchange compliant service endpoints. + Observe that, in the case where a service endpoint is also a + <a href="#WS-Transfer">[WS-Transfer]</a> resource, the <a href="#WS-Transfer">[WS-Transfer]</a> + Delete operation allows requesters to update the resource representation + associated with that endpoint (i.e. the "data"), while the + DeleteMetadata operation can be used to update that endpoint's metadata. + </p><p> + The normative outline for a DeleteMetadata request is: + </p><div class="exampleOuter"><div class="exampleInner"><pre><b>[Action]</b> + http://www.w3.org/2002/ws/ra/edcopies/ws-mex/DeleteMetadata + +<b>[Body]</b> + <mex:DeleteMetadata ...> + <mex:Dialect Type='<em>xs:QName</em>' + Identifier='<em>xs:anyURI</em>'? + Content='<em>xs:anyURI</em>'? .../> + + <em>xs:any</em>* + </mex:DeleteMetadata></pre></div></div><p> + The following describes additional, normative constraints on the + outline listed above: + </p><dl><dt class="label"><b>[Body]</b>/mex:DeleteMetadata </dt><dd><p> + This REQUIRED element MUST have as its first children elements one + or more elements that comprise the representation of the metadata + that is to be deleted. Additional extension elements MAY be + included after the element representing the metadata to be deleted. + </p></dd><dt class="label"><b>[Body]</b>/mex:DeleteMetadata/mex:Dialect </dt><dd><p> + This REQUIRED (optionally repeating) element specifies the + metadata to be deleted. + </p></dd><dt class="label"><b>[Body]</b>/mex:DeleteMetadata/mex:Dialect@Type </dt><dd><p> + This REQUIRED attribute specifies the Metadata Dialect of the + metadata to be deleted. + </p></dd><dt class="label"><b>[Body]</b>/mex:DeleteMetadata/mex:Dialect@Identifier </dt><dd><p> + When this OPTIONAL attribute is present, only metadata with the + indicated identifier is to be deleted. + </p></dd><dt class="label"><b>[Body]</b>/mex:DeleteMetadata/mex:Dialect@Content </dt><dd><p> + When this OPTIONAL attribute is present, only metadata of the + specific content form is to be deleted. + </p></dd></dl><p> + An endpoint MUST reject a DeleteMetadata request if it is unable to + process all of the metadata deletes requested. If the dialect type + or identifier specified in one or more of the Dialect elements is + unsupported by the endpoint, the endpoint MUST generate a + mex:UnsupportedMetadata fault. If the deletion of the specified Metadata + will render the endpoint invalid, the endpoint MUST generate an + mex:InvalidMetadata fault. + </p><p> + If an endpoint accepts a DeleteMetadata request, it MUST reply with a + DeleteMetadataResponse message. The normative outline for a + DeleteMetadataResponse is: + </p><div class="exampleOuter"><div class="exampleInner"><pre><b>[Action]</b> + http://www.w3.org/2002/ws/ra/edcopies/ws-mex/DeleteMetadataResponse + +<b>[Body]</b> + <mex:DeleteMetadataResponse> + <em>xs:any</em>* + </mex:DeleteMetadataResponse></pre></div></div><p> + There are no additional, normative constraints on the outline listed above. </p></div></div><div class="div1"> <h2><a name="MetadataReferences" id="MetadataReferences"/>7 Metadata References</h2><p> While a service's metadata can be embedded in many different places @@ -855,7 +1025,7 @@ being referenced. Identifier is an absolute IRI. If omitted, there is no implied value. </p></dd></dl></div><div class="div2"> -<h3><a name="iddiv2_1_1246" id="iddiv2_1_1246"/>7.3 Examples</h3><p> +<h3><a name="iddiv2_1_1445" id="iddiv2_1_1445"/>7.3 Examples</h3><p> The following examples show how metadata might appear in various locations: </p><div class="exampleOuter"> @@ -886,7 +1056,7 @@ The following example WSDL shows how support for a particular feature might be indicated: </p><div class="exampleOuter"> -<div class="exampleHeader"><a name="idexample_1_1278" id="idexample_1_1278"/>Example 7-3: Feature Metadata in a Policy Assertion</div><div class="exampleInner"><pre>(01) <wsdl:definitions> +<div class="exampleHeader"><a name="idexample_1_1477" id="idexample_1_1477"/>Example 7-3: Feature Metadata in a Policy Assertion</div><div class="exampleInner"><pre>(01) <wsdl:definitions> (02) ... (03) <wsdl:service name="stockQuote"> (04) <wsdl:port binding="..." name="..."> @@ -1342,7 +1512,78 @@ (09) </wsp:Policy> (10) </wsa:Metadata> (11) </wse:Notify> </pre></div></div></div><div class="div1"> -<h2><a name="Security" id="Security"/>10 Security Considerations</h2><p> +<h2><a name="Faults" id="Faults"/>10 Faults</h2><p> + All fault messages defined in this specification MUST be sent + according to the rules and usage described in + <a href="#WSABinding">[WS-Addressing 1.0 SOAP Binding]</a> + Section 6 for encoding SOAP 1.1 and SOAP 1.2 faults. + The <b>[Action]</b> property below MUST be used for faults + defined in this specification: + </p><div class="exampleOuter"><div class="exampleInner"><pre><a href="http://www.w3.org/2002/ws/ra/edcopies/ws-mex/fault">http://www.w3.org/2002/ws/ra/edcopies/ws-mex/fault</a></pre></div></div><p> + The definitions of faults in this section use the following properties: + </p><p><b>[Code]</b> The fault code.<br/><b>[Subcode]</b> The fault subcode.<br/><b>[Reason]</b> The English language reason element.<br/><b>[Detail]</b> The detail element. If absent, no detail element + is defined for the fault.<br/></p><p> + For SOAP 1.2, the <b>[Code]</b> property MUST be either + "Sender" or "Receiver". These properties are serialized + into text XML as follows: + </p><a name="soapver" id="soapver"/><table border="1"><tbody><tr><th> SOAP Version </th><th> Sender </th><th> Receiver </th></tr><tr><td> SOAP 1.2 </td><td> s12:Sender </td><td> s12:Receiver </td></tr></tbody></table><p> + The properties above bind to a SOAP 1.2 fault as follows: + </p><div class="exampleOuter"><div class="exampleInner"><pre><s12:Envelope> + <s12:Header> + <wsa:Action> <b>[Action]</b> </wsa:Action> + <!-- Headers elided for brevity. --> + </s12:Header> + <s12:Body> + <s12:Fault> + <s12:Code> + <s12:Value><b>[Code]</b></s12:Value> + <s12:Subcode> + <s12:Value><b>[Subcode]</b></s12:Value> + </s12:Subcode> + </s12:Code> + <s12:Reason> + <s12:Text xml:lang="en"><b>[Reason]</b></s12:Text> + </s12:Reason> + <s12:Detail> + <b>[Detail]</b> + ... + </s12:Detail> + </s12:Fault> + </s12:Body> +</s12:Envelope></pre></div></div><p> + The properties bind to a SOAP 1.1 fault as follows: + </p><div class="exampleOuter"><div class="exampleInner"><pre><s11:Envelope> + <s11:Body> + <s11:Fault> + <faultcode><b>[Subcode]</b></faultcode> + <faultstring xml:lang="en"><b>[Reason]</b></faultstring> + <detail> + <b>[Detail]</b> + ... + </detail> + </s11:Fault> + </s11:Body> +</s11:Envelope></pre></div></div><div class="div2"> +<h3><a name="UnsupportedMetadata" id="UnsupportedMetadata"/>10.1 UnsupportedMetadata</h3><p> + This fault MUST be generated when one or more metadata dialect(s) + specified on the request message are unsupported by the endpoint. + </p><table border="1"><tbody><tr><th align="left"><b>[Code]</b></th><td>s:Sender</td></tr><tr><th align="left"><b>[Subcode]</b></th><td>mex:UbsupportedMetadata</td></tr><tr><th align="left"><b>[Reason]</b></th><td> + The metadata specified on the request message is not supported by + the endpoint + </td></tr><tr><th align="left"><b>[Detail]</b></th><td><em>One or more elements specifying the unsupported Metadata of the + following form:</em><br/> + <Dialect Type='<em>xs:QName</em>' Identifier='<em>xs:anyURI</em>'? .../> + + </td></tr></tbody></table></div><div class="div2"> +<h3><a name="InvalidMetadata" id="InvalidMetadata"/>10.2 UnknownDialect</h3><p> + This fault MUST be generated when the metadata passed on the + PutMetadata request message is invalid or when the Metadata would + render the endpoint invalid. + </p><table border="1"><tbody><tr><th align="left"><b>[Code]</b></th><td>s:Sender</td></tr><tr><th align="left"><b>[Subcode]</b></th><td>mex:InvalidMetadata</td></tr><tr><th align="left"><b>[Reason]</b></th><td> + The metadata specified in invalid for this endpoint + </td></tr><tr><th align="left"><b>[Detail]</b></th><td><em>The invalid metadata specified by a mex:Metadata element.</em><br/> + <mex:Metadata ...> ... </mex:Metadata> + </td></tr></tbody></table></div></div><div class="div1"> +<h2><a name="Security" id="Security"/>11 Security Considerations</h2><p> This specification considers two sets of security requirements, those of the applications that use the WS-MetadataExchange protocol and those of the protocol itself. @@ -1361,7 +1602,7 @@ security analysis to determine their particular threat profile and the appropriate responses to those threats. </p><div class="div2"> -<h3><a name="iddiv2_1_1565" id="iddiv2_1_1565"/>10.1 Metadata and Security Bootstrapping</h3><p> +<h3><a name="iddiv2_1_1995" id="iddiv2_1_1995"/>11.1 Metadata and Security Bootstrapping</h3><p> There are cases in which the metadata used to describe a service might be considered sensitive information. In these cases it is advisable for services to authenticate and authorize consumers as part of the @@ -1371,11 +1612,11 @@ (i.e. the constructs defined by WS-SecurityPolicy), there is an obvious dilemma when attempting to protect metadata in this way. Services wishing to protect access to their metadata are advised to use the - mechanisms described in <a href="#bootstrapping"><b>12 Boostrapping Metadata Retrieval</b></a> to advertise + mechanisms described in <a href="#bootstrapping"><b>13 Boostrapping Metadata Retrieval</b></a> to advertise the security requirements for clients wishing to access metadata via the mechanisms defined in this specification. </p></div></div><div class="div1"> -<h2><a name="metadata" id="metadata"/>11 WS-MetadataExchange Metadata</h2><p> +<h2><a name="metadata" id="metadata"/>12 WS-MetadataExchange Metadata</h2><p> An endpoint MAY indicate its support of WS-MetadataExchange, or its features, by including the MetadataExchange Policy assertion within its WSDL. By @@ -1399,7 +1640,7 @@ indicate a particular security mechanism used to protect the WS-MetadataExchange operations supported by this endpoint. </p><div class="div2"> -<h3><a name="iddiv2_1_1586" id="iddiv2_1_1586"/>11.1 MetadataExchange Assertion</h3><p> +<h3><a name="iddiv2_1_2016" id="iddiv2_1_2016"/>12.1 MetadataExchange Assertion</h3><p> Services indicate support for the WS-MetadataExchange specification through the use of the Web Services Policy - Framework <a href="#wspolicy">[WS-Policy]</a> and Web Services Policy - @@ -1417,6 +1658,24 @@ </mex:MetadataExchangeDialect> * <em>xs:any</em>* </mex:GetMetadataSupported> ? + <mex:PutMetadataSupported ...> + <mex:MetadataExchangeDialect Type="<em>xs:QName</em>" ...> + <mex:MetadataContent URI="<em>xs:anyURI</em>" ...> + <em>xs:any</em>* + </mex:MetadataContent> * + <em>xs:any</em>* + </mex:MetadataExchangeDialect> * + <em>xs:any</em>* + <mex:PutMetadataSupported> ? + <mex:DeleteMetadataSupported ...> + <mex:MetadataExchangeDialect Type="<em>xs:QName</em>" ...> + <mex:MetadataContent URI="<em>xs:anyURI</em>" ...> + <em>xs:any</em>* + </mex:MetadataContent> * + <em>xs:any</em>* + </mex:MetadataExchangeDialect> * + <em>xs:any</em>* + <mex:DeleteMetadataSupported> ? <em>xs:any</em>* </mex:MetadataExchange></pre></div></div><p> The following describes additional, normative constraints on the @@ -1431,10 +1690,10 @@ GetMetadata operation is supported by this endpoint. </p></dd><dt class="label"> /mex:MetadataExchange/mex:GetMetadataSupported/mex:MetadataExchangeDialect@Type </dt><dd><p> When present, this OPTIONAL parameter indicates support for the - specified MetadataExchange Dialect QName. + specified MetadataExchange Dialect QName by the GetMetadata operation. </p></dd><dt class="label"> /mex:MetadataExchange/mex:GetMetadataSupported/mex:MetadataExchangeDialect/mex:MetadataContent </dt><dd><p> When present, this OPTIONAL parameter indicates support for the - specified MetadataExchange content IRI. + specified MetadataExchange content IRI by the GetMetadata operation. </p></dd><dt class="label"> /mex:MetadataExchange/mex:GetMetadataSupported/mex:MetadataExchangeDialect/mex:MetadataContent/xs:any </dt><dd><p> This extensibility point allows for additional MetadataContent specific metadata to be included within the policy assertion. Any @@ -1450,6 +1709,55 @@ to the GetMetadata operation to be included within the policy assertion. Any metadata that appears is scoped to the use of the GetMetadata operation. + </p></dd><dt class="label"> /mex:MetadataExchange/mex:PutMetadataSupported </dt><dd><p> + When present, this OPTIONAL parameter indicates that the PutMetadata + operation is supported by this endpoint. + </p></dd><dt class="label"> /mex:MetadataExchange/mex:PutMetadataSupported/mex:MetadataExchangeDialect@Type </dt><dd><p> + When present, this OPTIONAL parameter indicates support for the + specified MetadataExchange Dialect QName by the PutMetadata operation. + </p></dd><dt class="label"> /mex:MetadataExchange/mex:PutMetadataSupported/mex:MetadataExchangeDialect/mex:MetadataContent </dt><dd><p> + When present, this OPTIONAL parameter indicates support for the + specified MetadataExchange content IRI by the PutMetadata operation. + </p></dd><dt class="label"> /mex:MetadataExchange/mex:PutMetadataSupported/mex:MetadataExchangeDialect/mex:MetadataContent/xs:any </dt><dd><p> + This extensibility point allows for additional MetadataContent + specific metadata to be included within the policy assertion. Any + metadata that appears is scoped to the use of the specified + MetadataContent URI. + </p></dd><dt class="label"> /mex:MetadataExchange/mex:PutMetadataSupported/mex:MetadataExchangeDialect/xs:any </dt><dd><p> + This extensibility point allows for additional Metadata Dialect + specific metadata to be included within the policy assertion. Any + metadata that appears is scoped to the use of the specified + Metadata Dialect QName. + </p></dd><dt class="label"> /mex:MetadataExchange/mex:PutMetadataSupported/xs:any </dt><dd><p> + This extensibility point allows for additional metadata specific to + the PutMetadata operation to be included within the policy + assertion. Any metadata that appears is scoped to the use of the + PutMetadata operation. + </p></dd><dt class="label"> /mex:MetadataExchange/mex:DeleteMetadataSupported </dt><dd><p> + When present, this OPTIONAL parameter indicates that the + DeleteMetadata operation is supported by this endpoint. + </p></dd><dt class="label"> /mex:MetadataExchange/mex:DeleteMetadataSupported/mex:MetadataExchangeDialect@Type </dt><dd><p> + When present, this OPTIONAL parameter indicates support for the + specified MetadataExchange Dialect QName by the + DeleteMetadata operation. + </p></dd><dt class="label"> /mex:MetadataExchange/mex:DeleteMetadataSupported/mex:MetadataExchangeDialect/mex:MetadataContent </dt><dd><p> + When present, this OPTIONAL parameter indicates support for the + specified MetadataExchange content IRI by the DeleteMetadata operation. + </p></dd><dt class="label"> /mex:MetadataExchange/mex:DeleteMetadataSupported/mex:MetadataExchangeDialect/mex:MetadataContent/xs:any </dt><dd><p> + This extensibility point allows for additional MetadataContent + specific metadata to be included within the policy assertion. Any + metadata that appears is scoped to the use of the specified + MetadataContent URI. + </p></dd><dt class="label"> /mex:MetadataExchange/mex:DeleteMetadataSupported/mex:MetadataExchangeDialect/xs:any </dt><dd><p> + This extensibility point allows for additional Metadata Dialect + specific metadata to be included within the policy assertion. Any + metadata that appears is scoped to the use of the specified + Metadata Dialect QName. + </p></dd><dt class="label"> /mex:MetadataExchange/mex:DeleteMetadataSupported/xs:any </dt><dd><p> + This extensibility point allows for additional metadata specific to + the DeleteMetadata operation to be included within the policy + assertion. Any metadata that appears is scoped to the use of the + DeleteMetadata operation. </p></dd><dt class="label"> /mex:MetadataExchange/xs:any </dt><dd><p> This extensibility point allows for additional WS-MetadataExchange specific metadata to be included within the policy assertion - @@ -1461,7 +1769,7 @@ Note: The WS-RA WG is interested in Last Call feedback on the use of nested policy expressions. </p></div></div><div class="div1"> -<h2><a name="bootstrapping" id="bootstrapping"/>12 Boostrapping Metadata Retrieval</h2><p> +<h2><a name="bootstrapping" id="bootstrapping"/>13 Boostrapping Metadata Retrieval</h2><p> Although the operations described in <a href="#Retrieving-Metadata"><b>6 Retrieving Metadata about Service Endpoints</b></a> can be used by a requester to obtain the metadata about a particular Service Endpoint, there is the 'chicken and egg' problem of how the @@ -1469,9 +1777,9 @@ place. The facilities described in <a href="#Metadata-in-Endpoint-References"><b>8 Metadata in Endpoint References</b></a>, <a href="#ImplicitWSDL"><b>9 Exposing Metadata for Implicitly Defined Features</b></a>, and - <a href="#metadata"><b>11 WS-MetadataExchange Metadata</b></a> can be used to address this problem. + <a href="#metadata"><b>12 WS-MetadataExchange Metadata</b></a> can be used to address this problem. </p><div class="exampleOuter"> -<div class="exampleHeader"><a name="EPRgetwsdl" id="EPRgetwsdl"/>Example 12-1: Endpoint reference to a Service Endpoint that supports mex:GetWSDL</div><div class="exampleInner"><pre>(01) <wsa:EndpointReference ...> +<div class="exampleHeader"><a name="EPRgetwsdl" id="EPRgetwsdl"/>Example 13-1: Endpoint reference to a Service Endpoint that supports mex:GetWSDL</div><div class="exampleInner"><pre>(01) <wsa:EndpointReference ...> (02) <wsa:Address>http://services.example.org/stockquote</wsa:Address> (03) <wsa:Metadata> (04) <wsp:Policy> @@ -1480,10 +1788,10 @@ (07) </wsp:Policy> (08) </wsa:Metadata> (09) </wsa:EndpointReference> </pre></div></div><p> - The policy assertion at line 05 in <a href="#EPRgetwsdl">Example 12-1</a> + The policy assertion at line 05 in <a href="#EPRgetwsdl">Example 13-1</a> indicates to consumers of this EPR that the GetWSDL operation is supported by the referenced Service Endpoint. The parameters described in - <a href="#metadata"><b>11 WS-MetadataExchange Metadata</b></a> could be added to the policy assertion at + <a href="#metadata"><b>12 WS-MetadataExchange Metadata</b></a> could be added to the policy assertion at line 05 to indicate additional capabilities such as support for the mex:GetMetadata operation. The assertion on line 06 indicates that SOAP 1.1 needs to be used @@ -1501,9 +1809,9 @@ </p><p> Extra binding information (such as SOAP version) could either be implied by the context in which the EPR was provided or could be - conveyed as in <a href="#EPRwsdl">Example 12-2</a>. + conveyed as in <a href="#EPRwsdl">Example 13-2</a>. </p><div class="exampleOuter"> -<div class="exampleHeader"><a name="EPRwsdl" id="EPRwsdl"/>Example 12-2: Endpoint reference to a Service Endpoint that supports mex:GetWSDL</div><div class="exampleInner"><pre>(01) <wsa:EndpointReference ...> +<div class="exampleHeader"><a name="EPRwsdl" id="EPRwsdl"/>Example 13-2: Endpoint reference to a Service Endpoint that supports mex:GetWSDL</div><div class="exampleInner"><pre>(01) <wsa:EndpointReference ...> (02) <wsa:Address>http://services.example.org/stockquote</wsa:Address> (03) <wsa:Metadata> (04) <wsp:Policy> @@ -1524,7 +1832,7 @@ Furthermore, specific mechanisms for metadata retrieval can be defined by communities within the context of particular application domains. </p></div><div class="div1"> -<h2><a name="acks" id="acks"/>13 Acknowledgements</h2><p> +<h2><a name="acks" id="acks"/>14 Acknowledgements</h2><p> This specification has been developed as a result of joint work with many individuals and teams, including: Alessio Soldano (Red Hat), @@ -1554,8 +1862,8 @@ Wu Chou (Avaya Communications), Yves Lafon (W3C/ERCIM). </p></div><div class="div1"> -<h2><a name="References" id="References"/>14 References</h2><div class="div2"> -<h3><a name="iddiv2_1_1742" id="iddiv2_1_1742"/>14.1 Normative References</h3><dl><dt class="label"><a name="RFC2119" id="RFC2119"/>RFC 2119</dt><dd><a href="http://www.ietf.org/rfc/rfc2119.txt"><cite> +<h2><a name="References" id="References"/>15 References</h2><div class="div2"> +<h3><a name="iddiv2_1_2274" id="iddiv2_1_2274"/>15.1 Normative References</h3><dl><dt class="label"><a name="RFC2119" id="RFC2119"/>RFC 2119</dt><dd><a href="http://www.ietf.org/rfc/rfc2119.txt"><cite> Key words for use in RFCs to Indicate Requirement Levels </cite></a> , S. Bradner, Author. @@ -1586,7 +1894,12 @@ </cite></a> , M. Gudgin, M. Hadley, T. Rogers, Editors. World Wide Web Consortium (W3C), 9 May 2006. - Available at <a href="http://www.w3.org/TR/ws-addr-core">http://www.w3.org/TR/ws-addr-core</a>.</dd><dt class="label"><a name="WS-SOAPAssertions" id="WS-SOAPAssertions"/>WS-SOAPAssertions</dt><dd><a href="http://www.w3.org/TR/ws-soap-assertions"><cite> + Available at <a href="http://www.w3.org/TR/ws-addr-core">http://www.w3.org/TR/ws-addr-core</a>.</dd><dt class="label"><a name="WSABinding" id="WSABinding"/>WS-Addressing 1.0 SOAP Binding</dt><dd><a href="http://www.w3.org/TR/ws-addr-soap"><cite> + W3C Recommendation, "Web Services Addressing 1.0 - SOAP Binding" + </cite></a> + , M. Gudgin, M. Hadley, T. Rogers, Editors. + World Wide Web Consortium (W3C), 9 May 2006. + Available at <a href="http://www.w3.org/TR/ws-addr-soap">http://www.w3.org/TR/ws-addr-soap</a>.</dd><dt class="label"><a name="WS-SOAPAssertions" id="WS-SOAPAssertions"/>WS-SOAPAssertions</dt><dd><a href="http://www.w3.org/TR/ws-soap-assertions"><cite> W3C Working Group Draft, "Web Services SOAP Assertions (WS-SOAPAssertions) 1.0" </cite></a> , D. Davis, et al., Editors. @@ -1627,7 +1940,7 @@ , P. Biron, A. Malhotra, Editors. World Wide Web Consortium (W3C), 28 October 2004. Available at <a href="http://www.w3.org/TR/xmlschema-2/">http://www.w3.org/TR/xmlschema-2/</a>.</dd></dl></div><div class="div2"> -<h3><a name="iddiv2_1_1928" id="iddiv2_1_1928"/>14.2 Informative References</h3><dl><dt class="label"><a name="WSSecureConversation" id="WSSecureConversation"/>WS-SecureConversation</dt><dd><a href="http://docs.oasis-open.org/ws-sx/ws-secureconversation/v1.4/os/ws-secureconversation-1.4-spec-os.doc"><cite> +<h3><a name="iddiv2_1_2473" id="iddiv2_1_2473"/>15.2 Informative References</h3><dl><dt class="label"><a name="WSSecureConversation" id="WSSecureConversation"/>WS-SecureConversation</dt><dd><a href="http://docs.oasis-open.org/ws-sx/ws-secureconversation/v1.4/os/ws-secureconversation-1.4-spec-os.doc"><cite> OASIS Standard, "Web Services Secure Conversation (WS-SecureConversation) 1.4" </cite></a> @@ -1661,8 +1974,8 @@ </p><div class="exampleOuter"><div class="exampleInner"><pre><a href="http://www.w3.org/2002/ws/ra/edcopies/ws-mex/MetadataExchange.xsd">http://www.w3.org/2002/ws/ra/edcopies/ws-mex/MetadataExchange.xsd</a></pre></div></div><p> A non-normative copy of the XML schema is listed below for convenience. </p><div class="exampleOuter"><div class="exampleInner"><pre><xs:schema - targetNamespace='http://www.w3.org/2002/ws/ra/edcopies/ws-mex' - xmlns:tns='http://www.w3.org/2002/ws/ra/edcopies/ws-mex' + targetNamespace='http://www.w3.org/2009/09/ws-mex' + xmlns:tns='http://www.w3.org/2009/09/ws-mex' xmlns:wsa='http://www.w3.org/2005/08/addressing' xmlns:xs='http://www.w3.org/2001/XMLSchema' elementFormDefault='qualified' @@ -1718,6 +2031,53 @@ </xs:complexType> </xs:element> + <!-- Put Metadata request --> + <xs:element name='PutMetadata'> + <xs:complexType> + <xs:sequence> + <xs:element ref='tns:Metadata'/> + <xs:any namespace='##other' processContents='lax' minOccurs='0' + maxOccurs='unbounded'/> + </xs:sequence> + <xs:anyAttribute namespace='##other' processContents='lax'/> + </xs:complexType> + </xs:element> + + <!-- Put Metadata response --> + <xs:element name='PutMetadataResponse'> + <xs:complexType> + <xs:sequence> + <xs:element ref='tns:Metadata'/> + <xs:any namespace='##other' processContents='lax' minOccurs='0' + maxOccurs='unbounded'/> + </xs:sequence> + <xs:anyAttribute namespace='##other' processContents='lax'/> + </xs:complexType> + </xs:element> + + <!-- Delete Metadata request --> + <xs:element name='DeleteMetadata'> + <xs:complexType> + <xs:sequence> + <xs:element ref='tns:Dialect' minOccurs='0' maxOccurs='unbounded'/> + <xs:any namespace='##other' processContents='lax' minOccurs='0' + maxOccurs='unbounded'/> + </xs:sequence> + <xs:anyAttribute namespace='##other' processContents='lax'/> + </xs:complexType> + </xs:element> + + <!-- Delete Metadata response --> + <xs:element name='DeleteMetadataResponse'> + <xs:complexType> + <xs:sequence> + <xs:any namespace='##other' processContents='lax' minOccurs='0' + maxOccurs='unbounded'/> + </xs:sequence> + <xs:anyAttribute namespace='##other' processContents='lax'/> + </xs:complexType> + </xs:element> + <xs:element name='Dialect'> <xs:complexType> <xs:attribute name='Type' type='xs:QName' use='required'/> @@ -1793,33 +2153,103 @@ <xs:element name='GetMetadataSupported' minOccurs='0'> <xs:complexType> <xs:sequence> - <xs:element name='MetadataExchangeDialect' + <xs:element name='MetadataExchangeDialect' minOccurs='0' maxOccurs='unbounded'> <xs:complexType> <xs:sequence> - <xs:element name='MetadataContent' + <xs:element name='MetadataContent' minOccurs='0' maxOccurs='unbounded'> <xs:complexType> <xs:sequence> - <xs:any namespace='##other' processContents='lax' + <xs:any namespace='##other' processContents='lax' minOccurs='0' maxOccurs='0'/> </xs:sequence> - <xs:attribute name='URI' type='xs:anyURI' + <xs:attribute name='URI' type='xs:anyURI' use='required' /> - <xs:anyAttribute namespace="##other" + <xs:anyAttribute namespace="##other" processContents='lax'/> </xs:complexType> </xs:element> <xs:any namespace='##other' processContents='lax' minOccurs='0' maxOccurs='unbounded'/> </xs:sequence> - <xs:attribute name='URI' type='xs:anyURI' + <xs:attribute name='URI' type='xs:anyURI' use='required'/> - <xs:anyAttribute namespace='##other' + <xs:anyAttribute namespace='##other' processContents='lax'/> </xs:complexType> </xs:element> - <xs:any namespace='##other' processContents='lax' + <xs:any namespace='##other' processContents='lax' + minOccurs='0' maxOccurs='unbounded'/> + </xs:sequence> + <xs:anyAttribute namespace='##other' processContents='lax' /> + </xs:complexType> + </xs:element> + <xs:element name='PutMetadataSupported' minOccurs='0'> + <xs:complexType> + <xs:sequence> + <xs:element name='MetadataExchangeDialect' + minOccurs='0' maxOccurs='unbounded'> + <xs:complexType> + <xs:sequence> + <xs:element name='MetadataContent' + minOccurs='0' maxOccurs='unbounded'> + <xs:complexType> + <xs:sequence> + <xs:any namespace='##other' processContents='lax' + minOccurs='0' maxOccurs='0'/> + </xs:sequence> + <xs:attribute name='URI' type='xs:anyURI' + use='required' /> + <xs:anyAttribute namespace="##other" + processContents='lax'/> + </xs:complexType> + </xs:element> + <xs:any namespace='##other' processContents='lax' + minOccurs='0' maxOccurs='unbounded'/> + </xs:sequence> + <xs:attribute name='URI' type='xs:anyURI' + use='required'/> + <xs:anyAttribute namespace='##other' + processContents='lax'/> + </xs:complexType> + </xs:element> + <xs:any namespace='##other' processContents='lax' + minOccurs='0' maxOccurs='unbounded'/> + </xs:sequence> + <xs:anyAttribute namespace='##other' processContents='lax' /> + </xs:complexType> + </xs:element> + <xs:element name='DeleteMetadataSupported' minOccurs='0'> + <xs:complexType> + <xs:sequence> + <xs:element name='MetadataExchangeDialect' + minOccurs='0' maxOccurs='unbounded'> + <xs:complexType> + <xs:sequence> + <xs:element name='MetadataContent' + minOccurs='0' maxOccurs='unbounded'> + <xs:complexType> + <xs:sequence> + <xs:any namespace='##other' processContents='lax' + minOccurs='0' maxOccurs='0'/> + </xs:sequence> + <xs:attribute name='URI' type='xs:anyURI' + use='required' /> + <xs:anyAttribute namespace="##other" + processContents='lax'/> + </xs:complexType> + </xs:element> + <xs:any namespace='##other' processContents='lax' + minOccurs='0' maxOccurs='unbounded'/> + </xs:sequence> + <xs:attribute name='URI' type='xs:anyURI' + use='required'/> + <xs:anyAttribute namespace='##other' + processContents='lax'/> + </xs:complexType> + </xs:element> + <xs:any namespace='##other' processContents='lax' minOccurs='0' maxOccurs='unbounded'/> </xs:sequence> <xs:anyAttribute namespace='##other' processContents='lax' /> @@ -1827,6 +2257,8 @@ </xs:element> </xs:sequence> </xs:complexType> + </xs:element> + </xs:schema></pre></div></div></div><div class="div1"> <h2><a name="Appendix-B" id="Appendix-B"/>B WSDL</h2><p> @@ -1836,17 +2268,17 @@ A non-normative copy of the WSDL description is listed below for convenience. </p><div class="exampleOuter"><div class="exampleInner"><pre><wsdl:definitions - targetNamespace='http://www.w3.org/2002/ws/ra/edcopies/ws-mex' - xmlns:tns='http://www.w3.org/2002/ws/ra/edcopies/ws-mex' + targetNamespace='http://www.w3.org/2009/09/ws-mex' + xmlns:tns='http://www.w3.org/2009/09/ws-mex' xmlns:wsa='http://www.w3.org/2005/08/addressing' xmlns:wsam='http://www.w3.org/2007/05/addressing/metadata' xmlns:wsdl='http://schemas.xmlsoap.org/wsdl/' - xmlns:xs='http://www.w3.org/2001/XMLSchema'> + xmlns:xs='http://www.w3.org/2001/XMLSchema' > <wsdl:types> <xs:schema - targetNamespace='http://www.w3.org/2002/ws/ra/edcopies/ws-mex'> - <xs:include schemaLocation='metadataexchange.xsd'/> + targetNamespace='http://www.w3.org/2009/09/ws-mex' > + <xs:include schemaLocation='metadataexchange.xsd' /> </xs:schema> </wsdl:types> @@ -1858,34 +2290,71 @@ <wsdl:part name='body' element='tns:GetWSDLResponse'/> </wsdl:message> - <wsdl:message name='GetMetadataMsg'> - <wsdl:part name='body' element='tns:GetMetadata'/> + <wsdl:message name='GetMetadataMsg' > + <wsdl:part name='body' element='tns:GetMetadata' /> </wsdl:message> - <wsdl:message name='GetMetadataResponseMsg'> - <wsdl:part name='body' element='tns:GetMetadataResponse'/> + <wsdl:message name='GetMetadataResponseMsg' > + <wsdl:part name='body' element='tns:GetMetadataResponse' /> + </wsdl:message> + + <wsdl:message name='PutMetadataMsg' > + <wsdl:part name='body' element='tns:PutMetadata' /> + </wsdl:message> + <wsdl:message name='PutMetadataResponseMsg' > + <wsdl:part name='body' element='tns:PutMetadataResponse' /> </wsdl:message> - <wsdl:portType name='MetadataExchange'> + + <wsdl:message name='DeleteMetadataMsg' > + <wsdl:part name='body' element='tns:DeleteMetadata' /> + </wsdl:message> + <wsdl:message name='DeleteMetadataResponseMsg' > + <wsdl:part name='body' element='tns:DeleteMetadataResponse' /> + </wsdl:message> + + <wsdl:portType name='MetadataExchange' > <wsdl:operation name='GetWSDL'> <wsdl:input message='tns:GetWSDLMsg' wsam:Action= - 'http://www.w3.org/2002/ws/ra/edcopies/ws-mex/GetWSDL'/> + 'http://www.w3.org/2009/09/ws-mex/GetWSDL'/> <wsdl:output message='tns:GetWSDLResponseMsg' wsam:Action= - 'http://www.w3.org/2002/ws/ra/edcopies/ws-mex/GetWSDLResponse'/> + 'http://www.w3.org/2009/09/ws-mex/GetWSDLResponse'/> </wsdl:operation> - <wsdl:operation name='GetMetadata'> + <wsdl:operation name='GetMetadata' > <wsdl:input message='tns:GetMetadataMsg' wsam:Action= - 'http://www.w3.org/2002/ws/ra/edcopies/ws-mex/GetMetadata'/> + 'http://www.w3.org/2009/09/ws-mex/GetMetadata/Request'/> <wsdl:output message='tns:GetMetadataResponseMsg' wsam:Action= - 'http://www.w3.org/2002/ws/ra/edcopies/ws-mex/GetMetadataResponse'/> + 'http://www.w3.org/2009/09/ws-mex/GetMetadata/Response'/> + </wsdl:operation> + + <wsdl:operation name='PutMetadata' > + <wsdl:input + message='tns:PutMetadataMsg' + wsam:Action= + 'http://www.w3.org/2009/09/ws-mex/PutMetadata/Request'/> + <wsdl:output + message='tns:PutMetadataResponseMsg' + wsam:Action= + 'http://www.w3.org/2009/09/ws-mex/PutMetadata/Response'/> + </wsdl:operation> + + <wsdl:operation name='DeleteMetadata' > + <wsdl:input + message='tns:DeleteMetadataMsg' + wsam:Action= + 'http://www.w3.org/2009/09/ws-mex/DeleteMetadata/Request'/> + <wsdl:output + message='tns:DeleteMetadataResponseMsg' + wsam:Action= + 'http://www.w3.org/2009/09/ws-mex/DeleteMetadata/Response'/> </wsdl:operation> </wsdl:portType> @@ -1959,4 +2428,5 @@ <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=9250">9250</a></td></tr><tr><td> 2010/05/04 </td><td> DD </td><td> Added resolution of issue <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=9087">9087</a></td></tr><tr><td> 2010/05/11 </td><td> DD </td><td> Added resolution of issue <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=9570">9570</a></td></tr><tr><td> 2010/05/11 </td><td> DD </td><td> Added resolution of issue - <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=9699">9699</a></td></tr></tbody></table></div></div></body></html> \ No newline at end of file + <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=9699">9699</a></td></tr><tr><td> 2010/05/11 </td><td> DD </td><td> Added resolution of issue + <a href="http://www.w3.org/Bugs/Public/show_bug.cgi?id=9671">9699</a></td></tr></tbody></table></div></div></body></html> \ No newline at end of file
Received on Wednesday, 12 May 2010 07:34:34 UTC