Another abandoned server code base... this is kind of an ancestor of taskrambler.
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.
 
 
 
 
 
 

8450 lines
347 KiB

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html lang="en" xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content=
"text/html; charset=utf-8" />
<title>Web Services Description Language (WSDL) Version 2.0 Part 2:
Adjuncts</title>
<style type="text/css" xml:space="preserve">
/*<![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}
th { color: #000000; background-color: #CCCC99; }
span.test-assertion { background-color: #FFC0CB; }
span.test-assertion-tr:hover { background-color: #FFC0CB; }
/*]]>*/
</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 Description
Language (WSDL) Version 2.0 Part 2: Adjuncts</h1>
<h2><a name="w3c-doctype" id="w3c-doctype"></a>W3C Recommendation
26 June 2007</h2>
<dl>
<dt>This version:</dt>
<dd><a href=
"http://www.w3.org/TR/2007/REC-wsdl20-adjuncts-20070626">http://www.w3.org/TR/2007/REC-wsdl20-adjuncts-20070626</a></dd>
<dt>Latest version:</dt>
<dd><a href=
"http://www.w3.org/TR/wsdl20-adjuncts">http://www.w3.org/TR/wsdl20-adjuncts</a></dd>
<dt>Previous version:</dt>
<dd><a href=
"http://www.w3.org/TR/2007/PR-wsdl20-adjuncts-20070523">http://www.w3.org/TR/2007/PR-wsdl20-adjuncts-20070523</a></dd>
<dt>Editors:</dt>
<dd>Roberto Chinnici, Sun Microsystems</dd>
<dd>Hugo Haas, W3C</dd>
<dd>Amelia A. Lewis, TIBCO Software</dd>
<dd>Jean-Jacques Moreau, Canon</dd>
<dd>David Orchard, BEA Systems</dd>
<dd>Sanjiva Weerawarana, WSO2</dd>
</dl>
<p>Please refer to the <a href=
"http://www.w3.org/2007/06/wsdl20-errata.html"><strong>errata</strong></a>
for this document, which may include some normative
corrections.</p>
<p>This document is also available in these non-normative formats:
<a href="wsdl20-adjuncts.pdf">PDF</a>, <a href=
"wsdl20-adjuncts.ps">PostScript</a>, <a href=
"wsdl20-adjuncts.xml">XML</a>, and&#160;<a href=
"wsdl20-adjuncts.txt">plain text</a>.</p>
<p>See also <a href=
"http://www.w3.org/2003/03/Translations/byTechnology?technology=wsdl20-adjuncts">
<strong>translations</strong></a>.</p>
<p class="copyright"><a href=
"http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">Copyright</a>&#160;©&#160;2007&#160;<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>WSDL 2.0 is the Web Services Description Language, an XML
language for describing Web services. This document, "Web Services
Description Language (WSDL) Version 2.0 Part 2: Adjuncts",
specifies predefined extensions for use in WSDL 2.0:</p>
<ul>
<li>
<p>Message exchange patterns</p>
</li>
<li>
<p>Operation safety</p>
</li>
<li>
<p>Operation styles</p>
</li>
<li>
<p>Binding extensions for SOAP and HTTP</p>
</li>
</ul>
</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 Web Services Description Language (WSDL)
Version 2.0 Part 2: Adjuncts for review by W3C Members and other
interested parties. It has been produced by the <a href=
"http://www.w3.org/2002/ws/desc/">Web Services Description Working
Group</a>, which is part of the <a href=
"http://www.w3.org/2002/ws/Activity">W3C Web Services
Activity</a>.</p>
<p>Please send comments about this document to the public <a href=
"mailto:public-ws-desc-comments@w3.org">public-ws-desc-comments@w3.org</a>
mailing list (<a href=
"http://lists.w3.org/Archives/Public/public-ws-desc-comments/">public
archive</a>).</p>
<p>The Working Group released a test suite along with an <a href=
"http://www.w3.org/2002/ws/desc/5/impl-report/">implementation
report</a>. A <a href="wsdl20-adjuncts-diff.html">diff-marked
version against the previous version of this document</a> is
available.</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>This document is governed by the <a href=
"http://www.w3.org/TR/2002/NOTE-patent-practice-20020124">24
January 2002 CPP</a> as amended by the <a href=
"http://www.w3.org/2004/02/05-pp-transition">W3C Patent Policy
Transition Procedure</a>. W3C maintains a <a href=
"http://www.w3.org/2002/ws/desc/2/04/24-IPR-statements.html">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="#intro">Introduction</a>
<br />
&#160;&#160;&#160;&#160;1.1 <a href="#notcon">Notational
Conventions</a>
<br />
&#160;&#160;&#160;&#160;1.2 <a href="#assertions">Assertions</a>
<br />
2. <a href="#meps">Predefined Message Exchange Patterns</a>
<br />
&#160;&#160;&#160;&#160;2.1 <a href="#mep-template">Template for
Message Exchange Patterns</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;2.1.1 <a href=
"#template-sample">Pattern Name</a>
<br />
&#160;&#160;&#160;&#160;2.2 <a href="#fault-rules">Fault
Propagation Rules</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;2.2.1 <a href=
"#fault-replacement">Fault Replaces Message propagation rule</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;2.2.2 <a href=
"#fault-trigger">Message Triggers Fault propagation rule</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;2.2.3 <a href=
"#no-fault">No Faults propagation rule</a>
<br />
&#160;&#160;&#160;&#160;2.3 <a href="#patterns">Message Exchange
Patterns</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;2.3.1 <a href=
"#in-only">In-Only message exchange pattern</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;2.3.2 <a href=
"#robust-in-only">Robust In-Only message exchange pattern</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;2.3.3 <a href=
"#in-out">In-Out message exchange pattern</a>
<br />
&#160;&#160;&#160;&#160;2.4 <a href="#mep-sec-sec">Security
Considerations</a>
<br />
3. <a href="#ext">Predefined Extensions</a>
<br />
&#160;&#160;&#160;&#160;3.1 <a href="#safety">Operation safety</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;3.1.1 <a href=
"#safety-decl-relate">Relationship to WSDL Component Model</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;3.1.2 <a href=
"#safety-decl-xml">XML Representation</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;3.1.3 <a href=
"#safety-decl-mapping">Mapping from XML Representation to Component
Properties</a>
<br />
4. <a href="#styles">Predefined Operation Styles</a>
<br />
&#160;&#160;&#160;&#160;4.1 <a href="#RPCStyle">RPC Style</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;4.1.1 <a href=
"#InterfaceOperation_RPC_Signature_Definition">wrpc:signature
Extension</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;4.1.2 <a href=
"#InterfaceOperation_RPC_Signature_XMLRep">XML Representation of
the wrpc:signature Extension</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;4.1.3 <a href=
"#InterfaceOperation_RPC_Signature_Mapping">wrpc:signature
Extension Mapping To Properties of an Interface Operation
component</a>
<br />
&#160;&#160;&#160;&#160;4.2 <a href="#_operation_iri_style">IRI
Style</a>
<br />
&#160;&#160;&#160;&#160;4.3 <a href=
"#_operation_multipart_style">Multipart style</a>
<br />
5. <a href="#soap-binding">WSDL SOAP Binding Extension</a>
<br />
&#160;&#160;&#160;&#160;5.1 <a href="#soap-syntax">SOAP Syntax
Summary (Non-Normative)</a>
<br />
&#160;&#160;&#160;&#160;5.2 <a href=
"#soap-binding-decl">Identifying the use of the SOAP Binding</a>
<br />
&#160;&#160;&#160;&#160;5.3 <a href="#soap-defaults">SOAP Binding
Rules</a>
<br />
&#160;&#160;&#160;&#160;5.4 <a href="#soap-version">Specifying the
SOAP Version</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;5.4.1 <a href=
"#soap-version-description">Description</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;5.4.2 <a href=
"#soap-version-relate">Relationship to WSDL Component Model</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;5.4.3 <a href=
"#soap-version-decl-xml">XML Representation</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;5.4.4 <a href=
"#soap-version-decl-mapping">Mapping from XML Representation to
Component properties</a>
<br />
&#160;&#160;&#160;&#160;5.5 <a href="#soap-protocol">Specifying the
SOAP Underlying Protocol</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;5.5.1 <a href=
"#soap-protocol-description">Description</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;5.5.2 <a href=
"#soap-protocol-relate">Relationship to WSDL Component Model</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;5.5.3 <a href=
"#soap-binding-decl-xml">XML Representation</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;5.5.4 <a href=
"#soap-binding-decl-mapping">Mapping from XML Representation to
Component Properties</a>
<br />
&#160;&#160;&#160;&#160;5.6 <a href="#soap-fault-decl">Binding
Faults</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;5.6.1 <a href=
"#soap-fault-decl-description">Description</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;5.6.2 <a href=
"#soap-fault-decl-relate">Relationship to WSDL Component Model</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;5.6.3 <a href=
"#soap-fault-decl-xml">XML Representation</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;5.6.4 <a href=
"#soap-fault-decl-mapping">Mapping XML Representation to Component
Properties</a>
<br />
&#160;&#160;&#160;&#160;5.7 <a href="#soap-operation-decl">Binding
Operations</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;5.7.1 <a href=
"#soap-operation-decl-description">Description</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;5.7.2 <a href=
"#soap-operation-decl-relate">Relationship to WSDL Component
Model</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;5.7.3 <a href=
"#soap-operation-decl-xml">XML Representation</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;5.7.4 <a href=
"#soap-operation-decl-mapping">Mapping from XML Representation to
Component Properties</a>
<br />
&#160;&#160;&#160;&#160;5.8 <a href="#soap-module-decl">Declaring
SOAP Modules</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;5.8.1 <a href=
"#soap-module-decl-description">Description</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;5.8.2 <a href=
"#soap-module-decl-relate">Relationship to WSDL Component Model</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;5.8.3 <a href=
"#soap-module-decl-property">SOAP Module component</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;5.8.4 <a href=
"#soap-module-decl-xml">XML Representation</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;5.8.5 <a href=
"#soap-module-decl-mapping">Mapping from XML Representation to
Component Properties</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;5.8.6 <a href=
"#soap-module-decl-fragid">IRI Identification Of A SOAP Module
component</a>
<br />
&#160;&#160;&#160;&#160;5.9 <a href="#soap-headers-decl">Declaring
SOAP Header Blocks</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;5.9.1 <a href=
"#soap-headers-decl-description">Description</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;5.9.2 <a href=
"#soap-headers-decl-relate">Relationship to WSDL Component
Model</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;5.9.3 <a href=
"#soap-header-decl-property">SOAP Header Block component</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;5.9.4 <a href=
"#soap-headers-decl-xml">XML Representation</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;5.9.5 <a href=
"#soap-headers-decl-mapping">Mapping XML Representation to
Component Properties</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;5.9.6 <a href=
"#soap-headers-decl-fragid">IRI Identification Of A SOAP Header
Block component</a>
<br />
&#160;&#160;&#160;&#160;5.10 <a href="#soap12-binding">WSDL SOAP
1.2 Binding</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;5.10.1 <a href=
"#soap12-binding-decl">Identifying a WSDL SOAP 1.2 Binding</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;5.10.2 <a href=
"#soap12-binding-description">Description</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;5.10.3 <a href=
"#soap12-defaults">SOAP 1.2 Binding Rules</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;5.10.4 <a href=
"#wsdl-mep-soap-mep">Binding WSDL 2.0 MEPs to SOAP 1.2 MEPs</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;5.10.4.1
<a href="#in-out-soap-r-r">WSDL In-Out to SOAP Request-Response</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;5.10.4.1.1
<a href="#in-out-soap-r-r-client">The Client</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;5.10.4.1.2
<a href="#in-out-soap-r-r-service">The Service</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;5.10.4.2
<a href="#in-out-soap-r">WSDL In-Out to SOAP SOAP-Response</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;5.10.4.2.1
<a href="#in-out-soap-r-client">The Client</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;5.10.4.2.2
<a href="#in-out-soap-r-service">The Service</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;5.10.4.3
<a href="#in-only-soap-r-r">WSDL In-Only to SOAP
Request-Response</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;5.10.4.3.1
<a href="#in-only-soap-r-r-client">The Client</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;5.10.4.3.2
<a href="#in-only-soap-r-r-service">The Service</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;5.10.4.4
<a href="#robust-in-only-soap-r-r">WSDL Robust-In-Only to SOAP
Request-Response</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;5.10.4.4.1
<a href="#robust-in-only-soap-r-r-client">The Client</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;5.10.4.4.2
<a href="#robust-in-only-soap-r-r-service">The Service</a>
<br />
&#160;&#160;&#160;&#160;5.11 <a href=
"#soap-conformance">Conformance</a>
<br />
6. <a href="#http-binding">WSDL HTTP Binding Extension</a>
<br />
&#160;&#160;&#160;&#160;6.1 <a href="#http-binding-id">Identifying
the use of the HTTP Binding</a>
<br />
&#160;&#160;&#160;&#160;6.2 <a href="#http-syntax">HTTP Syntax
Summary (Non-Normative)</a>
<br />
&#160;&#160;&#160;&#160;6.3 <a href=
"#http-binding-supported-extensions">Supported Extensions</a>
<br />
&#160;&#160;&#160;&#160;6.4 <a href=
"#_http_binding_default_rules">HTTP Binding Rules</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;6.4.1 <a href=
"#_http_binding_default_rule_method">HTTP Method Selection</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;6.4.2 <a href=
"#_http_binding_default_rule_coding">HTTP Content Encoding
Selection</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;6.4.3 <a href=
"#_http_binding_default_rule_psf">Payload Construction And
Serialization Format</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;6.4.3.1
<a href="#_http_ser_xml">Serialization rules for XML messages</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;6.4.4 <a href=
"#_http_binding_default_rule_dsf">Default input and output
serialization format</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;6.4.5 <a href=
"#_http_default_rule_head">HTTP Header Construction</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;6.4.6 <a href=
"#_http_request_iri_">HTTP Request IRI</a>
<br />
&#160;&#160;&#160;&#160;6.5 <a href="#http-operation-decl">Binding
Operations</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;6.5.1 <a href=
"#http-operation-decl-dest">Description</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;6.5.2 <a href=
"#http-operation-decl-relate">Relationship to WSDL Component
Model</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;6.5.3 <a href=
"#_http_ser_val">Specification of serialization rules allowed</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;6.5.4 <a href=
"#http-operation-decl-xml">XML Representation</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;6.5.5 <a href=
"#http-operation-decl-mapping">Mapping from XML Representation to
Component Properties</a>
<br />
&#160;&#160;&#160;&#160;6.6 <a href="#http-headers-decl">Declaring
HTTP Headers</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;6.6.1 <a href=
"#http-headers-decl-description">Description</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;6.6.2 <a href=
"#http-headers-decl-relate">Relationship to WSDL Component
Model</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;6.6.3 <a href=
"#http-header-decl-property">HTTP Header component</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;6.6.4 <a href=
"#http-headers-decl-xml">XML Representation</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;6.6.5 <a href=
"#http-headers-decl-mapping">Mapping from XML Representation to
Component Properties</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;6.6.6 <a href=
"#http-headers-decl-fragid">IRI Identification Of An HTTP Header
component</a>
<br />
&#160;&#160;&#160;&#160;6.7 <a href="#http-fault-decl">Specifying
HTTP Error Code for Faults</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;6.7.1 <a href=
"#http-fault-decl-description">Description</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;6.7.2 <a href=
"#http-fault-decl-relate">Relationship to WSDL Component Model</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;6.7.3 <a href=
"#http-fault-decl-xml">XML Representation</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;6.7.4 <a href=
"#http-fault-decl-mapping">Mapping from XML Representation to
Component Properties</a>
<br />
&#160;&#160;&#160;&#160;6.8 <a href=
"#_http_serialization">Serialization Format of Instance Data</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;6.8.1 <a href=
"#_http_location_template">Serialization of the instance data in
parts of the HTTP request IRI</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;6.8.1.1
<a href="#_http_operation_location_cited_ser">Construction of the
request IRI using the {http location} property</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;6.8.2 <a href=
"#_http_x-www-form-urlencoded">Serialization as
application/x-www-form-urlencoded</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;6.8.2.1
<a href="#_http_operation_location_cited_get">Case of elements
cited in the {http location} property</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;6.8.2.2
<a href="#_http_operation_location_notcited_get">Serialization of
content of the instance data not cited in the {http location}
property</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;6.8.2.2.1
<a href="#_http_operation_location_query_constr">Construction of
the query string</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;6.8.2.2.2
<a href="#_http_urlencoded_stop">Controlling the serialization of
the query string in the request IRI</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;6.8.2.2.3
<a href="#_http_operation_location_notcited_iri">Serialization in
the request IRI</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;6.8.2.2.4
<a href="#_http_operation_location_notcited_body">Serialization in
the message body</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;6.8.3 <a href=
"#_http_operation_xml_encoding">Serialization as
application/xml</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;6.8.4 <a href=
"#_http_operation_multipart_encoding">Serialization as
multipart/form-data</a>
<br />
&#160;&#160;&#160;&#160;6.9 <a href=
"#http-content-encoding-decl">Specifying the Content Encoding</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;6.9.1 <a href=
"#http-content-encoding-description">Description</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;6.9.2 <a href=
"#http-content-encoding-relate">Relationship to WSDL Component
Model</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;6.9.3 <a href=
"#http-content-encoding-decl-xml">XML Representation</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;6.9.4 <a href=
"#http-content-encoding-decl-mapping">Mapping from XML
Representation to Component Properties</a>
<br />
&#160;&#160;&#160;&#160;6.10 <a href=
"#http-cookies-decl">Specifying the Use of HTTP Cookies</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;6.10.1 <a href=
"#http-cookies-description">Description</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;6.10.2 <a href=
"#http-cookies-relate">Relationship to WSDL Component Model</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;6.10.3 <a href=
"#http-cookies-decl-xml">XML Representation</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;6.10.4 <a href=
"#http-cookies-decl-mapping">Mapping from XML Representation to
Component Properties</a>
<br />
&#160;&#160;&#160;&#160;6.11 <a href="#http-auth-decl">Specifying
HTTP Access Authentication</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;6.11.1 <a href=
"#http-auth-description">Description</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;6.11.2 <a href=
"#http-auth-relate">Relationship to WSDL Component Model</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;6.11.3 <a href=
"#http-auth-decl-xml">XML Representation</a>
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;6.11.4 <a href=
"#http-auth-decl-mapping">Mapping from XML Representation to
Component Properties</a>
<br />
&#160;&#160;&#160;&#160;6.12 <a href=
"#http-conformance">Conformance</a>
<br />
7. <a href="#References">References</a>
<br />
&#160;&#160;&#160;&#160;7.1 <a href=
"#Normative-References">Normative References</a>
<br />
&#160;&#160;&#160;&#160;7.2 <a href=
"#Informative-References">Informative References</a>
<br /></p>
<h3><a name="appendices" id="appendices"></a>Appendices</h3>
<p class="toc">A. <a href="#acknowledgments">Acknowledgements</a>
(Non-Normative)
<br />
B. <a href="#component_summary">Component Summary</a>
(Non-Normative)
<br />
C. <a href="#assertionsummary">Assertion Summary</a>
(Non-Normative)
<br /></p>
</div>
<hr />
<div class="body">
<div class="div1">
<h2><a name="intro" id="intro"></a>1. Introduction</h2>
<p>The Web Services Description Language Version 2.0 (WSDL 2.0)
[<cite><a href="#WSDL-PART1">WSDL 2.0 Core Language</a></cite>]
provides a model and an XML format for describing Web services.
WSDL 2.0 enables one to separate the description of the abstract
functionality offered by a service from concrete details of a
service description such as "how" and "where" that functionality is
offered.</p>
<p>This document, "Web Services Description Language (WSDL) Version
2.0 Part 2: Adjuncts", specifies predefined extensions for use in
WSDL 2.0:</p>
<ul>
<li>
<p>Message exchange patterns: <a href="#meps"><strong>2. Predefined
Message Exchange Patterns</strong></a></p>
</li>
<li>
<p>Operation safety declaration: <a href="#ext"><strong>3.
Predefined Extensions</strong></a></p>
</li>
<li>
<p>Operation styles: <a href="#styles"><strong>4. Predefined
Operation Styles</strong></a></p>
</li>
<li>
<p>Binding extensions:</p>
<ul>
<li>
<p>A SOAP 1.2 [<cite><a href="#SOAP12-PART1">SOAP 1.2 Part 1:
Messaging Framework (Second Edition)</a></cite>] binding extension:
<a href="#soap-binding"><strong>5. WSDL SOAP Binding
Extension</strong></a></p>
</li>
<li>
<p>An HTTP/1.1 [<cite><a href="#RFC2616">IETF RFC 2616</a></cite>]
binding extension: <a href="#http-binding"><strong>6. WSDL HTTP
Binding Extension</strong></a></p>
</li>
</ul>
</li>
</ul>
<p>This document depends on "Web Services Description Language
(WSDL) Version 2.0 Part 1: Core Language" [<cite><a href=
"#WSDL-PART1">WSDL 2.0 Core Language</a></cite>]. See also the "Web
Services Description Language (WSDL) Version 2.0 Part 0: Primer"
[<cite><a href="#WSDL-PART0">WSDL 2.0 Primer</a></cite>] for more
information and examples.</p>
<div class="div2">
<h3><a name="notcon" id="notcon"></a>1.1 Notational
Conventions</h3>
<p>The keywords "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL"
in this document are to be interpreted as described in RFC2119
[<cite><a href="#RFC2119">IETF RFC 2119</a></cite>].</p>
<p>This specification uses a number of namespace prefixes
throughout; they are listed in <a href="#tabprefns">Table 1-1</a>.
Note that the choice of any namespace prefix is arbitrary and not
semantically significant (see [<cite><a href="#XMLInfoSet">XML
Information Set</a></cite>]).</p>
<a name="tabprefns" id="tabprefns"></a>
<table border="1" summary=
"Mapping of prefixes used in this document to their associated namespace name">
<caption>Table 1-1. Prefixes and Namespaces used in this
specification</caption>
<tbody>
<tr>
<th rowspan="1" colspan="1">Prefix</th>
<th rowspan="1" colspan="1">Namespace</th>
<th rowspan="1" colspan="1">Notes</th>
</tr>
<tr>
<td rowspan="1" colspan="1">wsdl</td>
<td rowspan="1" colspan="1">"http://www.w3.org/ns/wsdl"</td>
<td rowspan="1" colspan="1">This namespace is defined in
[<cite><a href="#WSDL-PART1">WSDL 2.0 Core Language</a></cite>]. A
normative XML Schema [<cite><a href="#XMLSchemaP1">XML Schema
Structures</a></cite>], [<cite><a href="#XMLSchemaP2">XML Schema
Datatypes</a></cite>] document for the "http://www.w3.org/ns/wsdl"
namespace can be found at <a href=
"http://www.w3.org/ns/wsdl">http://www.w3.org/ns/wsdl</a>. This
namespace is used as the default namespace throughout this
specification.</td>
</tr>
<tr>
<td rowspan="1" colspan="1">wsdlx</td>
<td rowspan="1" colspan="1">
"http://www.w3.org/ns/wsdl-extensions"</td>
<td rowspan="1" colspan="1">This specification extends in section
<a href="#ext"><strong>3. Predefined Extensions</strong></a> the
"http://www.w3.org/ns/wsdl-extensions" namespace defined in
[<cite><a href="#WSDL-PART1">WSDL 2.0 Core Language</a></cite>]. A
normative XML Schema [<cite><a href="#XMLSchemaP1">XML Schema
Structures</a></cite>], [<cite><a href="#XMLSchemaP2">XML Schema
Datatypes</a></cite>] document for the
"http://www.w3.org/ns/wsdl-extensions" namespace can be found at
<a href=
"http://www.w3.org/ns/wsdl-extensions">http://www.w3.org/ns/wsdl-extensions</a>.</td>
</tr>
<tr>
<td rowspan="1" colspan="1">wsoap</td>
<td rowspan="1" colspan="1">"http://www.w3.org/ns/wsdl/soap"</td>
<td rowspan="1" colspan="1">Defined by this specification. A
normative XML Schema [<cite><a href="#XMLSchemaP1">XML Schema
Structures</a></cite>], [<cite><a href="#XMLSchemaP2">XML Schema
Datatypes</a></cite>] document for the
"http://www.w3.org/ns/wsdl/soap" namespace can be found at <a href=
"http://www.w3.org/ns/wsdl/soap">http://www.w3.org/ns/wsdl/soap</a>.</td>
</tr>
<tr>
<td rowspan="1" colspan="1">whttp</td>
<td rowspan="1" colspan="1">"http://www.w3.org/ns/wsdl/http"</td>
<td rowspan="1" colspan="1">Defined by this specification. A
normative XML Schema [<cite><a href="#XMLSchemaP1">XML Schema
Structures</a></cite>], [<cite><a href="#XMLSchemaP2">XML Schema
Datatypes</a></cite>] document for the
"http://www.w3.org/ns/wsdl/http" namespace can be found at <a href=
"http://www.w3.org/ns/wsdl/http">http://www.w3.org/ns/wsdl/http</a>.</td>
</tr>
<tr>
<td rowspan="1" colspan="1">wrpc</td>
<td rowspan="1" colspan="1">"http://www.w3.org/ns/wsdl/rpc"</td>
<td rowspan="1" colspan="1">Defined by this specification. A
normative XML Schema [<cite><a href="#XMLSchemaP1">XML Schema
Structures</a></cite>], [<cite><a href="#XMLSchemaP2">XML Schema
Datatypes</a></cite>] document for the
"http://www.w3.org/ns/wsdl/rpc" namespace can be found at <a href=
"http://www.w3.org/ns/wsdl/rpc">http://www.w3.org/ns/wsdl/rpc</a>.</td>
</tr>
<tr>
<td rowspan="1" colspan="1">xs</td>
<td rowspan="1" colspan="1">"http://www.w3.org/2001/XMLSchema"</td>
<td rowspan="1" colspan="1">Defined in the W3C XML Schema
specification [<cite><a href="#XMLSchemaP1">XML Schema
Structures</a></cite>], [<cite><a href="#XMLSchemaP2">XML Schema
Datatypes</a></cite>].</td>
</tr>
</tbody>
</table>
<br />
<p>Namespace names of the general form "http://example.org/..." and
"http://example.com/..." represent application or context-dependent
URIs [<cite><a href="#RFC3986">IETF RFC 3986</a></cite>].</p>
<p>All parts of this specification are normative, with the
EXCEPTION of pseudo-schemas, examples, and sections explicitly
marked as "Non-Normative". Pseudo-schemas are provided for each
component, before the description of this component. They provide
visual help for the XML [<cite><a href="#XML10">XML 1.0</a></cite>]
serialization. The <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#bnfpseudoschemas">syntax
of BNF pseudo-schemas</a> is the same as the one used in
[<cite><a href="#WSDL-PART1">WSDL 2.0 Core
Language</a></cite>].</p>
</div>
<div class="div2">
<h3><a name="assertions" id="assertions"></a>1.2 Assertions</h3>
<p>Assertions about WSDL 2.0 documents and components that are not
enforced by the normative XML schema for WSDL 2.0 are marked by a
dagger symbol (†) at the end of a sentence. Each assertion has been
assigned a unique identifier that consists of a descriptive textual
prefix and a unique numeric suffix. The numeric suffixes are
assigned sequentially and never reused so there may be gaps in the
sequence. The assertion identifiers MAY be used by implementations
of this specification for any purpose, e.g. error reporting.</p>
<p>The assertions and their identifiers are summarized in section
<a href="#assertionsummary"><strong>C. Assertion
Summary</strong></a>.</p>
</div>
</div>
<div class="div1">
<h2><a name="meps" id="meps"></a>2. Predefined Message Exchange
Patterns</h2>
<p>Web Services Description Language (WSDL) message exchange
patterns (hereafter simply 'patterns') define the sequence and
cardinality of abstract messages listed in an operation. Message
exchange patterns also define which other nodes send messages to,
and receive messages from, the service implementing the
operation.</p>
<p>A <em>node</em> is an agent (<a href=
"http://www.w3.org/TR/2004/NOTE-ws-arch-20040211/#agent">section
2.3.2.2 Agent of the Web Services Architecture</a> [<cite><a href=
"#wsarch">Web Services Architecture</a></cite>]) that can transmit
and/or receive message(s) described in WSDL description(s) and
process them.</p>
<div class="note">
<p class="prefix"><strong>Note:</strong></p>
<p><span id="NodeIdentity-2001" class="test-assertion-tr">A node
MAY be accessible via more than one physical address or
transport.<sup><a href="#NodeIdentity-2001-summary" title=
"Link to assertion NodeIdentity-2001 summary"></a></sup></span></p>
</div>
<p>WSDL message exchange patterns describe the interaction at the
abstract (interface) level, which may be distinct from the pattern
used by the underlying protocol binding (e.g. SOAP Message Exchange
Patterns; section <a href="#soap12-defaults"><strong>5.10.3 SOAP
1.2 Binding Rules</strong></a> contains the binding rules for the
selection of a SOAP 1.2 message exchange pattern, based on the WSDL
message exchange pattern in use for the SOAP binding extension
defined in section <a href="#soap-binding"><strong>5. WSDL SOAP
Binding Extension</strong></a>).</p>
<p>By design, WSDL message exchange patterns abstract out specific
message types. Patterns identify placeholders for messages, and
placeholders are associated with specific message types by the
operation using the pattern.</p>
<p>Unless explicitly stated otherwise, WSDL message exchange
patterns also abstract out binding-specific information such as
timing between messages, whether the pattern is synchronous or
asynchronous, and whether the messages are sent over a single or
multiple channels.</p>
<p>Like interfaces and operations, WSDL message exchange patterns
do not exhaustively describe the set of messages exchanged between
a service and other nodes; <span id="MEPDescriptiveness-2002"
class="test-assertion-tr">by some prior agreement, another node
and/or the service MAY send messages (to each other or to other
nodes) that are not described by the pattern.<sup><a href=
"#MEPDescriptiveness-2002-summary" title=
"Link to assertion MEPDescriptiveness-2002 summary"></a></sup></span>
For instance, even though a pattern can define a single message
sent from a service to one other node, the Web service can in
practice multicast that message to other nodes.</p>
<p>To maximize reuse, WSDL message exchange patterns identify a
minimal contract between other parties and Web services, and
contain only information that is relevant to both the Web service
and another party.</p>
<p>This specification defines several message exchange patterns for
use with <em>WSDL Version 2.0 Part 1: Core
Language</em>&#160;[<cite><a href="#WSDL-PART1">WSDL 2.0 Core
Language</a></cite>]. Additional, non-normative patterns are
available in [<cite><a href="#WSDL-MEPS">WSDL 2.0 Additional
MEPs</a></cite>].</p>
<div class="div2">
<h3><a name="mep-template" id="mep-template"></a>2.1 Template for
Message Exchange Patterns</h3>
<p>New message exchange patterns may be defined by any organization
able and willing to do so. It is recommended that the patterns use
the general template provided in <a href=
"#template-sample"><strong>2.1.1 Pattern Name</strong></a>, after
examination of existing predefined patterns.</p>
<div class="div3">
<h4><a name="template-sample" id="template-sample"></a>2.1.1
Pattern Name</h4>
<p>This pattern consists of [number] message[s, in order] as
follows:</p>
<p>[enumeration, specifying, for each message] A[n optional]
message:</p>
<ol class="enumar">
<li>
<p>indicated by an <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-InterfaceMessageReference">
Interface Message Reference</a> component whose {<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#property-InterfaceMessageReference.messagelabel">message
label</a>} is "[label]" and {<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#property-InterfaceMessageReference.direction">direction</a>}
is "[direction]"</p>
</li>
<li>
<p>[received from|sent to] ['some' if first mention] node [node
identifier]</p>
</li>
</ol>
<p>This pattern uses the rule [fault ruleset reference].</p>
<p>An <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-InterfaceOperation">
Interface Operation</a> using this message exchange pattern has a
{<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#property-InterfaceOperation.messageexchangepattern">message
exchange pattern</a>} property with the value "[pattern IRI]".</p>
<p>Note: In the template, the bracketed items indicate a
replacement operation. Substitute the correct terms for each
bracketed item.</p>
<p>Note: the "received from" and "sent to" are always from the
point of view of the service, and participating nodes other than
the service are implicitly identified as the originators of or
destinations for messages in the exchange.</p>
</div>
</div>
<div class="div2">
<h3><a name="fault-rules" id="fault-rules"></a>2.2 Fault
Propagation Rules</h3>
<p>WSDL patterns specify their fault propagation model using
standard rulesets to indicate where faults can occur. The most
common patterns for fault propagation are defined in the following
subsections, and referenced by the patterns in <a href=
"#patterns"><strong>2.3 Message Exchange Patterns</strong></a>.
"Propagation" is defined as a best-effort attempt to transmit the
fault message to its designated recipient.</p>
<p>WSDL patterns specify propagation of faults, not their
generation. <span id="FaultPropagation-2003" class=
"test-assertion-tr">Nodes that generate faults MUST attempt to
propagate the faults in accordance with the governing ruleset, but
it is understood that any delivery of a network message is best
effort, not guaranteed.<sup><a href=
"#FaultPropagation-2003-summary" title=
"Link to assertion FaultPropagation-2003 summary"></a></sup></span>
The rulesets establish the direction of the fault message and the
fault recipient; they do not provide reliability or other delivery
guarantees. <span id="FaultPropagation-2004" class=
"test-assertion-tr">When a fault is generated, the generating node
MUST attempt to propagate the fault, and MUST do so in the
direction and to the recipient specified by the
ruleset.<sup><a href="#FaultPropagation-2004-summary" title=
"Link to assertion FaultPropagation-2004 summary"></a></sup></span>&#160;<span id="FaultPropagationModification-2005"
class="test-assertion-tr">However, extensions or binding extensions
MAY modify these rulesets.<sup><a href=
"#FaultPropagationModification-2005-summary" title=
"Link to assertion FaultPropagationModification-2005 summary"></a></sup></span>
For example, WS-Addressing [<cite><a href="#WSA-Core">WSA 1.0
Core</a></cite>] defines a "FaultTo" address for messages, which is
used in lieu of the recipient nominated by the ruleset.</p>
<p><span id="MEPTermination-2006" class=
"test-assertion-tr">Generation of a fault, regardless of ruleset,
terminates the exchange.<sup><a href="#MEPTermination-2006-summary"
title=
"Link to assertion MEPTermination-2006 summary"></a></sup></span></p>
<p>Binding extensions, features, or extension specifications can
override the semantics of a fault propagation ruleset, but this
practice is strongly discouraged.</p>
<div class="div3">
<h4><a name="fault-replacement" id="fault-replacement"></a>2.2.1
Fault Replaces Message propagation rule</h4>
<p><span id="FaultReplacesMessage-2007" class=
"test-assertion-tr">When the Fault Replaces Message propagation
rule is in effect, any message after the first in the pattern MAY
be replaced with a fault message, which MUST have identical
direction. <sup><a href="#FaultReplacesMessage-2007-summary" title=
"Link to assertion FaultReplacesMessage-2007 summary"></a></sup></span>
<span id="FaultDelivery-2008" class="test-assertion-tr">The fault
message MUST be delivered to the same target node as the message it
replaces, unless otherwise specified by an extension or binding
extension. If there is no path to this node, the fault MUST be
discarded.<sup><a href="#FaultDelivery-2008-summary" title=
"Link to assertion FaultDelivery-2008 summary"></a></sup></span></p>
<p>The Fault Replaces Message propagation rule is identified by the
following URI:
<code>http://www.w3.org/ns/wsdl/fault-replaces-message</code></p>
</div>
<div class="div3">
<h4><a name="fault-trigger" id="fault-trigger"></a>2.2.2 Message
Triggers Fault propagation rule</h4>
<p><span id="MessageTriggersFault-2009" class=
"test-assertion-tr">When the Message Triggers Fault propagation
rule is in effect, any message, including the first in the pattern,
MAY trigger a fault message, which MUST have opposite direction.
<sup><a href="#MessageTriggersFault-2009-summary" title=
"Link to assertion MessageTriggersFault-2009 summary"></a></sup></span>
<span id="FaultDelivery-2010" class="test-assertion-tr">The fault
message MUST be delivered to the originator of the triggering
message, unless otherwise specified by an extension or binding
extension. Any node MAY propagate a fault message, and MUST NOT do
so more than once for each triggering message. If there is no path
to the originator, the fault MUST be discarded.<sup><a href=
"#FaultDelivery-2010-summary" title=
"Link to assertion FaultDelivery-2010 summary"></a></sup></span></p>
<p>The Message Triggers Fault propagation rule is identified by the
following URI:
<code>http://www.w3.org/ns/wsdl/message-triggers-fault</code></p>
</div>
<div class="div3">
<h4><a name="no-fault" id="no-fault"></a>2.2.3 No Faults
propagation rule</h4>
<p><span id="NoFaults-2011" class="test-assertion-tr">When the No
Faults propagation rule is in effect, faults MUST NOT be
propagated. <sup><a href="#NoFaults-2011-summary" title=
"Link to assertion NoFaults-2011 summary"></a></sup></span></p>
<p>The No Faults propagation rule is identified by the following
URI: <code>http://www.w3.org/ns/wsdl/no-faults</code></p>
</div>
</div>
<div class="div2">
<h3><a name="patterns" id="patterns"></a>2.3 Message Exchange
Patterns</h3>
<p>WSDL patterns are described in terms of the WSDL component
model, specifically the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-InterfaceMessageReference">
Interface Message Reference</a> and <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-InterfaceFaultReference">
Interface Fault Reference</a> components.</p>
<div class="div3">
<h4><a name="in-only" id="in-only"></a>2.3.1 In-Only message
exchange pattern</h4>
<p><span id="InOnlyComposition-2012" class="test-assertion-tr">The
<code>in-only</code> message exchange pattern consists of exactly
one message as follows:<sup><a href=
"#InOnlyComposition-2012-summary" title=
"Link to assertion InOnlyComposition-2012 summary"></a></sup></span></p>
<ol class="enumar">
<li>
<p>A message:</p>
<ul>
<li>
<p>indicated by a <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-InterfaceMessageReference">
Interface Message Reference</a> component whose {<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#property-InterfaceMessageReference.messagelabel">message
label</a>} is "In" and {<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#property-InterfaceMessageReference.direction">direction</a>}
is "in"</p>
</li>
<li>
<p>received from some node N</p>
</li>
</ul>
</li>
</ol>
<p><span id="InOnlyFaults-2013" class="test-assertion-tr">The
<code>in-only</code> message exchange pattern uses the rule
<a href="#no-fault"><strong>2.2.3 No Faults propagation
rule</strong></a>.<sup><a href="#InOnlyFaults-2013-summary" title=
"Link to assertion InOnlyFaults-2013 summary"></a></sup></span></p>
<p>An operation using this message exchange pattern has a {<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#property-InterfaceOperation.messageexchangepattern">message
exchange pattern</a>} property with the value
"http://www.w3.org/ns/wsdl/in-only".</p>
</div>
<div class="div3">
<h4><a name="robust-in-only" id="robust-in-only"></a>2.3.2 Robust
In-Only message exchange pattern</h4>
<p><span id="RobustInOnlyComposition-2013" class=
"test-assertion-tr">The <code>robust-in-only</code> message
exchange pattern consists of exactly one message as
follows:<sup><a href="#RobustInOnlyComposition-2013-summary" title=
"Link to assertion RobustInOnlyComposition-2013 summary"></a></sup></span></p>
<ol class="enumar">
<li>
<p>A message:</p>
<ul>
<li>
<p>indicated by a <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-InterfaceMessageReference">
Interface Message Reference</a> component whose {<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#property-InterfaceMessageReference.messagelabel">message
label</a>} is "In" and {<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#property-InterfaceMessageReference.direction">direction</a>}
is "in"</p>
</li>
<li>
<p>received from some node N</p>
</li>
</ul>
</li>
</ol>
<p><span id="RobustInOnlyFaults-2014" class="test-assertion-tr">The
<code>robust in-only</code> message exchange pattern uses the rule
<a href="#fault-trigger"><strong>2.2.2 Message Triggers Fault
propagation rule</strong></a>.<sup><a href=
"#RobustInOnlyFaults-2014-summary" title=
"Link to assertion RobustInOnlyFaults-2014 summary"></a></sup></span></p>
<p>An operation using this message exchange pattern has a {<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#property-InterfaceOperation.messageexchangepattern">message
exchange pattern</a>} property with the value
"http://www.w3.org/ns/wsdl/robust-in-only".</p>
</div>
<div class="div3">
<h4><a name="in-out" id="in-out"></a>2.3.3 In-Out message exchange
pattern</h4>
<p><span id="InOutComposition-2015" class="test-assertion-tr">The
<code>in-out</code> message exchange pattern consists of exactly
two messages, in order, as follows:<sup><a href=
"#InOutComposition-2015-summary" title=
"Link to assertion InOutComposition-2015 summary"></a></sup></span></p>
<ol class="enumar">
<li>
<p>A message:</p>
<ul>
<li>
<p>indicated by a <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-InterfaceMessageReference">
Interface Message Reference</a> component whose {<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#property-InterfaceMessageReference.messagelabel">message
label</a>} is "In" and {<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#property-InterfaceMessageReference.direction">direction</a>}
is "in"</p>
</li>
<li>
<p>received from some node N</p>
</li>
</ul>
</li>
<li>
<p>A message:</p>
<ul>
<li>
<p>indicated by a <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-InterfaceMessageReference">
Interface Message Reference</a> component whose {<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#property-InterfaceMessageReference.messagelabel">message
label</a>} is "Out" and {<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#property-InterfaceMessageReference.direction">direction</a>}
is "out"</p>
</li>
<li>
<p>sent to node N</p>
</li>
</ul>
</li>
</ol>
<p><span id="InOutFaults-2016" class="test-assertion-tr">The
<code>in-out</code> message exchange pattern uses the rule <a href=
"#fault-replacement"><strong>2.2.1 Fault Replaces Message
propagation rule</strong></a>.<sup><a href=
"#InOutFaults-2016-summary" title=
"Link to assertion InOutFaults-2016 summary"></a></sup></span></p>
<p>An operation using this message exchange pattern has a {<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#property-InterfaceOperation.messageexchangepattern">message
exchange pattern</a>} property with the value
"http://www.w3.org/ns/wsdl/in-out".</p>
</div>
</div>
<div class="div2">
<h3><a name="mep-sec-sec" id="mep-sec-sec"></a>2.4 Security
Considerations</h3>
<p>Note that many of the message exchange patterns defined above
describe responses to an initial message (either a normal response
message or a fault.)</p>
<p>Such responses can be used in attempts to disrupt, attack, or
map a network, host, or services. When such responses are directed
to an address other than that originating the initial message, the
source of an attack can be obscured, or blame laid on a third
party, or denial-of-service attacks can be enabled or
exacerbated.</p>
<p>Security mechanisms addressing such attacks can prevent the
delivery of response messages to the receiving node. Conformance to
the message exchange pattern is measured prior to the application
of these security mechanisms.</p>
</div>
</div>
<div class="div1">
<h2><a name="ext" id="ext"></a>3. Predefined Extensions</h2>
<div class="div2">
<h3><a name="safety" id="safety"></a>3.1 Operation safety</h3>
<p>This section defines an extension to WSDL 2.0 [<cite><a href=
"#WSDL-PART1">WSDL 2.0 Core Language</a></cite>] that allows
marking an operation as a safe interaction, as defined in <a href=
"http://www.w3.org/TR/2004/REC-webarch-20041215/#safe-interaction">section
3.4. Safe Interactions</a> of [<cite><a href="#webarch">Web
Architecture</a></cite>].</p>
<p>This extension MAY be used for setting defaults in bindings,
such as in the HTTP binding (see <a href=
"#http-operation-decl-mapping"><strong>6.5.5 Mapping from XML
Representation to Component Properties</strong></a>).</p>
<div class="div3">
<h4><a name="safety-decl-relate" id="safety-decl-relate"></a>3.1.1
Relationship to WSDL Component Model</h4>
<p>The safety extension adds the following property to the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-InterfaceOperation">
Interface Operation</a> component model (defined in [<cite><a href=
"#WSDL-PART1">WSDL 2.0 Core Language</a></cite>]):</p>
<ul>
<li>
<p>{<a name="property-InterfaceOperation.safe" id=
"property-InterfaceOperation.safe">safe</a>} REQUIRED. An
<em>xs:boolean</em> indicating whether the operation is asserted to
be safe for users to invoke. If this property is "false", then no
assertion has been made about the safety of the operation, thus the
operation MAY or MAY NOT be safe. <span id="OperationSafety-2027"
class="test-assertion-tr">However, an operation SHOULD be marked
safe if it meets the criteria for a safe interaction defined in
Section 3.4 of [<cite><a href="#webarch">Web
Architecture</a></cite>].<sup><a href=
"#OperationSafety-2027-summary" title=
"Link to assertion OperationSafety-2027 summary"></a></sup></span></p>
</li>
</ul>
</div>
<div class="div3">
<h4><a name="safety-decl-xml" id="safety-decl-xml"></a>3.1.2 XML
Representation</h4>
<div class="exampleInner">
<pre xml:space="preserve">
&lt;description&gt;
&lt;interface&gt;
&lt;operation name="<em>xs:NCName</em>" pattern="<em>xs:anyURI</em>"
<strong>wsdlx:safe</strong>="<em>xs:boolean</em>"? &gt;
&lt;/operation&gt;
&lt;/interface&gt;
&lt;/description&gt;
</pre></div>
<p>The XML representation for the safety extension is an
<em>attribute information item</em> with the following Infoset
properties:</p>
<ul>
<li>
<p><span id="OperationSafety-2028" class="test-assertion-tr">An
OPTIONAL <code>safe</code> <em>attribute information item</em> with
the following Infoset properties:<sup><a href=
"#OperationSafety-2028-summary" title=
"Link to assertion OperationSafety-2028 summary"></a></sup></span></p>
<ul>
<li>
<p>A [local name] of <code>safe</code></p>
</li>
<li>
<p>A [namespace name] of "http://www.w3.org/ns/wsdl-extensions"</p>
</li>
<li>
<p>A type of <em>xs:boolean</em></p>
</li>
</ul>
</li>
</ul>
</div>
<div class="div3">
<h4><a name="safety-decl-mapping" id=
"safety-decl-mapping"></a>3.1.3 Mapping from XML Representation to
Component Properties</h4>
<p>See <a href="#tab_safety_Mapping">Table 3-1</a>.</p>
<a name="tab_safety_Mapping" id="tab_safety_Mapping"></a>
<table border="1">
<caption>Table 3-1. Mapping from XML Representation to Interface
Operation component Extension Properties</caption>
<tbody>
<tr>
<th rowspan="1" colspan="1">Property</th>
<th rowspan="1" colspan="1">Value</th>
</tr>
<tr>
<td rowspan="1" colspan="1">{<a href=
"#property-InterfaceOperation.safe">safe</a>}</td>
<td rowspan="1" colspan="1">The actual value of the
<code>safe</code> <em>attribute information item</em>, if present;
otherwise the value "false".</td>
</tr>
</tbody>
</table>
<br /></div>
</div>
</div>
<div class="div1">
<h2><a name="styles" id="styles"></a>4. Predefined Operation
Styles</h2>
<p>This section defines <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#InterfaceOperationStyle">
operation styles</a> that can be used to place constraints on
<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-InterfaceOperation">
Interface Operation</a> components, in particular with respect to
the format of the messages they refer to. The serialization formats
defined in section <a href="#_http_serialization"><strong>6.8
Serialization Format of Instance Data</strong></a> require bound
<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-InterfaceOperation">
Interface Operation</a> components to have one or more of the
styles defined in this section.</p>
<div class="div2">
<h3><a name="RPCStyle" id="RPCStyle"></a>4.1 RPC Style</h3>
<p>The RPC style is selected by including the value
"http://www.w3.org/ns/wsdl/style/rpc" in the {<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#property-InterfaceOperation.style">style</a>}
property of an <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-InterfaceOperation">
Interface Operation</a> component.</p>
<p>An <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-InterfaceOperation">
Interface Operation</a> component conforming to the RPC style MUST
obey the constraints listed further below. Also, if the
<code>wrpc:signature</code> extension is engaged simultaneously,
the corresponding <em>attribute information item</em> MUST be valid
according to the schema for the extension and additionally MUST
obey the constraints listed in <a href=
"#InterfaceOperation_RPC_Signature_Definition"><strong>4.1.1
wrpc:signature Extension</strong></a> and <a href=
"#InterfaceOperation_RPC_Signature_XMLRep"><strong>4.1.2 XML
Representation of the wrpc:signature Extension</strong></a>.</p>
<p>Furthermore, the associated messages MUST conform to the rules
below, described using XML Schema [<cite><a href="#XMLSchemaP1">XML
Schema Structures</a></cite>]. Note that operations containing
messages described by other type systems may also indicate use of
the RPC style, as long as they are constructed in such a way as to
follow these rules.</p>
<p><span id="RPCStyle-2029" class="test-assertion-tr">If the RPC
style is used by an <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-InterfaceOperation">
Interface Operation</a> component then its {<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#property-InterfaceOperation.messageexchangepattern">message
exchange pattern</a>} property MUST have the value either
"http://www.w3.org/ns/wsdl/in-only" or
"http://www.w3.org/ns/wsdl/in-out".<sup><a href=
"#RPCStyle-2029-summary" title=
"Link to assertion RPCStyle-2029 summary"></a></sup></span></p>
<p>If the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-InterfaceOperation">
Interface Operation</a> component uses a {<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#property-InterfaceOperation.messageexchangepattern">message
exchange pattern</a>} for which there is no output element, i.e.
"http://www.w3.org/ns/wsdl/in-only", then the conditions stated
below that refer to output elements MUST be considered to be
implicitly satisfied.</p>
<ul>
<li>
<p><span id="RPCStyle-2030" class="test-assertion-tr">The value of
the {<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#property-InterfaceMessageReference.messagecontentmodel">message
content model</a>} property for the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-InterfaceMessageReference">
Interface Message Reference</a> components of the {<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#property-InterfaceOperation.interfacemessagereferences">interface
message references</a>} property MUST be "#element".<sup><a href=
"#RPCStyle-2030-summary" title=
"Link to assertion RPCStyle-2030 summary"></a></sup></span></p>
</li>
<li>
<p><span id="RPCStyle-2031" class="test-assertion-tr">The content
model of input and output {<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#property-InterfaceMessageReference.elementdeclaration">element
declaration</a>} elements MUST be defined using a complex type that
contains a sequence from XML Schema.<sup><a href=
"#RPCStyle-2031-summary" title=
"Link to assertion RPCStyle-2031 summary"></a></sup></span></p>
</li>
<li>
<p><span id="RPCStyle-2032" class="test-assertion-tr">The input
sequence MUST only contain elements and element
wildcards.<sup><a href="#RPCStyle-2032-summary" title=
"Link to assertion RPCStyle-2032 summary"></a></sup></span> It
MUST NOT contain other structures such as <code>xs:choice</code>.
<span id="RPCStyle-2033" class="test-assertion-tr">The input
sequence MUST NOT contain more than one element
wildcard.<sup><a href="#RPCStyle-2033-summary" title=
"Link to assertion RPCStyle-2033 summary"></a></sup></span>
<span id="RPCStyle-2034" class="test-assertion-tr">The element
wildcard, if present, MUST appear after any elements.<sup><a href=
"#RPCStyle-2034-summary" title=
"Link to assertion RPCStyle-2034 summary"></a></sup></span></p>
</li>
<li>
<p><span id="RPCStyle-2035" class="test-assertion-tr">The output
sequence MUST only contain elements.<sup><a href=
"#RPCStyle-2035-summary" title=
"Link to assertion RPCStyle-2035 summary"></a></sup></span> It
MUST NOT contain other structures such as
<code>xs:choice</code>.</p>
</li>
<li>
<p><span id="RPCStyle-2036" class="test-assertion-tr">Both the
input and output sequences MUST contain only local element
children.<sup><a href="#RPCStyle-2036-summary" title=
"Link to assertion RPCStyle-2036 summary"></a></sup></span> Note
that these child elements MAY contain the following attributes:
<code>nillable</code>, <code>minOccurs</code> and
<code>maxOccurs</code>.</p>
</li>
<li>
<p><span id="RPCStyle-2037" class="test-assertion-tr">The local
name of input element's QName MUST be the same as the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-InterfaceOperation">
Interface Operation</a> component's name.<sup><a href=
"#RPCStyle-2037-summary" title=
"Link to assertion RPCStyle-2037 summary"></a></sup></span></p>
</li>
<li>
<p><span id="RPCStyle-2038" class="test-assertion-tr">Input and
output elements MUST both be in the same namespace.<sup><a href=
"#RPCStyle-2038-summary" title=
"Link to assertion RPCStyle-2038 summary"></a></sup></span></p>
</li>
<li>
<p><span id="RPCStyle-2039" class="test-assertion-tr">The complex
type that defines the body of an input or an output element MUST
NOT contain any local attributes.<sup><a href=
"#RPCStyle-2039-summary" title=
"Link to assertion RPCStyle-2039 summary"></a></sup></span>
Extension attributes are allowed for purposes of managing the
message infrastructure (e.g. adding identifiers to facilitate
digitally signing the contents of the message). They must not be
considered as part of the application data that is conveyed by the
message. Therefore, they are never included in an RPC signature
(see <a href=
"#InterfaceOperation_RPC_Signature_Definition"><strong>4.1.1
wrpc:signature Extension</strong></a>).</p>
</li>
<li>
<p><span id="RPCStyle-2040" class="test-assertion-tr">If elements
with the same qualified name appear as children of both the input
and output elements, then they MUST both be declared using the same
named type.<sup><a href="#RPCStyle-2040-summary" title=
"Link to assertion RPCStyle-2040 summary"></a></sup></span></p>
</li>
<li>
<p><span id="RPCStyle-2041" class="test-assertion-tr">The input or
output sequence MUST NOT contain multiple children elements
declared with the same name.<sup><a href="#RPCStyle-2041-summary"
title=
"Link to assertion RPCStyle-2041 summary"></a></sup></span></p>
</li>
</ul>
<div class="div3">
<h4><a name="InterfaceOperation_RPC_Signature_Definition" id=
"InterfaceOperation_RPC_Signature_Definition"></a>4.1.1
<code>wrpc:signature</code> Extension</h4>
<p>The <code>wrpc:signature</code> extension <em>attribute
information item</em> MAY be used in conjunction with the RPC style
to describe the exact signature of the function represented by an
operation that uses the RPC style.</p>
<p>When present, the <code>wrpc:signature</code> extension
contributes the following property to the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-InterfaceOperation">
Interface Operation</a> component it is applied to:</p>
<ul>
<li>
<p>{<a name="property-InterfaceOperation.rpcsignature" id=
"property-InterfaceOperation.rpcsignature">rpc signature</a>}
<span id="WRPC-2042" class="test-assertion-tr">OPTIONAL, but MUST
be present when the style is RPC<sup><a href="#WRPC-2042-summary"
title="Link to assertion WRPC-2042 summary"></a></sup></span>. A
list of pairs <em>(q, t)</em> whose first component is of type
<em>xs:QName</em> and whose second component is of type
<em>xs:token</em>. <span id="WRPC-2043" class=
"test-assertion-tr">Values for the second component MUST be chosen
among the following four: "#in", "#out", "#inout"
"#return".<sup><a href="#WRPC-2043-summary" title=
"Link to assertion WRPC-2043 summary"></a></sup></span></p>
</li>
</ul>
<p>The value of the {<a href=
"#property-InterfaceOperation.rpcsignature">rpc signature</a>}
property MUST satisfy the following conditions:</p>
<ul>
<li>
<p><span id="WRPC-2044" class="test-assertion-tr">The value of the
first component of each pair <em>(q, t)</em> MUST be unique within
the list.<sup><a href="#WRPC-2044-summary" title=
"Link to assertion WRPC-2044 summary"></a></sup></span></p>
</li>
<li>
<p><span id="WRPC-2045" class="test-assertion-tr">For each child
element of the input and output messages of the operation, a pair
<em>(q, t)</em>, whose first component <em>q</em> is equal to the
qualified name of that element, MUST be present in the list, with
the caveat that elements that appear with cardinality greater than
one MUST be treated as a single element.<sup><a href=
"#WRPC-2045-summary" title=
"Link to assertion WRPC-2045 summary"></a></sup></span></p>
</li>
<li>
<p><span id="WRPC-2046" class="test-assertion-tr">For each pair
<em>(q, #in)</em>, there MUST be a child element of the input
element with a name of <em>q</em>. There MUST NOT be a child
element of the output element with the name of
<em>q</em>.<sup><a href="#WRPC-2046-summary" title=
"Link to assertion WRPC-2046 summary"></a></sup></span></p>
</li>
<li>
<p><span id="WRPC-2047" class="test-assertion-tr">For each pair
<em>(q, #out)</em>, there MUST be a child element of the output
element with a name of <em>q</em>. There MUST NOT be a child
element of the input element with the name of
<em>q</em>.<sup><a href="#WRPC-2047-summary" title=
"Link to assertion WRPC-2047 summary"></a></sup></span></p>
</li>
<li>
<p><span id="WRPC-2048" class="test-assertion-tr">For each pair
<em>(q, #inout)</em>, there MUST be a child element of the input
element with a name of <em>q</em>. There MUST also be a child
element of the output element with the name of
<em>q</em>.<sup><a href="#WRPC-2048-summary" title=
"Link to assertion WRPC-2048 summary"></a></sup></span></p>
</li>
<li>
<p><span id="WRPC-2049" class="test-assertion-tr">For each pair
<em>(q, #return)</em>, there MUST be a child element of the output
element with a name of <em>q</em>. There MUST NOT be a child
element of the input element with the name of
<em>q</em>.<sup><a href="#WRPC-2049-summary" title=
"Link to assertion WRPC-2049 summary"></a></sup></span></p>
</li>
</ul>
<p>The function signature defined by a <code>wrpc:signature</code>
extension is determined as follows:</p>
<ol class="enumar">
<li>
<p>Start with the value of the {<a href=
"#property-InterfaceOperation.rpcsignature">rpc signature</a>}
property, a (possibly empty) list of pairs of this form:</p>
<p>&#160;&#160;&#160;&#160;<em>[(q0, t0), (q1, t1), ...]</em></p>
</li>
<li>
<p>Filter the elements of this list into two lists, the first one
<em>(L1)</em> comprising pairs whose <em>t</em> component is one of
<em>{#in, #out, #inout}</em>, the second <em>(L2)</em> pairs whose
<em>t</em> component is <em>#return</em>. During the composition of
<em>L1</em> and <em>L2</em>, the relative order of members in the
original list MUST be preserved.</p>
<p>For ease of visualization, let's denote the two lists as:</p>
<p>&#160;&#160;&#160;&#160;(L1)&#160;&#160;&#160;&#160;<em>[(a0,
u0), (a1, u1), ...]</em></p>
<p>and</p>
<p>&#160;&#160;&#160;&#160;(L2)&#160;&#160;&#160;&#160;<em>[(r0,
#return), (r1, #return), ...]</em></p>
<p>respectively.</p>
</li>
<li>
<p>Then, if the input sequence ends with an element wildcard, the
formal signature of the function is:</p>
<p>&#160;&#160;&#160;&#160;<em>f([d0] a0, [d1] a1, ..., rest) =&gt;
(r0, r1, ...)</em></p>
<p>where <em>rest</em> is a formal parameter representing the
elements in the input message matched by the element wildcard.</p>
<p>Otherwise the formal signature of the function is:</p>
<p>&#160;&#160;&#160;&#160;<em>f([d0] a0, [d1] a1, ...) =&gt; (r0,
r1, ...)</em></p>
<p>i.e.:</p>
<ul>
<li>
<p>the list of formal arguments to the function is <em>[a0, a1,
...]</em>;</p>
</li>
<li>
<p>the direction <em>d</em> of each formal argument <em>a</em> is
one of <em>[in]</em>, <em>[out]</em>, <em>[inout]</em>, determined
according to the value of its corresponding <em>u</em> token;</p>
</li>
<li>
<p>the list of formal return parameters of the function is <em>[r0,
r1, ...]</em>;</p>
</li>
<li>
<p>each formal argument and formal return parameter is typed
according to the type of the child element identified by it (unique
per the conditions given above).</p>
</li>
</ul>
</li>
</ol>
<div class="note">
<p class="prefix"><strong>Note:</strong></p>
<p>The <code>wrpc:signature</code> extension allows the
specification of multiple return values for an operation. Several
popular programming languages support multiple return values for a
function. Moreover, for languages which do not, the burden on
implementers should be small, as typically multiple return values
will be mapped to a single return value of a structure type (or its
closest language-specific equivalent).</p>
</div>
</div>
<div class="div3">
<h4><a name="InterfaceOperation_RPC_Signature_XMLRep" id=
"InterfaceOperation_RPC_Signature_XMLRep"></a>4.1.2 XML
Representation of the <code>wrpc:signature</code> Extension</h4>
<p>The XML representation for the RPC signature extension is an
<em>attribute information item</em> with the following Infoset
properties:</p>
<ul>
<li>
<p>A [local name] of <code>signature</code></p>
</li>
<li>
<p>A [namespace name] of "http://www.w3.org/ns/wsdl/rpc"</p>
</li>
</ul>
<p>The type of the <code>signature</code> <em>attribute information
item</em> is a list type whose item type is the union of the
<em>xs:QName</em> type and the subtype of the <em>xs:token</em>
type restricted to the following four values: "#in", "#out",
"#inout", "#return". See <a href="#rpc-signature-xsd">Example
4-1</a> for an excerpt from the normative schema definition of this
type.</p>
<p><span id="WRPC-2050" class="test-assertion-tr">Additionally,
each even-numbered item (0, 2, 4, ...) in the list MUST be of type
<em>xs:QName</em> and each odd-numbered item (1, 3, 5, ...) in the
list MUST be of the subtype of <em>xs:token</em> described in the
previous paragraph.<sup><a href="#WRPC-2050-summary" title=
"Link to assertion WRPC-2050 summary"></a></sup></span></p>
<div class="exampleOuter">
<p style="text-align: left" class="exampleHead"><a name=
"rpc-signature-xsd" id="rpc-signature-xsd"></a><em><span>Example
4-1.</span> Definition of the wrpc:signature extension</em></p>
<div class="exampleInner">
<pre xml:space="preserve">
&lt;xs:attribute name="signature" type="wrpc:signatureType"/&gt;
&lt;xs:simpleType name="signatureType"&gt;
&lt;xs:list itemType="wrpc:signatureItemType"/&gt;
&lt;/xs:simpleType&gt;
&lt;xs:simpleType name="signatureItemType"&gt;
&lt;xs:union memberTypes="xs:QName wrpc:directionToken"/&gt;
&lt;/xs:simpleType&gt;
&lt;xs:simpleType name="directionToken"&gt;
&lt;xs:restriction base="xs:token"&gt;
&lt;xs:enumeration value="#in"/&gt;
&lt;xs:enumeration value="#out"/&gt;
&lt;xs:enumeration value="#inout"/&gt;
&lt;xs:enumeration value="#return"/&gt;
&lt;/xs:restriction&gt;
&lt;/xs:simpleType&gt;
</pre></div>
</div>
</div>
<div class="div3">
<h4><a name="InterfaceOperation_RPC_Signature_Mapping" id=
"InterfaceOperation_RPC_Signature_Mapping"></a>4.1.3
<code>wrpc:signature</code> Extension Mapping To Properties of an
Interface Operation component</h4>
<p>A <code>wrpc:signature</code> extension <em>attribute
information item</em> is mapped to the following property of the
<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-InterfaceOperation">
Interface Operation</a> component defined by its [owner].</p>
<a name="tab_InterfaceOperation_RPC_Signature_Mapping" id=
"tab_InterfaceOperation_RPC_Signature_Mapping"></a>
<table border="1">
<caption>Table 4-1. Mapping of a <code>wrpc:signature</code>
Extension to Interface Operation component Properties</caption>
<col width="20%" span="1" />
<col width="80%" span="1" />
<tbody>
<tr>
<th rowspan="1" colspan="1">Property</th>
<th rowspan="1" colspan="1">Value</th>
</tr>
<tr>
<td rowspan="1" colspan="1">{<a href=
"#property-InterfaceOperation.rpcsignature">rpc signature</a>}</td>
<td rowspan="1" colspan="1">A list of <em>(xs:QName, xs:token)</em>
pairs formed by grouping the items present in the actual value of
the <code>wrpc:signature</code> <em>attribute information item</em>
in the order in which they appear there.</td>
</tr>
</tbody>
</table>
<br /></div>
</div>
<div class="div2">
<h3><a name="_operation_iri_style" id=
"_operation_iri_style"></a>4.2 IRI Style</h3>
<p>The IRI style is selected by including the value
"http://www.w3.org/ns/wsdl/style/iri" in the {<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#property-InterfaceOperation.style">style</a>}
property of an <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-InterfaceOperation">
Interface Operation</a> component.</p>
<p><span id="IRIStyle-2051" class="test-assertion-tr">When using
this style, the value of the {<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#property-InterfaceMessageReference.messagecontentmodel">message
content model</a>} property of the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-InterfaceMessageReference">
Interface Message Reference</a> component corresponding to the
initial message of the message exchange pattern MUST be
"#element".<sup><a href="#IRIStyle-2051-summary" title=
"Link to assertion IRIStyle-2051 summary"></a></sup></span></p>
<p>Use of this value indicates that XML Schema [<cite><a href=
"#XMLSchemaP1">XML Schema Structures</a></cite>] was used to define
the schema of the {<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#property-InterfaceMessageReference.elementdeclaration">element
declaration</a>} property of the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-InterfaceMessageReference">
Interface Message Reference</a> component of the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-InterfaceOperation">
Interface Operation</a> component corresponding to the initial
message of the message exchange pattern. This schema MUST adhere to
the rules below:</p>
<ul>
<li>
<p>The content model of this element is defined using a complex
type that contains a sequence from XML Schema.</p>
</li>
<li>
<p><span id="IRIStyle-2052" class="test-assertion-tr">The sequence
MUST only contain elements.<sup><a href="#IRIStyle-2052-summary"
title="Link to assertion IRIStyle-2052 summary"></a></sup></span>
It MUST NOT contain other structures such as
<code>xs:choice</code>. There are no occurrence constraints on the
sequence.</p>
</li>
<li>
<p><span id="IRIStyle-2053" class="test-assertion-tr">The sequence
MUST contain only local element children.<sup><a href=
"#IRIStyle-2053-summary" title=
"Link to assertion IRIStyle-2053 summary"></a></sup></span> Note
these child elements can contain the <code>nillable</code>
attribute.</p>
</li>
<li>
<p><span id="IRIStyle-2054" class="test-assertion-tr">The localPart
of the element's QName MUST be the same as the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-InterfaceOperation">
Interface Operation</a> component's {<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#property-InterfaceOperation.name">name</a>}.<sup><a href="#IRIStyle-2054-summary"
title=
"Link to assertion IRIStyle-2054 summary"></a></sup></span></p>
</li>
<li>
<p><span id="IRIStyle-2055" class="test-assertion-tr">The complex
type that defines the body of the element or its children elements
MUST NOT contain any attributes.<sup><a href=
"#IRIStyle-2055-summary" title=
"Link to assertion IRIStyle-2055 summary"></a></sup></span></p>
</li>
<li>
<p><span id="IRIStyle-2056" class="test-assertion-tr">The children
elements of the sequence MUST derive from
<code>xs:simpleType</code>, and MUST NOT be of the type or derive
from <code>xs:QName</code>, <code>xs:NOTATION</code>,
<code>xs:hexBinary</code> or
<code>xs:base64Binary</code>.<sup><a href="#IRIStyle-2056-summary"
title=
"Link to assertion IRIStyle-2056 summary"></a></sup></span></p>
</li>
</ul>
</div>
<div class="div2">
<h3><a name="_operation_multipart_style" id=
"_operation_multipart_style"></a>4.3 Multipart style</h3>
<p>The Multipart style is selected by including the value
"http://www.w3.org/ns/wsdl/style/multipart" in the {<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#property-InterfaceOperation.style">style</a>}
property of an <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-InterfaceOperation">
Interface Operation</a> component.</p>
<p><span id="MultipartStyle-2057" class="test-assertion-tr">When
using this style, the value of the {<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#property-InterfaceMessageReference.messagecontentmodel">message
content model</a>} property of the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-InterfaceMessageReference">
Interface Message Reference</a> component corresponding to the
initial message of the message exchange pattern MUST be
"#element".<sup><a href="#MultipartStyle-2057-summary" title=
"Link to assertion MultipartStyle-2057 summary"></a></sup></span></p>
<p>Use of this value indicates that XML Schema [<cite><a href=
"#XMLSchemaP1">XML Schema Structures</a></cite>] was used to define
the schema of the {<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#property-InterfaceMessageReference.elementdeclaration">element
declaration</a>} property of the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-InterfaceMessageReference">
Interface Message Reference</a> component of the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-InterfaceOperation">
Interface Operation</a> component corresponding to the initial
message of the message exchange pattern. This schema MUST adhere to
the rules below:</p>
<ul>
<li>
<p>The content model of this element is defined using a complex
type that contains a sequence from XML Schema.</p>
</li>
<li>
<p><span id="MultipartStyle-2058" class="test-assertion-tr">The
sequence MUST only contain elements.<sup><a href=
"#MultipartStyle-2058-summary" title=
"Link to assertion MultipartStyle-2058 summary"></a></sup></span>
It MUST NOT contain other structures such as
<code>xs:choice</code>.</p>
</li>
<li>
<p><span id="MultipartStyle-2059" class="test-assertion-tr">The
sequence MUST contain only local element children.<sup><a href=
"#MultipartStyle-2059-summary" title=
"Link to assertion MultipartStyle-2059 summary"></a></sup></span>
<span id="MultipartStyle-2060" class="test-assertion-tr">The
attributes <code>minOccurs</code> and <code>maxOccurs</code> for
these child elements MUST have a value <code>1</code>.<sup><a href=
"#MultipartStyle-2060-summary" title=
"Link to assertion MultipartStyle-2060 summary"></a></sup></span>
Note these child elements can contain the <code>nillable</code>
attribute.</p>
</li>
<li>
<p><span id="MultipartStyle-2061" class="test-assertion-tr">The
localPart of the element's QName MUST be the same as the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-InterfaceOperation">
Interface Operation</a> component's {<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#property-InterfaceOperation.name">name</a>}.<sup><a href="#MultipartStyle-2061-summary"
title=
"Link to assertion MultipartStyle-2061 summary"></a></sup></span></p>
</li>
<li>
<p><span id="MultipartStyle-2062" class="test-assertion-tr">The
complex type that defines the body of the element or its children
elements MUST NOT contain any attributes.<sup><a href=
"#MultipartStyle-2062-summary" title=
"Link to assertion MultipartStyle-2062 summary"></a></sup></span></p>
</li>
<li>
<p><span id="MultipartStyle-2063" class="test-assertion-tr">The
sequence MUST NOT contain multiple children element declared with
the same local name.<sup><a href="#MultipartStyle-2063-summary"
title=
"Link to assertion MultipartStyle-2063 summary"></a></sup></span></p>
</li>
</ul>
</div>
</div>
<div class="div1">
<h2><a name="soap-binding" id="soap-binding"></a>5. WSDL SOAP
Binding Extension</h2>
<p>The SOAP binding extension described in this section is an
extension for [<cite><a href="#WSDL-PART1">WSDL 2.0 Core
Language</a></cite>] to enable Web services applications to use
SOAP. This binding extension is SOAP version independent ("1.2" as
well as other versions) and extends WSDL 2.0 by adding properties
to the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-Binding">Binding</a>
component, and its related components, as defined in
[<cite><a href="#WSDL-PART1">WSDL 2.0 Core Language</a></cite>]. In
addition, an XML Infoset representation for these additional
properties is provided, along with a mapping from that
representation to the various component properties.</p>
<p>As allowed in [<cite><a href="#WSDL-PART1">WSDL 2.0 Core
Language</a></cite>], a <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-Binding">Binding</a>
component can exist without indicating a specific <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-Interface">
Interface</a> component that it applies to. In this case, no
<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingOperation">
Binding Operation</a> or <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingFault">
Binding Fault</a> component can be present in the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-Binding">Binding</a>
component.</p>
<p>The SOAP binding extension is designed with the objective of
minimizing what needs to be explicitly declared for common cases.
This is achieved by defining a set of default rules that affect all
<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-InterfaceOperation">
Interface Operation</a> components of an <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-Interface">
Interface</a> component to which the SOAP binding extension is
applied, unless specifically overridden by a <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingOperation">
Binding Operation</a> component. Thus, if a given <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-InterfaceOperation">
Interface Operation</a> component is not referred to specifically
by a <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingOperation">
Binding Operation</a> component, then all the default rules apply
to that <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-InterfaceOperation">
Interface Operation</a> component. As a result, in accordance with
the requirements of [<cite><a href="#WSDL-PART1">WSDL 2.0 Core
Language</a></cite>], all operations of an <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-Interface">
Interface</a> component will be bound by this binding
extension.</p>
<p><strong>Note:</strong> As in other parts of this specification,
one could have done away with "default" properties at the component
model level, and have set the value for the corresponding
non-default properties in the XML mapping section. However, default
properties are required for interface-less binding. Indeed, an
interface-less binding has no means to set the non-default version
of the property at the operation-level, since there is precisely no
operation (there is not even an interface). Hence the mapping needs
to be done elsewhere.</p>
<p>A subset of the HTTP properties specified in the HTTP binding
extension defined in section <a href="#http-binding"><strong>6.
WSDL HTTP Binding Extension</strong></a> are present in a SOAP
binding when the SOAP binding uses HTTP as the underlying protocol,
for example, when the value of the {<a href=
"#property-Binding.soapunderlyingprotocol">soap underlying
protocol</a>} property of the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-Binding">Binding</a>
component is "http://www.w3.org/2003/05/soap/bindings/HTTP/".
<span id="SOAPHTTPProperties-2064" class="test-assertion-tr">These
properties MUST NOT be used unless the underlying protocol is
HTTP.<sup><a href="#SOAPHTTPProperties-2064-summary" title=
"Link to assertion SOAPHTTPProperties-2064 summary"></a></sup></span>
The allowed properties are the ones that describe the underlying
protocol (HTTP):</p>
<ul>
<li>
<p>{<a href="#property-BindingOperation.httplocation">http
location</a>} and {<a href=
"#property-BindingOperation.httplocationignoreuncited">http
location ignore uncited</a>} on <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingOperation">
Binding Operation</a> components, as defined in <a href=
"#http-operation-decl"><strong>6.5 Binding Operations</strong></a>
and <a href="#_http_urlencoded_stop"><strong>6.8.2.2.2 Controlling
the serialization of the query string in the request
IRI</strong></a>, respectively.</p>
</li>
<li>
<p>{<a href="#property-BindingMessageReference.httpheaders">http
headers</a>} on <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingMessageReference">
Binding Message Reference</a> and <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingFault">
Binding Fault</a> components, as defined in <a href=
"#http-headers-decl"><strong>6.6 Declaring HTTP
Headers</strong></a></p>
</li>
<li>
<p>{<a href=
"#property-Binding.httpqueryparameterseparatordefault">http query
parameter separator default</a>} on <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-Binding">Binding</a>
components, {<a href=
"#property-BindingOperation.httpqueryparameterseparator">http query
parameter separator</a>} on <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingOperation">
Binding Operation</a> components, as defined in <a href=
"#http-operation-decl-relate"><strong>6.5.2 Relationship to WSDL
Component Model</strong></a></p>
</li>
<li>
<p>{<a href="#property-Binding.httpcontentencodingdefault">http
content encoding default</a>} on <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-Binding">Binding</a>
and <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingOperation">
Binding Operation</a> components, {<a href=
"#property-BindingMessageReference.httpcontentencoding">http
content encoding</a>} on <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingMessageReference">
Binding Message Reference</a> and <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingFault">
Binding Fault</a> components, as defined in <a href=
"#http-content-encoding-decl"><strong>6.9 Specifying the Content
Encoding</strong></a></p>
</li>
<li>
<p>{<a href="#property-Binding.httpcookies">http cookies</a>} on
<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-Binding">Binding</a>
components, as defined in <a href="#http-cookies-decl"><strong>6.10
Specifying the Use of HTTP Cookies</strong></a>.</p>
</li>
<li>
<p>{<a href="#property-Endpoint.httpauthenticationscheme">http
authentication scheme</a>} and {<a href=
"#property-Endpoint.httpauthenticationrealm">http authentication
realm</a>} on <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-Endpoint">Endpoint</a>
components, as defined in <a href="#http-auth-decl"><strong>6.11
Specifying HTTP Access Authentication</strong></a></p>
</li>
</ul>
<div class="div2">
<h3><a name="soap-syntax" id="soap-syntax"></a>5.1 SOAP Syntax
Summary (Non-Normative)</h3>
<div class="exampleInner">
<pre xml:space="preserve">
&lt;description&gt;
&lt;binding name="<em>xs:NCName</em>" interface="<em>xs:QName</em>"?
type="<em>http://www.w3.org/ns/wsdl/soap</em>"
whttp:queryParameterSeparatorDefault="<em>xs:string</em>"??
whttp:contentEncodingDefault="<em>xs:string</em>"??
whttp:cookies="<em>xs:boolean</em>"?
<strong>wsoap:version</strong>="<em>xs:string</em>"?
<strong>wsoap:protocol</strong>="<em>xs:anyURI</em>"
<strong>wsoap:mepDefault</strong>="<em>xs:anyURI</em>"? &gt;
&lt;documentation /&gt;*
&lt;<strong>wsoap:module</strong> ref="<em>xs:anyURI</em>" required="<em>xs:boolean</em>"? &gt;
&lt;documentation /&gt;*
&lt;/<strong>wsoap:module</strong>&gt;*
&lt;fault ref="<em>xs:QName</em>"
<strong>wsoap:code</strong>="<em>union of xs:QName, xs:token</em>"?
<strong>wsoap:subcodes</strong>="<em>union of (list of xs:QName), xs:token</em>"?
whttp:contentEncoding="<em>xs:string</em>"?? &gt;
&lt;documentation /&gt;*
&lt;<strong>wsoap:module</strong> ... /&gt;*
&lt;<strong>wsoap:header</strong> element="<em>xs:QName</em>" mustUnderstand="xs:boolean"?
required="<em>xs:boolean</em>"? &gt;
&lt;documentation /&gt;*
&lt;/<strong>wsoap:header</strong>&gt;*
&lt;whttp:header ... /&gt;*??
&lt;/fault&gt;*
&lt;operation ref="<em>xs:QName</em>"
whttp:location="<em>xs:anyURI</em>"??
whttp:contentEncodingDefault="<em>xs:string</em>"??
whttp:queryParameterSeparator="<em>xs:string</em>"??
whttp:ignoreUncited="<em>xs:boolean</em>"??
<strong>wsoap:mep</strong>="<em>xs:anyURI</em>"?
<strong>wsoap:action</strong>="<em>xs:anyURI</em>"? &gt;
&lt;documentation /&gt;*
&lt;<strong>wsoap:module</strong> ... /&gt;*
&lt;input messageLabel="<em>xs:NCName</em>"?
whttp:contentEncoding="<em>xs:string</em>"?? &gt;
&lt;documentation /&gt;*
&lt;<strong>wsoap:module</strong> ... /&gt;*
&lt;<strong>wsoap:header</strong> ... /&gt;*
&lt;<strong>whttp:header</strong> ... /&gt;*??
&lt;/input&gt;*
&lt;output messageLabel="<em>xs:NCName</em>"?
whttp:contentEncoding="<em>xs:string</em>"?? &gt;
&lt;documentation /&gt;*
&lt;<strong>wsoap:module</strong> ... /&gt;*
&lt;<strong>wsoap:header</strong> ... /&gt;*
&lt;<strong>whttp:header</strong> ... /&gt;*??
&lt;/output&gt;*
&lt;infault ref="<em>xs:QName</em>"
messageLabel="<em>xs:NCName</em>"?&gt;
&lt;documentation /&gt;*
&lt;<strong>wsoap:module</strong> ... /&gt;*
&lt;/infault&gt;*
&lt;outfault ref="<em>xs:QName</em>"
messageLabel="<em>xs:NCName</em>"?&gt;
&lt;documentation /&gt;*
&lt;<strong>wsoap:module</strong> ... /&gt;*
&lt;/outfault&gt;*
&lt;/operation&gt;*
&lt;/binding&gt;
&lt;service&gt;
&lt;endpoint name="<em>xs:NCName</em>" binding="<em>xs:QName</em>" address="<em>xs:anyURI</em>"?
whttp:authenticationScheme="<em>xs:token</em>"??
whttp:authenticationRealm="<em>xs:string</em>"?? &gt;
&lt;documentation /&gt;*
&lt;/endpoint&gt;
&lt;/service&gt;
&lt;/description&gt;
</pre></div>
<div class="note">
<p class="prefix"><strong>Note:</strong></p>
<p>The double question marks ("<code>??</code>") after the
attributes in the <code>whttp</code> namespace indicates that those
optional attributes only make sense when the SOAP binding uses HTTP
as the underlying protocol, for example, when the value of the
<code>wsoap:protocol</code> attribute is
"http://www.w3.org/2003/05/soap/bindings/HTTP/".</p>
</div>
</div>
<div class="div2">
<h3><a name="soap-binding-decl" id="soap-binding-decl"></a>5.2
Identifying the use of the SOAP Binding</h3>
<p>A <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-Binding">Binding</a>
component (defined in [<cite><a href="#WSDL-PART1">WSDL 2.0 Core
Language</a></cite>]) is identified as a SOAP binding by assigning
the value "http://www.w3.org/ns/wsdl/soap" to the {<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#property-Binding.type">type</a>}
property of the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-Binding">Binding</a>
component.</p>
</div>
<div class="div2">
<h3><a name="soap-defaults" id="soap-defaults"></a>5.3 SOAP Binding
Rules</h3>
<ul>
<li>
<p><em>Payload Construction.</em>&#160;<span id="SOAPBinding-2065"
class="test-assertion-tr">When formulating the SOAP envelope to be
transmitted, the contents of the payload (i.e., the contents of the
SOAP Body <em>element information item</em> of the SOAP envelope)
MUST be what is defined by the corresponding <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-InterfaceMessageReference">
Interface Message Reference</a> component.<sup><a href=
"#SOAPBinding-2065-summary" title=
"Link to assertion SOAPBinding-2065 summary"></a></sup></span>
This is further subject to optimization by a feature in use which
affects serialization, such as MTOM [<cite><a href="#MTOM">SOAP
Message Transmission Optimization Mechanism</a></cite>]. The
following binding rules MUST be adhered to:</p>
<ul>
<li>
<p>If the value of the {<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#property-InterfaceMessageReference.messagecontentmodel">message
content model</a>} property of the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-InterfaceMessageReference">
Interface Message Reference</a> component is "#any", then the
payload MAY be any one XML element.</p>
</li>
<li>
<p><span id="SOAPBinding-2066" class="test-assertion-tr">If the
value is "#none", then the payload MUST be empty.<sup><a href=
"#SOAPBinding-2066-summary" title=
"Link to assertion SOAPBinding-2066 summary"></a></sup></span></p>
</li>
<li>
<p><span id="SOAPBinding-2067" class="test-assertion-tr">If the
value is "#element", then the payload MUST be the <em>element
information item</em> identified by the {<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#property-InterfaceMessageReference.elementdeclaration">element
declaration</a>} property of the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-InterfaceMessageReference">
Interface Message Reference</a> component.<sup><a href=
"#SOAPBinding-2067-summary" title=
"Link to assertion SOAPBinding-2067 summary"></a></sup></span></p>
</li>
<li>
<p><span id="SOAPBinding-2068" class="test-assertion-tr">If the
<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-InterfaceMessageReference">
Interface Message Reference</a> component is declared using a
non-XML type system (as considered in the Types section of
[<cite><a href="#WSDL-PART1">WSDL 2.0 Core Language</a></cite>]),
then additional binding rules MUST be defined to indicate how to
map those components into the SOAP envelope.<sup><a href=
"#SOAPBinding-2068-summary" title=
"Link to assertion SOAPBinding-2068 summary"></a></sup></span></p>
</li>
</ul>
<div class="note">
<p class="prefix"><strong>Note:</strong></p>
<p>This SOAP binding extension only allows one single element in
the SOAP body.</p>
</div>
</li>
<li>
<p><em>SOAP Header Construction.</em> If the {<a href=
"#property-BindingMessageReference.soapheaders">soap headers</a>}
property as defined in section <a href=
"#soap-headers-decl"><strong>5.9 Declaring SOAP Header
Blocks</strong></a> exists and is not empty in a <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingMessageReference">
Binding Message Reference</a> or <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingFault">
Binding Fault</a> component, then an <em>element information
item</em> conforming to the element declaration of a <a href=
"#component-SOAPHeaderBlock">SOAP Header Block</a> component's
{<a href="#property-SOAPHeaderBlock.elementdeclaration">element
declaration</a>} property, in the {<a href=
"#property-BindingMessageReference.soapheaders">soap headers</a>}
property, MAY be turned into a SOAP header block for the
corresponding message.</p>
<p>If the value of the <a href="#component-SOAPHeaderBlock">SOAP
Header Block</a> component's {<a href=
"#property-SOAPHeaderBlock.required">required</a>} property is
"true", the inclusion of this SOAP header block is REQUIRED,
otherwise it is OPTIONAL.</p>
<p>And, if the <a href="#component-SOAPHeaderBlock">SOAP Header
Block</a> component's {<a href=
"#property-SOAPHeaderBlock.mustUnderstand">mustUnderstand</a>}
property is present and its value is "true", that particular SOAP
header block MUST be marked with a <code>mustUnderstand</code>
<em>attribute information item</em> with a value of "true" or "1"
as per the SOAP specification.</p>
<p>SOAP header blocks other than the ones declared in the {<a href=
"#property-BindingMessageReference.soapheaders">soap headers</a>}
property may be present at run-time, such as the SOAP header blocks
resulting from SOAP modules declared as explained in section
<a href="#soap-module-decl"><strong>5.8 Declaring SOAP
Modules</strong></a>.</p>
</li>
</ul>
</div>
<div class="div2">
<h3><a name="soap-version" id="soap-version"></a>5.4 Specifying the
SOAP Version</h3>
<div class="div3">
<h4><a name="soap-version-description" id=
"soap-version-description"></a>5.4.1 Description</h4>
<p><span id="SOAPBinding-2069" class="test-assertion-tr">Every SOAP
binding MUST indicate what version of SOAP is in use for the
operations of the interface that this binding applies
to.<sup><a href="#SOAPBinding-2069-summary" title=
"Link to assertion SOAPBinding-2069 summary"></a></sup></span></p>
<p>By default, SOAP 1.2 [<cite><a href="#SOAP12-PART1">SOAP 1.2
Part 1: Messaging Framework (Second Edition)</a></cite>] is
used.</p>
</div>
<div class="div3">
<h4><a name="soap-version-relate" id=
"soap-version-relate"></a>5.4.2 Relationship to WSDL Component
Model</h4>
<p>The SOAP protocol specification adds the following property to
the WSDL component model (as defined in [<cite><a href=
"#WSDL-PART1">WSDL 2.0 Core Language</a></cite>]):</p>
<ul>
<li>
<p>{<a name="property-Binding.soapversion" id=
"property-Binding.soapversion">soap version</a>} REQUIRED. A
<em>xs:string</em>, to the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-Binding">Binding</a>
component.</p>
</li>
</ul>
</div>
<div class="div3">
<h4><a name="soap-version-decl-xml" id=
"soap-version-decl-xml"></a>5.4.3 XML Representation</h4>
<div class="exampleInner">
<pre xml:space="preserve">
&lt;description&gt;
&lt;binding name="<em>xs:NCName</em>" interface="<em>xs:QName</em>"? type="<em>xs:anyURI</em>"
<strong>wsoap:version</strong>="<em>xs:string</em>"? &gt;
...
&lt;/binding&gt;
&lt;/description&gt;
</pre></div>
<p>The XML representation for specifying the SOAP version is an
optional <em>attribute information item</em> with the following
Infoset properties:</p>
<ul>
<li>
<p>A [local name] of <code>version</code></p>
</li>
<li>
<p>A [namespace name] of "http://www.w3.org/ns/wsdl/soap"</p>
</li>
<li>
<p>A type of <em>xs:string</em></p>
</li>
</ul>
</div>
<div class="div3">
<h4><a name="soap-version-decl-mapping" id=
"soap-version-decl-mapping"></a>5.4.4 Mapping from XML
Representation to Component properties</h4>
<p>See <a href="#tab_SOAP_version_Mapping">Table 5-1</a>.</p>
<a name="tab_SOAP_version_Mapping" id=
"tab_SOAP_version_Mapping"></a>
<table border="1">
<caption>Table 5-1. Mapping from XML Representation to Binding
component Extension Properties</caption>
<tbody>
<tr>
<th rowspan="1" colspan="1">Property</th>
<th rowspan="1" colspan="1">Value</th>
</tr>
<tr>
<td rowspan="1" colspan="1">{<a href=
"#property-Binding.soapversion">soap version</a>}</td>
<td rowspan="1" colspan="1">The actual value of the
<code>wsoap:version</code> <em>attribute information item</em>, if
present; otherwise "1.2".</td>
</tr>
</tbody>
</table>
<br /></div>
</div>
<div class="div2">
<h3><a name="soap-protocol" id="soap-protocol"></a>5.5 Specifying
the SOAP Underlying Protocol</h3>
<div class="div3">
<h4><a name="soap-protocol-description" id=
"soap-protocol-description"></a>5.5.1 Description</h4>
<p><span id="SOAPBinding-2070" class="test-assertion-tr">Every SOAP
binding MUST indicate what underlying protocol is in
use.<sup><a href="#SOAPBinding-2070-summary" title=
"Link to assertion SOAPBinding-2070 summary"></a></sup></span></p>
</div>
<div class="div3">
<h4><a name="soap-protocol-relate" id=
"soap-protocol-relate"></a>5.5.2 Relationship to WSDL Component
Model</h4>
<p>The SOAP protocol specification adds the following property to
the WSDL component model (as defined in [<cite><a href=
"#WSDL-PART1">WSDL 2.0 Core Language</a></cite>]):</p>
<ul>
<li>
<p>{<a name="property-Binding.soapunderlyingprotocol" id=
"property-Binding.soapunderlyingprotocol">soap underlying
protocol</a>} REQUIRED. A <em>xs:anyURI</em>, which is an absolute
IRI as defined by [<cite><a href="#RFC3987">IETF RFC
3987</a></cite>], to the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-Binding">Binding</a>
component. This IRI refers to an appropriate SOAP underlying
protocol binding (see SOAP Protocol Binding Framework in
[<cite><a href="#SOAP12-PART1">SOAP 1.2 Part 1: Messaging Framework
(Second Edition)</a></cite>]), which is to be used for any of the
SOAP interactions described by this binding.</p>
</li>
</ul>
</div>
<div class="div3">
<h4><a name="soap-binding-decl-xml" id=
"soap-binding-decl-xml"></a>5.5.3 XML Representation</h4>
<div class="exampleInner">
<pre xml:space="preserve">
&lt;description&gt;
&lt;binding name="<em>xs:NCName</em>" interface="<em>xs:QName</em>"? type="<em>xs:anyURI</em>"
<strong>wsoap:protocol</strong>="<em>xs:anyURI</em>" &gt;
...
&lt;/binding&gt;
&lt;/description&gt;
</pre></div>
<p>The XML representation for specifying the SOAP protocol is a
REQUIRED <em>attribute information item</em> with the following
Infoset properties:</p>
<ul>
<li>
<p>A [local name] of <code>protocol</code></p>
</li>
<li>
<p>A [namespace name] of "http://www.w3.org/ns/wsdl/soap"</p>
</li>
<li>
<p>A type of <em>xs:anyURI</em></p>
</li>
</ul>
</div>
<div class="div3">
<h4><a name="soap-binding-decl-mapping" id=
"soap-binding-decl-mapping"></a>5.5.4 Mapping from XML
Representation to Component Properties</h4>
<p>See <a href="#tab_SOAP_Binding_Mapping">Table 5-2</a>.</p>
<a name="tab_SOAP_Binding_Mapping" id=
"tab_SOAP_Binding_Mapping"></a>
<table border="1">
<caption>Table 5-2. Mapping from XML Representation to Binding
component Extension Properties</caption>
<tbody>
<tr>
<th rowspan="1" colspan="1">Property</th>
<th rowspan="1" colspan="1">Value</th>
</tr>
<tr>
<td rowspan="1" colspan="1">{<a href=
"#property-Binding.soapunderlyingprotocol">soap underlying
protocol</a>}</td>
<td rowspan="1" colspan="1">The actual value of the
<code>wsoap:protocol</code> <em>attribute information
item</em>.</td>
</tr>
</tbody>
</table>
<br /></div>
</div>
<div class="div2">
<h3><a name="soap-fault-decl" id="soap-fault-decl"></a>5.6 Binding
Faults</h3>
<div class="div3">
<h4><a name="soap-fault-decl-description" id=
"soap-fault-decl-description"></a>5.6.1 Description</h4>
<p><span id="SOAPBindingFault-2071" class="test-assertion-tr">For
every <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-InterfaceFault">
Interface Fault</a> component contained in an <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-Interface">
Interface</a> component, a mapping to a SOAP Fault MUST be
described.<sup><a href="#SOAPBindingFault-2071-summary" title=
"Link to assertion SOAPBindingFault-2071 summary"></a></sup></span>
This binding extension specification allows the user to indicate
the SOAP fault code and subcodes that are transmitted for a given
<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-InterfaceFault">
Interface Fault</a> component.</p>
</div>
<div class="div3">
<h4><a name="soap-fault-decl-relate" id=
"soap-fault-decl-relate"></a>5.6.2 Relationship to WSDL Component
Model</h4>
<p>The SOAP Fault binding extension adds the following properties
to the WSDL component model (as defined in [<cite><a href=
"#WSDL-PART1">WSDL 2.0 Core Language</a></cite>]):</p>
<ul>
<li>
<p>{<a name="property-BindingFault.soapfaultcode" id=
"property-BindingFault.soapfaultcode">soap fault code</a>}
REQUIRED. A union of <em>xs:QName</em> and <em>xs:token</em>, to
the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingFault">
Binding Fault</a> component, where:</p>
<ul>
<li>
<p><span id="SOAPBindingFault-2072" class="test-assertion-tr">when
the value of the {<a href="#property-Binding.soapversion">soap
version</a>} is "1.2", the allowed QNames MUST be the ones defined
by [<cite><a href="#SOAP12-PART1">SOAP 1.2 Part 1: Messaging
Framework (Second Edition)</a></cite>], section 5.4.6<sup><a href=
"#SOAPBindingFault-2072-summary" title=
"Link to assertion SOAPBindingFault-2072 summary"></a></sup></span>;</p>
</li>
<li>
<p>the allowed token value is "#any".</p>
</li>
</ul>
<p>The value of this property identifies a possible SOAP fault for
the operations in scope. If the value of this property is "#any",
no assertion is made about the possible value of the SOAP fault
code.</p>
</li>
<li>
<p>{<a name="property-BindingFault.soapfaultsubcodes" id=
"property-BindingFault.soapfaultsubcodes">soap fault subcodes</a>}
REQUIRED. A union of list of <em>xs:QName</em>, and
<em>xs:token</em> where the allowed token value is "#any", to the
<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingFault">
Binding Fault</a> component. The value of this property identifies
one or more subcodes for this SOAP fault. The list of subcodes is
the nested sequence of subcodes. An empty list represents a fault
code without subcodes.</p>
</li>
</ul>
</div>
<div class="div3">
<h4><a name="soap-fault-decl-xml" id=
"soap-fault-decl-xml"></a>5.6.3 XML Representation</h4>
<div class="exampleInner">
<pre xml:space="preserve">
&lt;description&gt;
&lt;binding &gt;
&lt;fault ref="<em>xs:QName</em>"
<strong>wsoap:code</strong>="<em>union of xs:QName, xs:token</em>"?
<strong>wsoap:subcodes</strong>="<em>union of (list of xs:QName), xs:token</em>"? &gt;
&lt;documentation /&gt;*
&lt;/fault&gt;*
&lt;/binding&gt;
&lt;/description&gt;
</pre></div>
<p>The XML representation for binding a SOAP Fault are two
<em>attribute information item</em>s with the following Infoset
properties:</p>
<ul>
<li>
<p>wsoap:code OPTIONAL <em>attribute information item</em></p>
<ul>
<li>
<p>A [local name] of <code>code</code></p>
</li>
<li>
<p>A [namespace name] of "http://www.w3.org/ns/wsdl/soap"</p>
</li>
<li>
<p>A type of union of <em>xs:QName</em> and <em>xs:token</em> where
the allowed token value is "#any"</p>
</li>
</ul>
</li>
<li>
<p>wsoap:subcodes OPTIONAL <em>attribute information item</em></p>
<ul>
<li>
<p>A [local name] of <code>subcodes</code></p>
</li>
<li>
<p>A [namespace name] of "http://www.w3.org/ns/wsdl/soap"</p>
</li>
<li>
<p>A type of union of list of <em>xs:QName</em>, and
<em>xs:token</em> where the allowed token value is "#any"</p>
</li>
</ul>
</li>
</ul>
</div>
<div class="div3">
<h4><a name="soap-fault-decl-mapping" id=
"soap-fault-decl-mapping"></a>5.6.4 Mapping XML Representation to
Component Properties</h4>
<p>See <a href="#tab_SOAP_Fault_Mapping">Table 5-3</a>.</p>
<a name="tab_SOAP_Fault_Mapping" id="tab_SOAP_Fault_Mapping"></a>
<table border="1">
<caption>Table 5-3. Mapping from XML Representation to SOAP Fault
component Properties</caption>
<tbody>
<tr>
<th rowspan="1" colspan="1">Property</th>
<th rowspan="1" colspan="1">Value</th>
</tr>
<tr>
<td rowspan="1" colspan="1">{<a href=
"#property-BindingFault.soapfaultcode">soap fault code</a>}</td>
<td rowspan="1" colspan="1">The actual value of the
<code>code</code> <em>attribute information item</em>, if present;
otherwise "#any".</td>
</tr>
<tr>
<td rowspan="1" colspan="1">{<a href=
"#property-BindingFault.soapfaultsubcodes">soap fault
subcodes</a>}</td>
<td rowspan="1" colspan="1">The actual value of the
<code>subcodes</code> <em>attribute information item</em>, if
present; otherwise "#any".</td>
</tr>
</tbody>
</table>
<br /></div>
</div>
<div class="div2">
<h3><a name="soap-operation-decl" id="soap-operation-decl"></a>5.7
Binding Operations</h3>
<div class="div3">
<h4><a name="soap-operation-decl-description" id=
"soap-operation-decl-description"></a>5.7.1 Description</h4>
<p>For every <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-InterfaceOperation">
Interface Operation</a> component contained in an <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-Interface">
Interface</a> component, in addition to the binding rules (for SOAP
1.2, see <a href="#soap12-defaults"><strong>5.10.3 SOAP 1.2 Binding
Rules</strong></a>), there may be additional binding information to
be specified. This binding extension specification allows the user
to indicate the SOAP Message Exchange Pattern (MEP) and a value for
the SOAP Action Feature on a per-operation basis.</p>
</div>
<div class="div3">
<h4><a name="soap-operation-decl-relate" id=
"soap-operation-decl-relate"></a>5.7.2 Relationship to WSDL
Component Model</h4>
<p>The SOAP Operation binding extension specification adds the
following property to the WSDL component model (as defined in
[<cite><a href="#WSDL-PART1">WSDL 2.0 Core
Language</a></cite>]):</p>
<ul>
<li>
<p>{<a name="property-Binding.soapmepdefault" id=
"property-Binding.soapmepdefault">soap mep default</a>} OPTIONAL.
<span id="SOAPMEPDefault-2073" class="test-assertion-tr">A
<em>xs:anyURI</em>, which is an absolute IRI as defined by
[<cite><a href="#RFC3987">IETF RFC 3987</a></cite>], to the
<a href="http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-Binding">
Binding</a> component.<sup><a href="#SOAPMEPDefault-2073-summary"
title=
"Link to assertion SOAPMEPDefault-2073 summary"></a></sup></span>
The value of this property identifies the default SOAP Message
Exchange Pattern (MEP) for all the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-InterfaceOperation">
Interface Operation</a> components of any <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-Interface">
Interface</a> component to which this <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-Binding">Binding</a>
is applied.</p>
</li>
<li>
<p>{<a name="property-BindingOperation.soapmep" id=
"property-BindingOperation.soapmep">soap mep</a>} OPTIONAL.
<span id="SOAPMEP-2074" class="test-assertion-tr">A
<em>xs:anyURI</em>, which is an absolute IRI as defined by
[<cite><a href="#RFC3987">IETF RFC 3987</a></cite>], to the
<a href="http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingOperation">
Binding Operation</a> component.<sup><a href=
"#SOAPMEP-2074-summary" title=
"Link to assertion SOAPMEP-2074 summary"></a></sup></span> The
value of this property identifies the SOAP Message Exchange Pattern
(MEP) for this specific operation (see <a href=
"#soap12-defaults"><strong>5.10.3 SOAP 1.2 Binding
Rules</strong></a>, paragraph "SOAP MEP Selection", for constraints
on bindings).</p>
</li>
<li>
<p>{<a name="property-BindingOperation.soapaction" id=
"property-BindingOperation.soapaction">soap action</a>} OPTIONAL.
<span id="SOAPAction-2075" class="test-assertion-tr">A
<em>xs:anyURI</em>, which is an absolute IRI as defined by
[<cite><a href="#RFC3987">IETF RFC 3987</a></cite>], to the
<a href="http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingOperation">
Binding Operation</a> component.<sup><a href=
"#SOAPAction-2075-summary" title=
"Link to assertion SOAPAction-2075 summary"></a></sup></span> The
value of this property identifies the value of the SOAP Action
Feature for the initial message of the message exchange pattern of
the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-InterfaceOperation">
Interface Operation</a> bound, as specified in the binding rules of
bindings to specific versions of SOAP (see <a href=
"#soap12-defaults"><strong>5.10.3 SOAP 1.2 Binding
Rules</strong></a> for the SOAP 1.2 binding when the value of the
{<a href="#property-Binding.soapversion">soap version</a>} property
of the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-Binding">Binding</a>
component is "1.2").</p>
</li>
</ul>
</div>
<div class="div3">
<h4><a name="soap-operation-decl-xml" id=
"soap-operation-decl-xml"></a>5.7.3 XML Representation</h4>
<div class="exampleInner">
<pre xml:space="preserve">
&lt;description&gt;
&lt;binding <strong>wsoap:mepDefault</strong>="<em>xs:anyURI</em>"? &gt;
&lt;operation ref="<em>xs:QName</em>"
<strong>wsoap:mep</strong>="<em>xs:anyURI</em>"?
<strong>wsoap:action</strong>="<em>xs:anyURI</em>"? &gt;
&lt;/operation&gt;
&lt;/binding&gt;
&lt;/description&gt;
</pre></div>
<p>The XML representation for binding a <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingOperation">
Binding Operation</a> are two <em>attribute information item</em>s
with the following Infoset properties:</p>
<ul>
<li>
<p>wsoap:mep OPTIONAL <em>attribute information item</em></p>
<ul>
<li>
<p>A [local name] of <code>mep</code></p>
</li>
<li>
<p>A [namespace name] of "http://www.w3.org/ns/wsdl/soap"</p>
</li>
<li>
<p>A type of <em>xs:anyURI</em></p>
</li>
</ul>
</li>
<li>
<p>wsoap:action OPTIONAL <em>attribute information item</em></p>
<ul>
<li>
<p>A [local name] of <code>action</code></p>
</li>
<li>
<p>A [namespace name] of "http://www.w3.org/ns/wsdl/soap"</p>
</li>
<li>
<p>A type of <em>xs:anyURI</em></p>
</li>
</ul>
</li>
</ul>
<p>The following <em>attribute information item</em> for the
<code>binding</code> <em>element information item</em> is
defined:</p>
<ul>
<li>
<p>wsoap:mepDefault OPTIONAL <em>attribute information
item</em></p>
<ul>
<li>
<p>A [local name] of <code>mepDefault</code></p>
</li>
<li>
<p>A [namespace name] of " http://www.w3.org/ns/wsdl/soap "</p>
</li>
<li>
<p>A type of <em>xs:anyURI</em></p>
</li>
</ul>
</li>
</ul>
</div>
<div class="div3">
<h4><a name="soap-operation-decl-mapping" id=
"soap-operation-decl-mapping"></a>5.7.4 Mapping from XML
Representation to Component Properties</h4>
<p>See <a href="#tab_SOAP_Operation_Mapping">Table 5-4</a>.</p>
<a name="tab_SOAP_Operation_Mapping" id=
"tab_SOAP_Operation_Mapping"></a>
<table border="1">
<caption>Table 5-4. Mapping from XML Representation to SOAP
Operation Component Properties</caption>
<tbody>
<tr>
<th rowspan="1" colspan="1">Property</th>
<th rowspan="1" colspan="1">Value</th>
</tr>
<tr>
<td rowspan="1" colspan="1">{<a href=
"#property-Binding.soapmepdefault">soap mep default</a>}</td>
<td rowspan="1" colspan="1">The actual value of the
<code>wsoap:mepDefault</code> <em>attribute information item</em>,
if present.</td>
</tr>
<tr>
<td rowspan="1" colspan="1">{<a href=
"#property-BindingOperation.soapmep">soap mep</a>}</td>
<td rowspan="1" colspan="1">The actual value of the
<code>wsoap:mep</code> <em>attribute information item</em>, if
present.</td>
</tr>
<tr>
<td rowspan="1" colspan="1">{<a href=
"#property-BindingOperation.soapaction">soap action</a>}</td>
<td rowspan="1" colspan="1">The actual value of the
<code>wsoap:action</code> <em>attribute information item</em>, if
any.</td>
</tr>
</tbody>
</table>
<br /></div>
</div>
<div class="div2">
<h3><a name="soap-module-decl" id="soap-module-decl"></a>5.8
Declaring SOAP Modules</h3>
<div class="div3">
<h4><a name="soap-module-decl-description" id=
"soap-module-decl-description"></a>5.8.1 Description</h4>
<p>The SOAP messaging framework allows a Web service to engage one
or more additional features (typically implemented as one or more
SOAP header blocks), as defined by SOAP Modules (see
[<cite><a href="#SOAP12-PART1">SOAP 1.2 Part 1: Messaging Framework
(Second Edition)</a></cite>]). This binding extension specification
allows description of which SOAP Modules are in use across an
entire binding, on a per operation basis or on a per-message
basis.</p>
</div>
<div class="div3">
<h4><a name="soap-module-decl-relate" id=
"soap-module-decl-relate"></a>5.8.2 Relationship to WSDL Component
Model</h4>
<p>The <a href="#component-SOAPModule">SOAP Module</a> component
adds the following property to the WSDL component model (as defined
in [<cite><a href="#WSDL-PART1">WSDL 2.0 Core
Language</a></cite>]):</p>
<ul>
<li>
<p>{<a name="property-Binding.soapmodules" id=
"property-Binding.soapmodules">soap modules</a>} OPTIONAL. A set of
<a href="#component-SOAPModule">SOAP Module</a> components as
defined in <a href="#soap-module-decl-property"><strong>5.8.3 SOAP
Module component</strong></a> to the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-Binding">Binding</a>
component</p>
</li>
<li>
<p>Similarly, {<a name="property-BindingOperation.soapmodules" id=
"property-BindingOperation.soapmodules">soap modules</a>} OPTIONAL,
to the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingOperation">
Binding Operation</a> component</p>
</li>
<li>
<p>Similarly, {<a name=
"property-BindingMessageReference.soapmodules" id=
"property-BindingMessageReference.soapmodules">soap modules</a>}
OPTIONAL, to the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingMessageReference">
Binding Message Reference</a> component</p>
</li>
<li>
<p>Similarly, {<a name="property-BindingFault.soapmodules" id=
"property-BindingFault.soapmodules">soap modules</a>} OPTIONAL, to
the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingFault">
Binding Fault</a> component</p>
</li>
<li>
<p>Similarly, {<a name="property-BindingFaultReference.soapmodules"
id="property-BindingFaultReference.soapmodules">soap modules</a>}
OPTIONAL, to the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingFaultReference">
Binding Fault Reference</a> component</p>
</li>
</ul>
<p>The SOAP modules applicable for a particular operation of any
service, consists of all the modules specified in the input or
output <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingMessageReference">
Binding Message Reference</a> components, the infault or outfault
<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingFaultReference">
Binding Fault Reference</a> components, those specified within the
<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingFault">
Binding Fault</a> components, those specified within the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingOperation">
Binding Operation</a> components and those specified within the
<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-Binding">Binding</a>
component. If any module is declared in multiple components, then
the requiredness of that module is defined by the closest
declaration, where closeness is defined by whether it is specified
directly at the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingMessageReference">
Binding Message Reference</a> component or <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingFaultReference">
Binding Fault Reference</a> component level, the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingFault">
Binding Fault</a> level or the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingOperation">
Binding Operation</a> component level or the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-Binding">Binding</a>
component level, respectively.</p>
</div>
<div class="div3">
<h4><a name="soap-module-decl-property" id=
"soap-module-decl-property"></a>5.8.3 SOAP Module component</h4>
<p>The <a href="#component-SOAPModule">SOAP Module</a> component
identifies a SOAP module that is in use.</p>
<p>The properties of the <a name="component-SOAPModule" id=
"component-SOAPModule">SOAP Module</a> component are as
follows:</p>
<ul>
<li>
<p>{<a name="property-SOAPModule.ref" id=
"property-SOAPModule.ref">ref</a>} REQUIRED. <span id=
"SOAPModule-2076" class="test-assertion-tr">A <em>xs:anyURI</em>,
which is an absolute IRI as defined by [<cite><a href=
"#RFC3987">IETF RFC 3987</a></cite>].<sup><a href=
"#SOAPModule-2076-summary" title=
"Link to assertion SOAPModule-2076 summary"></a></sup></span> The
value of this property uniquely identifies the SOAP module that is
in use (as per the SOAP 1.2 [<cite><a href="#SOAP12-PART1">SOAP 1.2
Part 1: Messaging Framework (Second Edition)</a></cite>] processing
model).</p>
</li>
<li>
<p>{<a name="property-SOAPModule.required" id=
"property-SOAPModule.required">required</a>} REQUIRED. A
<em>xs:boolean</em> indicating if the SOAP module is required.</p>
</li>
<li>
<p>{<a name="property-SOAPModule.parent" id=
"property-SOAPModule.parent">parent</a>} REQUIRED. The <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-Binding">Binding</a>,
<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingOperation">
Binding Operation</a>, <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingMessageReference">
Binding Message Reference</a>, <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingFault">
Binding Fault</a> or <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingFaultReference">
Binding Fault Reference</a> components that contains this component
in its {<a href="#property-Binding.soapmodules">soap modules</a>}
property.</p>
</li>
</ul>
</div>
<div class="div3">
<h4><a name="soap-module-decl-xml" id=
"soap-module-decl-xml"></a>5.8.4 XML Representation</h4>
<div class="exampleInner">
<pre xml:space="preserve">
&lt;description&gt;
&lt;binding &gt;
&lt;<strong>wsoap:module</strong> ref="<em>xs:anyURI</em>"
required="<em>xs:boolean</em>"? &gt;
&lt;documentation ... /&gt;*
&lt;/<strong>wsoap:module</strong>&gt;
&lt;fault&gt;
&lt;<strong>wsoap:module</strong> ... /&gt;*
&lt;/fault&gt;
&lt;operation&gt;
&lt;<strong>wsoap:module</strong> ... /&gt;*
&lt;input&gt;
&lt;<strong>wsoap:module</strong> ... /&gt;*
&lt;/input&gt;
&lt;output&gt;
&lt;<strong>wsoap:module</strong> ... /&gt;*
&lt;/output&gt;
&lt;infault&gt;
&lt;<strong>wsoap:module</strong> ... /&gt;*
&lt;/infault&gt;
&lt;outfault&gt;
&lt;<strong>wsoap:module</strong> ... /&gt;*
&lt;/outfault&gt;
&lt;/operation&gt;
&lt;/binding&gt;
&lt;/description&gt;
</pre></div>
<p>The XML representation for a <a href=
"#component-SOAPModule">SOAP Module</a> component is an <em>element
information item</em> with the following Infoset properties:</p>
<ul>
<li>
<p>A [local name] of <code>module</code></p>
</li>
<li>
<p>A [namespace name] of "http://www.w3.org/ns/wsdl/soap"</p>
</li>
<li>
<p>One or more <em>attribute information item</em>s amongst its
[attributes] as follows:</p>
<ul>
<li>
<p>A REQUIRED <code>ref</code> <em>attribute information item</em>
with the following Infoset properties:</p>
<ul>
<li>
<p>A [local name] of <code>ref</code></p>
</li>
<li>
<p>A [namespace name] which has no value</p>
</li>
<li>
<p>A type of <em>xs:anyURI</em></p>
</li>
</ul>
</li>
<li>
<p>An OPTIONAL <code>required</code> <em>attribute information
item</em> with the following Infoset properties:</p>
<ul>
<li>
<p>A [local name] of <code>required</code></p>
</li>
<li>
<p>A [namespace name] which has no value</p>
</li>
<li>
<p>A type of <em>xs:boolean</em></p>
</li>
</ul>
</li>
<li>
<p>Zero or more namespace qualified <em>attribute information
item</em>s. The [namespace name] of such <em>attribute information
item</em>s MUST NOT be "http://www.w3.org/ns/wsdl" and MUST NOT be
"http://www.w3.org/ns/wsdl/soap".</p>
</li>
</ul>
</li>
<li>
<p>Zero or more <em>element information item</em> amongst its
[children], in order, as follows:</p>
<ol class="enumar">
<li>
<p>Zero or more <code>documentation</code> <em>element information
item</em>s as defined in [<cite><a href="#WSDL-PART1">WSDL 2.0 Core
Language</a></cite>].</p>
</li>
<li>
<p>Zero or more namespace-qualified <em>element information
item</em>s amongst its [children]. The [namespace name] of such
<em>element information item</em>s MUST NOT be
"http://www.w3.org/ns/wsdl" and MUST NOT be
"http://www.w3.org/ns/wsdl/soap".</p>
</li>
</ol>
</li>
</ul>
</div>
<div class="div3">
<h4><a name="soap-module-decl-mapping" id=
"soap-module-decl-mapping"></a>5.8.5 Mapping from XML
Representation to Component Properties</h4>
<p>See <a href="#tab_SOAP_Module_Mapping">Table 5-5</a>.</p>
<a name="tab_SOAP_Module_Mapping" id="tab_SOAP_Module_Mapping"></a>
<table border="1">
<caption>Table 5-5. Mapping from XML Representation to SOAP Module
component-related Properties</caption>
<tbody>
<tr>
<th rowspan="1" colspan="1">Property</th>
<th rowspan="1" colspan="1">Value</th>
</tr>
<tr>
<td rowspan="1" colspan="1">{<a href=
"#property-Binding.soapmodules">soap modules</a>}</td>
<td rowspan="1" colspan="1">The set of <a href=
"#component-SOAPModule">SOAP Module</a> components corresponding to
all the <code>module</code> <em>element information item</em> in
the [children] of the <code>binding</code>, <code>operation</code>,
<code>fault</code>, <code>input</code>, <code>output</code>,
<code>infault</code>, <code>outfault</code> <em>element information
item</em>s, if any.</td>
</tr>
<tr>
<td rowspan="1" colspan="1">{<a href=
"#property-SOAPModule.ref">ref</a>}</td>
<td rowspan="1" colspan="1">The actual value of the
<code>ref</code> <em>attribute information item</em>.</td>
</tr>
<tr>
<td rowspan="1" colspan="1">{<a href=
"#property-SOAPModule.required">required</a>}</td>
<td rowspan="1" colspan="1">The actual value of the
<code>required</code> <em>attribute information item</em>, if
present; otherwise "false".</td>
</tr>
<tr>
<td rowspan="1" colspan="1">{<a href=
"#property-SOAPModule.parent">parent</a>}</td>
<td rowspan="1" colspan="1">The <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-Binding">Binding</a>,
<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingOperation">
Binding Operation</a>, <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingMessageReference">
Binding Message Reference</a>, <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingFault">
Binding Fault</a> or <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingFaultReference">
Binding Fault Reference</a> component corresponding to the
<code>binding</code>, <code>operation</code>, <code>fault</code>,
<code>input</code>, <code>output</code>, <code>infault</code> or
<code>outfault</code> <em>element information item</em> in
[parent].</td>
</tr>
</tbody>
</table>
<br /></div>
<div class="div3">
<h4><a name="soap-module-decl-fragid" id=
"soap-module-decl-fragid"></a>5.8.6 IRI Identification Of A SOAP
Module component</h4>
<p>WSDL Version 2.0 Part 1: Core Language [<cite><a href=
"#WSDL-PART1">WSDL 2.0 Core Language</a></cite>] defines a <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#frag-ids">fragment
identifier syntax</a> for identifying components of a WSDL 2.0
document.</p>
<p>A <a href="#component-SOAPModule">SOAP Module</a> component can
be identified using the <em><a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#wsdl.extension">wsdl.extension</a></em>
XPointer Framework scheme:</p>
<p><code>wsdl.extension(http://www.w3.org/ns/wsdl/soap,
wsoap.module(<em>parent</em>/<em>ref</em>))</code></p>
<ol class="enumar">
<li>
<p><em><code>parent</code></em> is the pointer part of the
{<a href="#property-SOAPModule.parent">parent</a>} component, as
specified in <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#frag-ids">appendix
A.2, Fragment Identifiers</a> in [<cite><a href="#WSDL-PART1">WSDL
2.0 Core Language</a></cite>]. parts.</p>
</li>
<li>
<p><em><code>ref</code></em> is the value of the {<a href=
"#property-SOAPModule.ref">ref</a>} property of the component.</p>
</li>
</ol>
</div>
</div>
<div class="div2">
<h3><a name="soap-headers-decl" id="soap-headers-decl"></a>5.9
Declaring SOAP Header Blocks</h3>
<div class="div3">
<h4><a name="soap-headers-decl-description" id=
"soap-headers-decl-description"></a>5.9.1 Description</h4>
<p>SOAP allows the use of header blocks in the header part of the
message. This binding extension allows users to declare the SOAP
header blocks in use on a per-message and on a per-fault basis.</p>
</div>
<div class="div3">
<h4><a name="soap-headers-decl-relate" id=
"soap-headers-decl-relate"></a>5.9.2 Relationship to WSDL Component
Model</h4>
<p>The SOAP Header Blocks binding extension specification adds the
following property to the WSDL component model (as defined in
[<cite><a href="#WSDL-PART1">WSDL 2.0 Core
Language</a></cite>]):</p>
<ul>
<li>
<p>{<a name="property-BindingMessageReference.soapheaders" id=
"property-BindingMessageReference.soapheaders">soap headers</a>}
OPTIONAL. A set of <a href="#component-SOAPHeaderBlock">SOAP Header
Block</a> components as defined in <a href=
"#soap-header-decl-property"><strong>5.9.3 SOAP Header Block
component</strong></a>, to the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingMessageReference">
Binding Message Reference</a> component.</p>
</li>
<li>
<p>Similarly, {<a name="property-BindingFault.soapheaders" id=
"property-BindingFault.soapheaders">soap headers</a>} OPTIONAL, to
the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingFault">
Binding Fault</a> component.</p>
</li>
</ul>
</div>
<div class="div3">
<h4><a name="soap-header-decl-property" id=
"soap-header-decl-property"></a>5.9.3 SOAP Header Block
component</h4>
<p>A <a href="#component-SOAPHeaderBlock">SOAP Header Block</a>
component describes an abstract piece of header data (SOAP header
block) that is associated with the exchange of messages between the
communicating parties. The presence of a <a href=
"#component-SOAPHeaderBlock">SOAP Header Block</a> component in a
WSDL description indicates that the service supports headers, and
MAY require a client interacting with the service to use the
described header block. Zero or one such header block may be
used.</p>
<p>The properties of the <a name="component-SOAPHeaderBlock" id=
"component-SOAPHeaderBlock">SOAP Header Block</a> component are as
follows:</p>
<ul>
<li>
<p>{<a name="property-SOAPHeaderBlock.elementdeclaration" id=
"property-SOAPHeaderBlock.elementdeclaration">element
declaration</a>} REQUIRED. An XML element declaration in the
{<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#property-Description.elementdeclarations">element
declarations</a>} property of the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-Description">
Description</a> component. This XML element declaration uniquely
represents a specific SOAP header block.</p>
</li>
<li>
<p>{<a name="property-SOAPHeaderBlock.mustUnderstand" id=
"property-SOAPHeaderBlock.mustUnderstand">mustUnderstand</a>}
REQUIRED. A <em>xs:boolean</em>. <span id="SOAPHeaderBlock-2077"
class="test-assertion-tr">When its value is "true", the SOAP header
block MUST be decorated with a SOAP <code>mustUnderstand</code>
<em>attribute information item</em> with a value of "true"; if so,
the XML element declaration referenced by the {<a href=
"#property-SOAPHeaderBlock.elementdeclaration">element
declaration</a>} property MUST allow this SOAP
<code>mustUnderstand</code> <em>attribute information
item</em>.<sup><a href="#SOAPHeaderBlock-2077-summary" title=
"Link to assertion SOAPHeaderBlock-2077 summary"></a></sup></span>
Otherwise, no additional constraint is placed on the presence and
value of a SOAP <code>mustUnderstand</code> <em>attribute
information item</em>.</p>
</li>
<li>
<p>{<a name="property-SOAPHeaderBlock.required" id=
"property-SOAPHeaderBlock.required">required</a>} REQUIRED. A
<em>xs:boolean</em> indicating if the SOAP header block is
required. <span id="SOAPHeaderBlock-2078" class=
"test-assertion-tr">If the value is "true", then the SOAP header
block MUST be included in the message.<sup><a href=
"#SOAPHeaderBlock-2078-summary" title=
"Link to assertion SOAPHeaderBlock-2078 summary"></a></sup></span>
If it is "false", then the SOAP header block MAY be included.</p>
</li>
<li>
<p>{<a name="property-SOAPHeaderBlock.parent" id=
"property-SOAPHeaderBlock.parent">parent</a>} REQUIRED. The
<a href="http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingFault">
Binding Fault</a> or <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingMessageReference">
Binding Message Reference</a> component that contains this
component in its {<a href=
"#property-BindingMessageReference.soapheaders">soap headers</a>}
property.</p>
</li>
</ul>
</div>
<div class="div3">
<h4><a name="soap-headers-decl-xml" id=
"soap-headers-decl-xml"></a>5.9.4 XML Representation</h4>
<div class="exampleInner">
<pre xml:space="preserve">
&lt;description&gt;
&lt;binding name="<em>xs:NCName</em>" type="<em>http://www.w3.org/ns/wsdl/soap</em>" &gt;
&lt;fault ref="<em>xs:QName</em>" &gt;
&lt;<strong>wsoap:header</strong> element="<em>xs:QName</em>" mustUnderstand="<em>xs:boolean</em>"?
required="<em>xs:boolean</em>"? &gt;
&lt;documentation /&gt;*
&lt;/<strong>wsoap:header</strong>&gt;*
...
&lt;/fault&gt;*
&lt;operation ref="<em>xs:QName</em>" &gt;
&lt;input messageLabel="<em>xs:NCName</em>"?&gt;
&lt;<strong>wsoap:header</strong> ... /&gt;*
...
&lt;/input&gt;*
&lt;output messageLabel="<em>xs:NCName</em>"?&gt;
&lt;<strong>wsoap:header</strong> ... /&gt;*
...
&lt;/output&gt;*
&lt;/operation&gt;*
&lt;/binding&gt;
&lt;/description&gt;
</pre></div>
<p>The XML representation for a <a href=
"#component-SOAPHeaderBlock">SOAP Header Block</a> component is an
<em>element information item</em> with the following Infoset
properties:</p>
<ul>
<li>
<p>A [local name] of <code>header</code></p>
</li>
<li>
<p>A [namespace name] of "http://www.w3.org/ns/wsdl/soap"</p>
</li>
<li>
<p>One or more <em>attribute information item</em>s amongst its
[attributes] as follows:</p>
<ul>
<li>
<p>A REQUIRED <code>element</code> <em>attribute information
item</em> with the following Infoset properties:</p>
<ul>
<li>
<p>A [local name] of <code>element</code></p>
</li>
<li>
<p>A [namespace name] which has no value</p>
</li>
<li>
<p>A type of <em>xs:QName</em></p>
</li>
</ul>
</li>
<li>
<p>An OPTIONAL <code>mustUnderstand</code> <em>attribute
information item</em> with the following Infoset properties:</p>
<ul>
<li>
<p>A [local name] of <code>mustUnderstand</code></p>
</li>
<li>
<p>A [namespace name] which has no value</p>
</li>
<li>
<p>A type of <em>xs:boolean</em></p>
</li>
</ul>
</li>
<li>
<p>An OPTIONAL <code>required</code> <em>attribute information
item</em> with the following Infoset properties:</p>
<ul>
<li>
<p>A [local name] of <code>required</code></p>
</li>
<li>
<p>A [namespace name] which has no value</p>
</li>
<li>
<p>A type of <em>xs:boolean</em></p>
</li>
</ul>
</li>
<li>
<p>Zero or more namespace qualified <em>attribute information
item</em>s. The [namespace name] of such <em>attribute information
item</em>s MUST NOT be "http://www.w3.org/ns/wsdl" and MUST NOT be
"http://www.w3.org/ns/wsdl/soap".</p>
</li>
</ul>
</li>
<li>
<p>Zero or more <em>element information item</em> amongst its
[children], in order, as follows:</p>
<ol class="enumar">
<li>
<p>Zero or more <code>documentation</code> <em>element information
item</em>s as defined in [<cite><a href="#WSDL-PART1">WSDL 2.0 Core
Language</a></cite>].</p>
</li>
<li>
<p>Zero or more namespace-qualified <em>element information
item</em>s amongst its [children]. The [namespace name] of such
<em>element information item</em>s MUST NOT be
"http://www.w3.org/ns/wsdl" and MUST NOT be
"http://www.w3.org/ns/wsdl/soap".</p>
</li>
</ol>
</li>
</ul>
</div>
<div class="div3">
<h4><a name="soap-headers-decl-mapping" id=
"soap-headers-decl-mapping"></a>5.9.5 Mapping XML Representation to
Component Properties</h4>
<p>See <a href="#tab_SOAP_Header_Mapping">Table 5-6</a>.</p>
<a name="tab_SOAP_Header_Mapping" id="tab_SOAP_Header_Mapping"></a>
<table border="1">
<caption>Table 5-6. Mapping from XML Representation to SOAP Header
Block component-related Properties</caption>
<tbody>
<tr>
<th rowspan="1" colspan="1">Property</th>
<th rowspan="1" colspan="1">Value</th>
</tr>
<tr>
<td rowspan="1" colspan="1">{<a href=
"#property-BindingMessageReference.soapheaders">soap
headers</a>}</td>
<td rowspan="1" colspan="1">The set of <a href=
"#component-SOAPHeaderBlock">SOAP Header Block</a> components
corresponding to all the <code>header</code> <em>element
information item</em> in the [children] of the <code>fault</code>,
<code>input</code> or <code>output</code> <em>element information
item</em>, if any.</td>
</tr>
<tr>
<td rowspan="1" colspan="1">{<a href=
"#property-SOAPHeaderBlock.elementdeclaration">element
declaration</a>}</td>
<td rowspan="1" colspan="1">The element declaration from the
{<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#property-Description.elementdeclarations">element
declarations</a>} resolved to by the value of the
<code>element</code> <em>attribute information item</em>. <span id=
"SOAPHeaderBlock-2079" class="test-assertion-tr">The value of the
<code>element</code> <em>attribute information item</em> MUST
resolve to a global element declaration from the {<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#property-Description.elementdeclarations">element
declarations</a>} property of the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-Description">
Description</a> component.<sup><a href=
"#SOAPHeaderBlock-2079-summary" title=
"Link to assertion SOAPHeaderBlock-2079 summary"></a></sup></span></td>
</tr>
<tr>
<td rowspan="1" colspan="1">{<a href=
"#property-SOAPHeaderBlock.mustUnderstand">mustUnderstand</a>}</td>
<td rowspan="1" colspan="1">The actual value of the
<code>mustUnderstand</code> <em>attribute information item</em>, if
present; otherwise "false".</td>
</tr>
<tr>
<td rowspan="1" colspan="1">{<a href=
"#property-SOAPHeaderBlock.required">required</a>}</td>
<td rowspan="1" colspan="1">The actual value of the
<code>required</code> <em>attribute information item</em>, if
present; otherwise "false".</td>
</tr>
<tr>
<td rowspan="1" colspan="1">{<a href=
"#property-SOAPHeaderBlock.parent">parent</a>}</td>
<td rowspan="1" colspan="1">The <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingFault">
Binding Fault</a> or <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingMessageReference">
Binding Message Reference</a> component corresponding to the
<code>fault</code>, <code>input</code> or <code>output</code>
<em>element information item</em> in [parent].</td>
</tr>
</tbody>
</table>
<br /></div>
<div class="div3">
<h4><a name="soap-headers-decl-fragid" id=
"soap-headers-decl-fragid"></a>5.9.6 IRI Identification Of A SOAP
Header Block component</h4>
<p>WSDL Version 2.0 Part 1: Core Language [<cite><a href=
"#WSDL-PART1">WSDL 2.0 Core Language</a></cite>] defines a <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#frag-ids">fragment
identifier syntax</a> for identifying components of a WSDL 2.0
document.</p>
<p>A <a href="#component-SOAPHeaderBlock">SOAP Header Block</a>
component can be identified using the <em><a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#wsdl.extension">wsdl.extension</a></em>
XPointer Framework scheme:</p>
<p><code>wsdl.extension(http://www.w3.org/ns/wsdl/soap,
wsoap.header(<em>parent</em>/<em>element
declaration</em>))</code></p>
<ol class="enumar">
<li>
<p><em><code>parent</code></em> is the "wsdl.*" pointer part of the
{<a href="#property-SOAPHeaderBlock.parent">parent</a>} component,
as specified in <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#frag-ids">appendix
A.2, Fragment Identifiers</a> in [<cite><a href="#WSDL-PART1">WSDL
2.0 Core Language</a></cite>], i.e. without the xmlns() pointer
parts.</p>
</li>
<li>
<p><em><code>element declaration</code></em> is the value of the
{<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#property-.name">name</a>}
of the Element Declaration component that is referred to by the
{<a href="#property-SOAPHeaderBlock.elementdeclaration">element
declaration</a>} property of the SOAP Header Block component.</p>
</li>
</ol>
</div>
</div>
<div class="div2">
<h3><a name="soap12-binding" id="soap12-binding"></a>5.10 WSDL SOAP
1.2 Binding</h3>
<p>This section describes the SOAP 1.2 binding for WSDL 2.0. This
binding does NOT natively support the full range of capabilities
from SOAP 1.2. Certain capabilities not widely used, or viewed as
problematic in practice, are not available -in many cases because
supporting them was considered as adding considerable complexity to
the language. Here are examples of such unsupported
capabilities:</p>
<ul>
<li>
<p>multiple children of the SOAP Body;</p>
</li>
<li>
<p>multiple SOAP Fault Detail entries;</p>
</li>
<li>
<p>non-qualified elements as children of a SOAP Fault Detail.</p>
</li>
</ul>
<div class="div3">
<h4><a name="soap12-binding-decl" id=
"soap12-binding-decl"></a>5.10.1 Identifying a WSDL SOAP 1.2
Binding</h4>
<p>A WSDL SOAP Binding is identified as a SOAP 1.2 binding by
assigning the value "1.2" to the {<a href=
"#property-Binding.soapversion">soap version</a>} property of the
<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-Binding">Binding</a>
component.</p>
</div>
<div class="div3">
<h4><a name="soap12-binding-description" id=
"soap12-binding-description"></a>5.10.2 Description</h4>
<p>The WSDL SOAP 1.2 binding extension defined in this section is
an extension of the SOAP binding defined in section <a href=
"#soap-binding"><strong>5. WSDL SOAP Binding Extension</strong></a>
to enable Web service applications to use SOAP 1.2 [<cite><a href=
"#SOAP12-PART1">SOAP 1.2 Part 1: Messaging Framework (Second
Edition)</a></cite>].</p>
<p>The WSDL SOAP 1.2 binding extension supports the SOAP 1.2 HTTP
binding defined by the [<cite><a href="#SOAP12-PART2">SOAP 1.2 Part
2: Adjuncts (Second Edition)</a></cite>] specification. This is
indicated by assigning the URI
"http://www.w3.org/2003/05/soap/bindings/HTTP/" (as defined by
[<cite><a href="#SOAP12-PART2">SOAP 1.2 Part 2: Adjuncts (Second
Edition)</a></cite>]) to the {<a href=
"#property-Binding.soapunderlyingprotocol">soap underlying
protocol</a>} property. Other values MAY be used for this property
in conjunction with the SOAP 1.2 binding extension defined by this
specification provided that the semantics of such protocols are
consistent with this binding extension.</p>
<p>Default rules in section <a href=
"#soap12-defaults"><strong>5.10.3 SOAP 1.2 Binding
Rules</strong></a> define the relationship between SOAP message
exchange patterns defined in [<cite><a href="#SOAP12-PART2">SOAP
1.2 Part 2: Adjuncts (Second Edition)</a></cite>] and WSDL message
exchange patterns defined in section <a href="#meps"><strong>2.
Predefined Message Exchange Patterns</strong></a>.</p>
</div>
<div class="div3">
<h4><a name="soap12-defaults" id="soap12-defaults"></a>5.10.3 SOAP
1.2 Binding Rules</h4>
<p>These binding rules are applicable to SOAP 1.2 bindings.</p>
<ul>
<li>
<p><em>SOAP Action Feature.</em> The value of the SOAP Action
Feature for the initial message of the message exchange pattern of
the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-InterfaceOperation">
Interface Operation</a> bound is specified by the {<a href=
"#property-BindingOperation.soapaction">soap action</a>} property
of this <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingOperation">
Binding Operation</a> component. If the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingOperation">
Binding Operation</a> component does NOT have a {<a href=
"#property-BindingOperation.soapaction">soap action</a>} property
defined, then the SOAP Action Feature (see [<cite><a href=
"#SOAP12-PART2">SOAP 1.2 Part 2: Adjuncts (Second
Edition)</a></cite>]) has NO value. Otherwise, its value is the
value of the SOAP Action Feature for the initial message of the
message exchange pattern. The {<a href=
"#property-BindingOperation.soapaction">soap action</a>} property
has NO effect when binding to the SOAP-Response MEP.</p>
</li>
<li>
<p><em>SOAP MEP Selection.</em> <span id="SOAPMEPSelection-2080"
class="test-assertion-tr">For a given <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-InterfaceOperation">
Interface Operation</a> component, if there is a <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingOperation">
Binding Operation</a> component whose {<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#property-BindingOperation.interfaceoperation">interface
operation</a>} property matches the component in question and its
{<a href="#property-BindingOperation.soapmep">soap mep</a>}
property has a value, then the SOAP MEP is the value of the
{<a href="#property-BindingOperation.soapmep">soap mep</a>}
property. Otherwise, the SOAP MEP is the value of the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-Binding">Binding</a>
component's {<a href="#property-Binding.soapmepdefault">soap mep
default</a>}, if any. Otherwise, the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-InterfaceOperation">
Interface Operation</a> component's {<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#property-InterfaceOperation.messageexchangepattern">message
exchange pattern</a>} property MUST have the value
"http://www.w3.org/ns/wsdl/in-out", and the SOAP MEP is the URI
"http://www.w3.org/2003/05/soap/mep/request-response/" identifying
the SOAP Request-Response Message Exchange Pattern as defined in
[<cite><a href="#SOAP12-PART2">SOAP 1.2 Part 2: Adjuncts (Second
Edition)</a></cite>].<sup><a href="#SOAPMEPSelection-2080-summary"
title=
"Link to assertion SOAPMEPSelection-2080 summary"></a></sup></span></p>
</li>
<li>
<p><em>SOAP Detail Element.</em>&#160;<span id=
"SOAP12Binding-SOAPDetail-2081" class="test-assertion-tr">If any,
the value of the SOAP "Detail" element MUST be the <em>element
information item</em> identified by the {<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#property-InterfaceMessageReference.elementdeclaration">element
declaration</a>} property of the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-InterfaceFault">
Interface Fault</a> component.<sup><a href=
"#SOAP12Binding-SOAPDetail-2081-summary" title=
"Link to assertion SOAP12Binding-SOAPDetail-2081 summary"></a></sup></span></p>
</li>
<li>
<p><em>HTTP Method Selection.</em>&#160;<span id=
"SOAPHTTPSelection-2082" class="test-assertion-tr">This default
binding rule is applicable when the value of the {<a href=
"#property-Binding.soapunderlyingprotocol">soap underlying
protocol</a>} property of the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-Binding">Binding</a>
component is "http://www.w3.org/2003/05/soap/bindings/HTTP/". If
the SOAP MEP selected as specified above has the value
"http://www.w3.org/2003/05/soap/mep/request-response/" then the
HTTP method used is "POST". If the SOAP MEP selected has the value
"http://www.w3.org/2003/05/soap/mep/soap-response/" then the HTTP
method used is "GET".<sup><a href="#SOAPHTTPSelection-2082-summary"
title=
"Link to assertion SOAPHTTPSelection-2082 summary"></a></sup></span></p>
</li>
</ul>
</div>
<div class="div3">
<h4><a name="wsdl-mep-soap-mep" id="wsdl-mep-soap-mep"></a>5.10.4
Binding WSDL 2.0 MEPs to SOAP 1.2 MEPs</h4>
<p>This section describes the relationship between WSDL components
and SOAP 1.2 MEP properties as described in [<cite><a href=
"#SOAP12-PART2">SOAP 1.2 Part 2: Adjuncts (Second
Edition)</a></cite>].</p>
<div class="div4">
<h5><a name="in-out-soap-r-r" id="in-out-soap-r-r"></a>5.10.4.1
WSDL In-Out to SOAP Request-Response</h5>
<p>This section describes the mapping from the WSDL
"http://www.w3.org/ns/wsdl/in-out" Message Exchange Pattern (MEP)
to the SOAP "http://www.w3.org/2003/05/soap/mep/request-response/"
MEP (as would be the case for a usual SOAP-over-HTTP In-Out
operation). Extensions (such as [<cite><a href="#WSA-Core">WSA 1.0
Core</a></cite>]) MAY alter these mappings.</p>
<div class="div5">
<h6><a name="in-out-soap-r-r-client" id=
"in-out-soap-r-r-client"></a>5.10.4.1.1 The Client</h6>
<p>As the client, the property
"http://www.w3.org/2003/05/soap/bindingFramework/ExchangeContext/Role"
takes the value "RequestingSOAPNode".</p>
<p>The SOAP
"http://www.w3.org/2003/05/soap/mep/ImmediateDestination" property
takes the value of the HTTP Request IRI, as defined in <a href=
"#_http_request_iri_"><strong>6.4.6 HTTP Request IRI</strong></a>,
and modified as described in section <a href=
"#_http_location_template"><strong>6.8.1 Serialization of the
instance data in parts of the HTTP request IRI</strong></a>.</p>
<p>The WSDL "In" message is mapped to the SOAP
"http://www.w3.org/2003/05/soap/mep/OutboundMessage" property.</p>
<p>The WSDL "Out" message maps to the SOAP
"http://www.w3.org/2003/05/soap/mep/InboundMessage" property.</p>
</div>
<div class="div5">
<h6><a name="in-out-soap-r-r-service" id=
"in-out-soap-r-r-service"></a>5.10.4.1.2 The Service</h6>
<p>As the service, the property
"http://www.w3.org/2003/05/soap/bindingFramework/ExchangeContext/Role"
takes the value "RespondingSOAPNode".</p>
<p>The WSDL "In" message is mapped to the SOAP
"http://www.w3.org/2003/05/soap/mep/InboundMessage" property.</p>
<p>The WSDL "Out" message maps to the SOAP
"http://www.w3.org/2003/05/soap/mep/OutboundMessage" property.</p>
</div>
</div>
<div class="div4">
<h5><a name="in-out-soap-r" id="in-out-soap-r"></a>5.10.4.2 WSDL
In-Out to SOAP SOAP-Response</h5>
<p>This section describes the mapping from the WSDL
"http://www.w3.org/ns/wsdl/in-out" MEP to the
"http://www.w3.org/2003/05/soap/mep/soap-response/" SOAP MEP.
Extensions (such as [<cite><a href="#WSA-Core">WSA 1.0
Core</a></cite>]) MAY alter these mappings.</p>
<div class="div5">
<h6><a name="in-out-soap-r-client" id=
"in-out-soap-r-client"></a>5.10.4.2.1 The Client</h6>
<p>As the client, the property
"http://www.w3.org/2003/05/soap/bindingFramework/ExchangeContext/Role"
takes the value "RequestingSOAPNode".</p>
<p>The SOAP
"http://www.w3.org/2003/05/soap/mep/ImmediateDestination" property
takes the value of the HTTP Request IRI, as defined in <a href=
"#_http_request_iri_"><strong>6.4.6 HTTP Request IRI</strong></a>,
and modified as described in section <a href=
"#_http_location_template"><strong>6.8.1 Serialization of the
instance data in parts of the HTTP request IRI</strong></a>.</p>
<p>The value of the {<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#property-InterfaceMessageReference.messagecontentmodel">message
content model</a>} property for the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-InterfaceMessageReference">
Interface Message Reference</a> components of the {<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#property-InterfaceOperation.interfacemessagereferences">interface
message references</a>} property MUST be either "#element" or
"#none". When the value is:</p>
<ul>
<li>
<p>"#element", the WSDL "In" message is mapped to the destination
URI, as per the rules in section <a href=
"#_http_x-www-form-urlencoded"><strong>6.8.2 Serialization as
application/x-www-form-urlencoded</strong></a> .</p>
</li>
<li>
<p>"#none", the WSDL "In" message is empty.</p>
</li>
</ul>
<p>The SOAP "http://www.w3.org/2003/05/soap/mep/OutboundMessage"
property has no value.</p>
<p>The WSDL "Out" message maps to the SOAP
"http://www.w3.org/2003/05/soap/mep/InboundMessage" property.</p>
</div>
<div class="div5">
<h6><a name="in-out-soap-r-service" id=
"in-out-soap-r-service"></a>5.10.4.2.2 The Service</h6>
<p>As the service, the property
"http://www.w3.org/2003/05/soap/bindingFramework/ExchangeContext/Role"
takes the value "RespondingSOAPNode".</p>
<p>The WSDL "In" message is constructed from the destination URI as
per the rules in section <a href=
"#_http_x-www-form-urlencoded"><strong>6.8.2 Serialization as
application/x-www-form-urlencoded</strong></a> , WHEN the value of
the {<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#property-InterfaceMessageReference.messagecontentmodel">message
content model</a>} property for the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-InterfaceMessageReference">
Interface Message Reference</a> components of the {<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#property-InterfaceOperation.interfacemessagereferences">interface
message references</a>} property is "#element".</p>
<p>The WSDL "Out" message maps to the SOAP
"http://www.w3.org/2003/05/soap/mep/OutboundMessage" property.</p>
</div>
</div>
<div class="div4">
<h5><a name="in-only-soap-r-r" id="in-only-soap-r-r"></a>5.10.4.3
WSDL In-Only to SOAP Request-Response</h5>
<p>This section describes the mapping from the WSDL
"http://www.w3.org/ns/wsdl/in-only" MEP to the SOAP
"http://www.w3.org/2003/05/soap/mep/request-response/" MEP.
Extensions (such as [<cite><a href="#WSA-Core">WSA 1.0
Core</a></cite>]) MAY alter these mappings.</p>
<div class="div5">
<h6><a name="in-only-soap-r-r-client" id=
"in-only-soap-r-r-client"></a>5.10.4.3.1 The Client</h6>
<p>As the client, the property
"http://www.w3.org/2003/05/soap/bindingFramework/ExchangeContext/Role"
takes the value "RequestingSOAPNode".</p>
<p>The SOAP
"http://www.w3.org/2003/05/soap/mep/ImmediateDestination" property
takes the value of the HTTP Request IRI, as defined in <a href=
"#_http_request_iri_"><strong>6.4.6 HTTP Request IRI</strong></a>,
and modified as described in section <a href=
"#_http_location_template"><strong>6.8.1 Serialization of the
instance data in parts of the HTTP request IRI</strong></a>.</p>
<p>The WSDL "In" message is mapped to the SOAP
"http://www.w3.org/2003/05/soap/mep/OutboundMessage" property.</p>
<p>The SOAP "http://www.w3.org/2003/05/soap/mep/InboundMessage"
property has no value.</p>
</div>
<div class="div5">
<h6><a name="in-only-soap-r-r-service" id=
"in-only-soap-r-r-service"></a>5.10.4.3.2 The Service</h6>
<p>As the service, the property
"http://www.w3.org/2003/05/soap/bindingFramework/ExchangeContext/Role"
takes the value "RespondingSOAPNode".</p>
<p>The WSDL "In" message is mapped to the SOAP
"http://www.w3.org/2003/05/soap/mep/InboundMessage" property.</p>
<p>The SOAP "http://www.w3.org/2003/05/soap/mep/OutboundMessage"
property has no value.</p>
</div>
</div>
<div class="div4">
<h5><a name="robust-in-only-soap-r-r" id=
"robust-in-only-soap-r-r"></a>5.10.4.4 WSDL Robust-In-Only to SOAP
Request-Response</h5>
<p>This section describes the mapping from the WSDL
"http://www.w3.org/ns/wsdl/robust-in-only" MEP to the SOAP
"http://www.w3.org/2003/05/soap/mep/request-response/" MEP.
Extensions (such as [<cite><a href="#WSA-Core">WSA 1.0
Core</a></cite>]) MAY alter these mappings.</p>
<div class="div5">
<h6><a name="robust-in-only-soap-r-r-client" id=
"robust-in-only-soap-r-r-client"></a>5.10.4.4.1 The Client</h6>
<p>As the client, the property
"http://www.w3.org/2003/05/soap/bindingFramework/ExchangeContext/Role"
takes the value "RequestingSOAPNode".</p>
<p>The SOAP
"http://www.w3.org/2003/05/soap/mep/ImmediateDestination" property
takes the value of the HTTP Request IRI, as defined in <a href=
"#_http_request_iri_"><strong>6.4.6 HTTP Request IRI</strong></a>,
and modified as described in section <a href=
"#_http_location_template"><strong>6.8.1 Serialization of the
instance data in parts of the HTTP request IRI</strong></a>.</p>
<p>The WSDL "In" message is mapped to the SOAP
"http://www.w3.org/2003/05/soap/mep/OutboundMessage" property.</p>
<p>The SOAP "http://www.w3.org/2003/05/soap/mep/InboundMessage" can
contain a SOAP fault.</p>
</div>
<div class="div5">
<h6><a name="robust-in-only-soap-r-r-service" id=
"robust-in-only-soap-r-r-service"></a>5.10.4.4.2 The Service</h6>
<p>As the service, the property
"http://www.w3.org/2003/05/soap/bindingFramework/ExchangeContext/Role"
takes the value "RespondingSOAPNode".</p>
<p>The WSDL "In" message is mapped to the SOAP
"http://www.w3.org/2003/05/soap/mep/InboundMessage" property.</p>
<p>The SOAP "http://www.w3.org/2003/05/soap/mep/OutboundMessage"
can contain a SOAP fault.</p>
</div>
</div>
</div>
</div>
<div class="div2">
<h3><a name="soap-conformance" id="soap-conformance"></a>5.11
Conformance</h3>
<p>An <em>element information item</em> whose namespace name is
"http://www.w3.org/ns/wsdl" and whose local part is
<code>description</code> conforms to this binding extension
specification if the <em>element information item</em>s and
<em>attribute information item</em>s whose namespace is
http://www.w3.org/ns/wsdl/soap conform to the XML Schema for that
element or attribute as defined by this specification and
additionally adheres to all the constraints contained in this
specification.</p>
</div>
</div>
<div class="div1">
<h2><a name="http-binding" id="http-binding"></a>6. WSDL HTTP
Binding Extension</h2>
<p>The HTTP binding extension described in this section is an
extension for [<cite><a href="#WSDL-PART1">WSDL 2.0 Core
Language</a></cite>] to enable Web services applications to use
HTTP 1.1 [<cite><a href="#RFC2616">IETF RFC 2616</a></cite>] (as
well as other versions of HTTP) and HTTPS [<cite><a href=
"#RFC2818">IETF RFC 2818</a></cite>]. This binding extension
extends WSDL 2.0 by adding properties to the component model
defined in [<cite><a href="#WSDL-PART1">WSDL 2.0 Core
Language</a></cite>]. In addition an XML Infoset representation for
these additional properties is provided, along with a mapping from
that representation to the various component properties.</p>
<p>As allowed in [<cite><a href="#WSDL-PART1">WSDL 2.0 Core
Language</a></cite>], a <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-Binding">Binding</a>
component can exist without indicating a specific <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-Interface">
Interface</a> component that it applies to and, in this case, no
<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingOperation">
Binding Operation</a> or <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingFault">
Binding Fault</a> components can be present in the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-Binding">Binding</a>
component.</p>
<p>The HTTP binding extension is designed with the objective of
minimizing what needs to be explicitly declared for common cases.
This is achieved by defining a set of default rules that affect all
<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-InterfaceOperation">
Interface Operation</a> components of an <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-Interface">
Interface</a> component to which the HTTP binding extension is
applied, unless specifically overridden by a <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingOperation">
Binding Operation</a> component. Thus, if a given <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-InterfaceOperation">
Interface Operation</a> component is not referred to specifically
by a <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingOperation">
Binding Operation</a> component, then all the default rules apply
to that <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-InterfaceOperation">
Interface Operation</a> component. As a result, in accordance with
the requirements of [<cite><a href="#WSDL-PART1">WSDL 2.0 Core
Language</a></cite>], all operations of an <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-Interface">
Interface</a> component will be bound by this binding
extension.</p>
<p><strong>Note:</strong> As in other parts of this specification,
one could have done away with "default" properties at the component
model level, and have set the value for the corresponding
non-default properties in the XML mapping section. However, default
properties are required for interface-less binding. Indeed, an
interface-less binding has no means to set the non-default version
of the property at the operation-level, since there is precisely no
operation (there is not even an interface). Hence the mapping needs
to be done elsewhere.</p>
<p>[<a name="instance_data" id="instance_data" title=
"instance data">Definition</a>: The internal tree representation of
an input, output or fault message is called an <strong>instance
data</strong>, and is constrained by the schema definition
associated with the message: the XML element referenced in the
{<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#property-InterfaceMessageReference.elementdeclaration">element
declaration</a>} property of the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-InterfaceMessageReference">
Interface Message Reference</a> component for input and output
messages (unless the {<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#property-InterfaceMessageReference.messagecontentmodel">message
content model</a>} is "#any"), and in the {<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#property-InterfaceFault.elementdeclaration">element
declaration</a>} property of an <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-InterfaceFault">
Interface Fault</a> component for faults.]</p>
<div class="div2">
<h3><a name="http-binding-id" id="http-binding-id"></a>6.1
Identifying the use of the HTTP Binding</h3>
<p>A <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-Binding">Binding</a>
component (defined in [<cite><a href="#WSDL-PART1">WSDL 2.0 Core
Language</a></cite>]) is identified as an HTTP binding by assigning
the value "http://www.w3.org/ns/wsdl/http" to the {<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#property-Binding.type">type</a>}
property of the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-Binding">Binding</a>
component.</p>
</div>
<div class="div2">
<h3><a name="http-syntax" id="http-syntax"></a>6.2 HTTP Syntax
Summary (Non-Normative)</h3>
<div class="exampleInner">
<pre xml:space="preserve">
&lt;description&gt;
&lt;binding name="<em>xs:NCName</em>" interface="<em>xs:QName</em>"?
type="<em>http://www.w3.org/ns/wsdl/http</em>"
<strong>whttp:methodDefault</strong>="<em>xs:string</em>"?
<strong>whttp:queryParameterSeparatorDefault</strong>="<em>xs:string</em>"?
<strong>whttp:cookies</strong>="<em>xs:boolean</em>"?
<strong>whttp:contentEncodingDefault</strong>="<em>xs:string</em>"? &gt;
&lt;documentation /&gt;?
&lt;fault ref="<em>xs:QName</em>"
<strong>whttp:code</strong>="<em>union of xs:int, xs:token</em>"?
<strong>whttp:contentEncoding</strong>="<em>xs:string</em>"? &gt;
&lt;documentation /&gt;*
&lt;<strong>whttp:header</strong> name="<em>xs:string</em>" type="<em>xs:QName</em>"
required="<em>xs:boolean</em>"? &gt;
&lt;documentation /&gt;*
&lt;/<strong>whttp:header</strong>&gt;*
&lt;/fault&gt;*
&lt;operation ref="<em>xs:QName</em>"
<strong>whttp:location</strong>="<em>xs:anyURI</em>"?
<strong>whttp:method</strong>="<em>xs:string</em>"?
<strong>whttp:inputSerialization</strong>="<em>xs:string</em>"?
<strong>whttp:outputSerialization</strong>="<em>xs:string</em>"?
<strong>whttp:faultSerialization</strong>="<em>xs:string</em>"?
<strong>whttp:queryParameterSeparator</strong>="<em>xs:string</em>"?
<strong>whttp:contentEncodingDefault</strong>="<em>xs:string</em>"?
<strong>whttp:ignoreUncited</strong>="<em>xs:boolean</em>"? &gt;
&lt;documentation /&gt;*
&lt;input messageLabel="<em>xs:NCName</em>"?
<strong>whttp:contentEncoding</strong>="<em>xs:string</em>"? &gt;
&lt;documentation /&gt;*
&lt;<strong>whttp:header</strong> ... /&gt;*
&lt;/input&gt;*
&lt;output messageLabel="<em>xs:NCName</em>"?
<strong>whttp:contentEncoding</strong>="<em>xs:string</em>"? &gt;
&lt;documentation /&gt;*
&lt;<strong>whttp:header</strong> ... /&gt;*
&lt;/output&gt;*
&lt;infault ref="<em>xs:QName</em>"
messageLabel="<em>xs:NCName</em>"? &gt;
&lt;documentation /&gt;*
&lt;/infault&gt;*
&lt;outfault ref="<em>xs:QName</em>"
messageLabel="<em>xs:NCName</em>"? &gt;
&lt;documentation /&gt;*
&lt;/outfault&gt;*
&lt;/operation&gt;*
&lt;/binding&gt;
&lt;service&gt;
&lt;endpoint name="<em>xs:NCName</em>" binding="<em>xs:QName</em>" address="<em>xs:anyURI</em>"?
<strong>whttp:authenticationScheme</strong>="<em>xs:token</em>"?
<strong>whttp:authenticationRealm</strong>="<em>xs:string</em>"? &gt;
&lt;documentation /&gt;*
&lt;/endpoint&gt;
&lt;/service&gt;
&lt;/description&gt;
</pre></div>
</div>
<div class="div2">
<h3><a name="http-binding-supported-extensions" id=
"http-binding-supported-extensions"></a>6.3 Supported
Extensions</h3>
<p>An implementation of the HTTP binding extension MUST support the
following extensions:</p>
<ul>
<li>
<p>"http://www.w3.org/ns/wsdl-extensions/safe" (see <a href=
"#safety"><strong>3.1 Operation safety</strong></a>)</p>
</li>
</ul>
</div>
<div class="div2">
<h3><a name="_http_binding_default_rules" id=
"_http_binding_default_rules"></a>6.4 HTTP Binding Rules</h3>
<div class="div3">
<h4><a name="_http_binding_default_rule_method" id=
"_http_binding_default_rule_method"></a>6.4.1 HTTP Method
Selection</h4>
<p><span id="HTTPBinding-2083" class="test-assertion-tr">When
formulating the HTTP message to be transmitted, the HTTP request
method used MUST be selected using one of the
following:<sup><a href="#HTTPBinding-2083-summary" title=
"Link to assertion HTTPBinding-2083 summary"></a></sup></span></p>
<ul>
<li>
<p>For a given <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-InterfaceOperation">
Interface Operation</a> component, if there is a <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingOperation">
Binding Operation</a> component whose {<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#property-BindingOperation.interfaceoperation">interface
operation</a>} property matches the component in question and its
{<a href="#property-BindingOperation.httpmethod">http method</a>}
property has a value, then the value of the {<a href=
"#property-BindingOperation.httpmethod">http method</a>}
property.</p>
</li>
<li>
<p>Otherwise, the value of the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-Binding">Binding</a>
component's {<a href="#property-Binding.httpmethoddefault">http
method default</a>}, if any.</p>
</li>
<li>
<p>Otherwise, if a {<a href=
"#property-InterfaceOperation.safe">safe</a>} property as defined
in <a href="#safety"><strong>3.1 Operation safety</strong></a> is
present on the bound <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-InterfaceOperation">
Interface Operation</a> component and has a value of "true", the
value "GET".</p>
</li>
<li>
<p>Otherwise, the value "POST".</p>
</li>
</ul>
</div>
<div class="div3">
<h4><a name="_http_binding_default_rule_coding" id=
"_http_binding_default_rule_coding"></a>6.4.2 HTTP Content Encoding
Selection</h4>
<p><span id="HTTPBinding-2084" class="test-assertion-tr">When
formulating the HTTP message to be transmitted, content encoding
for a given <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingMessageReference">
Binding Message Reference</a> component is determined as
follows:<sup><a href="#HTTPBinding-2084-summary" title=
"Link to assertion HTTPBinding-2084 summary"></a></sup></span></p>
<ul>
<li>
<p>If the {<a href=
"#property-BindingMessageReference.httpcontentencoding">http
content encoding</a>} property has a non-empty value, a
<code>Content-Encoding</code> header-field MUST be inserted with
the value of this property.</p>
</li>
<li>
<p>Otherwise, if the value of the parent <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingOperation">
Binding Operation</a> component's {<a href=
"#property-BindingOperation.httpcontentencodingdefault">http
content encoding default</a>} property has a non-empty value, a
<code>Content-Encoding</code> header-field MUST be inserted with
the value of this property.</p>
</li>
<li>
<p>Otherwise, if the value of the grandparent <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-Binding">Binding</a>
component's {<a href=
"#property-Binding.httpcontentencodingdefault">http content
encoding default</a>} property has a non-empty value, a
<code>Content-Encoding</code> header-field MUST be inserted with
the value of this property.</p>
</li>
</ul>
<p><span id="HTTPBinding-2085" class="test-assertion-tr">When
formulating the HTTP fault message to be transmitted, content
encoding for a given <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingFault">
Binding Fault</a> component is determined as follows:<sup><a href=
"#HTTPBinding-2085-summary" title=
"Link to assertion HTTPBinding-2085 summary"></a></sup></span></p>
<ul>
<li>
<p>If the {<a href=
"#property-BindingFault.httpcontentencoding">http content
encoding</a>} property has a non-empty value, then a
<code>Content-Encoding</code> header-field MUST be inserted with
the value of this property.</p>
</li>
<li>
<p>If the {<a href=
"#property-Binding.httpcontentencodingdefault">http content
encoding default</a>} property has a non-empty value, then a
<code>Content-Encoding</code> header-field MUST be inserted with
the value of this property.</p>
</li>
</ul>
<p>The body of the response message is encoded using the specified
content encoding.</p>
</div>
<div class="div3">
<h4><a name="_http_binding_default_rule_psf" id=
"_http_binding_default_rule_psf"></a>6.4.3 Payload Construction And
Serialization Format</h4>
<p><span id="HTTPBinding-2086" class="test-assertion-tr">When
formulating the HTTP message to be transmitted, the contents of the
payload (i.e. the contents of the HTTP message body) MUST be what
is defined by the corresponding <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-InterfaceMessageReference">
Interface Message Reference</a> or <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-InterfaceFault">
Interface Fault</a> components, serialized as specified by the
<a title="serialization format" href=
"#serialization_format">serialization format</a> used.<sup><a href=
"#HTTPBinding-2086-summary" title=
"Link to assertion HTTPBinding-2086 summary"></a></sup></span></p>
<p>[<a name="serialization_format" id="serialization_format" title=
"serialization format">Definition</a>: The <strong>serialization
format</strong> is a media type token ("type/subtype"). It
identifies rules to serialize the payload in an HTTP message. Its
value is defined by the following rules. The HTTP request
serialization format MUST be in the media type range specified by
the {<a href=
"#property-BindingOperation.httpinputserialization">http input
serialization</a>} property. The HTTP response serialization format
MUST be in the media type range specified by the {<a href=
"#property-BindingOperation.httpoutputserialization">http output
serialization</a>} property. The HTTP serialization format of a
fault MUST be in the media type range specified by the {<a href=
"#property-BindingOperation.httpfaultserialization">http fault
serialization</a>} property. The concept of media type range is
defined in Section 14.1 of [<cite><a href="#RFC2616">IETF RFC
2616</a></cite>]. The serialization format MAY have
<strong>associated media type parameters</strong> (specified with
the <code>parameter</code> production of <code>media-range</code>
in Section 14.1 of [<cite><a href="#RFC2616">IETF RFC
2616</a></cite>]. ]</p>
<p>Section <a href="#_http_serialization"><strong>6.8 Serialization
Format of Instance Data</strong></a> defines serialization formats
supported by this binding extension along with their
constraints.</p>
<ul>
<li>
<p><a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-InterfaceMessageReference">
Interface Message Reference</a> component:</p>
<ul>
<li>
<p>If the value of the {<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#property-InterfaceMessageReference.messagecontentmodel">message
content model</a>} property of the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-InterfaceMessageReference">
Interface Message Reference</a> bound is "#any" or "#element", the
serialization of the instance data is specified as defined in
section <a href="#_http_ser_xml"><strong>6.4.3.1 Serialization
rules for XML messages</strong></a>.</p>
</li>
<li>
<p><span id="HTTPBinding-2087" class="test-assertion-tr">If the
value is "#none", then the payload MUST be empty and the value of
the corresponding serialization property ({<a href=
"#property-BindingOperation.httpinputserialization">http input
serialization</a>} or {<a href=
"#property-BindingOperation.httpoutputserialization">http output
serialization</a>}) is ignored.<sup><a href=
"#HTTPBinding-2087-summary" title=
"Link to assertion HTTPBinding-2087 summary"></a></sup></span></p>
</li>
<li>
<p>If the value is "#other", then the <a title=
"serialization format" href="#serialization_format">serialization
format</a> and its associated media type parameters, if any,
specifies the value of the HTTP <code>Content-Type</code>
entity-header field as defined in section 14.17 of [<cite><a href=
"#RFC2616">IETF RFC 2616</a></cite>]. The serialization of the
payload is undefined.</p>
</li>
</ul>
</li>
<li>
<p><a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-InterfaceFault">
Interface Fault</a> component: the serialization of the instance
data is specified as defined in section <a href=
"#_http_ser_xml"><strong>6.4.3.1 Serialization rules for XML
messages</strong></a>.</p>
</li>
</ul>
<p><span id="HTTPBinding-2088" class="test-assertion-tr">If the
<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-InterfaceMessageReference">
Interface Message Reference</a> component or the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-InterfaceFault">
Interface Fault</a> component is declared using a non-XML type
system (as considered in the Types section of [<cite><a href=
"#WSDL-PART1">WSDL 2.0 Core Language</a></cite>]), then additional
binding rules MUST be defined in an extension specification to
indicate how to map those components into the HTTP
envelope.<sup><a href="#HTTPBinding-2088-summary" title=
"Link to assertion HTTPBinding-2088 summary"></a></sup></span></p>
<div class="div4">
<h5><a name="_http_ser_xml" id="_http_ser_xml"></a>6.4.3.1
Serialization rules for XML messages</h5>
<p><span id="HTTPBinding-2089" class="test-assertion-tr">The
serialization rules for messages whose {<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#property-InterfaceMessageReference.messagecontentmodel">message
content model</a>} is either "#element" or "#any", AND the
serialization rules for fault messages, are as
follows:<sup><a href="#HTTPBinding-2089-summary" title=
"Link to assertion HTTPBinding-2089 summary"></a></sup></span></p>
<ul>
<li>
<p>If the <a title="serialization format" href=
"#serialization_format">serialization format</a> is
"application/x-www-form-urlencoded", then the serialization of the
<a title="instance data" href="#instance_data">instance data</a> is
defined by section <a href=
"#_http_x-www-form-urlencoded"><strong>6.8.2 Serialization as
application/x-www-form-urlencoded</strong></a> .</p>
</li>
<li>
<p>If the <a title="serialization format" href=
"#serialization_format">serialization format</a> is
"multipart/form-data", then the serialization of the <a title=
"instance data" href="#instance_data">instance data</a> is defined
by section <a href=
"#_http_operation_multipart_encoding"><strong>6.8.4 Serialization
as multipart/form-data</strong></a> .</p>
</li>
<li>
<p>If the <a title="serialization format" href=
"#serialization_format">serialization format</a> is
"application/xml", then the serialization of the <a title=
"instance data" href="#instance_data">instance data</a> is defined
by section <a href="#_http_operation_xml_encoding"><strong>6.8.3
Serialization as application/xml</strong></a> .</p>
</li>
<li>
<p>Otherwise, then the serialization of the <a title=
"instance data" href="#instance_data">instance data</a> is defined
by section <a href="#_http_operation_xml_encoding"><strong>6.8.3
Serialization as application/xml</strong></a> with the following
additional rule: the value of the HTTP <code>Content-Type</code>
entity-header field is the value of the <a title=
"serialization format" href="#serialization_format">serialization
format</a> and its associated media type parameters, if any.</p>
</li>
</ul>
</div>
</div>
<div class="div3">
<h4><a name="_http_binding_default_rule_dsf" id=
"_http_binding_default_rule_dsf"></a>6.4.4 Default input and output
serialization format</h4>
<p>Section <a href="#method_value">Table 6-1</a> defines the
default values for the GET, POST, PUT and DELETE values of the HTTP
method as selected in section <a href=
"#_http_binding_default_rule_method"><strong>6.4.1 HTTP Method
Selection</strong></a>.</p>
<a name="method_value" id="method_value"></a>
<table border="1" summary=
"The first column contains the value of the {http method} property. The second column contains the corresponding default {http input serialization}, and the third column the corresponding default {http output serialization}.">
<caption>Table 6-1. Default values for GET, POST, PUT and
DELETE</caption>
<tbody>
<tr>
<th rowspan="1" colspan="1">HTTP Method</th>
<th rowspan="1" colspan="1">Default Input Serialization</th>
<th rowspan="1" colspan="1">Default Output Serialization</th>
</tr>
<tr>
<th rowspan="1" colspan="1">Selected in <a href=
"#_http_binding_default_rule_method"><strong>6.4.1 HTTP Method
Selection</strong></a></th>
<th rowspan="1" colspan="1">{<a href=
"#property-BindingOperation.httpinputserialization">http input
serialization</a>}</th>
<th rowspan="1" colspan="1">{<a href=
"#property-BindingOperation.httpoutputserialization">http output
serialization</a>}</th>
</tr>
<tr>
<td rowspan="1" colspan="1">GET</td>
<td rowspan="1" colspan="1">
<code>application/x-www-form-urlencoded</code></td>
<td rowspan="1" colspan="1"><code>application/xml</code></td>
</tr>
<tr>
<td rowspan="1" colspan="1">POST</td>
<td rowspan="1" colspan="1"><code>application/xml</code></td>
<td rowspan="1" colspan="1"><code>application/xml</code></td>
</tr>
<tr>
<td rowspan="1" colspan="1">PUT</td>
<td rowspan="1" colspan="1"><code>application/xml</code></td>
<td rowspan="1" colspan="1"><code>application/xml</code></td>
</tr>
<tr>
<td rowspan="1" colspan="1">DELETE</td>
<td rowspan="1" colspan="1">
<code>application/x-www-form-urlencoded</code></td>
<td rowspan="1" colspan="1"><code>application/xml</code></td>
</tr>
</tbody>
</table>
<br />
<div class="note">
<p class="prefix"><strong>Note:</strong></p>
<p>The <code>application/x-www-form-urlencoded</code> serialization
format places constraints on the XML Schema definition of the
{<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#property-InterfaceMessageReference.elementdeclaration">element
declaration</a>} property of the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-InterfaceMessageReference">
Interface Message Reference</a> components of the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-InterfaceOperation">
Interface Operation</a> component bound (see <a href=
"#_http_x-www-form-urlencoded"><strong>6.8.2 Serialization as
application/x-www-form-urlencoded</strong></a> ).</p>
</div>
<p>The default value for the {<a href=
"#property-BindingOperation.httpinputserialization">http input
serialization</a>} and {<a href=
"#property-BindingOperation.httpoutputserialization">http output
serialization</a>} properties for any other HTTP method selected is
<code>application/xml</code>.</p>
<p>Mechanisms other than setting the serialization properties MAY
modify the serialization format of the <a title="instance data"
href="#instance_data">instance data</a> corresponding to the
message. An example of such modification is the WSDL SOAP Binding
HTTP IRI Serialization rules specified in <a href=
"#soap-defaults"><strong>5.3 SOAP Binding Rules</strong></a>. This
binding extension specifies that the <a href=
"http://www.w3.org/TR/2007/REC-soap12-part2-20070427/#soapresmep">SOAP-Response
Message Exchange Pattern</a> ([<cite><a href="#SOAP12-PART2">SOAP
1.2 Part 2: Adjuncts (Second Edition)</a></cite>], Section 6.3)
supports input message serialization only as
<code>application/x-www-form-urlencoded</code>. Other examples are
other message exchange patterns or binding extensions.</p>
</div>
<div class="div3">
<h4><a name="_http_default_rule_head" id=
"_http_default_rule_head"></a>6.4.5 HTTP Header Construction</h4>
<p><span id="HTTPHeader-2090" class="test-assertion-tr">If the
{<a href="#property-BindingMessageReference.httpheaders">http
headers</a>} property as defined in section <a href=
"#http-headers-decl"><strong>6.6 Declaring HTTP
Headers</strong></a> exists and is not empty in a <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingMessageReference">
Binding Message Reference</a> or <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingFault">
Binding Fault</a> component, HTTP headers conforming to each
<a href="#component-HTTPHeader">HTTP Header</a> component contained
in this {<a href=
"#property-BindingMessageReference.httpheaders">http headers</a>}
property MAY be serialized as follows:<sup><a href=
"#HTTPHeader-2090-summary" title=
"Link to assertion HTTPHeader-2090 summary"></a></sup></span></p>
<ul>
<li>
<p>The HTTP header field name used is the value of the {<a href=
"#property-HTTPHeader.name">name</a>} property of the <a href=
"#component-HTTPHeader">HTTP Header</a> component. <span id=
"HTTPHeader-2091" class="test-assertion-tr">The HTTP binding MUST
NOT set an HTTP header field corresponding to the value of the
{<a href="#property-HTTPHeader.name">name</a>} property already set
by another mechanism, such as the HTTP stack or another
feature.<sup><a href="#HTTPHeader-2091-summary" title=
"Link to assertion HTTPHeader-2091 summary"></a></sup></span></p>
</li>
<li>
<p>The HTTP header field value, whose XML Schema type is declared
by the {<a href="#property-HTTPHeader.typedefinition">type
definition</a>} property of the <a href=
"#component-HTTPHeader">HTTP Header</a> component, is serialized
following the rules of the <code>field-value</code> production of
section 4.2 of [<cite><a href="#RFC2616">IETF RFC
2616</a></cite>].</p>
</li>
</ul>
<p><span id="HTTPHeader-2092" class="test-assertion-tr">If the
value of an <a href="#component-HTTPHeader">HTTP Header</a>
component's {<a href="#property-HTTPHeader.required">required</a>}
property is "true", the inclusion of this HTTP header field is
REQUIRED<sup><a href="#HTTPHeader-2092-summary" title=
"Link to assertion HTTPHeader-2092 summary"></a></sup></span>,
otherwise it is OPTIONAL.</p>
</div>
<div class="div3">
<h4><a name="_http_request_iri_" id="_http_request_iri_"></a>6.4.6
HTTP Request IRI</h4>
<p><span id="HTTPBindingOperation-2093" class=
"test-assertion-tr">When formulating the HTTP Request, the HTTP
Request IRI is an absolute IRI reference and is the value of the
{<a href="#property-BindingOperation.httplocation">http
location</a>} property of the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingOperation">
Binding Operation</a> component, resolved using the value of the
{<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#property-Endpoint.address">address</a>}
property of the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-Endpoint">Endpoint</a>
component (see section 5 of [<cite><a href="#RFC3986">IETF RFC
3986</a></cite>]).<sup><a href="#HTTPBindingOperation-2093-summary"
title=
"Link to assertion HTTPBindingOperation-2093 summary"></a></sup></span>
If the {<a href="#property-BindingOperation.httplocation">http
location</a>} property is not set, the HTTP Request IRI is the
value of the {<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#property-Endpoint.address">address</a>}
property of the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-Endpoint">Endpoint</a>
component. Input serializations may define additional processing
rules to be applied to the value of {<a href=
"#property-BindingOperation.httplocation">http location</a>} before
applying the process of reference resolution, i.e. before combining
it with the {<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#property-Endpoint.address">address</a>}
property of the endpoint element to form the HTTP Request IRI. For
example, the three serialization formats defined in section
<a href="#_http_serialization"><strong>6.8 Serialization Format of
Instance Data</strong></a> define a syntax to use the {<a href=
"#property-BindingOperation.httplocation">http location</a>} as a
template using elements of the instance data.</p>
<p>If the resulting IRI uses the <code>https</code> scheme, then
HTTP over TLS [<cite><a href="#RFC2818">IETF RFC 2818</a></cite>]
is used to send the HTTP request.</p>
<p>The HTTP Request IRI identifies the resource upon which to apply
the request and is transmitted using the Request-URI, and
optionally the Host header field, as defined in [<cite><a href=
"#RFC2616">IETF RFC 2616</a></cite>].</p>
</div>
</div>
<div class="div2">
<h3><a name="http-operation-decl" id="http-operation-decl"></a>6.5
Binding Operations</h3>
<div class="div3">
<h4><a name="http-operation-decl-dest" id=
"http-operation-decl-dest"></a>6.5.1 Description</h4>
<p>This binding extension specification provides a binding to HTTP
of <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-InterfaceOperation">
Interface Operation</a> components whose {<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#property-InterfaceOperation.messageexchangepattern">message
exchange pattern</a>} property has a value amongst:</p>
<ul>
<li>
<p>"http://www.w3.org/ns/wsdl/in-only"</p>
</li>
<li>
<p>"http://www.w3.org/ns/wsdl/robust-in-only"</p>
</li>
<li>
<p>"http://www.w3.org/ns/wsdl/in-out"</p>
</li>
</ul>
<p>This HTTP binding extension MAY be used with other message
exchange patterns, such as outbound message exchange patterns,
provided that additional semantics are defined, for example through
an extension.</p>
<p>Each of the three supported message exchange patterns above
involves one or two messages or faults being exchanged. <span id=
"HTTPBindingOperation-2094" class="test-assertion-tr">The first one
is transmitted using an HTTP request, and the second one is
transmitted using the corresponding HTTP response.<sup><a href=
"#HTTPBindingOperation-2094-summary" title=
"Link to assertion HTTPBindingOperation-2094 summary"></a></sup></span>
<span id="HTTPBindingOperation-2095" class="test-assertion-tr">In
cases where only one single message is being sent, the message body
of the HTTP response MUST be empty.<sup><a href=
"#HTTPBindingOperation-2095-summary" title=
"Link to assertion HTTPBindingOperation-2095 summary"></a></sup></span></p>
<p>For successful responses, the HTTP response code MUST be:</p>
<ul>
<li>
<p><span id="InterfaceOperation-2096" class="test-assertion-tr">202
when the MEP is "http://www.w3.org/ns/wsdl/in-only"<sup><a href=
"#InterfaceOperation-2096-summary" title=
"Link to assertion InterfaceOperation-2096 summary"></a></sup></span></p>
</li>
<li>
<p><span id="InterfaceOperation-2097" class="test-assertion-tr">204
when the MEP is
"http://www.w3.org/ns/wsdl/robust-in-only"<sup><a href=
"#InterfaceOperation-2097-summary" title=
"Link to assertion InterfaceOperation-2097 summary"></a></sup></span></p>
</li>
</ul>
<p>For every <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingOperation">
Binding Operation</a> component corresponding to such <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-InterfaceOperation">
Interface Operation</a> components, this binding extension
specification allows the user to indicate the HTTP method to use,
the input, output and fault serialization, and the location of the
bound operation.</p>
</div>
<div class="div3">
<h4><a name="http-operation-decl-relate" id=
"http-operation-decl-relate"></a>6.5.2 Relationship to WSDL
Component Model</h4>
<p>The HTTP binding extension adds the following properties to the
WSDL component model (as defined in [<cite><a href=
"#WSDL-PART1">WSDL 2.0 Core Language</a></cite>]):</p>
<ul>
<li>
<p>{<a name="property-BindingOperation.httplocation" id=
"property-BindingOperation.httplocation">http location</a>}
OPTIONAL. An <em>xs:anyURI</em>, to the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingOperation">
Binding Operation</a> component. <span id=
"HTTPBindingOperation-2098" class="test-assertion-tr">It MUST
contain an IRI reference and MUST NOT include a fragment identifier
component.<sup><a href="#HTTPBindingOperation-2098-summary" title=
"Link to assertion HTTPBindingOperation-2098 summary"></a></sup></span></p>
</li>
<li>
<p>{<a name="property-Binding.httpmethoddefault" id=
"property-Binding.httpmethoddefault">http method default</a>}
OPTIONAL. A <em>xs:string</em>, to the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-Binding">Binding</a>
component, indicating the default value for the HTTP Request Method
for all the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-InterfaceOperation">
Interface Operation</a> components of any <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-Interface">
Interface</a> component to which this <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-Binding">Binding</a>
is applied.</p>
</li>
<li>
<p>{<a name="property-BindingOperation.httpmethod" id=
"property-BindingOperation.httpmethod">http method</a>} OPTIONAL. A
<em>xs:string</em>, to the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingOperation">
Binding Operation</a> component, indicating the value for the HTTP
Request Method for this specific <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingOperation">
Binding Operation</a>.</p>
</li>
<li>
<p>{<a name="property-BindingOperation.httpinputserialization" id=
"property-BindingOperation.httpinputserialization">http input
serialization</a>} REQUIRED. A <em>xs:string</em>, to the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingOperation">
Binding Operation</a> component, indicating allowed serialization
rules of the HTTP Request message for this specific operation, as
described in section <a href="#_http_ser_val"><strong>6.5.3
Specification of serialization rules allowed</strong></a>.</p>
</li>
<li>
<p>{<a name="property-BindingOperation.httpoutputserialization" id=
"property-BindingOperation.httpoutputserialization">http output
serialization</a>} REQUIRED. A <em>xs:string</em>, to the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingOperation">
Binding Operation</a> component, indicating allowed serialization
rules of the HTTP Response message for this specific operation, as
described in section <a href="#_http_ser_val"><strong>6.5.3
Specification of serialization rules allowed</strong></a>.</p>
</li>
<li>
<p>{<a name="property-BindingOperation.httpfaultserialization" id=
"property-BindingOperation.httpfaultserialization">http fault
serialization</a>} REQUIRED. A <em>xs:string</em>, to the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingOperation">
Binding Operation</a> component, indicating allowed serialization
rules of the HTTP Response message for this specific operation in
case a fault is returned, as described in section <a href=
"#_http_ser_val"><strong>6.5.3 Specification of serialization rules
allowed</strong></a>.</p>
</li>
<li>
<p>{<a name="property-Binding.httpqueryparameterseparatordefault"
id="property-Binding.httpqueryparameterseparatordefault">http query
parameter separator default</a>} REQUIRED. A <em>xs:string</em>, to
the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-Binding">Binding</a>
component, indicating the default query parameter separator
character for all the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-InterfaceOperation">
Interface Operation</a> components of any <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-Interface">
Interface</a> component to which this <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-Binding">Binding</a>
is applied to.</p>
</li>
<li>
<p>{<a name="property-BindingOperation.httpqueryparameterseparator"
id="property-BindingOperation.httpqueryparameterseparator">http
query parameter separator</a>} OPTIONAL. A <em>xs:string</em>, to
the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingOperation">
Binding Operation</a> component, indicating the query parameter
separator character for this <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingOperation">
Binding Operation</a>.</p>
</li>
</ul>
</div>
<div class="div3">
<h4><a name="_http_ser_val" id="_http_ser_val"></a>6.5.3
Specification of serialization rules allowed</h4>
<p><span id="HTTPSerialization-2099" class="test-assertion-tr">The
value of the {<a href=
"#property-BindingOperation.httpinputserialization">http input
serialization</a>}, {<a href=
"#property-BindingOperation.httpoutputserialization">http output
serialization</a>} and {<a href=
"#property-BindingOperation.httpfaultserialization">http fault
serialization</a>} properties is similar to the value allowed for
the <code>Accept</code> HTTP header defined by the HTTP 1.1
specification, Section 14.1 (see [<cite><a href="#RFC2616">IETF RFC
2616</a></cite>]) and MUST follow the production rules defined in
that section except for the following:<sup><a href=
"#HTTPSerialization-2099-summary" title=
"Link to assertion HTTPSerialization-2099 summary"></a></sup></span></p>
<ol class="enumar">
<li>
<p>The prefix <code>"Accept:"</code> MUST NOT be used.</p>
</li>
<li>
<p>The rule <code>qdtext</code> is changed from:</p>
<p><code>qdtext = &lt;any TEXT except&lt;"&gt;&gt;</code></p>
<p>to:</p>
<p><code>qdtext = &lt;any CHAR except&lt;"&gt;&gt;</code></p>
<p>This change is made to disallow non-US-ASCII OCTETs.</p>
</li>
</ol>
<p>These properties indicate the range of media types and
associated parameters with which an instance MAY be serialized.
<span id="HTTPBindingOperation-2100" class="test-assertion-tr">The
value of the <a title="serialization format" href=
"#serialization_format">serialization format</a> used for a message
is a media type which MUST be covered by this range.<sup><a href=
"#HTTPBindingOperation-2100-summary" title=
"Link to assertion HTTPBindingOperation-2100 summary"></a></sup></span>&#160;
<span id="HTTPBindingOperation-2101" class="test-assertion-tr">Wild
cards (for example, "application/*") SHOULD NOT be used in this
<em>attribute information item</em> since they may lead to
interoperability problems.<sup><a href=
"#HTTPBindingOperation-2101-summary" title=
"Link to assertion HTTPBindingOperation-2101 summary"></a></sup></span></p>
<p>The use of {<a href=
"#property-BindingOperation.httpinputserialization">http input
serialization</a>}, {<a href=
"#property-BindingOperation.httpoutputserialization">http output
serialization</a>} and {<a href=
"#property-BindingOperation.httpfaultserialization">http fault
serialization</a>} is specified in section <a href=
"#_http_binding_default_rule_psf"><strong>6.4.3 Payload
Construction And Serialization Format</strong></a>.</p>
</div>
<div class="div3">
<h4><a name="http-operation-decl-xml" id=
"http-operation-decl-xml"></a>6.5.4 XML Representation</h4>
<div class="exampleInner">
<pre xml:space="preserve">
&lt;description&gt;
&lt;binding <strong>whttp:methodDefault</strong>="<em>xs:string</em>"?
<strong>whttp:queryParameterSeparatorDefault</strong>="<em>xs:string</em>"? &gt;
&lt;operation ref="<em>xs:QName</em>"
<strong>whttp:location</strong>="<em>xs:anyURI</em>"?
<strong>whttp:method</strong>="<em>xs:string</em>"?
<strong>whttp:inputSerialization</strong>="<em>xs:string</em>"?
<strong>whttp:outputSerialization</strong>="<em>xs:string</em>"?
<strong>whttp:faultSerialization</strong>="<em>xs:string</em>"?
<strong>whttp:queryParameterSeparator</strong>="<em>xs:string</em>"? &gt;
&lt;/operation&gt;
&lt;/binding&gt;
&lt;/description&gt;
</pre></div>
<p>The XML representation for binding an Operation are six
<em>attribute information item</em>s with the following Infoset
properties:</p>
<ul>
<li>
<p>An OPTIONAL <code>location</code> <em>attribute information
item</em> with the following Infoset properties:</p>
<ul>
<li>
<p>A [local name] of <code>location</code></p>
</li>
<li>
<p>A [namespace name] of "http://www.w3.org/ns/wsdl/http"</p>
</li>
<li>
<p>A type of <em>xs:anyURI</em></p>
</li>
</ul>
</li>
<li>
<p>An OPTIONAL <code>method</code> <em>attribute information
item</em> with the following Infoset properties:</p>
<ul>
<li>
<p>A [local name] of <code>method</code></p>
</li>
<li>
<p>A [namespace name] of "http://www.w3.org/ns/wsdl/http"</p>
</li>
<li>
<p>A type of <em>xs:string</em></p>
</li>
</ul>
</li>
<li>
<p>An OPTIONAL <code>inputSerialization</code> <em>attribute
information item</em> with the following Infoset properties:</p>
<ul>
<li>
<p>A [local name] of <code>inputSerialization</code></p>
</li>
<li>
<p>A [namespace name] of "http://www.w3.org/ns/wsdl/http"</p>
</li>
<li>
<p>A type of <em>xs:string</em></p>
</li>
</ul>
</li>
<li>
<p>An OPTIONAL <code>outputSerialization</code> <em>attribute
information item</em> with the following Infoset properties:</p>
<ul>
<li>
<p>A [local name] of <code>outputSerialization</code></p>
</li>
<li>
<p>A [namespace name] of "http://www.w3.org/ns/wsdl/http"</p>
</li>
<li>
<p>A type of <em>xs:string</em></p>
</li>
</ul>
</li>
<li>
<p>An OPTIONAL <code>faultSerialization</code> <em>attribute
information item</em> with the following Infoset properties:</p>
<ul>
<li>
<p>A [local name] of <code>faultSerialization</code></p>
</li>
<li>
<p>A [namespace name] of "http://www.w3.org/ns/wsdl/http"</p>
</li>
<li>
<p>A type of <em>xs:string</em></p>
</li>
</ul>
</li>
<li>
<p>An OPTIONAL <code>queryParameterSeparator</code> <em>attribute
information item</em> with the following Infoset properties:</p>
<ul>
<li>
<p>A [local name] of <code>queryParameterSeparator</code></p>
</li>
<li>
<p>A [namespace name] of "http://www.w3.org/ns/wsdl/http"</p>
</li>
<li>
<p>A type of <em>xs:string</em> whose pattern facet is
"[&amp;;a-zA-Z0-9\-\._~!$'\(\):@/\?\*\+,]{1,1}",
<code>"&amp;"</code> and <code>";"</code> being the most frequently
used characters in practice.</p>
</li>
</ul>
</li>
</ul>
<p>The following <em>attribute information item</em>s for the
<code>binding</code> <em>element information item</em> are
defined:</p>
<ul>
<li>
<p>An OPTIONAL <code>methodDefault</code> <em>attribute information
item</em> with the following Infoset properties:</p>
<ul>
<li>
<p>A [local name] of <code>methodDefault</code></p>
</li>
<li>
<p>A [namespace name] of "http://www.w3.org/ns/wsdl/http"</p>
</li>
<li>
<p>A type of <em>xs:string</em></p>
</li>
</ul>
</li>
<li>
<p>An OPTIONAL <code>queryParameterSeparatorDefault</code>
<em>attribute information item</em> with the following Infoset
properties:</p>
<ul>
<li>
<p>A [local name] of
<code>queryParameterSeparatorDefault</code></p>
</li>
<li>
<p>A [namespace name] of "http://www.w3.org/ns/wsdl/http"</p>
</li>
<li>
<p>A type of <em>xs:string</em> whose length facet value is
<em>"1"</em>. The allowed characters are the same as for the
{<a href=
"#property-BindingOperation.httpqueryparameterseparator">http query
parameter separator</a>} property above.</p>
</li>
</ul>
</li>
</ul>
</div>
<div class="div3">
<h4><a name="http-operation-decl-mapping" id=
"http-operation-decl-mapping"></a>6.5.5 Mapping from XML
Representation to Component Properties</h4>
<p>See <a href="#tab_HTTP_Operation_Mapping">Table 6-2</a>.</p>
<a name="tab_HTTP_Operation_Mapping" id=
"tab_HTTP_Operation_Mapping"></a>
<table border="1">
<caption>Table 6-2. Mapping from XML Representation to Binding
Operation component Extension Properties</caption>
<tbody>
<tr>
<th rowspan="1" colspan="1">Property</th>
<th rowspan="1" colspan="1">Value</th>
</tr>
<tr>
<td rowspan="1" colspan="1">{<a href=
"#property-BindingOperation.httplocation">http location</a>}</td>
<td rowspan="1" colspan="1">The actual value of the
<code>whttp:location</code> <em>attribute information item</em>, if
present.</td>
</tr>
<tr>
<td rowspan="1" colspan="1">{<a href=
"#property-Binding.httpmethoddefault">http method default</a>}</td>
<td rowspan="1" colspan="1">The actual value of the
<code>whttp:methodDefault</code> <em>attribute information
item</em>, if present.</td>
</tr>
<tr>
<td rowspan="1" colspan="1">{<a href=
"#property-BindingOperation.httpmethod">http method</a>}</td>
<td rowspan="1" colspan="1">The actual value of the
<code>whttp:method</code> <em>attribute information item</em>, if
present.</td>
</tr>
<tr>
<td rowspan="1" colspan="1">{<a href=
"#property-BindingOperation.httpinputserialization">http input
serialization</a>}</td>
<td rowspan="1" colspan="1">The actual value of the
<code>whttp:inputSerialization</code> <em>attribute information
item</em>, if present; otherwise, the default value as defined in
<a href="#_http_binding_default_rules"><strong>6.4 HTTP Binding
Rules</strong></a>.</td>
</tr>
<tr>
<td rowspan="1" colspan="1">{<a href=
"#property-BindingOperation.httpoutputserialization">http output
serialization</a>}</td>
<td rowspan="1" colspan="1">The actual value of the
<code>whttp:outputSerialization</code> <em>attribute information
item</em>, if present; otherwise, the default value as defined in
<a href="#_http_binding_default_rules"><strong>6.4 HTTP Binding
Rules</strong></a>.</td>
</tr>
<tr>
<td rowspan="1" colspan="1">{<a href=
"#property-BindingOperation.httpfaultserialization">http fault
serialization</a>}</td>
<td rowspan="1" colspan="1">The actual value of the
<code>whttp:faultSerialization</code> <em>attribute information
item</em>, if present; otherwise "application/xml".</td>
</tr>
<tr>
<td rowspan="1" colspan="1">{<a href=
"#property-Binding.httpqueryparameterseparatordefault">http query
parameter separator default</a>}</td>
<td rowspan="1" colspan="1">The actual value of the
<code>whttp:queryParameterSeparatorDefault</code> <em>attribute
information item</em>, if present; otherwise, "&amp;".</td>
</tr>
<tr>
<td rowspan="1" colspan="1">{<a href=
"#property-BindingOperation.httpqueryparameterseparator">http query
parameter separator</a>}</td>
<td rowspan="1" colspan="1">The actual value of the
<code>whttp:queryParameterSeparator</code> <em>attribute
information item</em>, if present.</td>
</tr>
</tbody>
</table>
<br /></div>
</div>
<div class="div2">
<h3><a name="http-headers-decl" id="http-headers-decl"></a>6.6
Declaring HTTP Headers</h3>
<div class="div3">
<h4><a name="http-headers-decl-description" id=
"http-headers-decl-description"></a>6.6.1 Description</h4>
<p>HTTP allows the use of headers in messages. This binding
extension allows users to declare the HTTP headers in use on a per
message and on a per-fault basis.</p>
</div>
<div class="div3">
<h4><a name="http-headers-decl-relate" id=
"http-headers-decl-relate"></a>6.6.2 Relationship to WSDL Component
Model</h4>
<p>The HTTP Header binding extension specification adds the
following property to the WSDL component model (as defined in
[<cite><a href="#WSDL-PART1">WSDL 2.0 Core
Language</a></cite>]):</p>
<ul>
<li>
<p>{<a name="property-BindingMessageReference.httpheaders" id=
"property-BindingMessageReference.httpheaders">http headers</a>}
OPTIONAL. A set of <a href="#component-HTTPHeader">HTTP Header</a>
components as defined in <a href=
"#http-header-decl-property"><strong>6.6.3 HTTP Header
component</strong></a>, to the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingMessageReference">
Binding Message Reference</a> component.</p>
</li>
<li>
<p>Similarly, {<a name="property-BindingFault.httpheaders" id=
"property-BindingFault.httpheaders">http headers</a>} OPTIONAL, to
the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingFault">
Binding Fault</a> component.</p>
</li>
</ul>
<p><span id="HTTPHeader-2102" class="test-assertion-tr">A <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingMessageReference">
Binding Message Reference</a> or a <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingFault">
Binding Fault</a> component's {<a href=
"#property-BindingMessageReference.httpheaders">http headers</a>}
property MUST NOT contain multiple <a href=
"#component-HTTPHeader">HTTP Header</a> components with the same
{<a href="#property-HTTPHeader.name">name</a>}
property.<sup><a href="#HTTPHeader-2102-summary" title=
"Link to assertion HTTPHeader-2102 summary"></a></sup></span></p>
</div>
<div class="div3">
<h4><a name="http-header-decl-property" id=
"http-header-decl-property"></a>6.6.3 HTTP Header component</h4>
<p>An <a href="#component-HTTPHeader">HTTP Header</a> component
describes an abstract piece of header data (HTTP header field) that
is associated with the exchange of messages between the
communicating parties. The presence of a <a href=
"#component-HTTPHeader">HTTP Header</a> component in a WSDL
description indicates that the service support headers, and MAY
require a client interacting with the service to use the described
header field. Zero or one such header field may be used.</p>
<p>The properties of the <a name="component-HTTPHeader" id=
"component-HTTPHeader">HTTP Header</a> component are as
follows:</p>
<ul>
<li>
<p>{<a name="property-HTTPHeader.name" id=
"property-HTTPHeader.name">name</a>} REQUIRED. An
<em>xs:string</em> whose pattern facet is
<em>"[!#-'*+\-.0-9A-Z^-z|~]+"</em>, the name of the HTTP header
field. The value of this property follows the
<code>field-name</code> production rules as specified in section
4.2 of [<cite><a href="#RFC2616">IETF RFC 2616</a></cite>].</p>
</li>
<li>
<p>{<a name="property-HTTPHeader.typedefinition" id=
"property-HTTPHeader.typedefinition">type definition</a>} REQUIRED.
A <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-TypeDefinition">
Type Definition</a> component, in the {<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#property-Description.typedefinitions">type
definitions</a>} property of the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-Description">
Description</a> component, constraining the value of the HTTP
header field. <span id="HTTPHeader-2103" class=
"test-assertion-tr">This type MUST be a simple type.<sup><a href=
"#HTTPHeader-2103-summary" title=
"Link to assertion HTTPHeader-2103 summary"></a></sup></span></p>
</li>
<li>
<p>{<a name="property-HTTPHeader.required" id=
"property-HTTPHeader.required">required</a>} REQUIRED. An
<em>xs:boolean</em> indicating if the HTTP header field is
required. <span id="HTTPHeader-2104" class="test-assertion-tr">If
the value is "true", then the HTTP header field MUST be included in
the message.<sup><a href="#HTTPHeader-2104-summary" title=
"Link to assertion HTTPHeader-2104 summary"></a></sup></span> If
it is "false", then the HTTP header field MAY be included.</p>
</li>
<li>
<p>{<a name="property-HTTPHeader.parent" id=
"property-HTTPHeader.parent">parent</a>} REQUIRED. The <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingFault">
Binding Fault</a> or <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingMessageReference">
Binding Message Reference</a> component that contains this
component in its {<a href=
"#property-BindingMessageReference.httpheaders">http headers</a>}
property.</p>
</li>
</ul>
</div>
<div class="div3">
<h4><a name="http-headers-decl-xml" id=
"http-headers-decl-xml"></a>6.6.4 XML Representation</h4>
<div class="exampleInner">
<pre xml:space="preserve">
&lt;description&gt;
&lt;binding name="<em>xs:NCName</em>" type="<em>http://www.w3.org/ns/wsdl/http</em>" &gt;
&lt;fault ref="<em>xs:QName</em>"&gt;
&lt;<strong>whttp:header</strong> name="<em>xs:string</em>" type="<em>xs:QName</em>"
required="<em>xs:boolean</em>"? &gt;
&lt;documentation /&gt;*
&lt;/<strong>whttp:header</strong>&gt;*
...
&lt;/fault&gt;*
&lt;operation ref="<em>xs:QName</em>" &gt;
&lt;input messageLabel="<em>xs:NCName</em>"?&gt;
&lt;<strong>whttp:header</strong> ... /&gt;*
...
&lt;/input&gt;*
&lt;output messageLabel="<em>xs:NCName</em>"?&gt;
&lt;<strong>whttp:header</strong> ... /&gt;*
...
&lt;/output&gt;*
&lt;/operation&gt;*
&lt;/binding&gt;
&lt;/description&gt;
</pre></div>
<p>The XML representation for a <a href=
"#component-HTTPHeader">HTTP Header</a> component is an <em>element
information item</em> with the following Infoset properties:</p>
<ul>
<li>
<p>A [local name] of <code>header</code></p>
</li>
<li>
<p>A [namespace name] of "http://www.w3.org/ns/wsdl/http"</p>
</li>
<li>
<p>One or more <em>attribute information item</em>s amongst its
[attributes] as follows:</p>
<ul>
<li>
<p>A REQUIRED <code>name</code> <em>attribute information item</em>
with the following Infoset properties:</p>
<ul>
<li>
<p>A [local name] of <code>name</code></p>
</li>
<li>
<p>A [namespace name] which has no value</p>
</li>
<li>
<p>A type of <em>xs:string</em> whose pattern facet is
<em>"[!#-'*+\-.0-9A-Z^-z|~]+"</em>.</p>
</li>
</ul>
</li>
<li>
<p>A REQUIRED <code>type</code> <em>attribute information item</em>
with the following Infoset properties:</p>
<ul>
<li>
<p>A [local name] of <code>type</code></p>
</li>
<li>
<p>A [namespace name] which has no value</p>
</li>
<li>
<p>A type of <em>xs:QName</em></p>
</li>
</ul>
</li>
<li>
<p>An OPTIONAL <code>required</code> <em>attribute information
item</em> with the following Infoset properties:</p>
<ul>
<li>
<p>A [local name] of <code>required</code></p>
</li>
<li>
<p>A [namespace name] which has no value</p>
</li>
<li>
<p>A type of <em>xs:boolean</em></p>
</li>
</ul>
</li>
<li>
<p>Zero or more namespace qualified <em>attribute information
item</em>s. The [namespace name] of such <em>attribute information
item</em>s MUST NOT be "http://www.w3.org/ns/wsdl" and MUST NOT be
"http://www.w3.org/ns/wsdl/http".</p>
</li>
</ul>
</li>
<li>
<p>Zero or more <em>element information item</em> amongst its
[children], in order, as follows:</p>
<ol class="enumar">
<li>
<p>Zero or more <code>documentation</code> <em>element information
item</em>s as defined in [<cite><a href="#WSDL-PART1">WSDL 2.0 Core
Language</a></cite>].</p>
</li>
<li>
<p>Zero or more namespace-qualified <em>element information
item</em>s amongst its [children]. The [namespace name] of such
<em>element information item</em>s MUST NOT be
"http://www.w3.org/ns/wsdl" and MUST NOT be
"http://www.w3.org/ns/wsdl/http".</p>
</li>
</ol>
</li>
</ul>
</div>
<div class="div3">
<h4><a name="http-headers-decl-mapping" id=
"http-headers-decl-mapping"></a>6.6.5 Mapping from XML
Representation to Component Properties</h4>
<p>See <a href="#tab_HTTP_Header_Mapping">Table 6-3</a>.</p>
<a name="tab_HTTP_Header_Mapping" id="tab_HTTP_Header_Mapping"></a>
<table border="1">
<caption>Table 6-3. Mapping from XML Representation to HTTP Header
component-related Properties</caption>
<tbody>
<tr>
<th rowspan="1" colspan="1">Property</th>
<th rowspan="1" colspan="1">Value</th>
</tr>
<tr>
<td rowspan="1" colspan="1">{<a href=
"#property-BindingMessageReference.httpheaders">http
headers</a>}</td>
<td rowspan="1" colspan="1">The set of <a href=
"#component-HTTPHeader">HTTP Header</a> components corresponding to
all the <code>header</code> <em>element information item</em> in
the [children] of the <code>fault</code>, <code>input</code> or
<code>output</code> <em>element information item</em>, if any.</td>
</tr>
<tr>
<td rowspan="1" colspan="1">{<a href=
"#property-HTTPHeader.name">name</a>}</td>
<td rowspan="1" colspan="1">The value of the <code>name</code>
<em>attribute information item</em>.</td>
</tr>
<tr>
<td rowspan="1" colspan="1">{<a href=
"#property-HTTPHeader.typedefinition">type definition</a>}</td>
<td rowspan="1" colspan="1">The <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-TypeDefinition">
Type Definition</a> component from the {<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#property-Description.typedefinitions">type
definitions</a>} property of the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-Description">
Description</a> component resolved to by the value of the
<code>type</code> <em>attribute information item</em>.</td>
</tr>
<tr>
<td rowspan="1" colspan="1">{<a href=
"#property-HTTPHeader.required">required</a>}</td>
<td rowspan="1" colspan="1">The actual value of the
<code>required</code> <em>attribute information item</em>, if
present; otherwise "false".</td>
</tr>
<tr>
<td rowspan="1" colspan="1">{<a href=
"#property-HTTPHeader.parent">parent</a>}</td>
<td rowspan="1" colspan="1">The <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingFault">
Binding Fault</a> or <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingMessageReference">
Binding Message Reference</a> component corresponding to the
<code>fault</code>, <code>input</code> or <code>output</code>
<em>element information item</em> in [parent].</td>
</tr>
</tbody>
</table>
<br /></div>
<div class="div3">
<h4><a name="http-headers-decl-fragid" id=
"http-headers-decl-fragid"></a>6.6.6 IRI Identification Of An HTTP
Header component</h4>
<p>WSDL Version 2.0 Part 1: Core Language [<cite><a href=
"#WSDL-PART1">WSDL 2.0 Core Language</a></cite>] defines a <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#frag-ids">fragment
identifier syntax</a> for identifying components of a WSDL 2.0
document.</p>
<p>An <a href="#component-HTTPHeader">HTTP Header</a> component can
be identified using the <em><a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#wsdl.extension">wsdl.extension</a></em>
XPointer Framework scheme:</p>
<p><code>wsdl.extension(http://www.w3.org/ns/wsdl/http,
whttp.header(<em>parent</em>/<em>name</em>))</code></p>
<ol class="enumar">
<li>
<p><em><code>parent</code></em> is the pointer part of the
{<a href="#property-HTTPHeader.parent">parent</a>} component, as
<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#frag-ids">specified
in WSDL Version 2.0 Part 1: Core Language</a>.</p>
</li>
<li>
<p><em><code>name</code></em> is the {<a href=
"#property-HTTPHeader.name">name</a>} property value.</p>
</li>
</ol>
</div>
</div>
<div class="div2">
<h3><a name="http-fault-decl" id="http-fault-decl"></a>6.7
Specifying HTTP Error Code for Faults</h3>
<div class="div3">
<h4><a name="http-fault-decl-description" id=
"http-fault-decl-description"></a>6.7.1 Description</h4>
<p>For every <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-InterfaceFault">
Interface Fault</a> component contained in an <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-Interface">
Interface</a> component, an HTTP error code MAY be defined. It
represents the error code that will be used by the service in case
the fault needs to be returned.</p>
<p><span id="HTTPBindingFault-2105" class="test-assertion-tr">The
fault definition SHOULD agree with the definition of the HTTP error
codes, as specified in section 8 of [<cite><a href="#RFC3205">IETF
RFC 3205</a></cite>].<sup><a href="#HTTPBindingFault-2105-summary"
title=
"Link to assertion HTTPBindingFault-2105 summary"></a></sup></span></p>
</div>
<div class="div3">
<h4><a name="http-fault-decl-relate" id=
"http-fault-decl-relate"></a>6.7.2 Relationship to WSDL Component
Model</h4>
<p>The HTTP Fault binding extension adds the following property to
the WSDL component model (as defined in [<cite><a href=
"#WSDL-PART1">WSDL 2.0 Core Language</a></cite>]):</p>
<ul>
<li>
<p>{<a name="property-BindingFault.httperrorstatuscode" id=
"property-BindingFault.httperrorstatuscode">http error status
code</a>} REQUIRED. A union of <em>xs:int</em> and
<em>xs:token</em> where the allowed token value is "#any", to the
<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingFault">
Binding Fault</a> component. <span id="HTTPBindingFault-2106"
class="test-assertion-tr">An integer value of this property
identifies the error Status-Code as defined by [<cite><a href=
"#RFC2616">IETF RFC 2616</a></cite>] that the service will use in
case the fault is returned.<sup><a href=
"#HTTPBindingFault-2106-summary" title=
"Link to assertion HTTPBindingFault-2106 summary"></a></sup></span>
If the value of this property is "#any", no claim is made by the
service.</p>
</li>
</ul>
</div>
<div class="div3">
<h4><a name="http-fault-decl-xml" id=
"http-fault-decl-xml"></a>6.7.3 XML Representation</h4>
<div class="exampleInner">
<pre xml:space="preserve">
&lt;description&gt;
&lt;binding &gt;
&lt;fault ref="<em>xs:QName</em>"
<strong>whttp:code</strong>="<em>union of xs:int, xs:token</em>"? &gt;
&lt;/fault&gt;*
&lt;/binding&gt;
&lt;/description&gt;
</pre></div>
<p>The XML representation for binding an HTTP Fault is an
<em>attribute information item</em> with the following Infoset
properties:</p>
<ul>
<li>
<p>a <code>code</code> OPTIONAL <em>attribute information
item</em></p>
<ul>
<li>
<p>A [local name] of <code>code</code></p>
</li>
<li>
<p>A [namespace name] of "http://www.w3.org/ns/wsdl/http"</p>
</li>
<li>
<p>A type of union of <em>xs:int</em> and <em>xs:token</em> where
the allowed token value is "#any"</p>
</li>
</ul>
</li>
</ul>
</div>
<div class="div3">
<h4><a name="http-fault-decl-mapping" id=
"http-fault-decl-mapping"></a>6.7.4 Mapping from XML Representation
to Component Properties</h4>
<p>See <a href="#tab_HTTP_Fault_Mapping">Table 6-4</a>.</p>
<a name="tab_HTTP_Fault_Mapping" id="tab_HTTP_Fault_Mapping"></a>
<table border="1">
<caption>Table 6-4. Mapping from XML Representation to <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingFault">
Binding Fault</a> component Extension Properties</caption>
<tbody>
<tr>
<th rowspan="1" colspan="1">Property</th>
<th rowspan="1" colspan="1">Value</th>
</tr>
<tr>
<td rowspan="1" colspan="1">{<a href=
"#property-BindingFault.httperrorstatuscode">http error status
code</a>}</td>
<td rowspan="1" colspan="1">The actual value of the
<code>whttp:code</code> <em>attribute information item</em>, if
present; otherwise "#any".</td>
</tr>
</tbody>
</table>
<br /></div>
</div>
<div class="div2">
<h3><a name="_http_serialization" id="_http_serialization"></a>6.8
Serialization Format of Instance Data</h3>
<p>This section specifies three serialization formats defining
rules to encode the <a title="instance data" href=
"#instance_data">instance data</a> of an input or output message as
an HTTP message. <a href="#http_sftab">Table 6-5</a> and <a href=
"#http_sfstyles">Table 6-6</a> give an overview of those
serialization formats and their constraints. All of them allow
serialization of parts of the <a title="instance data" href=
"#instance_data">instance data</a> in the HTTP Request IRI, as
defined in section <a href="#_http_location_template"><strong>6.8.1
Serialization of the instance data in parts of the HTTP request
IRI</strong></a>.</p>
<p>Other serialization formats may be defined. Those MAY place
restrictions on the style of the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-InterfaceOperation">
Interface Operation</a> bound.</p>
<a name="http_sftab" id="http_sftab"></a>
<table border="1">
<caption>Table 6-5. Applicability of the serialization formats
defined in this section for this HTTP binding</caption>
<tbody>
<tr>
<td colspan="2" rowspan="3" align="center">-</td>
<th colspan="4" rowspan="1">Serialization of the instance data in
parts of an HTTP message</th>
</tr>
<tr>
<th rowspan="2" colspan="1">In the request URI</th>
<th colspan="3" rowspan="1">In the message body</th>
</tr>
<tr>
<th rowspan="1" colspan="1">
<em>application/x-www-form-urlencoded</em></th>
<th rowspan="1" colspan="1"><em>multipart/form-data</em></th>
<th rowspan="1" colspan="1"><em>application/xml</em></th>
</tr>
<tr>
<th rowspan="2" colspan="1">HTTP request (input message)</th>
<th rowspan="1" colspan="1">Without message body: GET, DELETE,
</th>
<td align="center" rowspan="1" colspan="1">All, some or none</td>
<td align="center" rowspan="1" colspan="1">-</td>
<td align="center" rowspan="1" colspan="1">-</td>
<td align="center" rowspan="1" colspan="1">-</td>
</tr>
<tr>
<th rowspan="1" colspan="1">With message body: POST, PUT, …</th>
<td align="center" rowspan="1" colspan="1">All, some or none</td>
<td align="center" rowspan="1" colspan="1">Remainder</td>
<td align="center" rowspan="1" colspan="1">All</td>
<td align="center" rowspan="1" colspan="1">All</td>
</tr>
<tr>
<th colspan="2" rowspan="1">HTTP response (output message)</th>
<td align="center" rowspan="1" colspan="1">-</td>
<td align="center" rowspan="1" colspan="1">-</td>
<td align="center" rowspan="1" colspan="1">-</td>
<td align="center" rowspan="1" colspan="1">All</td>
</tr>
</tbody>
</table>
<br />
<a name="http_sfstyles" id="http_sfstyles"></a>
<table border="1">
<caption>Table 6-6. Operation styles required for using
serialization formats defined below as input
serialization</caption>
<tbody>
<tr>
<th rowspan="3" colspan="1">HTTP Method</th>
<th colspan="4" rowspan="1">Request</th>
</tr>
<tr>
<th rowspan="2" colspan="1">Request URI: query parameters or path
components</th>
<th colspan="3" rowspan="1">Input serialization</th>
</tr>
<tr>
<th rowspan="1" colspan="1">
<em>application/x-www-form-urlencoded</em></th>
<th rowspan="1" colspan="1"><em>multipart/form-data</em></th>
<th rowspan="1" colspan="1"><em>application/xml</em></th>
</tr>
<tr>
<th rowspan="1" colspan="1">Without message body: GET, DELETE,
</th>
<td align="center" rowspan="1" colspan="1">IRI style</td>
<td align="center" rowspan="1" colspan="1">IRI style</td>
<td align="center" rowspan="1" colspan="1">-</td>
<td align="center" rowspan="1" colspan="1">-</td>
</tr>
<tr>
<th rowspan="1" colspan="1">With message body: POST, PUT, …</th>
<td align="center" rowspan="1" colspan="1">IRI style, if any data
is serialized as path components or query parameters</td>
<td align="center" rowspan="1" colspan="1">IRI style</td>
<td align="center" rowspan="1" colspan="1">Multipart style</td>
<td align="center" rowspan="1" colspan="1">None required</td>
</tr>
</tbody>
</table>
<br />
<div class="div3">
<h4><a name="_http_location_template" id=
"_http_location_template"></a>6.8.1 Serialization of the instance
data in parts of the HTTP request IRI</h4>
<p>This section defines templating rules for the {<a href=
"#property-BindingOperation.httplocation">http location</a>}
property of the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingOperation">
Binding Operation</a> component. Templating is used by the
serialization formats defined in section <a href=
"#_http_serialization"><strong>6.8 Serialization Format of Instance
Data</strong></a>, and MAY be reused by other serialization
formats.</p>
<p>With this HTTP binding, part of the instance data for HTTP
requests MAY be serialized in the HTTP request IRI, and another
part MAY be serialized in the HTTP message body.</p>
<p><span id="HTTPSerialization-2107" class="test-assertion-tr">If
the {<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#property-InterfaceOperation.style">style</a>}
property of the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-InterfaceOperation">
Interface Operation</a> bound has a value of
"http://www.w3.org/ns/wsdl/style/iri" as defined in <a href=
"#_operation_iri_style"><strong>4.2 IRI Style</strong></a>, and if
the {<a href="#property-BindingOperation.httplocation">http
location</a>} property of the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingOperation">
Binding Operation</a> component is present, the value of the
{<a href="#property-BindingOperation.httplocation">http
location</a>} property component is used as a template<sup><a href=
"#HTTPSerialization-2107-summary" title=
"Link to assertion HTTPSerialization-2107 summary"></a></sup></span>
which is combined with the {<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#property-Endpoint.address">address</a>}
property of the endpoint element to form the full IRI to be used in
an HTTP request, as specified in section <a href=
"#http-operation-decl-relate"><strong>6.5.2 Relationship to WSDL
Component Model</strong></a>.</p>
<p><span id="HTTPSerialization-2108" class="test-assertion-tr">The
resulting IRI MUST be mapped to an URI for use in the HTTP Request
as per section 3.1 "Mapping of IRIs to URIs" of the IRI
specification [<cite><a href="#RFC3987">IETF RFC
3987</a></cite>].<sup><a href="#HTTPSerialization-2108-summary"
title=
"Link to assertion HTTPSerialization-2108 summary"></a></sup></span>
Additional rules for the serialization of the HTTP request IRI MAY
be defined by a serialization format.</p>
<div class="div4">
<h5><a name="_http_operation_location_cited_ser" id=
"_http_operation_location_cited_ser"></a>6.8.1.1 Construction of
the request IRI using the {http location} property</h5>
<p>The {<a href="#property-BindingOperation.httplocation">http
location</a>} property MAY cite local names of elements from the
<a title="instance data" href="#instance_data">instance data</a> of
the message to be serialized in request IRI. Citing is
performed:</p>
<ul>
<li>
<p>either by enclosing the element name within curly braces. For
example, "temperature/{town}". See <a href=
"#urlencoded_example_querystring">Example 6-1</a> for additional
details;</p>
</li>
<li>
<p>or by enclosing the element name within exclamated-curly braces,
to include the element without percent-encoding. For example,
"temperature/{!town}". Detailed rules follow.</p>
</li>
</ul>
<p><span id="HTTPSerialization-2106" class="test-assertion-tr">The
{<a href="#property-BindingOperation.httplocation">http
location</a>} property MUST conform to the following EBNF
[<cite><a href="#EBNF">ISO/IEC 14977:1996</a></cite>] grammar,
which represents the patterns for constructing the request
IRI:<sup><a href="#HTTPSerialization-2106-summary" title=
"Link to assertion HTTPSerialization-2106 summary"></a></sup></span></p>
<div class="exampleInner">
<pre xml:space="preserve">
httpLocation ::= charData? (( openBrace | closeBrace | template ) charData?)*
charData ::= [^{}]*
openBrace ::= '{{'
closeBrace ::= '}}'
template ::= rawTemplate | encodedTemplate
rawTemplate ::= '{!' NCName '}'
encodedTemplate ::= '{' NCName '}'
</pre></div>
<p>The request IRI is constructed as follows (<code>ALPHA</code>
and <code>DIGIT</code> below are defined as per [<cite><a href=
"#RFC4234">IETF RFC 4234</a></cite>]):</p>
<ul>
<li>
<p><span id="HTTPSerialization-2109" class="test-assertion-tr">The
local name in a template SHOULD match at least one element from the
<a title="instance data" href="#instance_data">instance data</a> of
the input message.<sup><a href="#HTTPSerialization-2109-summary"
title=
"Link to assertion HTTPSerialization-2109 summary"></a></sup></span>
When there is no match, the template is replaced by an empty
string. Otherwise, the template consumes the first non-consumed
matching element from the <a title="instance data" href=
"#instance_data">instance data</a>. The next occurrence of the
template consumes the next non-consumed matching element, and so on
until all templates are processed. Matching elements are consumed
in the order in which they appear in the <a title="instance data"
href="#instance_data">instance data</a>. <span id=
"HTTPSerialization-2110" class="test-assertion-tr">Cited elements
(i.e. elements referenced in templates) MUST NOT carry an
<code>xs:nil</code> attribute whose value is "true"<sup><a href=
"#HTTPSerialization-2110-summary" title=
"Link to assertion HTTPSerialization-2110 summary"></a></sup></span>.</p>
</li>
<li>
<p>Each raw template (<code>rawTemplate</code> production in the
grammar above) is replaced by the possibly empty single value of
the corresponding element from the <a title="instance data" href=
"#instance_data">instance data</a>. No percent-encoding is
performed.</p>
</li>
<li>
<p>Each encoded template (<code>encodedTemplate</code> production
in the grammar above) NOT preceded in the {<a href=
"#property-BindingOperation.httplocation">http location</a>}
property by a "?" character is replaced by the possibly empty
single value of the corresponding element from the <a title=
"instance data" href="#instance_data">instance data</a>. Encoding
is performed as follows:</p>
<ul>
<li>
<p>The characters in the range: <code>"&amp;" | ";" | "!" | "$" |
"'" | "(" | ")" | "*" | "+" | "," | "=" | ":" | "@"</code> SHOULD
be percent-encoded.</p>
</li>
<li>
<p>The other characters, EXCEPT the ones in the range: <code>ALPHA
| DIGIT | "-" | "." | "_" | "~"</code>, MUST be
percent-encoded.</p>
</li>
</ul>
</li>
<li>
<p>Each encoded template (<code>encodedTemplate</code> production
in the grammar above) preceded in the {<a href=
"#property-BindingOperation.httplocation">http location</a>}
property by a "?" character is replaced by the possibly empty
single value of the corresponding element from the <a title=
"instance data" href="#instance_data">instance data</a>. Encoding
is performed as follows:</p>
<ul>
<li>
<p>The value of the {<a href=
"#property-BindingOperation.httpqueryparameterseparator">http query
parameter separator</a>} property, if present; otherwise the value
of the {<a href=
"#property-Binding.httpqueryparameterseparatordefault">http query
parameter separator default</a>} property, MUST be
percent-encoded.</p>
</li>
<li>
<p>The characters in the range: <code>"&amp;" | ";" | "!" | "$" |
"'" | "(" | ")" | "*" | "+" | "," | "=" | ":" | "@" | "?" |
"/"</code> SHOULD be percent-encoded.</p>
</li>
<li>
<p>The other characters, EXCEPT the ones in the range: <code>ALPHA
| DIGIT | "-" | "." | "_" | "~"</code>, MUST be
percent-encoded.</p>
</li>
</ul>
</li>
<li>
<p>Each uncited element (i.e. each element not referenced in a
template) to be serialized, if any, is encoded as for an encoded
template.</p>
</li>
<li>
<p>Percent-encoding MUST be performed using the UTF-8
representation of the character as prescribed by section 6.4 of
[<cite><a href="#RFC3987">IETF RFC 3987</a></cite>].</p>
</li>
<li>
<p>Each double curly brace (<code>openBrace</code> or
<code>closeBrace</code> production in the grammar above) is
replaced by a single literal curly brace ("{" or "}" respectively).
This provides a simple escaping mechanism.</p>
</li>
</ul>
<p>Note that the mechanism described in this section could be used
to indicate the entire absolute IRI, including the scheme, host, or
port, for example:</p>
<div class="exampleInner">
<pre xml:space="preserve">
{scheme}://{host}:{port}/temperature/{town}
</pre></div>
or even:
<div class="exampleInner">
<pre xml:space="preserve">
{!myIRI}
</pre></div>
</div>
</div>
<div class="div3">
<h4><a name="_http_x-www-form-urlencoded" id=
"_http_x-www-form-urlencoded"></a>6.8.2 Serialization as
"application/x-www-form-urlencoded"</h4>
<p>This serialization format is designed to allow a client or Web
service to produce an IRI based on the <a title="instance data"
href="#instance_data">instance data</a> of a message and serialize
a query string in the HTTP message body as
<code>application/x-www-form-urlencoded</code>.</p>
<p><span id="HTTPSerialization-2111" class="test-assertion-tr">If
this format is used then the {<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#property-InterfaceOperation.style">style</a>}
property of <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-InterfaceOperation">
Interface Operation</a> component being bound MUST contain a value
of "http://www.w3.org/ns/wsdl/style/iri" as defined in <a href=
"#_operation_iri_style"><strong>4.2 IRI Style</strong></a>, i.e.
this serialization format may only be used to serialize the HTTP
request corresponding to the initial message of an interface
operation.<sup><a href="#HTTPSerialization-2111-summary" title=
"Link to assertion HTTPSerialization-2111 summary"></a></sup></span></p>
<p><span id="HTTPSerialization-2112" class="test-assertion-tr">For
the HTTP binding defined in this section (<a href=
"#http-binding"><strong>6. WSDL HTTP Binding
Extension</strong></a>), "application/x-www-form-urlencoded" MAY be
used as a <a title="serialization format" href=
"#serialization_format">serialization format</a> for an input
message (HTTP Request), but MUST NOT be used as a <a title=
"serialization format" href="#serialization_format">serialization
format</a> for an output or fault message (HTTP
Response).<sup><a href="#HTTPSerialization-2112-summary" title=
"Link to assertion HTTPSerialization-2112 summary"></a></sup></span></p>
<div class="div4">
<h5><a name="_http_operation_location_cited_get" id=
"_http_operation_location_cited_get"></a>6.8.2.1 Case of elements
cited in the {http location} property</h5>
<p>In this serialization, the rules for constructing the HTTP
request IRI using elements cited in the {<a href=
"#property-BindingOperation.httplocation">http location</a>}
property defined in <a href=
"#_http_location_template"><strong>6.8.1 Serialization of the
instance data in parts of the HTTP request IRI</strong></a> apply.
Additional rules for constructing the HTTP request IRI follow.</p>
</div>
<div class="div4">
<h5><a name="_http_operation_location_notcited_get" id=
"_http_operation_location_notcited_get"></a>6.8.2.2 Serialization
of content of the instance data not cited in the {http location}
property</h5>
<p><span id="HTTPSerialization-2113" class="test-assertion-tr">If
not all elements from the <a title="instance data" href=
"#instance_data">instance data</a> are cited in the {<a href=
"#property-BindingOperation.httplocation">http location</a>}
property, or if the property is not present on the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingOperation">
Binding Operation</a> component, then additional serialization
rules apply.<sup><a href="#HTTPSerialization-2113-summary" title=
"Link to assertion HTTPSerialization-2113 summary"></a></sup></span></p>
<p>The remainder of the instance data is formatted as a query
string as defined in <a href=
"#_http_operation_location_query_constr"><strong>6.8.2.2.1
Construction of the query string</strong></a>.</p>
<p>If the HTTP method used for the request does not allow a message
body, then this query string is serialized as parameters in the
request IRI (see <a href=
"#_http_operation_location_notcited_iri"><strong>6.8.2.2.3
Serialization in the request IRI</strong></a>), otherwise it is
serialized in the message body (see <a href=
"#_http_operation_location_notcited_body"><strong>6.8.2.2.4
Serialization in the message body</strong></a>).</p>
<div class="div5">
<h6><a name="_http_operation_location_query_constr" id=
"_http_operation_location_query_constr"></a>6.8.2.2.1 Construction
of the query string</h6>
<p><span id="HTTPSerialization-2114" class="test-assertion-tr">For
elements of the instance data not cited in the {<a href=
"#property-BindingOperation.httplocation">http location</a>}
property, a query string is constructed as follows.<sup><a href=
"#HTTPSerialization-2114-summary" title=
"Link to assertion HTTPSerialization-2114 summary"></a></sup></span></p>
<p>Non-nil elements with a possibly empty single value of the
<a title="instance data" href="#instance_data">instance data</a>
not cited are serialized as query parameters in the order they
appear in the instance data.</p>
<p><span id="HTTPQueryString-2115" class="test-assertion-tr">The
<a title="instance data" href="#instance_data">instance data</a>
MUST NOT contain elements with an <code>xs:nil</code> attribute
whose value is "true".<sup><a href="#HTTPQueryString-2115-summary"
title=
"Link to assertion HTTPQueryString-2115 summary"></a></sup></span></p>
<p>Each parameter pair is separated by the value of the {<a href=
"#property-BindingOperation.httpqueryparameterseparator">http query
parameter separator</a>} property, if present, or the value of the
{<a href=
"#property-Binding.httpqueryparameterseparatordefault">http query
parameter separator default</a>} property.</p>
<ul>
<li>
<p>Uncited elements with single values (non-list) are serialized as
a single name-value parameter pair. The name of the parameter is
the local name of the uncited element, and the value of the
parameter is the value of the uncited element.</p>
</li>
<li>
<p>Uncited elements with list values are serialized as one
name-value parameter pair per-list value. The name of each
parameter is the local name of the uncited element, and the value
of each parameter is the corresponding value in the list. The order
of the list values is preserved.</p>
</li>
<li>
<p>Replacement values falling outside the range (<code>ALPHA</code>
and <code>DIGIT</code> below are defined as per [<cite><a href=
"#RFC4234">IETF RFC 4234</a></cite>]): <code>ALPHA | DIGIT | "-" |
"." | "_" | "~" | "!" | "$" | "&amp;" | "'" | "(" | ")" | "*" | "+"
| "," | ";" | "=" | ":" | "@"</code>, MUST be percent-encoded.
Percent-encoding MUST be performed using the UTF-8 representation
of the character as prescribed by section 6.4 of [<cite><a href=
"#RFC3987">IETF RFC 3987</a></cite>].</p>
</li>
</ul>
<div class="exampleOuter">
<p style="text-align: left" class="exampleHead"><a name=
"urlencoded_example_querystring" id=
"urlencoded_example_querystring"></a><em><span>Example 6-1.</span>
Query string generation</em></p>
<p>The following instance data of an input message:</p>
<div class="exampleInner">
<pre xml:space="preserve">
&lt;data&gt;
&lt;town&gt;Fréjus&lt;/town&gt;
&lt;date&gt;2007-06-26&lt;/date&gt;
&lt;unit&gt;C&lt;/unit&gt;
&lt;/data&gt;
</pre></div>
<p>with the following value of the {<a href=
"#property-BindingOperation.httplocation">http location</a>}
property:</p>
<div class="exampleInner">
<pre xml:space="preserve">
'temperature/{town}'
</pre></div>
<p>and the following value of the {<a href=
"#property-Binding.httpqueryparameterseparatordefault">http query
parameter separator default</a>} property:</p>
<div class="exampleInner">
<pre xml:space="preserve">
'&amp;'
</pre></div>
<p>will produce the following query string:</p>
<div class="exampleInner">
<pre xml:space="preserve">
date=2007-06-26&amp;unit=C
</pre></div>
</div>
</div>
<div class="div5">
<h6><a name="_http_urlencoded_stop" id=
"_http_urlencoded_stop"></a>6.8.2.2.2 Controlling the serialization
of the query string in the request IRI</h6>
<p>This serialization format adds the following property to the
<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingOperation">
Binding Operation</a> component:</p>
<ul>
<li>
<p>{<a name="property-BindingOperation.httplocationignoreuncited"
id="property-BindingOperation.httplocationignoreuncited">http
location ignore uncited</a>} REQUIRED. A <em>xs:boolean</em>. This
boolean indicates whether elements not cited in the {<a href=
"#property-BindingOperation.httplocation">http location</a>}
property MUST be appended to the request IRI or ignored. If the
value of this property is "false", the rules defined in section
<a href="#_http_operation_location_notcited_iri"><strong>6.8.2.2.3
Serialization in the request IRI</strong></a> dictate how to
serialize elements not cited in {<a href=
"#property-BindingOperation.httplocation">http location</a>} in the
request IRI. Otherwise, those are NOT serialized in the request
IRI.</p>
</li>
</ul>
<p><span id="HTTPQueryString-2116" class="test-assertion-tr">When
serializing an HTTP request that does not allow an HTTP message
body, and when {<a href=
"#property-BindingOperation.httplocationignoreuncited">http
location ignore uncited</a>} is "true", any element NOT cited in
the {<a href="#property-BindingOperation.httplocation">http
location</a>} property MUST be defined in the schema as
<code>nillable</code>, or have a <code>default</code> value, or
appear no less frequently than specified by the
<code>minOccurs</code> value. The element declaration SHOULD NOT
combine a default value with <code>nillable</code>.<sup><a href=
"#HTTPQueryString-2116-summary" title=
"Link to assertion HTTPQueryString-2116 summary"></a></sup></span></p>
<p>The XML representation for this property is an <em>attribute
information item</em> with the following Infoset properties:</p>
<ul>
<li>
<p>An OPTIONAL <code>ignoreUncited</code> <em>attribute information
item</em> with the following Infoset properties:</p>
<ul>
<li>
<p>A [local name] of <code>ignoreUncited</code></p>
</li>
<li>
<p>A [namespace name] of "http://www.w3.org/ns/wsdl/http"</p>
</li>
<li>
<p>A type of <em>xs:boolean</em></p>
</li>
</ul>
</li>
</ul>
<p>The mapping from the XML representation to component properties
is as follows:</p>
<a name="tab_HTTP_URLEnc_Ignore" id="tab_HTTP_URLEnc_Ignore"></a>
<table border="1">
<caption>Table 6-7. Mapping from XML Representation to Binding
Operation component Extension Properties</caption>
<tbody>
<tr>
<th rowspan="1" colspan="1">Property</th>
<th rowspan="1" colspan="1">Value</th>
</tr>
<tr>
<td rowspan="1" colspan="1">{<a href=
"#property-BindingOperation.httplocationignoreuncited">http
location ignore uncited</a>}</td>
<td rowspan="1" colspan="1">The actual value of the
<code>whttp:ignoreUncited</code> <em>attribute information
item</em>, if present; otherwise, "false".</td>
</tr>
</tbody>
</table>
<br /></div>
<div class="div5">
<h6><a name="_http_operation_location_notcited_iri" id=
"_http_operation_location_notcited_iri"></a>6.8.2.2.3 Serialization
in the request IRI</h6>
<p><span id="HTTPSerialization-2117" class="test-assertion-tr">If
the HTTP request method used does not allow HTTP message body (e.g.
"GET" and "DELETE"), and if the value of the {<a href=
"#property-BindingOperation.httplocationignoreuncited">http
location ignore uncited</a>} property is "false", then the
following rules apply.<sup><a href=
"#HTTPSerialization-2117-summary" title=
"Link to assertion HTTPSerialization-2117 summary"></a></sup></span></p>
<p>If the {<a href="#property-BindingOperation.httplocation">http
location</a>} property is not present, or if it is present and its
value does not contain a "?" (question mark) character, a "?" is
appended to the request IRI. If it does already contain a question
mark character, then the value of the {<a href=
"#property-BindingOperation.httpqueryparameterseparator">http query
parameter separator</a>} property, if present, or the value of the
{<a href=
"#property-Binding.httpqueryparameterseparatordefault">http query
parameter separator default</a>} property otherwise, is
appended.</p>
<p>Finally, the query string computed in <a href=
"#_http_operation_location_query_constr"><strong>6.8.2.2.1
Construction of the query string</strong></a> is appended.</p>
<div class="exampleOuter">
<p style="text-align: left" class="exampleHead"><a name=
"urlencoded_example" id="urlencoded_example"></a><em><span>Example
6-2.</span> Instance data serialized in an IRI</em></p>
<p>The instance data defined in <a href=
"#urlencoded_example_querystring">Example 6-1</a> with the
following <code>operation</code> declaration:</p>
<div class="exampleInner">
<pre xml:space="preserve">
&lt;operation ref='t:data'
whttp:location='temperature/{town}'
whttp:method='GET' /&gt;
</pre></div>
<p>and the following <code>endpoint</code> declaration:</p>
<div class="exampleInner">
<pre xml:space="preserve">
&lt;endpoint name='e' binding='t:b'
address='http://ws.example.com/service1/' /&gt;
</pre></div>
<p>will serialize the message in the HTTP request as follows:</p>
<div class="exampleInner">
<pre xml:space="preserve">
GET http://ws.example.com/service1/temperature/Fr%C3%A9jus?date=2007-06-26&amp;unit=C HTTP/1.1
Host: ws.example.com
</pre></div>
</div>
</div>
<div class="div5">
<h6><a name="_http_operation_location_notcited_body" id=
"_http_operation_location_notcited_body"></a>6.8.2.2.4
Serialization in the message body</h6>
<p><span id="HTTPSerialization-2118" class="test-assertion-tr">If
the HTTP request method used does allow an HTTP message body (e.g.
"POST" and "PUT"), then the following rules apply.<sup><a href=
"#HTTPSerialization-2118-summary" title=
"Link to assertion HTTPSerialization-2118 summary"></a></sup></span></p>
<p>Finally, the query string computed in <a href=
"#_http_operation_location_query_constr"><strong>6.8.2.2.1
Construction of the query string</strong></a> is used as the value
of the HTTP message body.</p>
<p><span id="HTTPSerialization-2119" class="test-assertion-tr">The
<code>Content-Type</code> HTTP header field must have the value
<code>application/x-www-form-urlencoded</code>.<sup><a href=
"#HTTPSerialization-2119-summary" title=
"Link to assertion HTTPSerialization-2119 summary"></a></sup></span></p>
<div class="exampleOuter">
<p style="text-align: left" class="exampleHead"><a name=
"urlencoded_example_body" id=
"urlencoded_example_body"></a><em><span>Example 6-3.</span>
Instance data serialized in the HTTP Request IRI and message
body</em></p>
<p>The instance data defined in <a href=
"#urlencoded_example_querystring">Example 6-1</a> with the
following <code>operation</code> declaration:</p>
<div class="exampleInner">
<pre xml:space="preserve">
&lt;operation ref='t:data'
whttp:inputSerialization='application/x-www-form-urlencoded'
whttp:location='temperature/{town}'
whttp:method='POST' /&gt;
</pre></div>
<p>and the following <code>endpoint</code> declaration:</p>
<div class="exampleInner">
<pre xml:space="preserve">
&lt;endpoint name='e' binding='t:b'
address='http://ws.example.com/service1/' /&gt;
</pre></div>
<p>will serialize the message in the HTTP request as follow:</p>
<div class="exampleInner">
<pre xml:space="preserve">
POST http://ws.example.com/service1/temperature/Fr%C3%A9jus HTTP/1.1
Host: ws.example.com
Content-Type: application/x-www-form-urlencoded
Content-Length: …
date=2007-06-26&amp;unit=C
</pre></div>
</div>
</div>
</div>
</div>
<div class="div3">
<h4><a name="_http_operation_xml_encoding" id=
"_http_operation_xml_encoding"></a>6.8.3 Serialization as
"application/xml"</h4>
<p>In this serialization, for HTTP requests, the rules for
constructing the HTTP request IRI defined in <a href=
"#_http_location_template"><strong>6.8.1 Serialization of the
instance data in parts of the HTTP request IRI</strong></a> apply
if the {<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#property-InterfaceOperation.style">style</a>}
property of the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-InterfaceOperation">
Interface Operation</a> bound has a value of
"http://www.w3.org/ns/wsdl/style/iri" as defined in <a href=
"#_operation_iri_style"><strong>4.2 IRI Style</strong></a>.</p>
<p>The <a title="instance data" href="#instance_data">instance
data</a> of the input, output or fault message is serialized as an
XML document in the message body of the HTTP message, following the
serialization defined in [<cite><a href="#Canonical">Canonical
XML</a></cite>]. Therefore, it is only suitable for HTTP requests
using methods allowing message bodies (i.e., for the HTTP binding
defined in this specification, input messages where the HTTP method
selected has a body), and for HTTP responses (i.e. output and fault
messages for the HTTP binding defined in this specification).</p>
<p><span id="HTTPSerialization-2120" class="test-assertion-tr">The
<code>Content-Type</code> HTTP header MUST have the value
<code>application/xml</code> [<cite><a href="#RFC3023">IETF RFC
3023</a></cite>], or a media type compatible with
<code>application/xml</code> as specified in section <a href=
"#_http_ser_xml"><strong>6.4.3.1 Serialization rules for XML
messages</strong></a>.<sup><a href=
"#HTTPSerialization-2120-summary" title=
"Link to assertion HTTPSerialization-2120 summary"></a></sup></span>
Other HTTP headers MAY be used.</p>
</div>
<div class="div3">
<h4><a name="_http_operation_multipart_encoding" id=
"_http_operation_multipart_encoding"></a>6.8.4 Serialization as
"multipart/form-data"</h4>
<p>In this serialization, for HTTP requests, the rules for
constructing the HTTP request IRI defined in <a href=
"#_http_location_template"><strong>6.8.1 Serialization of the
instance data in parts of the HTTP request IRI</strong></a> apply
if the {<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#property-InterfaceOperation.style">style</a>}
property of the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-InterfaceOperation">
Interface Operation</a> bound has a value of
"http://www.w3.org/ns/wsdl/style/iri" as defined in <a href=
"#_operation_iri_style"><strong>4.2 IRI Style</strong></a>.</p>
<p>This format is for legacy compatibility to permit the use of
XForms clients with [<cite><a href="#RFC2388">IETF RFC
2388</a></cite>] servers. This serialization format may only be
used when binding <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-InterfaceOperation">
Interface Operation</a> components whose {<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#property-InterfaceOperation.style">style</a>}
property has a value of "http://www.w3.org/ns/wsdl/style/multipart"
as defined in <a href="#_operation_multipart_style"><strong>4.3
Multipart style</strong></a>, i.e. <span id=
"HTTPSerialization-2121" class="test-assertion-tr">this
serialization format may only be used to serialize the HTTP request
corresponding to the initial message of an interface
operation.<sup><a href="#HTTPSerialization-2121-summary" title=
"Link to assertion HTTPSerialization-2121 summary"></a></sup></span></p>
<p><span id="HTTPSerialization-2122" class=
"test-assertion-tr">Specifically, for the HTTP binding defined in
this section (<a href="#http-binding"><strong>6. WSDL HTTP Binding
Extension</strong></a>), "multipart/form-data" MAY be used as a
<a title="serialization format" href=
"#serialization_format">serialization format</a> for an input
message (HTTP Request), but MUST NOT be used as a <a title=
"serialization format" href="#serialization_format">serialization
format</a> for an output or fault message (HTTP
Response).<sup><a href="#HTTPSerialization-2122-summary" title=
"Link to assertion HTTPSerialization-2122 summary"></a></sup></span>
This format serializes the instance data in the HTTP message body,
making it only suitable for HTTP requests using methods allowing
message bodies.</p>
<p>Each element in the sequence is serialized into a part as
follow:</p>
<ol class="enumar">
<li>
<p><span id="HTTPSerialization-2123" class="test-assertion-tr">The
<code>Content-Disposition</code> header MUST have the value
<code>form-data</code>, and its <code>name</code> parameter is the
local name of the element.<sup><a href=
"#HTTPSerialization-2123-summary" title=
"Link to assertion HTTPSerialization-2123 summary"></a></sup></span></p>
</li>
<li>
<p><span id="HTTPSerialization-2124" class="test-assertion-tr">The
<code>Content-Type</code> header MUST have the value:<sup><a href=
"#HTTPSerialization-2124-summary" title=
"Link to assertion HTTPSerialization-2124 summary"></a></sup></span></p>
<ul>
<li>
<p><code>application/xml</code> (or a media type compatible with
<code>application/xml</code>) if the element has a complex
type;</p>
</li>
<li>
<p><code>application/octet-stream</code> if the element is of type
<code>xs:base64Binary</code>, <code>xs:hexBinary</code>, or a
derived type;</p>
</li>
<li>
<p><code>text/plain</code> if the element has a simple type; The
charset MUST be set appropriately. UTF-8 or UTF-16 MUST be at least
supported.</p>
</li>
</ul>
</li>
<li>
<p>If the type is <code>xs:base64Binary</code>,
<code>xs:hexBinary</code>, <code>xs:anySimpleType</code> or a
derived type, the content of the part is the content of the
element. If the type is a complex type, the element is serialized
following the rules defined in the <a href=
"#_http_operation_xml_encoding"><strong>6.8.3 Serialization as
application/xml</strong></a> .</p>
</li>
</ol>
<p><span id="HTTPSerialization-2125" class="test-assertion-tr">The
<a title="instance data" href="#instance_data">instance data</a>
MUST NOT contain elements with an <code>xs:nil</code> attribute
whose value is "true".<sup><a href=
"#HTTPSerialization-2125-summary" title=
"Link to assertion HTTPSerialization-2125 summary"></a></sup></span></p>
<div class="exampleOuter">
<p style="text-align: left" class="exampleHead"><em><span>Example
6-4.</span> Example of multipart/form-data</em></p>
<p>The following instance data of an input message:</p>
<div class="exampleInner">
<pre xml:space="preserve">
&lt;data&gt;
&lt;town&gt;
&lt;name&gt;Fréjus&lt;/name&gt;
&lt;country&gt;France&lt;/country&gt;
&lt;/town&gt;
&lt;date&gt;2007-06-26&lt;/date&gt;
&lt;/data&gt;
</pre></div>
<p>with the following <code>operation</code> element:</p>
<div class="exampleInner">
<pre xml:space="preserve">
&lt;operation ref='t:data'
whttp:location='temperature'
whttp:method='POST'
whttp:inputSerialization='multipart/form-data'/&gt;
</pre></div>
<p>will serialize the message as follow:</p>
<div class="exampleInner">
<pre xml:space="preserve">
Content-Type: multipart/form-data; boundary=AaB03x
Content-Length: xxx
--AaB03x
Content-Disposition: form-data; name="town"
Content-Type: application/xml
&lt;town&gt;
&lt;name&gt;Fréjus&lt;/name&gt;
&lt;country&gt;France&lt;/country&gt;
&lt;/town&gt;
--AaB03x
Content-Disposition: form-data; name="date"
Content-Type: text/plain; charset=utf-8
2007-06-26
--AaB03x--
</pre></div>
</div>
</div>
</div>
<div class="div2">
<h3><a name="http-content-encoding-decl" id=
"http-content-encoding-decl"></a>6.9 Specifying the Content
Encoding</h3>
<div class="div3">
<h4><a name="http-content-encoding-description" id=
"http-content-encoding-description"></a>6.9.1 Description</h4>
<p>Every <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingMessageReference">
Binding Message Reference</a> and <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingFault">
Binding Fault</a> component MAY indicate which content encodings,
as defined in section 3.5 of [<cite><a href="#RFC2616">IETF RFC
2616</a></cite>], are available for this particular message.</p>
<p>The HTTP binding extension provides a mechanism for indicating a
default value at the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-Binding">Binding</a>
component and <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingOperation">
Binding Operation</a> levels.</p>
<p>If no value is specified, no claim is being made.</p>
</div>
<div class="div3">
<h4><a name="http-content-encoding-relate" id=
"http-content-encoding-relate"></a>6.9.2 Relationship to WSDL
Component Model</h4>
<p>The HTTP binding extension specification adds the following
properties to the WSDL component model (as defined in
[<cite><a href="#WSDL-PART1">WSDL 2.0 Core
Language</a></cite>]):</p>
<ul>
<li>
<p>{<a name="property-Binding.httpcontentencodingdefault" id=
"property-Binding.httpcontentencodingdefault">http content encoding
default</a>} OPTIONAL. A <em>xs:string</em> to the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-Binding">Binding</a>
component. This property indicates the default content encodings
available for all <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingMessageReference">
Binding Message Reference</a> and <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingFault">
Binding Fault</a> components of this <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-Binding">Binding</a>.</p>
</li>
<li>
<p>{<a name="property-BindingOperation.httpcontentencodingdefault"
id="property-BindingOperation.httpcontentencodingdefault">http
content encoding default</a>} OPTIONAL. A <em>xs:string</em> to the
<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingOperation">
Binding Operation</a> component. This property indicates the
default content encodings available for all <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingMessageReference">
Binding Message Reference</a> of this <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingOperation">
Binding Operation</a>.</p>
</li>
<li>
<p>{<a name="property-BindingMessageReference.httpcontentencoding"
id="property-BindingMessageReference.httpcontentencoding">http
content encoding</a>} OPTIONAL. A <em>xs:string</em> to the
<a href="http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingMessageReference">
Binding Message Reference</a> component. This property indicates
the content encodings available for this <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingMessageReference">
Binding Message Reference</a> component. If this property does not
have a value, the value of the {<a href=
"#property-BindingOperation.httpcontentencodingdefault">http
content encoding default</a>} property of the parent <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingOperation">
Binding Operation</a> component is used instead. If that itself has
no value, the value from the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingOperation">
Binding Operation</a> component's parent <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-Binding">Binding</a>
component is used instead.</p>
</li>
<li>
<p>Similarly, {<a name="property-BindingFault.httpcontentencoding"
id="property-BindingFault.httpcontentencoding">http content
encoding</a>} OPTIONAL, to the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingFault">
Binding Fault</a> component</p>
</li>
</ul>
<p>These properties are not relevant when HTTP 1.0 is used.</p>
</div>
<div class="div3">
<h4><a name="http-content-encoding-decl-xml" id=
"http-content-encoding-decl-xml"></a>6.9.3 XML Representation</h4>
<div class="exampleInner">
<pre xml:space="preserve">
&lt;description&gt;
&lt;binding name="<em>xs:NCName</em>" interface="<em>xs:QName</em>"? type="<em>xs:anyURI</em>"
<strong>whttp:contentEncodingDefault</strong>="<em>xs:string</em>"? &gt;
&lt;fault ref="<em>xs:QName</em>"
<strong>whttp:contentEncoding</strong>="<em>xs:string</em>"? &gt;
&lt;/fault&gt;*
&lt;operation location="<em>xs:anyURI</em>"?
<strong>whttp:contentEncodingDefault</strong>="<em>xs:string</em>"? &gt;
&lt;input messageLabel="<em>xs:NCName</em>"?
<strong>whttp:contentEncoding</strong>="<em>xs:string</em>"? /&gt;
&lt;output messageLabel="<em>xs:NCName</em>"?
<strong>whttp:contentEncoding</strong>="<em>xs:string</em>"? /&gt;
&lt;/operation&gt;
&lt;/binding&gt;
&lt;/description&gt;
</pre></div>
<p>The XML representation for specifying the content encoding is an
OPTIONAL <em>attribute information item</em> for the
<code>input</code>, <code>output</code>, and <code>fault</code>
<em>element information item</em>s with the following Infoset
properties:</p>
<ul>
<li>
<p>A [local name] of <code>contentEncoding</code></p>
</li>
<li>
<p>A [namespace name] of "http://www.w3.org/ns/wsdl/http"</p>
</li>
<li>
<p>A type of <em>xs:string</em></p>
</li>
</ul>
<p>The XML representation for specifying the default content
encoding is an OPTIONAL <em>attribute information item</em> for the
<code>binding</code> <em>element information item</em> or
<code>binding</code>'s child <code>operation</code> <em>element
information item</em>s with the following Infoset properties:</p>
<ul>
<li>
<p>A [local name] of <code>contentEncodingDefault</code></p>
</li>
<li>
<p>A [namespace name] of "http://www.w3.org/ns/wsdl/http"</p>
</li>
<li>
<p>A type of <em>xs:string</em></p>
</li>
</ul>
</div>
<div class="div3">
<h4><a name="http-content-encoding-decl-mapping" id=
"http-content-encoding-decl-mapping"></a>6.9.4 Mapping from XML
Representation to Component Properties</h4>
<p>See <a href="#tab_HTTP_Content_Coding_Mapping">Table
6-8</a>.</p>
<a name="tab_HTTP_Content_Coding_Mapping" id=
"tab_HTTP_Content_Coding_Mapping"></a>
<table border="1">
<caption>Table 6-8. Mapping from XML Representation to <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-InterfaceMessageReference">
Interface Message Reference</a> component Extension
Properties</caption>
<tbody>
<tr>
<th rowspan="1" colspan="1">Property</th>
<th rowspan="1" colspan="1">Value</th>
</tr>
<tr>
<td rowspan="1" colspan="1">{<a href=
"#property-Binding.httpcontentencodingdefault">http content
encoding default</a>} of the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-Binding">Binding</a>
component</td>
<td rowspan="1" colspan="1">The actual value of the
<code>whttp:contentEncodingDefault</code> <em>attribute information
item</em> of the <code>binding</code> <em>element information
item</em>, if present.</td>
</tr>
<tr>
<td rowspan="1" colspan="1">{<a href=
"#property-BindingOperation.httpcontentencodingdefault">http
content encoding default</a>} of the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingOperation">
Binding Operation</a> component</td>
<td rowspan="1" colspan="1">The actual value of the
<code>whttp:contentEncodingDefault</code> <em>attribute information
item</em> of the <code>operation</code> <em>element information
item</em>, if present.</td>
</tr>
<tr>
<td rowspan="1" colspan="1">{<a href=
"#property-BindingMessageReference.httpcontentencoding">http
content encoding</a>} of the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingMessageReference">
Binding Message Reference</a> component</td>
<td rowspan="1" colspan="1">The actual value of the
<code>whttp:contentEncoding</code> <em>attribute information
item</em> of the <code>input</code> or <code>output</code>
<em>element information item</em>, if present.</td>
</tr>
<tr>
<td rowspan="1" colspan="1">{<a href=
"#property-BindingFault.httpcontentencoding">http content
encoding</a>} of the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingFault">
Binding Fault</a> component</td>
<td rowspan="1" colspan="1">The actual value of the
<code>whttp:contentEncoding</code> <em>attribute information
item</em> of the <code>fault</code> <em>element information
item</em>, if present.</td>
</tr>
</tbody>
</table>
<br /></div>
</div>
<div class="div2">
<h3><a name="http-cookies-decl" id="http-cookies-decl"></a>6.10
Specifying the Use of HTTP Cookies</h3>
<div class="div3">
<h4><a name="http-cookies-description" id=
"http-cookies-description"></a>6.10.1 Description</h4>
<p>The {<a href="#property-Binding.httpcookies">http cookies</a>}
property allows <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-Binding">Binding</a>
components to indicate that HTTP cookies (as defined by
[<cite><a href="#RFC2965">IETF RFC 2965</a></cite>]) are used by
specific operations of the interface that this binding applies
to.</p>
</div>
<div class="div3">
<h4><a name="http-cookies-relate" id=
"http-cookies-relate"></a>6.10.2 Relationship to WSDL Component
Model</h4>
<p>The HTTP binding extension specification adds the following
property to the WSDL component model (as defined in [<cite><a href=
"#WSDL-PART1">WSDL 2.0 Core Language</a></cite>]):</p>
<ul>
<li>
<p>{<a name="property-Binding.httpcookies" id=
"property-Binding.httpcookies">http cookies</a>} REQUIRED. A
<em>xs:boolean</em> to the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-Binding">Binding</a>
component.</p>
</li>
</ul>
</div>
<div class="div3">
<h4><a name="http-cookies-decl-xml" id=
"http-cookies-decl-xml"></a>6.10.3 XML Representation</h4>
<div class="exampleInner">
<pre xml:space="preserve">
&lt;description&gt;
&lt;binding name="<em>xs:NCName</em>" interface="<em>xs:QName</em>"? type="<em>xs:anyURI</em>"
<strong>whttp:cookies</strong>="<em>xs:boolean</em>"? &gt;
&lt;/binding&gt;
&lt;/description&gt;
</pre></div>
<p>The XML representation for specifying the use of HTTP cookies is
an OPTIONAL <em>attribute information item</em> with the following
Infoset properties:</p>
<ul>
<li>
<p>A [local name] of <code>cookies</code></p>
</li>
<li>
<p>A [namespace name] of "http://www.w3.org/ns/wsdl/http"</p>
</li>
<li>
<p>A type of <em>xs:boolean</em></p>
</li>
</ul>
</div>
<div class="div3">
<h4><a name="http-cookies-decl-mapping" id=
"http-cookies-decl-mapping"></a>6.10.4 Mapping from XML
Representation to Component Properties</h4>
<p>See <a href="#tab_HTTP_Cookies_Mapping">Table 6-9</a>.</p>
<a name="tab_HTTP_Cookies_Mapping" id=
"tab_HTTP_Cookies_Mapping"></a>
<table border="1">
<caption>Table 6-9. Mapping from XML Representation to Binding
component Extension Properties</caption>
<tbody>
<tr>
<th rowspan="1" colspan="1">Property</th>
<th rowspan="1" colspan="1">Value</th>
</tr>
<tr>
<td rowspan="1" colspan="1">{<a href=
"#property-Binding.httpcookies">http cookies</a>}</td>
<td rowspan="1" colspan="1">The actual value of the
<code>whttp:cookies</code> <em>attribute information item</em>;
otherwise, "false". <span id="HTTPCookies-2126" class=
"test-assertion-tr">A value of "true" means that the service relies
on cookies and that the client MUST understand them.<sup><a href=
"#HTTPCookies-2126-summary" title=
"Link to assertion HTTPCookies-2126 summary"></a></sup></span></td>
</tr>
</tbody>
</table>
<br /></div>
</div>
<div class="div2">
<h3><a name="http-auth-decl" id="http-auth-decl"></a>6.11
Specifying HTTP Access Authentication</h3>
<div class="div3">
<h4><a name="http-auth-description" id=
"http-auth-description"></a>6.11.1 Description</h4>
<p>Every <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-Endpoint">Endpoint</a>
component MAY indicate the use of an HTTP access authentication
mechanism (as defined by [<cite><a href="#RFC2616">IETF RFC
2616</a></cite>]) for the endpoint described.</p>
<p>This binding extension specification allows the authentication
scheme and realm to be specified.</p>
</div>
<div class="div3">
<h4><a name="http-auth-relate" id="http-auth-relate"></a>6.11.2
Relationship to WSDL Component Model</h4>
<p>The HTTP binding extension specification adds the following
property to the WSDL component model (as defined in [<cite><a href=
"#WSDL-PART1">WSDL 2.0 Core Language</a></cite>]):</p>
<ul>
<li>
<p>{<a name="property-Endpoint.httpauthenticationscheme" id=
"property-Endpoint.httpauthenticationscheme">http authentication
scheme</a>} OPTIONAL. A <em>xs:token</em> with one of the values
"basic" or "digest", to the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-Endpoint">Endpoint</a>
component, corresponding to the HTTP authentication scheme used.
When present, this property indicates the authentication scheme in
use: "basic" indicates the Basic Access Authentication scheme
defined in [<cite><a href="#RFC2617">IETF RFC 2617</a></cite>], and
"digest" indicates the Digest Access Authentication scheme as
defined in [<cite><a href="#RFC2617">IETF RFC 2617</a></cite>].</p>
</li>
<li>
<p>{<a name="property-Endpoint.httpauthenticationrealm" id=
"property-Endpoint.httpauthenticationrealm">http authentication
realm</a>} OPTIONAL. A <em>xs:string</em> to the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-Endpoint">Endpoint</a>
component. It corresponds to the realm authentication parameter
defined in [<cite><a href="#RFC2617">IETF RFC 2617</a></cite>].
<span id="HTTPAccessAuthentication-2127" class=
"test-assertion-tr">If the {<a href=
"#property-Endpoint.httpauthenticationscheme">http authentication
scheme</a>} property is present, then this property MUST be
present.<sup><a href="#HTTPAccessAuthentication-2127-summary"
title="Link to assertion HTTPAccessAuthentication-2127 summary"></a></sup></span></p>
</li>
</ul>
</div>
<div class="div3">
<h4><a name="http-auth-decl-xml" id="http-auth-decl-xml"></a>6.11.3
XML Representation</h4>
<div class="exampleInner">
<pre xml:space="preserve">
&lt;description&gt;
&lt;service&gt;
&lt;endpoint name="<em>xs:NCName</em>" binding="<em>xs:QName</em>" address="<em>xs:anyURI</em>"? &gt;
<strong>whttp:authenticationScheme</strong>="<em>xs:token</em>"?
<strong>whttp:authenticationRealm</strong>="<em>xs:string</em>"? /&gt;
&lt;/endpoint&gt;
&lt;/service&gt;
&lt;/description&gt;
</pre></div>
<p>The XML representation for specifying the use of HTTP access
authentication is two OPTIONAL <em>attribute information item</em>s
with the following Infoset properties:</p>
<ul>
<li>
<p>An OPTIONAL <code>authenticationScheme</code> <em>attribute
information item</em> with the following Infoset properties:</p>
<ul>
<li>
<p>A [local name] of <code>authenticationScheme</code></p>
</li>
<li>
<p>A [namespace name] of "http://www.w3.org/ns/wsdl/http"</p>
</li>
<li>
<p>A type of <em>xs:token</em> where the allowed token values are
"basic" and "digest".</p>
</li>
</ul>
</li>
<li>
<p>An OPTIONAL <code>authenticationRealm</code> <em>attribute
information item</em> with the following Infoset properties:</p>
<ul>
<li>
<p>A [local name] of <code>authenticationRealm</code></p>
</li>
<li>
<p>A [namespace name] of "http://www.w3.org/ns/wsdl/http"</p>
</li>
<li>
<p>A type of <em>xs:string</em></p>
</li>
</ul>
</li>
</ul>
</div>
<div class="div3">
<h4><a name="http-auth-decl-mapping" id=
"http-auth-decl-mapping"></a>6.11.4 Mapping from XML Representation
to Component Properties</h4>
<p>See <a href="#tab_HTTP_Access_Authentication_Mapping">Table
6-10</a>.</p>
<a name="tab_HTTP_Access_Authentication_Mapping" id=
"tab_HTTP_Access_Authentication_Mapping"></a>
<table border="1">
<caption>Table 6-10. Mapping from XML Representation to Endpoint
component Extension Properties</caption>
<tbody>
<tr>
<th rowspan="1" colspan="1">Property</th>
<th rowspan="1" colspan="1">Value</th>
</tr>
<tr>
<td rowspan="1" colspan="1">{<a href=
"#property-Endpoint.httpauthenticationscheme">http authentication
scheme</a>}</td>
<td rowspan="1" colspan="1">The actual value of the
<code>whttp:authenticationScheme</code> <em>attribute information
item</em>, if present.</td>
</tr>
<tr>
<td rowspan="1" colspan="1">{<a href=
"#property-Endpoint.httpauthenticationrealm">http authentication
realm</a>}</td>
<td rowspan="1" colspan="1">The actual value of the
<code>whttp:authenticationRealm</code> <em>attribute information
item</em>, if present; otherwise, if the
<code>whttp:authenticationScheme</code> <em>attribute information
item</em> is present, "" (the empty value).</td>
</tr>
</tbody>
</table>
<br /></div>
</div>
<div class="div2">
<h3><a name="http-conformance" id="http-conformance"></a>6.12
Conformance</h3>
<p>An <em>element information item</em>, whose namespace name is
"http://www.w3.org/ns/wsdl" and whose local part is
<code>description</code>, conforms to this binding extension
specification if: the <em>element information item</em>s and
<em>attribute information item</em>s, whose namespace is
http://www.w3.org/ns/wsdl/http, conform to the XML Schema for that
element or attribute, as defined by this specification and,
additionally, adheres to all the constraints contained in this
specification.</p>
</div>
</div>
<div class="div1">
<h2><a name="References" id="References"></a>7. References</h2>
<div class="div2">
<h3><a name="Normative-References" id=
"Normative-References"></a>7.1 Normative References</h3>
<dl>
<dt class="label"><a name="EBNF" id="EBNF"></a>[ISO/IEC
14977:1996]</dt>
<dd><cite><a href=
"http://isotc.iso.org/livelink/livelink/fetch/2000/2489/Ittf_Home/PubliclyAvailableStandards.htm">
Extended BNF</a></cite>, IS0 (the International Organization for
Standardization) and IEC (the International Electrotechnical
Commission), Dec 1996. Available at
http://isotc.iso.org/livelink/livelink/fetch/2000/2489/Ittf_Home/PubliclyAvailableStandards.htm.</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="RFC2388" id="RFC2388"></a>[IETF RFC
2388]</dt>
<dd><cite><a href="http://www.ietf.org/rfc/rfc2388.txt">Returning
Values from Forms: multipart/form-data</a></cite>, L. Masinter,
Author. Internet Engineering Task Force, August 1998. Available at
http://www.ietf.org/rfc/rfc2388.txt.</dd>
<dt class="label"><a name="RFC2616" id="RFC2616"></a>[IETF RFC
2616]</dt>
<dd><cite><a href="http://www.ietf.org/rfc/rfc2616.txt">Hypertext
Transfer Protocol -- HTTP/1.1</a></cite>, R. Fielding, J. Gettys,
J. Mogul, H. Frystyk, L. Masinter, P. Leach, T. Berners-Lee,
Authors. Internet Engineering Task Force, June 1999. Available at
http://www.ietf.org/rfc/rfc2616.txt.</dd>
<dt class="label"><a name="RFC2617" id="RFC2617"></a>[IETF RFC
2617]</dt>
<dd><cite><a href="http://www.ietf.org/rfc/rfc2617.txt">HTTP
Authentication: Basic and Digest Access Authentication</a></cite>,
J. Franks, P. Hallam-Baker, J. Hostetler, S. Lawrence, P. Leach, A.
Luotonen, L. Stewart, June 1999. Available at
http://www.ietf.org/rfc/rfc2616.txt.</dd>
<dt class="label"><a name="RFC2818" id="RFC2818"></a>[IETF RFC
2818]</dt>
<dd><cite><a href="http://www.ietf.org/rfc/rfc2818.txt">HTTP Over
TLS</a></cite>, E. Rescorla, Author. Internet Engineering Task
Force, May 2000. Available at
http://www.ietf.org/rfc/rfc2818.txt.</dd>
<dt class="label"><a name="RFC2965" id="RFC2965"></a>[IETF RFC
2965]</dt>
<dd><cite><a href="http://www.ietf.org/rfc/rfc2965.txt">HTTP State
Management Mechanism</a></cite>, D. Kristol, L. Montulli Authors.
Internet Engineering Task Force, October 2000. Available at
http://www.ietf.org/rfc/rfc2965.txt.</dd>
<dt class="label"><a name="RFC3023" id="RFC3023"></a>[IETF RFC
3023]</dt>
<dd><cite><a href="http://www.ietf.org/rfc/rfc3023.txt">XML Media
Types</a></cite>, M. Murata, S. St. Laurent, D. Kohn, Authors.
Internet Engineering Task Force, January 2001. Available at
http://www.ietf.org/rfc/rfc3023.txt.</dd>
<dt class="label"><a name="RFC3205" id="RFC3205"></a>[IETF RFC
3205]</dt>
<dd><cite><a href="http://www.ietf.org/rfc/rfc3205.txt">On the use
of HTTP as a Substrate</a></cite>, K. Moore, Authors. Internet
Engineering Task Force, February 2002. Available at
http://www.ietf.org/rfc/rfc3205.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 Identifiers (URI): Generic Syntax</a></cite>, T.
Berners-Lee, R. Fielding, L. Masinter, Authors. Internet
Engineering Task Force, 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, M. Suignard, Authors.
Internet Engineering Task Force, January 2005. Available at
http://www.ietf.org/rfc/rfc3987.txt.</dd>
<dt class="label"><a name="RFC4234" id="RFC4234"></a>[IETF RFC
4234]</dt>
<dd><cite><a href="http://www.ietf.org/rfc/rfc4234.txt">Augmented
BNF for Syntax Specifications: ABNF</a></cite>, D. Crocker, P.
Overell, Authors. Internet Engineering Task Force, October 2005.
Available at http://www.ietf.org/rfc/rfc4234.txt.</dd>
<dt class="label"><a name="webarch" id="webarch"></a>[Web
Architecture]</dt>
<dd><cite><a href=
"http://www.w3.org/TR/2004/REC-webarch-20041215/">Architecture of
the World Wide Web, Volume One</a></cite>, I. Jacobs, and N. Walsh,
Editors. World Wide Web Consortium, 15 December 2004. This version
of the "Architecture of the World Wide Web, Volume One"
Recommendation is http://www.w3.org/TR/2004/REC-webarch-20041215/.
The <a href="http://www.w3.org/TR/webarch/">latest version of
"Architecture of the World Wide Web, Volume One"</a> is available
at http://www.w3.org/TR/webarch/.</dd>
<dt class="label"><a name="wsarch" id="wsarch"></a>[Web Services
Architecture]</dt>
<dd><cite><a href=
"http://www.w3.org/TR/2004/NOTE-ws-arch-20040211/">Web Services
Architecture</a></cite>, David Booth, Hugo Haas, Francis McCabe,
Eric Newcomer, Michael Champion, Chris Ferris, David Orchard,
Editors. World Wide Web Consortium, 11 February 2004. This version
of the "Web Services Architecture" Working Group Note is
http://www.w3.org/TR/2004/NOTE-ws-arch-20040211/. The <a href=
"http://www.w3.org/TR/ws-arch/">latest version of "Web Services
Architecture"</a> is available at
http://www.w3.org/TR/ws-arch/.</dd>
<dt class="label"><a name="WSDL-PART1" id="WSDL-PART1"></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 "Web Services Description Language (WSDL) Version
2.0 Part 1: Core Language" Recommendation is available is available
at http://www.w3.org/TR/2007/REC-wsdl20-20070626. The <a href=
"http://www.w3.org/TR/wsdl20">latest version of "Web Services
Description Language (WSDL) Version 2.0 Part 1: Core Language"</a>
is available at http://www.w3.org/TR/wsdl20.</dd>
<dt class="label"><a name="SOAP12-PART1" id=
"SOAP12-PART1"></a>[SOAP 1.2 Part 1: Messaging Framework (Second
Edition)]</dt>
<dd><cite><a href=
"http://www.w3.org/TR/2007/REC-soap12-part1-20070427/">SOAP Version
1.2 Part 1: Messaging Framework (Second Edition)</a></cite>, M.
Gudgin, et al., Editors. World Wide Web Consortium, 24 June 2003,
revised 27 April 2007. This version of the "SOAP Version 1.2 Part
1: Messaging Framework (Second Edition)" Recommendation is
http://www.w3.org/TR/2007/REC-soap12-part1-20070427/. The <a href=
"http://www.w3.org/TR/soap12-part1/">latest version of "SOAP
Version 1.2 Part 1: Messaging Framework"</a> is available at
http://www.w3.org/TR/soap12-part1/.</dd>
<dt class="label"><a name="SOAP12-PART2" id=
"SOAP12-PART2"></a>[SOAP 1.2 Part 2: Adjuncts (Second
Edition)]</dt>
<dd><cite><a href=
"http://www.w3.org/TR/2007/REC-soap12-part2-20070427/">SOAP Version
1.2 Part 2: Adjuncts (Second Edition)</a></cite>, M. Gudgin, et
al., Editors. World Wide Web Consortium, 24 June 2006, revised 27
April 2007. This version of the "SOAP Version 1.2 Part 2: Adjuncts
(Second Edition)" Recommendation is
http://www.w3.org/TR/2007/REC-soap12-part2-20070427/. The <a href=
"http://www.w3.org/TR/soap12-part2/">latest version of "SOAP
Version 1.2 Part 2: Adjuncts"</a> is available at
http://www.w3.org/TR/soap12-part2/.</dd>
<dt class="label"><a name="XML10" id="XML10"></a>[XML 1.0]</dt>
<dd><cite><a href=
"http://www.w3.org/TR/2006/REC-xml-20060816/">Extensible Markup
Language (XML) 1.0 (Fourth Edition)</a></cite>, T. Bray, J. Paoli,
C. M. Sperberg-McQueen, E. Maler, and F. Yergeau, Editors. World
Wide Web Consortium, 10 February 1998, revised 16 August 2006. This
version of the XML 1.0 Recommendation is
http://www.w3.org/TR/2006/REC-xml-20060816/. The <a href=
"http://www.w3.org/TR/REC-xml">latest version of "Extensible Markup
Language (XML) 1.0"</a> is available at
http://www.w3.org/TR/REC-xml.</dd>
<dt class="label"><a name="Canonical" id="Canonical"></a>[Canonical
XML]</dt>
<dd><cite><a href=
"http://www.w3.org/TR/2001/REC-xml-c14n-20010315">Canonical
XML</a></cite>, J. Boyer, Author. World Wide Web Consortium, 15
March 2001. This version of the Canonical XML Recommendation is
http://www.w3.org/TR/2001/REC-xml-c14n-20010315. The <a href=
"http://www.w3.org/TR/xml-c14n">latest version of Canonical XML</a>
is available at http://www.w3.org/TR/xml-c14n.</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="XMLSchemaP1" id="XMLSchemaP1"></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>
<dt class="label"><a name="XMLSchemaP2" id="XMLSchemaP2"></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="XForms10" id="XForms10"></a>[XForms
1.0]</dt>
<dd><cite><a href=
"http://www.w3.org/TR/2006/REC-xforms-20060314/">XForms 1.0 (Second
Edition)</a></cite>, J. Boyer, et al., Editors. World Wide Web
Consortium, 14 October 2003, revised 14 March 2006. This version of
the XForms 1.0 Recommendation is
http://www.w3.org/TR/2006/REC-xforms-20060314/. The <a href=
"http://www.w3.org/TR/xforms/">latest version of XForms 1.0</a> is
available at http://www.w3.org/TR/xforms/.</dd>
</dl>
</div>
<div class="div2">
<h3><a name="Informative-References" id=
"Informative-References"></a>7.2 Informative References</h3>
<dl>
<dt class="label"><a name="WSA-Core" id="WSA-Core"></a>[WSA 1.0
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, T. Rogers,
Editors. World Wide Web Consortium, 9 May 2006. This version of Web
Services Addressing 1.0 - Core Recommendation is
http://www.w3.org/TR/2006/REC-ws-addr-core-20060509/. The latest
version of the "Web Services Addressing 1.0 - Core" document is
available from http://www.w3.org/TR/ws-addr-core.</dd>
<dt class="label"><a name="WSDL-PART0" id="WSDL-PART0"></a>[WSDL
2.0 Primer]</dt>
<dd><cite><a href=
"http://www.w3.org/TR/2007/REC-wsdl20-primer-20070626">Web Services
Description Language (WSDL) Version 2.0 Part 0: Primer</a></cite> ,
D.Booth, C.K. Liu , Editors. World Wide Web Consortium, 26 June
2007. This version of the "Web Services Description Language (WSDL)
Version 2.0 Part 0: Primer" Recommendation is available at
http://www.w3.org/TR/2007/REC-wsdl20-primer-20070626. The <a href=
"http://www.w3.org/TR/wsdl20-primer">latest version of "Web
Services Description Language (WSDL) Version 2.0 Part 0:
Primer"</a> is available at
http://www.w3.org/TR/wsdl20-primer.</dd>
<dt class="label"><a name="WSDL-MEPS" id="WSDL-MEPS"></a>[WSDL 2.0
Additional MEPs]</dt>
<dd><cite><a href=
"http://www.w3.org/TR/2007/NOTE-wsdl20-additional-meps-20070626">Web
Services Description Language (WSDL) Version 2.0: Additional
MEPs</a></cite>, A. Lewis, Editors. World Wide Web Consortium, 26
June 2007. This version of the "Web Services Description Language
(WSDL) Version 2.0: Additional MEPs" Working Group Note is
available is available at
http://www.w3.org/TR/2007/NOTE-wsdl20-additional-meps-20070626. The
<a href=
"http://www.w3.org/TR/2007/NOTE-wsdl20-additional-meps-20070626">latest
version of "Web Services Description Language (WSDL) Version 2.0:
Additional MEPs"</a> is available at
http://www.w3.org/TR/wsdl20-additional-meps.</dd>
<dt class="label"><a name="MTOM" id="MTOM"></a>[SOAP Message
Transmission Optimization Mechanism]</dt>
<dd><cite><a href=
"http://www.w3.org/TR/2005/REC-soap12-mtom-20050125/">SOAP Message
Transmission Optimization Mechanism</a></cite>, N. Mendelsohn, M.
Nottingham, and H. Ruellan, Editors. World Wide Web Consortium, W3C
Recommendation, 25 January 2005. This version of SOAP Message
Transmission Optimization Mechanism is
http://www.w3.org/TR/2005/REC-soap12-mtom-20050125/. The <a href=
"http://www.w3.org/TR/soap12-mtom/">latest version of the "SOAP
Message Transmission Optimization Mechanism" document</a> is
available from http://www.w3.org/TR/soap12-mtom/.</dd>
<dt class="label"><a name="XPTR" id="XPTR"></a>[XPointer]</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>
<div class="back">
<div class="div1">
<h2><a name="acknowledgments" id="acknowledgments"></a>A.
Acknowledgements (Non-Normative)</h2>
<p>This document is the work of the <a href=
"http://www.w3.org/2002/ws/desc/">W3C Web Service Description
Working Group</a>.</p>
<p>Members of the Working Group are (at the time of writing, and by
alphabetical order): Charlton Barreto (Adobe Systems, Inc), Allen
Brookes (Rogue Wave Softwave), Dave Chappell (Sonic Software),
Helen Chen (Agfa-Gevaert N. V.), Roberto Chinnici (Sun
Microsystems), Kendall Clark (University of Maryland), Glen Daniels
(Sonic Software), Paul Downey (British Telecommunications), Youenn
Fablet (Canon), Ram Jeyaraman (Microsoft), Tom Jordahl (Adobe
Systems), Anish Karmarkar (Oracle Corporation), Jacek Kopecky (DERI
Innsbruck at the Leopold-Franzens-Universität Innsbruck, Austria),
Amelia Lewis (TIBCO Software, Inc.), Philippe Le Hegaret (W3C),
Michael Liddy (Education.au Ltd.), Kevin Canyang Liu (SAP AG),
Jonathan Marsh (WSO2), Monica Martin (Sun Microsystems), Josephine
Micallef (SAIC - Telcordia Technologies), Jeff Mischkinsky (Oracle
Corporation), Dale Moberg (Cyclone Commerce), Jean-Jacques Moreau
(Canon), David Orchard (BEA Systems, Inc.), Gilbert Pilz (BEA
Systems, Inc.), Tony Rogers (Computer Associates), Arthur Ryman
(IBM), Adi Sakala (IONA Technologies), Michael Shepherd (Xerox),
Asir Vedamuthu (Microsoft Corporation), Sanjiva Weerawarana (WSO2),
Ümit Yalçınalp (SAP AG), Peter Zehler (Xerox).</p>
<p>Previous members were: Eran Chinthaka (WSO2), Mark Nottingham
(BEA Systems, Inc.), Hugo Haas (W3C), Vivek Pandey (Sun
Microsystems), Bijan Parsia (University of Maryland), Lily Liu
(webMethods, Inc.), Don Wright (Lexmark), Joyce Yang (Oracle
Corporation), Daniel Schutzer (Citigroup), Dave Solo (Citigroup),
Stefano Pogliani (Sun Microsystems), William Stumbo (Xerox),
Stephen White (SeeBeyond), Barbara Zengler (DaimlerChrysler
Research and Technology), Tim Finin (University of Maryland),
Laurent De Teneuille (L'Echangeur), Johan Pauhlsson (L'Echangeur),
Mark Jones (AT&amp;T), Steve Lind (AT&amp;T), Sandra Swearingen
(U.S. Department of Defense, U.S. Air Force), Philippe Le Hégaret
(W3C), Jim Hendler (University of Maryland), Dietmar Gaertner
(Software AG), Michael Champion (Software AG), Don Mullen (TIBCO
Software, Inc.), Steve Graham (Global Grid Forum), Steve Tuecke
(Global Grid Forum), Michael Mahan (Nokia), Bryan Thompson (Hicks
&amp; Associates), Ingo Melzer (DaimlerChrysler Research and
Technology), Sandeep Kumar (Cisco Systems), Alan Davies
(SeeBeyond), Jacek Kopecky (Systinet), Mike Ballantyne (Electronic
Data Systems), Mike Davoren (W. W. Grainger), Dan Kulp (IONA
Technologies), Mike McHugh (W. W. Grainger), Michael Mealling
(Verisign), Waqar Sadiq (Electronic Data Systems), Yaron Goland
(BEA Systems, Inc.), Ümit Yalçınalp (Oracle Corporation), Peter
Madziak (Agfa-Gevaert N. V.), Jeffrey Schlimmer (Microsoft
Corporation), Hao He (The Thomson Corporation), Erik Ackerman
(Lexmark), Jerry Thrasher (Lexmark), Prasad Yendluri (webMethods,
Inc.), William Vambenepe (Hewlett-Packard Company), David Booth
(W3C), Sanjiva Weerawarana (IBM), Asir Vedamuthu (webMethods,
Inc.), Igor Sedukhin (Computer Associates), Martin Gudgin
(Microsoft Corporation), Rebecca Bergersen (IONA Technologies), Ugo
Corda (SeeBeyond).</p>
<p>The people who have contributed to <a href=
"http://lists.w3.org/Archives/Public/www-ws-desc/">discussions on
www-ws-desc@w3.org</a> are also gratefully acknowledged.</p>
</div>
<div class="div1">
<h2><a name="component_summary" id="component_summary"></a>B.
Component Summary (Non-Normative)</h2>
<p><a href="#component-summary">Table B-1</a> lists all the
components in the WSDL 2.0 Adjuncts abstract Component Model, and
all their properties.</p>
<a name="component-summary" id="component-summary"></a>
<table width="100%" border="1">
<caption>Table B-1. Summary of WSDL 2.0 Adjuncts Components and
their Properties</caption>
<col width="20%" span="1" />
<col width="80%" span="1" />
<tbody>
<tr>
<th rowspan="1" colspan="1">Component</th>
<th rowspan="1" colspan="1">Defined Properties</th>
</tr>
<tr>
<td rowspan="1" colspan="1"><a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-Binding">Binding</a></td>
<td rowspan="1" colspan="1">{<a href=
"#property-Binding.httpcontentencodingdefault">http content
encoding default</a>}, {<a href=
"#property-Binding.httpcookies">http cookies</a>}, {<a href=
"#property-Binding.httpmethoddefault">http method default</a>},
{<a href=
"#property-Binding.httpqueryparameterseparatordefault">http query
parameter separator default</a>}, {<a href=
"#property-Binding.soapmepdefault">soap mep default</a>}, {<a href=
"#property-Binding.soapmodules">soap modules</a>}, {<a href=
"#property-Binding.soapunderlyingprotocol">soap underlying
protocol</a>}, {<a href="#property-Binding.soapversion">soap
version</a>}</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingFault">
Binding Fault</a></td>
<td rowspan="1" colspan="1">{<a href=
"#property-BindingFault.httpcontentencoding">http content
encoding</a>}, {<a href=
"#property-BindingFault.httperrorstatuscode">http error status
code</a>}, {<a href="#property-BindingFault.httpheaders">http
headers</a>}, {<a href="#property-BindingFault.soapfaultcode">soap
fault code</a>}, {<a href=
"#property-BindingFault.soapfaultsubcodes">soap fault
subcodes</a>}, {<a href="#property-BindingFault.soapheaders">soap
headers</a>}, {<a href="#property-BindingFault.soapmodules">soap
modules</a>}</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingFaultReference">
Binding Fault Reference</a></td>
<td rowspan="1" colspan="1">{<a href=
"#property-BindingFaultReference.soapmodules">soap
modules</a>}</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingMessageReference">
Binding Message Reference</a></td>
<td rowspan="1" colspan="1">{<a href=
"#property-BindingMessageReference.httpcontentencoding">http
content encoding</a>}, {<a href=
"#property-BindingMessageReference.httpheaders">http headers</a>},
{<a href="#property-BindingMessageReference.soapheaders">soap
headers</a>}, {<a href=
"#property-BindingMessageReference.soapmodules">soap
modules</a>}</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingOperation">
Binding Operation</a></td>
<td rowspan="1" colspan="1">{<a href=
"#property-BindingOperation.httpcontentencodingdefault">http
content encoding default</a>}, {<a href=
"#property-BindingOperation.httpfaultserialization">http fault
serialization</a>}, {<a href=
"#property-BindingOperation.httpinputserialization">http input
serialization</a>}, {<a href=
"#property-BindingOperation.httplocation">http location</a>},
{<a href=
"#property-BindingOperation.httplocationignoreuncited">http
location ignore uncited</a>}, {<a href=
"#property-BindingOperation.httpmethod">http method</a>}, {<a href=
"#property-BindingOperation.httpoutputserialization">http output
serialization</a>}, {<a href=
"#property-BindingOperation.httpqueryparameterseparator">http query
parameter separator</a>}, {<a href=
"#property-BindingOperation.soapaction">soap action</a>}, {<a href=
"#property-BindingOperation.soapmep">soap mep</a>}, {<a href=
"#property-BindingOperation.soapmodules">soap modules</a>}</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-Endpoint">Endpoint</a></td>
<td rowspan="1" colspan="1">{<a href=
"#property-Endpoint.httpauthenticationrealm">http authentication
realm</a>}, {<a href=
"#property-Endpoint.httpauthenticationscheme">http authentication
scheme</a>}</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a href="#component-HTTPHeader">HTTP
Header</a></td>
<td rowspan="1" colspan="1">{<a href=
"#property-HTTPHeader.name">name</a>}, {<a href=
"#property-HTTPHeader.parent">parent</a>}, {<a href=
"#property-HTTPHeader.required">required</a>}, {<a href=
"#property-HTTPHeader.typedefinition">type definition</a>}</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-InterfaceOperation">
Interface Operation</a></td>
<td rowspan="1" colspan="1">{<a href=
"#property-InterfaceOperation.rpcsignature">rpc signature</a>},
{<a href="#property-InterfaceOperation.safe">safe</a>}</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a href=
"#component-SOAPHeaderBlock">SOAP Header Block</a></td>
<td rowspan="1" colspan="1">{<a href=
"#property-SOAPHeaderBlock.elementdeclaration">element
declaration</a>}, {<a href=
"#property-SOAPHeaderBlock.mustUnderstand">mustUnderstand</a>},
{<a href="#property-SOAPHeaderBlock.parent">parent</a>}, {<a href=
"#property-SOAPHeaderBlock.required">required</a>}</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a href="#component-SOAPModule">SOAP
Module</a></td>
<td rowspan="1" colspan="1">{<a href=
"#property-SOAPModule.parent">parent</a>}, {<a href=
"#property-SOAPModule.ref">ref</a>}, {<a href=
"#property-SOAPModule.required">required</a>}</td>
</tr>
<tr>
<th rowspan="1" colspan="1">Property</th>
<th rowspan="1" colspan="1">Where Defined</th>
</tr>
<tr>
<td rowspan="1" colspan="1">element declaration</td>
<td rowspan="1" colspan="1">SOAP Header Block.{<a href=
"#property-SOAPHeaderBlock.elementdeclaration">element
declaration</a>}</td>
</tr>
<tr>
<td rowspan="1" colspan="1">http authentication realm</td>
<td rowspan="1" colspan="1">Endpoint.{<a href=
"#property-Endpoint.httpauthenticationrealm">http authentication
realm</a>}</td>
</tr>
<tr>
<td rowspan="1" colspan="1">http authentication scheme</td>
<td rowspan="1" colspan="1">Endpoint.{<a href=
"#property-Endpoint.httpauthenticationscheme">http authentication
scheme</a>}</td>
</tr>
<tr>
<td rowspan="1" colspan="1">http content encoding</td>
<td rowspan="1" colspan="1">Binding Fault.{<a href=
"#property-BindingFault.httpcontentencoding">http content
encoding</a>}, Binding Message Reference.{<a href=
"#property-BindingMessageReference.httpcontentencoding">http
content encoding</a>}</td>
</tr>
<tr>
<td rowspan="1" colspan="1">http content encoding default</td>
<td rowspan="1" colspan="1">Binding.{<a href=
"#property-Binding.httpcontentencodingdefault">http content
encoding default</a>}, Binding Operation.{<a href=
"#property-BindingOperation.httpcontentencodingdefault">http
content encoding default</a>}</td>
</tr>
<tr>
<td rowspan="1" colspan="1">http cookies</td>
<td rowspan="1" colspan="1">Binding.{<a href=
"#property-Binding.httpcookies">http cookies</a>}</td>
</tr>
<tr>
<td rowspan="1" colspan="1">http error status code</td>
<td rowspan="1" colspan="1">Binding Fault.{<a href=
"#property-BindingFault.httperrorstatuscode">http error status
code</a>}</td>
</tr>
<tr>
<td rowspan="1" colspan="1">http fault serialization</td>
<td rowspan="1" colspan="1">Binding Operation.{<a href=
"#property-BindingOperation.httpfaultserialization">http fault
serialization</a>}</td>
</tr>
<tr>
<td rowspan="1" colspan="1">http headers</td>
<td rowspan="1" colspan="1">Binding Fault.{<a href=
"#property-BindingFault.httpheaders">http headers</a>}, Binding
Message Reference.{<a href=
"#property-BindingMessageReference.httpheaders">http
headers</a>}</td>
</tr>
<tr>
<td rowspan="1" colspan="1">http input serialization</td>
<td rowspan="1" colspan="1">Binding Operation.{<a href=
"#property-BindingOperation.httpinputserialization">http input
serialization</a>}</td>
</tr>
<tr>
<td rowspan="1" colspan="1">http location</td>
<td rowspan="1" colspan="1">Binding Operation.{<a href=
"#property-BindingOperation.httplocation">http location</a>}</td>
</tr>
<tr>
<td rowspan="1" colspan="1">http location ignore uncited</td>
<td rowspan="1" colspan="1">Binding Operation.{<a href=
"#property-BindingOperation.httplocationignoreuncited">http
location ignore uncited</a>}</td>
</tr>
<tr>
<td rowspan="1" colspan="1">http method</td>
<td rowspan="1" colspan="1">Binding Operation.{<a href=
"#property-BindingOperation.httpmethod">http method</a>}</td>
</tr>
<tr>
<td rowspan="1" colspan="1">http method default</td>
<td rowspan="1" colspan="1">Binding.{<a href=
"#property-Binding.httpmethoddefault">http method default</a>}</td>
</tr>
<tr>
<td rowspan="1" colspan="1">http output serialization</td>
<td rowspan="1" colspan="1">Binding Operation.{<a href=
"#property-BindingOperation.httpoutputserialization">http output
serialization</a>}</td>
</tr>
<tr>
<td rowspan="1" colspan="1">http query parameter separator</td>
<td rowspan="1" colspan="1">Binding Operation.{<a href=
"#property-BindingOperation.httpqueryparameterseparator">http query
parameter separator</a>}</td>
</tr>
<tr>
<td rowspan="1" colspan="1">http query parameter separator
default</td>
<td rowspan="1" colspan="1">Binding.{<a href=
"#property-Binding.httpqueryparameterseparatordefault">http query
parameter separator default</a>}</td>
</tr>
<tr>
<td rowspan="1" colspan="1">mustUnderstand</td>
<td rowspan="1" colspan="1">SOAP Header Block.{<a href=
"#property-SOAPHeaderBlock.mustUnderstand">mustUnderstand</a>}</td>
</tr>
<tr>
<td rowspan="1" colspan="1">name</td>
<td rowspan="1" colspan="1">HTTP Header.{<a href=
"#property-HTTPHeader.name">name</a>}</td>
</tr>
<tr>
<td rowspan="1" colspan="1">parent</td>
<td rowspan="1" colspan="1">HTTP Header.{<a href=
"#property-HTTPHeader.parent">parent</a>}, SOAP Header
Block.{<a href="#property-SOAPHeaderBlock.parent">parent</a>}, SOAP
Module.{<a href="#property-SOAPModule.parent">parent</a>}</td>
</tr>
<tr>
<td rowspan="1" colspan="1">ref</td>
<td rowspan="1" colspan="1">SOAP Module.{<a href=
"#property-SOAPModule.ref">ref</a>}</td>
</tr>
<tr>
<td rowspan="1" colspan="1">required</td>
<td rowspan="1" colspan="1">HTTP Header.{<a href=
"#property-HTTPHeader.required">required</a>}, SOAP Header
Block.{<a href="#property-SOAPHeaderBlock.required">required</a>},
SOAP Module.{<a href=
"#property-SOAPModule.required">required</a>}</td>
</tr>
<tr>
<td rowspan="1" colspan="1">rpc signature</td>
<td rowspan="1" colspan="1">Interface Operation.{<a href=
"#property-InterfaceOperation.rpcsignature">rpc signature</a>}</td>
</tr>
<tr>
<td rowspan="1" colspan="1">safe</td>
<td rowspan="1" colspan="1">Interface Operation.{<a href=
"#property-InterfaceOperation.safe">safe</a>}</td>
</tr>
<tr>
<td rowspan="1" colspan="1">soap action</td>
<td rowspan="1" colspan="1">Binding Operation.{<a href=
"#property-BindingOperation.soapaction">soap action</a>}</td>
</tr>
<tr>
<td rowspan="1" colspan="1">soap fault code</td>
<td rowspan="1" colspan="1">Binding Fault.{<a href=
"#property-BindingFault.soapfaultcode">soap fault code</a>}</td>
</tr>
<tr>
<td rowspan="1" colspan="1">soap fault subcodes</td>
<td rowspan="1" colspan="1">Binding Fault.{<a href=
"#property-BindingFault.soapfaultsubcodes">soap fault
subcodes</a>}</td>
</tr>
<tr>
<td rowspan="1" colspan="1">soap headers</td>
<td rowspan="1" colspan="1">Binding Fault.{<a href=
"#property-BindingFault.soapheaders">soap headers</a>}, Binding
Message Reference.{<a href=
"#property-BindingMessageReference.soapheaders">soap
headers</a>}</td>
</tr>
<tr>
<td rowspan="1" colspan="1">soap mep</td>
<td rowspan="1" colspan="1">Binding Operation.{<a href=
"#property-BindingOperation.soapmep">soap mep</a>}</td>
</tr>
<tr>
<td rowspan="1" colspan="1">soap mep default</td>
<td rowspan="1" colspan="1">Binding.{<a href=
"#property-Binding.soapmepdefault">soap mep default</a>}</td>
</tr>
<tr>
<td rowspan="1" colspan="1">soap modules</td>
<td rowspan="1" colspan="1">Binding.{<a href=
"#property-Binding.soapmodules">soap modules</a>}, Binding
Fault.{<a href="#property-BindingFault.soapmodules">soap
modules</a>}, Binding Fault Reference.{<a href=
"#property-BindingFaultReference.soapmodules">soap modules</a>},
Binding Message Reference.{<a href=
"#property-BindingMessageReference.soapmodules">soap modules</a>},
Binding Operation.{<a href=
"#property-BindingOperation.soapmodules">soap modules</a>}</td>
</tr>
<tr>
<td rowspan="1" colspan="1">soap underlying protocol</td>
<td rowspan="1" colspan="1">Binding.{<a href=
"#property-Binding.soapunderlyingprotocol">soap underlying
protocol</a>}</td>
</tr>
<tr>
<td rowspan="1" colspan="1">soap version</td>
<td rowspan="1" colspan="1">Binding.{<a href=
"#property-Binding.soapversion">soap version</a>}</td>
</tr>
<tr>
<td rowspan="1" colspan="1">type definition</td>
<td rowspan="1" colspan="1">HTTP Header.{<a href=
"#property-HTTPHeader.typedefinition">type definition</a>}</td>
</tr>
</tbody>
</table>
<br /></div>
<h2><a name="assertionsummary" id="assertionsummary"></a>C.
Assertion Summary (Non-Normative)</h2>
<p>This appendix summarizes assertions about WSDL 2.0 documents and
components that are not enforced by the WSDL 2.0 schema. Each
assertion is assigned a unique identifier which WSDL 2.0 processors
may use to report errors.</p>
<a name="document-assertion-summary" id=
"document-assertion-summary"></a>
<table width="100%" border="1">
<caption>Table C-1. Summary of Assertions about WSDL 2.0
Documents</caption>
<col width="20%" span="1" />
<col width="80%" span="1" />
<tbody>
<tr>
<th rowspan="1" colspan="1">Id</th>
<th rowspan="1" colspan="1">Assertion</th>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name="OperationSafety-2028-summary"
href="#OperationSafety-2028" id=
"OperationSafety-2028-summary">OperationSafety-2028</a></td>
<td rowspan="1" colspan="1">An OPTIONAL <code>safe</code>
<em>attribute information item</em> with the following Infoset
properties:</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name="WRPC-2050-summary" href=
"#WRPC-2050" id="WRPC-2050-summary">WRPC-2050</a></td>
<td rowspan="1" colspan="1">Additionally, each even-numbered item
(0, 2, 4, ...) in the list MUST be of type <em>xs:QName</em> and
each odd-numbered item (1, 3, 5, ...) in the list MUST be of the
subtype of <em>xs:token</em> described in the previous
paragraph.</td>
</tr>
</tbody>
</table>
<br />
<a name="component-assertion-summary" id=
"component-assertion-summary"></a>
<table width="100%" border="1">
<caption>Table C-2. Summary of Assertions about WSDL 2.0
Components</caption>
<col width="20%" span="1" />
<col width="80%" span="1" />
<tbody>
<tr>
<th rowspan="1" colspan="1">Id</th>
<th rowspan="1" colspan="1">Assertion</th>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name=
"FaultPropagationModification-2005-summary" href=
"#FaultPropagationModification-2005" id=
"FaultPropagationModification-2005-summary">FaultPropagationModification-2005</a></td>
<td rowspan="1" colspan="1">However, extensions or binding
extensions MAY modify these rulesets.</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name=
"HTTPAccessAuthentication-2127-summary" href=
"#HTTPAccessAuthentication-2127" id=
"HTTPAccessAuthentication-2127-summary">HTTPAccessAuthentication-2127</a></td>
<td rowspan="1" colspan="1">If the {<a href=
"#property-Endpoint.httpauthenticationscheme">http authentication
scheme</a>} property is present, then this property MUST be
present.</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name="HTTPBinding-2083-summary"
href="#HTTPBinding-2083" id=
"HTTPBinding-2083-summary">HTTPBinding-2083</a></td>
<td rowspan="1" colspan="1">When formulating the HTTP message to be
transmitted, the HTTP request method used MUST be selected using
one of the following:</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name="HTTPBinding-2084-summary"
href="#HTTPBinding-2084" id=
"HTTPBinding-2084-summary">HTTPBinding-2084</a></td>
<td rowspan="1" colspan="1">When formulating the HTTP message to be
transmitted, content encoding for a given <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingMessageReference">
Binding Message Reference</a> component is determined as
follows:</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name="HTTPBinding-2085-summary"
href="#HTTPBinding-2085" id=
"HTTPBinding-2085-summary">HTTPBinding-2085</a></td>
<td rowspan="1" colspan="1">When formulating the HTTP fault message
to be transmitted, content encoding for a given <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingFault">
Binding Fault</a> component is determined as follows:</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name="HTTPBinding-2086-summary"
href="#HTTPBinding-2086" id=
"HTTPBinding-2086-summary">HTTPBinding-2086</a></td>
<td rowspan="1" colspan="1">When formulating the HTTP message to be
transmitted, the contents of the payload (i.e. the contents of the
HTTP message body) MUST be what is defined by the corresponding
<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-InterfaceMessageReference">
Interface Message Reference</a> or <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-InterfaceFault">
Interface Fault</a> components, serialized as specified by the
<a title="serialization format" href=
"#serialization_format">serialization format</a> used.</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name="HTTPBinding-2087-summary"
href="#HTTPBinding-2087" id=
"HTTPBinding-2087-summary">HTTPBinding-2087</a></td>
<td rowspan="1" colspan="1">If the value is "#none", then the
payload MUST be empty and the value of the corresponding
serialization property ({<a href=
"#property-BindingOperation.httpinputserialization">http input
serialization</a>} or {<a href=
"#property-BindingOperation.httpoutputserialization">http output
serialization</a>}) is ignored.</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name="HTTPBinding-2088-summary"
href="#HTTPBinding-2088" id=
"HTTPBinding-2088-summary">HTTPBinding-2088</a></td>
<td rowspan="1" colspan="1">If the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-InterfaceMessageReference">
Interface Message Reference</a> component or the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-InterfaceFault">
Interface Fault</a> component is declared using a non-XML type
system (as considered in the Types section of [<cite><a href=
"#WSDL-PART1">WSDL 2.0 Core Language</a></cite>]), then additional
binding rules MUST be defined in an extension specification to
indicate how to map those components into the HTTP envelope.</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name="HTTPBinding-2089-summary"
href="#HTTPBinding-2089" id=
"HTTPBinding-2089-summary">HTTPBinding-2089</a></td>
<td rowspan="1" colspan="1">The serialization rules for messages
whose {<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#property-InterfaceMessageReference.messagecontentmodel">message
content model</a>} is either "#element" or "#any", AND the
serialization rules for fault messages, are as follows:</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name="HTTPBindingFault-2105-summary"
href="#HTTPBindingFault-2105" id=
"HTTPBindingFault-2105-summary">HTTPBindingFault-2105</a></td>
<td rowspan="1" colspan="1">The fault definition SHOULD agree with
the definition of the HTTP error codes, as specified in section 8
of [<cite><a href="#RFC3205">IETF RFC 3205</a></cite>].</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name="HTTPBindingFault-2106-summary"
href="#HTTPBindingFault-2106" id=
"HTTPBindingFault-2106-summary">HTTPBindingFault-2106</a></td>
<td rowspan="1" colspan="1">An integer value of this property
identifies the error Status-Code as defined by [<cite><a href=
"#RFC2616">IETF RFC 2616</a></cite>] that the service will use in
case the fault is returned.</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name=
"HTTPBindingOperation-2093-summary" href=
"#HTTPBindingOperation-2093" id=
"HTTPBindingOperation-2093-summary">HTTPBindingOperation-2093</a></td>
<td rowspan="1" colspan="1">When formulating the HTTP Request, the
HTTP Request IRI is an absolute IRI reference and is the value of
the {<a href="#property-BindingOperation.httplocation">http
location</a>} property of the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingOperation">
Binding Operation</a> component, resolved using the value of the
{<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#property-Endpoint.address">address</a>}
property of the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-Endpoint">Endpoint</a>
component (see section 5 of [<cite><a href="#RFC3986">IETF RFC
3986</a></cite>]).</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name=
"HTTPBindingOperation-2094-summary" href=
"#HTTPBindingOperation-2094" id=
"HTTPBindingOperation-2094-summary">HTTPBindingOperation-2094</a></td>
<td rowspan="1" colspan="1">The first one is transmitted using an
HTTP request, and the second one is transmitted using the
corresponding HTTP response.</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name=
"HTTPBindingOperation-2095-summary" href=
"#HTTPBindingOperation-2095" id=
"HTTPBindingOperation-2095-summary">HTTPBindingOperation-2095</a></td>
<td rowspan="1" colspan="1">In cases where only one single message
is being sent, the message body of the HTTP response MUST be
empty.</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name=
"HTTPBindingOperation-2098-summary" href=
"#HTTPBindingOperation-2098" id=
"HTTPBindingOperation-2098-summary">HTTPBindingOperation-2098</a></td>
<td rowspan="1" colspan="1">It MUST contain an IRI reference and
MUST NOT include a fragment identifier component.</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name=
"HTTPBindingOperation-2100-summary" href=
"#HTTPBindingOperation-2100" id=
"HTTPBindingOperation-2100-summary">HTTPBindingOperation-2100</a></td>
<td rowspan="1" colspan="1">The value of the <a title=
"serialization format" href="#serialization_format">serialization
format</a> used for a message is a media type which MUST be covered
by this range.</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name=
"HTTPBindingOperation-2101-summary" href=
"#HTTPBindingOperation-2101" id=
"HTTPBindingOperation-2101-summary">HTTPBindingOperation-2101</a></td>
<td rowspan="1" colspan="1">Wild cards (for example,
"application/*") SHOULD NOT be used in this <em>attribute
information item</em> since they may lead to interoperability
problems.</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name="HTTPCookies-2126-summary"
href="#HTTPCookies-2126" id=
"HTTPCookies-2126-summary">HTTPCookies-2126</a></td>
<td rowspan="1" colspan="1">A value of "true" means that the
service relies on cookies and that the client MUST understand
them.</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name="HTTPHeader-2090-summary" href=
"#HTTPHeader-2090" id=
"HTTPHeader-2090-summary">HTTPHeader-2090</a></td>
<td rowspan="1" colspan="1">If the {<a href=
"#property-BindingMessageReference.httpheaders">http headers</a>}
property as defined in section <a href=
"#http-headers-decl"><strong>6.6 Declaring HTTP
Headers</strong></a> exists and is not empty in a <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingMessageReference">
Binding Message Reference</a> or <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingFault">
Binding Fault</a> component, HTTP headers conforming to each
<a href="#component-HTTPHeader">HTTP Header</a> component contained
in this {<a href=
"#property-BindingMessageReference.httpheaders">http headers</a>}
property MAY be serialized as follows:</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name="HTTPHeader-2091-summary" href=
"#HTTPHeader-2091" id=
"HTTPHeader-2091-summary">HTTPHeader-2091</a></td>
<td rowspan="1" colspan="1">The HTTP binding MUST NOT set an HTTP
header field corresponding to the value of the {<a href=
"#property-HTTPHeader.name">name</a>} property already set by
another mechanism, such as the HTTP stack or another feature.</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name="HTTPHeader-2092-summary" href=
"#HTTPHeader-2092" id=
"HTTPHeader-2092-summary">HTTPHeader-2092</a></td>
<td rowspan="1" colspan="1">If the value of an <a href=
"#component-HTTPHeader">HTTP Header</a> component's {<a href=
"#property-HTTPHeader.required">required</a>} property is "true",
the inclusion of this HTTP header field is REQUIRED</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name="HTTPHeader-2102-summary" href=
"#HTTPHeader-2102" id=
"HTTPHeader-2102-summary">HTTPHeader-2102</a></td>
<td rowspan="1" colspan="1">A <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingMessageReference">
Binding Message Reference</a> or a <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingFault">
Binding Fault</a> component's {<a href=
"#property-BindingMessageReference.httpheaders">http headers</a>}
property MUST NOT contain multiple <a href=
"#component-HTTPHeader">HTTP Header</a> components with the same
{<a href="#property-HTTPHeader.name">name</a>} property.</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name="HTTPHeader-2103-summary" href=
"#HTTPHeader-2103" id=
"HTTPHeader-2103-summary">HTTPHeader-2103</a></td>
<td rowspan="1" colspan="1">This type MUST be a simple type.</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name="HTTPHeader-2104-summary" href=
"#HTTPHeader-2104" id=
"HTTPHeader-2104-summary">HTTPHeader-2104</a></td>
<td rowspan="1" colspan="1">If the value is "true", then the HTTP
header field MUST be included in the message.</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name="HTTPQueryString-2115-summary"
href="#HTTPQueryString-2115" id=
"HTTPQueryString-2115-summary">HTTPQueryString-2115</a></td>
<td rowspan="1" colspan="1">The <a title="instance data" href=
"#instance_data">instance data</a> MUST NOT contain elements with
an <code>xs:nil</code> attribute whose value is "true".</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name="HTTPQueryString-2116-summary"
href="#HTTPQueryString-2116" id=
"HTTPQueryString-2116-summary">HTTPQueryString-2116</a></td>
<td rowspan="1" colspan="1">When serializing an HTTP request that
does not allow an HTTP message body, and when {<a href=
"#property-BindingOperation.httplocationignoreuncited">http
location ignore uncited</a>} is "true", any element NOT cited in
the {<a href="#property-BindingOperation.httplocation">http
location</a>} property MUST be defined in the schema as
<code>nillable</code>, or have a <code>default</code> value, or
appear no less frequently than specified by the
<code>minOccurs</code> value. The element declaration SHOULD NOT
combine a default value with <code>nillable</code>.</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name=
"HTTPSerialization-2099-summary" href="#HTTPSerialization-2099" id=
"HTTPSerialization-2099-summary">HTTPSerialization-2099</a></td>
<td rowspan="1" colspan="1">The value of the {<a href=
"#property-BindingOperation.httpinputserialization">http input
serialization</a>}, {<a href=
"#property-BindingOperation.httpoutputserialization">http output
serialization</a>} and {<a href=
"#property-BindingOperation.httpfaultserialization">http fault
serialization</a>} properties is similar to the value allowed for
the <code>Accept</code> HTTP header defined by the HTTP 1.1
specification, Section 14.1 (see [<cite><a href="#RFC2616">IETF RFC
2616</a></cite>]) and MUST follow the production rules defined in
that section except for the following:</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name=
"HTTPSerialization-2106-summary" href="#HTTPSerialization-2106" id=
"HTTPSerialization-2106-summary">HTTPSerialization-2106</a></td>
<td rowspan="1" colspan="1">The {<a href=
"#property-BindingOperation.httplocation">http location</a>}
property MUST conform to the following EBNF [<cite><a href=
"#EBNF">ISO/IEC 14977:1996</a></cite>] grammar, which represents
the patterns for constructing the request IRI:</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name=
"HTTPSerialization-2107-summary" href="#HTTPSerialization-2107" id=
"HTTPSerialization-2107-summary">HTTPSerialization-2107</a></td>
<td rowspan="1" colspan="1">If the {<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#property-InterfaceOperation.style">style</a>}
property of the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-InterfaceOperation">
Interface Operation</a> bound has a value of
"http://www.w3.org/ns/wsdl/style/iri" as defined in <a href=
"#_operation_iri_style"><strong>4.2 IRI Style</strong></a>, and if
the {<a href="#property-BindingOperation.httplocation">http
location</a>} property of the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingOperation">
Binding Operation</a> component is present, the value of the
{<a href="#property-BindingOperation.httplocation">http
location</a>} property component is used as a template</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name=
"HTTPSerialization-2108-summary" href="#HTTPSerialization-2108" id=
"HTTPSerialization-2108-summary">HTTPSerialization-2108</a></td>
<td rowspan="1" colspan="1">The resulting IRI MUST be mapped to an
URI for use in the HTTP Request as per section 3.1 "Mapping of IRIs
to URIs" of the IRI specification [<cite><a href="#RFC3987">IETF
RFC 3987</a></cite>].</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name=
"HTTPSerialization-2109-summary" href="#HTTPSerialization-2109" id=
"HTTPSerialization-2109-summary">HTTPSerialization-2109</a></td>
<td rowspan="1" colspan="1">The local name in a template SHOULD
match at least one element from the <a title="instance data" href=
"#instance_data">instance data</a> of the input message.</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name=
"HTTPSerialization-2111-summary" href="#HTTPSerialization-2111" id=
"HTTPSerialization-2111-summary">HTTPSerialization-2111</a></td>
<td rowspan="1" colspan="1">If this format is used then the
{<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#property-InterfaceOperation.style">style</a>}
property of <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-InterfaceOperation">
Interface Operation</a> component being bound MUST contain a value
of "http://www.w3.org/ns/wsdl/style/iri" as defined in <a href=
"#_operation_iri_style"><strong>4.2 IRI Style</strong></a>, i.e.
this serialization format may only be used to serialize the HTTP
request corresponding to the initial message of an interface
operation.</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name=
"HTTPSerialization-2112-summary" href="#HTTPSerialization-2112" id=
"HTTPSerialization-2112-summary">HTTPSerialization-2112</a></td>
<td rowspan="1" colspan="1">For the HTTP binding defined in this
section (<a href="#http-binding"><strong>6. WSDL HTTP Binding
Extension</strong></a>), "application/x-www-form-urlencoded" MAY be
used as a <a title="serialization format" href=
"#serialization_format">serialization format</a> for an input
message (HTTP Request), but MUST NOT be used as a <a title=
"serialization format" href="#serialization_format">serialization
format</a> for an output or fault message (HTTP Response).</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name=
"HTTPSerialization-2113-summary" href="#HTTPSerialization-2113" id=
"HTTPSerialization-2113-summary">HTTPSerialization-2113</a></td>
<td rowspan="1" colspan="1">If not all elements from the <a title=
"instance data" href="#instance_data">instance data</a> are cited
in the {<a href="#property-BindingOperation.httplocation">http
location</a>} property, or if the property is not present on the
<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingOperation">
Binding Operation</a> component, then additional serialization
rules apply.</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name=
"HTTPSerialization-2114-summary" href="#HTTPSerialization-2114" id=
"HTTPSerialization-2114-summary">HTTPSerialization-2114</a></td>
<td rowspan="1" colspan="1">For elements of the instance data not
cited in the {<a href=
"#property-BindingOperation.httplocation">http location</a>}
property, a query string is constructed as follows.</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name=
"HTTPSerialization-2117-summary" href="#HTTPSerialization-2117" id=
"HTTPSerialization-2117-summary">HTTPSerialization-2117</a></td>
<td rowspan="1" colspan="1">If the HTTP request method used does
not allow HTTP message body (e.g. "GET" and "DELETE"), and if the
value of the {<a href=
"#property-BindingOperation.httplocationignoreuncited">http
location ignore uncited</a>} property is "false", then the
following rules apply.</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name=
"HTTPSerialization-2118-summary" href="#HTTPSerialization-2118" id=
"HTTPSerialization-2118-summary">HTTPSerialization-2118</a></td>
<td rowspan="1" colspan="1">If the HTTP request method used does
allow an HTTP message body (e.g. "POST" and "PUT"), then the
following rules apply.</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name=
"HTTPSerialization-2119-summary" href="#HTTPSerialization-2119" id=
"HTTPSerialization-2119-summary">HTTPSerialization-2119</a></td>
<td rowspan="1" colspan="1">The <code>Content-Type</code> HTTP
header field must have the value
<code>application/x-www-form-urlencoded</code>.</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name=
"HTTPSerialization-2120-summary" href="#HTTPSerialization-2120" id=
"HTTPSerialization-2120-summary">HTTPSerialization-2120</a></td>
<td rowspan="1" colspan="1">The <code>Content-Type</code> HTTP
header MUST have the value <code>application/xml</code>
[<cite><a href="#RFC3023">IETF RFC 3023</a></cite>], or a media
type compatible with <code>application/xml</code> as specified in
section <a href="#_http_ser_xml"><strong>6.4.3.1 Serialization
rules for XML messages</strong></a>.</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name=
"HTTPSerialization-2121-summary" href="#HTTPSerialization-2121" id=
"HTTPSerialization-2121-summary">HTTPSerialization-2121</a></td>
<td rowspan="1" colspan="1">this serialization format may only be
used to serialize the HTTP request corresponding to the initial
message of an interface operation.</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name=
"HTTPSerialization-2122-summary" href="#HTTPSerialization-2122" id=
"HTTPSerialization-2122-summary">HTTPSerialization-2122</a></td>
<td rowspan="1" colspan="1">Specifically, for the HTTP binding
defined in this section (<a href="#http-binding"><strong>6. WSDL
HTTP Binding Extension</strong></a>), "multipart/form-data" MAY be
used as a <a title="serialization format" href=
"#serialization_format">serialization format</a> for an input
message (HTTP Request), but MUST NOT be used as a <a title=
"serialization format" href="#serialization_format">serialization
format</a> for an output or fault message (HTTP Response).</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name=
"HTTPSerialization-2123-summary" href="#HTTPSerialization-2123" id=
"HTTPSerialization-2123-summary">HTTPSerialization-2123</a></td>
<td rowspan="1" colspan="1">The <code>Content-Disposition</code>
header MUST have the value <code>form-data</code>, and its
<code>name</code> parameter is the local name of the element.</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name=
"HTTPSerialization-2124-summary" href="#HTTPSerialization-2124" id=
"HTTPSerialization-2124-summary">HTTPSerialization-2124</a></td>
<td rowspan="1" colspan="1">The <code>Content-Type</code> header
MUST have the value:</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name=
"HTTPSerialization-2125-summary" href="#HTTPSerialization-2125" id=
"HTTPSerialization-2125-summary">HTTPSerialization-2125</a></td>
<td rowspan="1" colspan="1">The <a title="instance data" href=
"#instance_data">instance data</a> MUST NOT contain elements with
an <code>xs:nil</code> attribute whose value is "true".</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name="IRIStyle-2051-summary" href=
"#IRIStyle-2051" id="IRIStyle-2051-summary">IRIStyle-2051</a></td>
<td rowspan="1" colspan="1">When using this style, the value of the
{<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#property-InterfaceMessageReference.messagecontentmodel">message
content model</a>} property of the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-InterfaceMessageReference">
Interface Message Reference</a> component corresponding to the
initial message of the message exchange pattern MUST be
"#element".</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name="IRIStyle-2052-summary" href=
"#IRIStyle-2052" id="IRIStyle-2052-summary">IRIStyle-2052</a></td>
<td rowspan="1" colspan="1">The sequence MUST only contain
elements.</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name="IRIStyle-2053-summary" href=
"#IRIStyle-2053" id="IRIStyle-2053-summary">IRIStyle-2053</a></td>
<td rowspan="1" colspan="1">The sequence MUST contain only local
element children.</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name="IRIStyle-2054-summary" href=
"#IRIStyle-2054" id="IRIStyle-2054-summary">IRIStyle-2054</a></td>
<td rowspan="1" colspan="1">The localPart of the element's QName
MUST be the same as the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-InterfaceOperation">
Interface Operation</a> component's {<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#property-InterfaceOperation.name">name</a>}.</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name="IRIStyle-2055-summary" href=
"#IRIStyle-2055" id="IRIStyle-2055-summary">IRIStyle-2055</a></td>
<td rowspan="1" colspan="1">The complex type that defines the body
of the element or its children elements MUST NOT contain any
attributes.</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name="IRIStyle-2056-summary" href=
"#IRIStyle-2056" id="IRIStyle-2056-summary">IRIStyle-2056</a></td>
<td rowspan="1" colspan="1">The children elements of the sequence
MUST derive from <code>xs:simpleType</code>, and MUST NOT be of the
type or derive from <code>xs:QName</code>,
<code>xs:NOTATION</code>, <code>xs:hexBinary</code> or
<code>xs:base64Binary</code>.</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name=
"InOnlyComposition-2012-summary" href="#InOnlyComposition-2012" id=
"InOnlyComposition-2012-summary">InOnlyComposition-2012</a></td>
<td rowspan="1" colspan="1">The <code>in-only</code> message
exchange pattern consists of exactly one message as follows:</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name="InOutComposition-2015-summary"
href="#InOutComposition-2015" id=
"InOutComposition-2015-summary">InOutComposition-2015</a></td>
<td rowspan="1" colspan="1">The <code>in-out</code> message
exchange pattern consists of exactly two messages, in order, as
follows:</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name=
"InterfaceOperation-2096-summary" href="#InterfaceOperation-2096"
id=
"InterfaceOperation-2096-summary">InterfaceOperation-2096</a></td>
<td rowspan="1" colspan="1">202 when the MEP is
"http://www.w3.org/ns/wsdl/in-only"</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name=
"InterfaceOperation-2097-summary" href="#InterfaceOperation-2097"
id=
"InterfaceOperation-2097-summary">InterfaceOperation-2097</a></td>
<td rowspan="1" colspan="1">204 when the MEP is
"http://www.w3.org/ns/wsdl/robust-in-only"</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name="MultipartStyle-2057-summary"
href="#MultipartStyle-2057" id=
"MultipartStyle-2057-summary">MultipartStyle-2057</a></td>
<td rowspan="1" colspan="1">When using this style, the value of the
{<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#property-InterfaceMessageReference.messagecontentmodel">message
content model</a>} property of the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-InterfaceMessageReference">
Interface Message Reference</a> component corresponding to the
initial message of the message exchange pattern MUST be
"#element".</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name="MultipartStyle-2058-summary"
href="#MultipartStyle-2058" id=
"MultipartStyle-2058-summary">MultipartStyle-2058</a></td>
<td rowspan="1" colspan="1">The sequence MUST only contain
elements.</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name="MultipartStyle-2059-summary"
href="#MultipartStyle-2059" id=
"MultipartStyle-2059-summary">MultipartStyle-2059</a></td>
<td rowspan="1" colspan="1">The sequence MUST contain only local
element children.</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name="MultipartStyle-2060-summary"
href="#MultipartStyle-2060" id=
"MultipartStyle-2060-summary">MultipartStyle-2060</a></td>
<td rowspan="1" colspan="1">The attributes <code>minOccurs</code>
and <code>maxOccurs</code> for these child elements MUST have a
value <code>1</code>.</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name="MultipartStyle-2061-summary"
href="#MultipartStyle-2061" id=
"MultipartStyle-2061-summary">MultipartStyle-2061</a></td>
<td rowspan="1" colspan="1">The localPart of the element's QName
MUST be the same as the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-InterfaceOperation">
Interface Operation</a> component's {<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#property-InterfaceOperation.name">name</a>}.</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name="MultipartStyle-2062-summary"
href="#MultipartStyle-2062" id=
"MultipartStyle-2062-summary">MultipartStyle-2062</a></td>
<td rowspan="1" colspan="1">The complex type that defines the body
of the element or its children elements MUST NOT contain any
attributes.</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name="MultipartStyle-2063-summary"
href="#MultipartStyle-2063" id=
"MultipartStyle-2063-summary">MultipartStyle-2063</a></td>
<td rowspan="1" colspan="1">The sequence MUST NOT contain multiple
children element declared with the same local name.</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name="OperationSafety-2027-summary"
href="#OperationSafety-2027" id=
"OperationSafety-2027-summary">OperationSafety-2027</a></td>
<td rowspan="1" colspan="1">However, an operation SHOULD be marked
safe if it meets the criteria for a safe interaction defined in
Section 3.4 of [<cite><a href="#webarch">Web
Architecture</a></cite>].</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name="RPCStyle-2029-summary" href=
"#RPCStyle-2029" id="RPCStyle-2029-summary">RPCStyle-2029</a></td>
<td rowspan="1" colspan="1">If the RPC style is used by an <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-InterfaceOperation">
Interface Operation</a> component then its {<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#property-InterfaceOperation.messageexchangepattern">message
exchange pattern</a>} property MUST have the value either
"http://www.w3.org/ns/wsdl/in-only" or
"http://www.w3.org/ns/wsdl/in-out".</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name="RPCStyle-2030-summary" href=
"#RPCStyle-2030" id="RPCStyle-2030-summary">RPCStyle-2030</a></td>
<td rowspan="1" colspan="1">The value of the {<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#property-InterfaceMessageReference.messagecontentmodel">message
content model</a>} property for the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-InterfaceMessageReference">
Interface Message Reference</a> components of the {<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#property-InterfaceOperation.interfacemessagereferences">interface
message references</a>} property MUST be "#element".</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name="RPCStyle-2031-summary" href=
"#RPCStyle-2031" id="RPCStyle-2031-summary">RPCStyle-2031</a></td>
<td rowspan="1" colspan="1">The content model of input and output
{<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#property-InterfaceMessageReference.elementdeclaration">element
declaration</a>} elements MUST be defined using a complex type that
contains a sequence from XML Schema.</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name="RPCStyle-2032-summary" href=
"#RPCStyle-2032" id="RPCStyle-2032-summary">RPCStyle-2032</a></td>
<td rowspan="1" colspan="1">The input sequence MUST only contain
elements and element wildcards.</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name="RPCStyle-2033-summary" href=
"#RPCStyle-2033" id="RPCStyle-2033-summary">RPCStyle-2033</a></td>
<td rowspan="1" colspan="1">The input sequence MUST NOT contain
more than one element wildcard.</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name="RPCStyle-2034-summary" href=
"#RPCStyle-2034" id="RPCStyle-2034-summary">RPCStyle-2034</a></td>
<td rowspan="1" colspan="1">The element wildcard, if present, MUST
appear after any elements.</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name="RPCStyle-2035-summary" href=
"#RPCStyle-2035" id="RPCStyle-2035-summary">RPCStyle-2035</a></td>
<td rowspan="1" colspan="1">The output sequence MUST only contain
elements.</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name="RPCStyle-2036-summary" href=
"#RPCStyle-2036" id="RPCStyle-2036-summary">RPCStyle-2036</a></td>
<td rowspan="1" colspan="1">Both the input and output sequences
MUST contain only local element children.</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name="RPCStyle-2037-summary" href=
"#RPCStyle-2037" id="RPCStyle-2037-summary">RPCStyle-2037</a></td>
<td rowspan="1" colspan="1">The local name of input element's QName
MUST be the same as the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-InterfaceOperation">
Interface Operation</a> component's name.</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name="RPCStyle-2038-summary" href=
"#RPCStyle-2038" id="RPCStyle-2038-summary">RPCStyle-2038</a></td>
<td rowspan="1" colspan="1">Input and output elements MUST both be
in the same namespace.</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name="RPCStyle-2039-summary" href=
"#RPCStyle-2039" id="RPCStyle-2039-summary">RPCStyle-2039</a></td>
<td rowspan="1" colspan="1">The complex type that defines the body
of an input or an output element MUST NOT contain any local
attributes.</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name="RPCStyle-2040-summary" href=
"#RPCStyle-2040" id="RPCStyle-2040-summary">RPCStyle-2040</a></td>
<td rowspan="1" colspan="1">If elements with the same qualified
name appear as children of both the input and output elements, then
they MUST both be declared using the same named type.</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name="RPCStyle-2041-summary" href=
"#RPCStyle-2041" id="RPCStyle-2041-summary">RPCStyle-2041</a></td>
<td rowspan="1" colspan="1">The input or output sequence MUST NOT
contain multiple children elements declared with the same
name.</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name=
"RobustInOnlyComposition-2013-summary" href=
"#RobustInOnlyComposition-2013" id=
"RobustInOnlyComposition-2013-summary">RobustInOnlyComposition-2013</a></td>
<td rowspan="1" colspan="1">The <code>robust-in-only</code> message
exchange pattern consists of exactly one message as follows:</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name="SOAPAction-2075-summary" href=
"#SOAPAction-2075" id=
"SOAPAction-2075-summary">SOAPAction-2075</a></td>
<td rowspan="1" colspan="1">A <em>xs:anyURI</em>, which is an
absolute IRI as defined by [<cite><a href="#RFC3987">IETF RFC
3987</a></cite>], to the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingOperation">
Binding Operation</a> component.</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name="SOAPBinding-2065-summary"
href="#SOAPBinding-2065" id=
"SOAPBinding-2065-summary">SOAPBinding-2065</a></td>
<td rowspan="1" colspan="1">When formulating the SOAP envelope to
be transmitted, the contents of the payload (i.e., the contents of
the SOAP Body <em>element information item</em> of the SOAP
envelope) MUST be what is defined by the corresponding <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-InterfaceMessageReference">
Interface Message Reference</a> component.</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name="SOAPBinding-2068-summary"
href="#SOAPBinding-2068" id=
"SOAPBinding-2068-summary">SOAPBinding-2068</a></td>
<td rowspan="1" colspan="1">If the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-InterfaceMessageReference">
Interface Message Reference</a> component is declared using a
non-XML type system (as considered in the Types section of
[<cite><a href="#WSDL-PART1">WSDL 2.0 Core Language</a></cite>]),
then additional binding rules MUST be defined to indicate how to
map those components into the SOAP envelope.</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name="SOAPBinding-2069-summary"
href="#SOAPBinding-2069" id=
"SOAPBinding-2069-summary">SOAPBinding-2069</a></td>
<td rowspan="1" colspan="1">Every SOAP binding MUST indicate what
version of SOAP is in use for the operations of the interface that
this binding applies to.</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name="SOAPBinding-2070-summary"
href="#SOAPBinding-2070" id=
"SOAPBinding-2070-summary">SOAPBinding-2070</a></td>
<td rowspan="1" colspan="1">Every SOAP binding MUST indicate what
underlying protocol is in use.</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name="SOAPBindingFault-2071-summary"
href="#SOAPBindingFault-2071" id=
"SOAPBindingFault-2071-summary">SOAPBindingFault-2071</a></td>
<td rowspan="1" colspan="1">For every <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-InterfaceFault">
Interface Fault</a> component contained in an <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-Interface">
Interface</a> component, a mapping to a SOAP Fault MUST be
described.</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name="SOAPBindingFault-2072-summary"
href="#SOAPBindingFault-2072" id=
"SOAPBindingFault-2072-summary">SOAPBindingFault-2072</a></td>
<td rowspan="1" colspan="1">when the value of the {<a href=
"#property-Binding.soapversion">soap version</a>} is "1.2", the
allowed QNames MUST be the ones defined by [<cite><a href=
"#SOAP12-PART1">SOAP 1.2 Part 1: Messaging Framework (Second
Edition)</a></cite>], section 5.4.6</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name=
"SOAPHTTPProperties-2064-summary" href="#SOAPHTTPProperties-2064"
id=
"SOAPHTTPProperties-2064-summary">SOAPHTTPProperties-2064</a></td>
<td rowspan="1" colspan="1">These properties MUST NOT be used
unless the underlying protocol is HTTP.</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name=
"SOAPHTTPSelection-2082-summary" href="#SOAPHTTPSelection-2082" id=
"SOAPHTTPSelection-2082-summary">SOAPHTTPSelection-2082</a></td>
<td rowspan="1" colspan="1">This default binding rule is applicable
when the value of the {<a href=
"#property-Binding.soapunderlyingprotocol">soap underlying
protocol</a>} property of the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-Binding">Binding</a>
component is "http://www.w3.org/2003/05/soap/bindings/HTTP/". If
the SOAP MEP selected as specified above has the value
"http://www.w3.org/2003/05/soap/mep/request-response/" then the
HTTP method used is "POST". If the SOAP MEP selected has the value
"http://www.w3.org/2003/05/soap/mep/soap-response/" then the HTTP
method used is "GET".</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name="SOAPHeaderBlock-2077-summary"
href="#SOAPHeaderBlock-2077" id=
"SOAPHeaderBlock-2077-summary">SOAPHeaderBlock-2077</a></td>
<td rowspan="1" colspan="1">When its value is "true", the SOAP
header block MUST be decorated with a SOAP
<code>mustUnderstand</code> <em>attribute information item</em>
with a value of "true"; if so, the XML element declaration
referenced by the {<a href=
"#property-SOAPHeaderBlock.elementdeclaration">element
declaration</a>} property MUST allow this SOAP
<code>mustUnderstand</code> <em>attribute information
item</em>.</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name="SOAPHeaderBlock-2078-summary"
href="#SOAPHeaderBlock-2078" id=
"SOAPHeaderBlock-2078-summary">SOAPHeaderBlock-2078</a></td>
<td rowspan="1" colspan="1">If the value is "true", then the SOAP
header block MUST be included in the message.</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name="SOAPHeaderBlock-2079-summary"
href="#SOAPHeaderBlock-2079" id=
"SOAPHeaderBlock-2079-summary">SOAPHeaderBlock-2079</a></td>
<td rowspan="1" colspan="1">The value of the <code>element</code>
<em>attribute information item</em> MUST resolve to a global
element declaration from the {<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#property-Description.elementdeclarations">element
declarations</a>} property of the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-Description">
Description</a> component.</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name="SOAPMEP-2074-summary" href=
"#SOAPMEP-2074" id="SOAPMEP-2074-summary">SOAPMEP-2074</a></td>
<td rowspan="1" colspan="1">A <em>xs:anyURI</em>, which is an
absolute IRI as defined by [<cite><a href="#RFC3987">IETF RFC
3987</a></cite>], to the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingOperation">
Binding Operation</a> component.</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name="SOAPMEPDefault-2073-summary"
href="#SOAPMEPDefault-2073" id=
"SOAPMEPDefault-2073-summary">SOAPMEPDefault-2073</a></td>
<td rowspan="1" colspan="1">A <em>xs:anyURI</em>, which is an
absolute IRI as defined by [<cite><a href="#RFC3987">IETF RFC
3987</a></cite>], to the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-Binding">Binding</a>
component.</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name="SOAPMEPSelection-2080-summary"
href="#SOAPMEPSelection-2080" id=
"SOAPMEPSelection-2080-summary">SOAPMEPSelection-2080</a></td>
<td rowspan="1" colspan="1">For a given <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-InterfaceOperation">
Interface Operation</a> component, if there is a <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-BindingOperation">
Binding Operation</a> component whose {<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#property-BindingOperation.interfaceoperation">interface
operation</a>} property matches the component in question and its
{<a href="#property-BindingOperation.soapmep">soap mep</a>}
property has a value, then the SOAP MEP is the value of the
{<a href="#property-BindingOperation.soapmep">soap mep</a>}
property. Otherwise, the SOAP MEP is the value of the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-Binding">Binding</a>
component's {<a href="#property-Binding.soapmepdefault">soap mep
default</a>}, if any. Otherwise, the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-InterfaceOperation">
Interface Operation</a> component's {<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#property-InterfaceOperation.messageexchangepattern">message
exchange pattern</a>} property MUST have the value
"http://www.w3.org/ns/wsdl/in-out", and the SOAP MEP is the URI
"http://www.w3.org/2003/05/soap/mep/request-response/" identifying
the SOAP Request-Response Message Exchange Pattern as defined in
[<cite><a href="#SOAP12-PART2">SOAP 1.2 Part 2: Adjuncts (Second
Edition)</a></cite>].</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name="SOAPModule-2076-summary" href=
"#SOAPModule-2076" id=
"SOAPModule-2076-summary">SOAPModule-2076</a></td>
<td rowspan="1" colspan="1">A <em>xs:anyURI</em>, which is an
absolute IRI as defined by [<cite><a href="#RFC3987">IETF RFC
3987</a></cite>].</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name="WRPC-2042-summary" href=
"#WRPC-2042" id="WRPC-2042-summary">WRPC-2042</a></td>
<td rowspan="1" colspan="1">OPTIONAL, but MUST be present when the
style is RPC</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name="WRPC-2043-summary" href=
"#WRPC-2043" id="WRPC-2043-summary">WRPC-2043</a></td>
<td rowspan="1" colspan="1">Values for the second component MUST be
chosen among the following four: "#in", "#out", "#inout"
"#return".</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name="WRPC-2044-summary" href=
"#WRPC-2044" id="WRPC-2044-summary">WRPC-2044</a></td>
<td rowspan="1" colspan="1">The value of the first component of
each pair <em>(q, t)</em> MUST be unique within the list.</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name="WRPC-2045-summary" href=
"#WRPC-2045" id="WRPC-2045-summary">WRPC-2045</a></td>
<td rowspan="1" colspan="1">For each child element of the input and
output messages of the operation, a pair <em>(q, t)</em>, whose
first component <em>q</em> is equal to the qualified name of that
element, MUST be present in the list, with the caveat that elements
that appear with cardinality greater than one MUST be treated as a
single element.</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name="WRPC-2046-summary" href=
"#WRPC-2046" id="WRPC-2046-summary">WRPC-2046</a></td>
<td rowspan="1" colspan="1">For each pair <em>(q, #in)</em>, there
MUST be a child element of the input element with a name of
<em>q</em>. There MUST NOT be a child element of the output element
with the name of <em>q</em>.</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name="WRPC-2047-summary" href=
"#WRPC-2047" id="WRPC-2047-summary">WRPC-2047</a></td>
<td rowspan="1" colspan="1">For each pair <em>(q, #out)</em>, there
MUST be a child element of the output element with a name of
<em>q</em>. There MUST NOT be a child element of the input element
with the name of <em>q</em>.</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name="WRPC-2048-summary" href=
"#WRPC-2048" id="WRPC-2048-summary">WRPC-2048</a></td>
<td rowspan="1" colspan="1">For each pair <em>(q, #inout)</em>,
there MUST be a child element of the input element with a name of
<em>q</em>. There MUST also be a child element of the output
element with the name of <em>q</em>.</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name="WRPC-2049-summary" href=
"#WRPC-2049" id="WRPC-2049-summary">WRPC-2049</a></td>
<td rowspan="1" colspan="1">For each pair <em>(q, #return)</em>,
there MUST be a child element of the output element with a name of
<em>q</em>. There MUST NOT be a child element of the input element
with the name of <em>q</em>.</td>
</tr>
</tbody>
</table>
<br />
<a name="message-assertion-summary" id=
"message-assertion-summary"></a>
<table width="100%" border="1">
<caption>Table C-3. Summary of Assertions about Messages</caption>
<col width="20%" span="1" />
<col width="80%" span="1" />
<tbody>
<tr>
<th rowspan="1" colspan="1">Id</th>
<th rowspan="1" colspan="1">Assertion</th>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name=
"HTTPSerialization-2110-summary" href="#HTTPSerialization-2110" id=
"HTTPSerialization-2110-summary">HTTPSerialization-2110</a></td>
<td rowspan="1" colspan="1">Cited elements (i.e. elements
referenced in templates) MUST NOT carry an <code>xs:nil</code>
attribute whose value is "true"</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name=
"SOAP12Binding-SOAPDetail-2081-summary" href=
"#SOAP12Binding-SOAPDetail-2081" id=
"SOAP12Binding-SOAPDetail-2081-summary">SOAP12Binding-SOAPDetail-2081</a></td>
<td rowspan="1" colspan="1">If any, the value of the SOAP "Detail"
element MUST be the <em>element information item</em> identified by
the {<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#property-InterfaceMessageReference.elementdeclaration">element
declaration</a>} property of the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-InterfaceFault">
Interface Fault</a> component.</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name="SOAPBinding-2066-summary"
href="#SOAPBinding-2066" id=
"SOAPBinding-2066-summary">SOAPBinding-2066</a></td>
<td rowspan="1" colspan="1">If the value is "#none", then the
payload MUST be empty.</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name="SOAPBinding-2067-summary"
href="#SOAPBinding-2067" id=
"SOAPBinding-2067-summary">SOAPBinding-2067</a></td>
<td rowspan="1" colspan="1">If the value is "#element", then the
payload MUST be the <em>element information item</em> identified by
the {<a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#property-InterfaceMessageReference.elementdeclaration">element
declaration</a>} property of the <a href=
"http://www.w3.org/TR/2007/REC-wsdl20-20070626#component-InterfaceMessageReference">
Interface Message Reference</a> component.</td>
</tr>
</tbody>
</table>
<br />
<a name="exchange-assertion-summary" id=
"exchange-assertion-summary"></a>
<table width="100%" border="1">
<caption>Table C-4. Summary of Assertions about Message
Exchanges</caption>
<col width="20%" span="1" />
<col width="80%" span="1" />
<tbody>
<tr>
<th rowspan="1" colspan="1">Id</th>
<th rowspan="1" colspan="1">Assertion</th>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name="FaultDelivery-2008-summary"
href="#FaultDelivery-2008" id=
"FaultDelivery-2008-summary">FaultDelivery-2008</a></td>
<td rowspan="1" colspan="1">The fault message MUST be delivered to
the same target node as the message it replaces, unless otherwise
specified by an extension or binding extension. If there is no path
to this node, the fault MUST be discarded.</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name="FaultDelivery-2010-summary"
href="#FaultDelivery-2010" id=
"FaultDelivery-2010-summary">FaultDelivery-2010</a></td>
<td rowspan="1" colspan="1">The fault message MUST be delivered to
the originator of the triggering message, unless otherwise
specified by an extension or binding extension. Any node MAY
propagate a fault message, and MUST NOT do so more than once for
each triggering message. If there is no path to the originator, the
fault MUST be discarded.</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name="FaultPropagation-2003-summary"
href="#FaultPropagation-2003" id=
"FaultPropagation-2003-summary">FaultPropagation-2003</a></td>
<td rowspan="1" colspan="1">Nodes that generate faults MUST attempt
to propagate the faults in accordance with the governing ruleset,
but it is understood that any delivery of a network message is best
effort, not guaranteed.</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name="FaultPropagation-2004-summary"
href="#FaultPropagation-2004" id=
"FaultPropagation-2004-summary">FaultPropagation-2004</a></td>
<td rowspan="1" colspan="1">When a fault is generated, the
generating node MUST attempt to propagate the fault, and MUST do so
in the direction and to the recipient specified by the
ruleset.</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name=
"FaultReplacesMessage-2007-summary" href=
"#FaultReplacesMessage-2007" id=
"FaultReplacesMessage-2007-summary">FaultReplacesMessage-2007</a></td>
<td rowspan="1" colspan="1">When the Fault Replaces Message
propagation rule is in effect, any message after the first in the
pattern MAY be replaced with a fault message, which MUST have
identical direction.</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name="InOnlyFaults-2013-summary"
href="#InOnlyFaults-2013" id=
"InOnlyFaults-2013-summary">InOnlyFaults-2013</a></td>
<td rowspan="1" colspan="1">The <code>in-only</code> message
exchange pattern uses the rule <a href="#no-fault"><strong>2.2.3 No
Faults propagation rule</strong></a>.</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name="InOutFaults-2016-summary"
href="#InOutFaults-2016" id=
"InOutFaults-2016-summary">InOutFaults-2016</a></td>
<td rowspan="1" colspan="1">The <code>in-out</code> message
exchange pattern uses the rule <a href=
"#fault-replacement"><strong>2.2.1 Fault Replaces Message
propagation rule</strong></a>.</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name=
"MEPDescriptiveness-2002-summary" href="#MEPDescriptiveness-2002"
id=
"MEPDescriptiveness-2002-summary">MEPDescriptiveness-2002</a></td>
<td rowspan="1" colspan="1">by some prior agreement, another node
and/or the service MAY send messages (to each other or to other
nodes) that are not described by the pattern.</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name="MEPTermination-2006-summary"
href="#MEPTermination-2006" id=
"MEPTermination-2006-summary">MEPTermination-2006</a></td>
<td rowspan="1" colspan="1">Generation of a fault, regardless of
ruleset, terminates the exchange.</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name=
"MessageTriggersFault-2009-summary" href=
"#MessageTriggersFault-2009" id=
"MessageTriggersFault-2009-summary">MessageTriggersFault-2009</a></td>
<td rowspan="1" colspan="1">When the Message Triggers Fault
propagation rule is in effect, any message, including the first in
the pattern, MAY trigger a fault message, which MUST have opposite
direction.</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name="NoFaults-2011-summary" href=
"#NoFaults-2011" id="NoFaults-2011-summary">NoFaults-2011</a></td>
<td rowspan="1" colspan="1">When the No Faults propagation rule is
in effect, faults MUST NOT be propagated.</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name="NodeIdentity-2001-summary"
href="#NodeIdentity-2001" id=
"NodeIdentity-2001-summary">NodeIdentity-2001</a></td>
<td rowspan="1" colspan="1">A node MAY be accessible via more than
one physical address or transport.</td>
</tr>
<tr>
<td rowspan="1" colspan="1"><a name=
"RobustInOnlyFaults-2014-summary" href="#RobustInOnlyFaults-2014"
id=
"RobustInOnlyFaults-2014-summary">RobustInOnlyFaults-2014</a></td>
<td rowspan="1" colspan="1">The <code>robust in-only</code> message
exchange pattern uses the rule <a href=
"#fault-trigger"><strong>2.2.2 Message Triggers Fault propagation
rule</strong></a>.</td>
</tr>
</tbody>
</table>
<br /></div>
</body>
</html>