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.
10110 lines
422 KiB
10110 lines
422 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 1:
|
|
Core Language</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 1: Core Language</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-20070626">http://www.w3.org/TR/2007/REC-wsdl20-20070626</a></dd>
|
|
<dt>Latest version:</dt>
|
|
<dd><a href=
|
|
"http://www.w3.org/TR/wsdl20">http://www.w3.org/TR/wsdl20</a></dd>
|
|
<dt>Previous version:</dt>
|
|
<dd><a href=
|
|
"http://www.w3.org/TR/2007/PR-wsdl20-20070523">http://www.w3.org/TR/2007/PR-wsdl20-20070523</a></dd>
|
|
<dt>Editors:</dt>
|
|
<dd>Roberto Chinnici, Sun Microsystems</dd>
|
|
<dd>Jean-Jacques Moreau, Canon</dd>
|
|
<dd>Arthur Ryman, IBM</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-z.html">XHTML with Z Notation</a>, <a href=
|
|
"wsdl20.pdf">PDF</a>, <a href="wsdl20.ps">PostScript</a>, <a href=
|
|
"wsdl20.xml">XML</a>, and <a href="wsdl20.txt">plain
|
|
text</a>.</p>
|
|
<p>See also <a href=
|
|
"http://www.w3.org/2003/03/Translations/byTechnology?technology=wsdl20">
|
|
<strong>translations</strong></a>.</p>
|
|
<p class="copyright"><a href=
|
|
"http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">Copyright</a> © 2007 <a href="http://www.w3.org/"><acronym title="World Wide Web Consortium">W3C</acronym></a><sup>®</sup>
|
|
(<a href="http://www.csail.mit.edu/"><acronym title=
|
|
"Massachusetts Institute of Technology">MIT</acronym></a>, <a href=
|
|
"http://www.ercim.org/"><acronym title=
|
|
"European Research Consortium for Informatics and Mathematics">ERCIM</acronym></a>,
|
|
<a href="http://www.keio.ac.jp/">Keio</a>), All Rights Reserved.
|
|
W3C <a href=
|
|
"http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>,
|
|
<a href=
|
|
"http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a>
|
|
and <a href=
|
|
"http://www.w3.org/Consortium/Legal/copyright-documents">document
|
|
use</a> rules apply.</p>
|
|
</div>
|
|
<hr />
|
|
<div>
|
|
<h2><a name="abstract" id="abstract"></a>Abstract</h2>
|
|
<p>This document describes the Web Services Description Language
|
|
Version 2.0 (WSDL 2.0), an XML language for describing Web
|
|
services. This specification defines the core language which can be
|
|
used to describe Web services based on an abstract model of what
|
|
the service offers. It also defines the conformance criteria for
|
|
documents in this language.</p>
|
|
</div>
|
|
<div>
|
|
<h2><a name="status" id="status"></a>Status of this Document</h2>
|
|
<p><em>This section describes the status of this document at the
|
|
time of its publication. Other documents may supersede this
|
|
document. A list of current W3C publications and the latest
|
|
revision of this technical report can be found in the <a href=
|
|
"http://www.w3.org/TR/">W3C technical reports index</a> at
|
|
http://www.w3.org/TR/.</em></p>
|
|
<p>This is the <a href=
|
|
"http://www.w3.org/2005/10/Process-20051014/tr.html#RecsW3C">W3C
|
|
Recommendation</a> of Web Services Description Language (WSDL)
|
|
Version 2.0 Part 1: Core Language 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-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 />
|
|
    1.1 <a href="#intro_ws">Service
|
|
Description</a>
|
|
<br />
|
|
    1.2 <a href="#meaning">The Meaning of a
|
|
Service Description</a>
|
|
<br />
|
|
    1.3 <a href="#markup">Document
|
|
Conformance</a>
|
|
<br />
|
|
    1.4 <a href="#notation">Notational
|
|
Conventions</a>
|
|
<br />
|
|
        1.4.1 <a href=
|
|
"#rfc2119keywords">RFC 2119 Keywords</a>
|
|
<br />
|
|
        1.4.2 <a href=
|
|
"#rfc3986namespaces">RFC 3986 Namespaces</a>
|
|
<br />
|
|
        1.4.3 <a href=
|
|
"#xmlSchemaAnyURI">XML Schema anyURI</a>
|
|
<br />
|
|
        1.4.4 <a href=
|
|
"#nsprefixes">Prefixes and Namespaces Used in This
|
|
Specification</a>
|
|
<br />
|
|
        1.4.5 <a href=
|
|
"#terminology">Terms Used in This Specification</a>
|
|
<br />
|
|
        1.4.6 <a href=
|
|
"#xmlinfosetproperties">XML Information Set Properties</a>
|
|
<br />
|
|
        1.4.7 <a href=
|
|
"#wsdlcomponentmodelproperties">WSDL 2.0 Component Model
|
|
Properties</a>
|
|
<br />
|
|
        1.4.8 <a href=
|
|
"#znotation">Z Notation</a>
|
|
<br />
|
|
        1.4.9 <a href=
|
|
"#bnfpseudoschemas">BNF Pseudo-Schemas</a>
|
|
<br />
|
|
        1.4.10 <a href=
|
|
"#assertions">Assertions</a>
|
|
<br />
|
|
2. <a href="#component_model">Component Model</a>
|
|
<br />
|
|
    2.1 <a href="#Description">Description</a>
|
|
<br />
|
|
        2.1.1 <a href=
|
|
"#Description_details">The Description Component</a>
|
|
<br />
|
|
        2.1.2 <a href=
|
|
"#Description_XMLRep">XML Representation of Description
|
|
Component</a>
|
|
<br />
|
|
            2.1.2.1
|
|
<a href="#Description_targetnamespace_attribute">targetNamespace
|
|
attribute information item</a>
|
|
<br />
|
|
        2.1.3 <a href=
|
|
"#Description_Mapping">Mapping Description's XML Representation to
|
|
Component Properties</a>
|
|
<br />
|
|
    2.2 <a href="#Interface">Interface</a>
|
|
<br />
|
|
        2.2.1 <a href=
|
|
"#Interface_details">The Interface Component</a>
|
|
<br />
|
|
        2.2.2 <a href=
|
|
"#Interface_XMLRep">XML Representation of Interface Component</a>
|
|
<br />
|
|
            2.2.2.1
|
|
<a href="#Interface_name_attribute">name attribute information item
|
|
with interface [owner element]</a>
|
|
<br />
|
|
            2.2.2.2
|
|
<a href="#Interface_extends_attribute">extends attribute
|
|
information item</a>
|
|
<br />
|
|
            2.2.2.3
|
|
<a href="#Interface_styleDefault_attribute">styleDefault attribute
|
|
information item</a>
|
|
<br />
|
|
        2.2.3 <a href=
|
|
"#Interface_Mapping">Mapping Interface's XML Representation to
|
|
Component Properties</a>
|
|
<br />
|
|
    2.3 <a href="#InterfaceFault">Interface
|
|
Fault</a>
|
|
<br />
|
|
        2.3.1 <a href=
|
|
"#InterfaceFault_details">The Interface Fault Component</a>
|
|
<br />
|
|
        2.3.2 <a href=
|
|
"#InterfaceFault_XMLRep">XML Representation of Interface Fault
|
|
Component</a>
|
|
<br />
|
|
            2.3.2.1
|
|
<a href="#Interfacefault_name_attribute">name attribute information
|
|
item with fault [owner element]</a>
|
|
<br />
|
|
            2.3.2.2
|
|
<a href="#Interface_element_attribute">element attribute
|
|
information item with fault [owner element]</a>
|
|
<br />
|
|
        2.3.3 <a href=
|
|
"#InterfaceFault_Mapping">Mapping Interface Fault's XML
|
|
Representation to Component Properties</a>
|
|
<br />
|
|
    2.4 <a href="#InterfaceOperation">Interface
|
|
Operation</a>
|
|
<br />
|
|
        2.4.1 <a href=
|
|
"#InterfaceOperation_details">The Interface Operation Component</a>
|
|
<br />
|
|
            2.4.1.1
|
|
<a href="#MessageExchangePattern">Message Exchange Pattern</a>
|
|
<br />
|
|
            2.4.1.2
|
|
<a href="#InterfaceOperationStyle">Operation Style</a>
|
|
<br />
|
|
        2.4.2 <a href=
|
|
"#InterfaceOperation_XMLRep">XML Representation of Interface
|
|
Operation Component</a>
|
|
<br />
|
|
            2.4.2.1
|
|
<a href="#Interfaceoperation_name_attribute">name attribute
|
|
information item with operation [owner element]</a>
|
|
<br />
|
|
            2.4.2.2
|
|
<a href="#Interfaceoperation_pattern_attribute">pattern attribute
|
|
information item with operation [owner element]</a>
|
|
<br />
|
|
            2.4.2.3
|
|
<a href="#InterfaceOperation_style_attribute">style attribute
|
|
information item with operation [owner element]</a>
|
|
<br />
|
|
        2.4.3 <a href=
|
|
"#InterfaceOperation_Mapping">Mapping Interface Operation's XML
|
|
Representation to Component Properties</a>
|
|
<br />
|
|
    2.5 <a href=
|
|
"#InterfaceMessageReference">Interface Message Reference</a>
|
|
<br />
|
|
        2.5.1 <a href=
|
|
"#InterfaceMessageReference_details">The Interface Message
|
|
Reference Component</a>
|
|
<br />
|
|
        2.5.2 <a href=
|
|
"#InterfaceMessageReference_XMLRep">XML Representation of Interface
|
|
Message Reference Component</a>
|
|
<br />
|
|
            2.5.2.1
|
|
<a href=
|
|
"#InterfaceMessageReference_messageReference_attribute">messageLabel
|
|
attribute information item with input or output [owner element]</a>
|
|
<br />
|
|
            2.5.2.2
|
|
<a href="#InterfaceMessageReference_element_attribute">element
|
|
attribute information item with input or output [owner element]</a>
|
|
<br />
|
|
        2.5.3 <a href=
|
|
"#InterfaceMessageReference_Mapping">Mapping Interface Message
|
|
Reference's XML Representation to Component Properties</a>
|
|
<br />
|
|
    2.6 <a href=
|
|
"#InterfaceFaultReference">Interface Fault Reference</a>
|
|
<br />
|
|
        2.6.1 <a href=
|
|
"#InterfaceFaultReference_details">The Interface Fault Reference
|
|
Component</a>
|
|
<br />
|
|
        2.6.2 <a href=
|
|
"#InterfaceFaultReference_XMLRep">XML Representation of Interface
|
|
Fault Reference</a>
|
|
<br />
|
|
            2.6.2.1
|
|
<a href="#InterfaceFaultReference_ref_attribute">ref attribute
|
|
information item with infault, or outfault [owner element]</a>
|
|
<br />
|
|
            2.6.2.2
|
|
<a href=
|
|
"#InterfaceFaultReference_messageReference_attribute">messageLabel
|
|
attribute information item with infault, or outfault [owner
|
|
element]</a>
|
|
<br />
|
|
        2.6.3 <a href=
|
|
"#InterfaceFaultReference_Mapping">Mapping Interface Fault
|
|
Reference's XML Representation to Component Properties</a>
|
|
<br />
|
|
    2.7 <a href="#Binding">Binding</a>
|
|
<br />
|
|
        2.7.1 <a href=
|
|
"#Binding_details">The Binding Component</a>
|
|
<br />
|
|
        2.7.2 <a href=
|
|
"#Binding_XMLRep">XML Representation of Binding Component</a>
|
|
<br />
|
|
            2.7.2.1
|
|
<a href="#Binding_name_attribute">name attribute information item
|
|
with binding [owner element]</a>
|
|
<br />
|
|
            2.7.2.2
|
|
<a href="#Binding_interface_attribute">interface attribute
|
|
information item with binding [owner element]</a>
|
|
<br />
|
|
            2.7.2.3
|
|
<a href="#Binding_type_attribute">type attribute information item
|
|
with binding [owner element]</a>
|
|
<br />
|
|
            2.7.2.4
|
|
<a href="#Binding_extension_elements">Binding extension
|
|
elements</a>
|
|
<br />
|
|
        2.7.3 <a href=
|
|
"#Binding_Mapping">Mapping Binding's XML Representation to
|
|
Component Properties</a>
|
|
<br />
|
|
    2.8 <a href="#Binding_Fault">Binding
|
|
Fault</a>
|
|
<br />
|
|
        2.8.1 <a href=
|
|
"#Binding_Fault_details">The Binding Fault Component</a>
|
|
<br />
|
|
        2.8.2 <a href=
|
|
"#Binding_Fault_XMLRep">XML Representation of Binding Fault
|
|
Component</a>
|
|
<br />
|
|
            2.8.2.1
|
|
<a href="#Binding_Fault_ref_attribute">ref attribute information
|
|
item with fault [owner element]</a>
|
|
<br />
|
|
            2.8.2.2
|
|
<a href="#Binding_Fault_extension_elements">Binding Fault extension
|
|
elements</a>
|
|
<br />
|
|
        2.8.3 <a href=
|
|
"#Binding_Fault_Mapping">Mapping Binding Fault's XML Representation
|
|
to Component Properties</a>
|
|
<br />
|
|
    2.9 <a href="#Binding_Operation">Binding
|
|
Operation</a>
|
|
<br />
|
|
        2.9.1 <a href=
|
|
"#Binding_Operation_details">The Binding Operation Component</a>
|
|
<br />
|
|
        2.9.2 <a href=
|
|
"#Binding_Operation_XMLRep">XML Representation of Binding Operation
|
|
Component</a>
|
|
<br />
|
|
            2.9.2.1
|
|
<a href="#Binding_Operation_ref_attribute">ref attribute
|
|
information item with operation [owner element]</a>
|
|
<br />
|
|
            2.9.2.2
|
|
<a href="#Binding_Operation_extension_elements">Binding Operation
|
|
extension elements</a>
|
|
<br />
|
|
        2.9.3 <a href=
|
|
"#Binding_Operation_Mapping">Mapping Binding Operation's XML
|
|
Representation to Component Properties</a>
|
|
<br />
|
|
    2.10 <a href=
|
|
"#Binding_Message_Reference">Binding Message Reference</a>
|
|
<br />
|
|
        2.10.1 <a href=
|
|
"#Binding_Message_Reference_details">The Binding Message Reference
|
|
Component</a>
|
|
<br />
|
|
        2.10.2 <a href=
|
|
"#Binding_Message_Reference_XMLRep">XML Representation of Binding
|
|
Message Reference Component</a>
|
|
<br />
|
|
            2.10.2.1
|
|
<a href="#Binding_Message_Reference_name_attribute">messageLabel
|
|
attribute information item with input or output [owner element]</a>
|
|
<br />
|
|
            2.10.2.2
|
|
<a href="#Binding_Message_Reference_extension_elements">Binding
|
|
Message Reference extension elements</a>
|
|
<br />
|
|
        2.10.3 <a href=
|
|
"#Binding_Message_Reference_Mapping">Mapping Binding Message
|
|
Reference's XML Representation to Component Properties</a>
|
|
<br />
|
|
    2.11 <a href=
|
|
"#Binding_Fault_Reference">Binding Fault Reference</a>
|
|
<br />
|
|
        2.11.1 <a href=
|
|
"#Binding_Fault_Reference_details">The Binding Fault Reference
|
|
Component</a>
|
|
<br />
|
|
        2.11.2 <a href=
|
|
"#Binding_Fault_Reference_XMLRep">XML Representation of Binding
|
|
Fault Reference Component</a>
|
|
<br />
|
|
            2.11.2.1
|
|
<a href="#Binding_Fault_Reference_ref_attribute">ref attribute
|
|
information item with infault or outfault [owner element]</a>
|
|
<br />
|
|
            2.11.2.2
|
|
<a href=
|
|
"#Binding_Fault_Reference_messageLabel_attribute">messageLabel
|
|
attribute information item with infault or outfault [owner
|
|
element]</a>
|
|
<br />
|
|
            2.11.2.3
|
|
<a href="#Binding_Fault_Reference_extension_elements">Binding Fault
|
|
Reference extension elements</a>
|
|
<br />
|
|
        2.11.3 <a href=
|
|
"#Binding_Fault_Reference_Mapping">Mapping Binding Fault
|
|
Reference's XML Representation to Component Properties</a>
|
|
<br />
|
|
    2.12 <a href="#Service">Service</a>
|
|
<br />
|
|
        2.12.1 <a href=
|
|
"#Service_details">The Service Component</a>
|
|
<br />
|
|
        2.12.2 <a href=
|
|
"#Service_XMLRep">XML Representation of Service Component</a>
|
|
<br />
|
|
            2.12.2.1
|
|
<a href="#Service_name_attribute">name attribute information item
|
|
with service [owner element]</a>
|
|
<br />
|
|
            2.12.2.2
|
|
<a href="#Service_interface_attribute">interface attribute
|
|
information item with service [owner element]</a>
|
|
<br />
|
|
        2.12.3 <a href=
|
|
"#Service_Mapping">Mapping Service's XML Representation to
|
|
Component Properties</a>
|
|
<br />
|
|
    2.13 <a href="#Endpoint">Endpoint</a>
|
|
<br />
|
|
        2.13.1 <a href=
|
|
"#Endpoint_details">The Endpoint Component</a>
|
|
<br />
|
|
        2.13.2 <a href=
|
|
"#Endpoint_XMLRep">XML Representation of Endpoint Component</a>
|
|
<br />
|
|
            2.13.2.1
|
|
<a href="#Endpoint_name_attribute">name attribute information item
|
|
with endpoint [owner element]</a>
|
|
<br />
|
|
            2.13.2.2
|
|
<a href="#Endpoint_binding_attribute">binding attribute information
|
|
item with endpoint [owner element]</a>
|
|
<br />
|
|
            2.13.2.3
|
|
<a href="#Endpoint_address_attribute">address attribute information
|
|
item with endpoint [owner element]</a>
|
|
<br />
|
|
            2.13.2.4
|
|
<a href="#Endpoint_extension_elements">Endpoint extension
|
|
elements</a>
|
|
<br />
|
|
        2.13.3 <a href=
|
|
"#Endpoint_Mapping">Mapping Endpoint's XML Representation to
|
|
Component Properties</a>
|
|
<br />
|
|
    2.14 <a href="#simpletypes">XML Schema 1.0
|
|
Simple Types Used in the Component Model</a>
|
|
<br />
|
|
    2.15 <a href="#compequiv">Equivalence of
|
|
Components</a>
|
|
<br />
|
|
    2.16 <a href="#symbolspaces">Symbol
|
|
Spaces</a>
|
|
<br />
|
|
    2.17 <a href="#qnameres">QName
|
|
resolution</a>
|
|
<br />
|
|
    2.18 <a href="#uricompare">Comparing URIs
|
|
and IRIs</a>
|
|
<br />
|
|
3. <a href="#eii-types">Types</a>
|
|
<br />
|
|
    3.1 <a href="#xsd-types">Using W3C XML
|
|
Schema Definition Language</a>
|
|
<br />
|
|
        3.1.1 <a href=
|
|
"#import-xsd">Importing XML Schema</a>
|
|
<br />
|
|
            3.1.1.1
|
|
<a href="#namespace-attribute">namespace attribute information
|
|
item</a>
|
|
<br />
|
|
            3.1.1.2
|
|
<a href="#schemaLocation-attribute">schemaLocation attribute
|
|
information item</a>
|
|
<br />
|
|
        3.1.2 <a href=
|
|
"#inlining-xsd">Inlining XML Schema</a>
|
|
<br />
|
|
        3.1.3 <a href=
|
|
"#references-definitions">References to Element Declarations and
|
|
Type Definitions</a>
|
|
<br />
|
|
    3.2 <a href="#other-types">Using Other
|
|
Schema Languages</a>
|
|
<br />
|
|
    3.3 <a href="#wsdlx-references">Describing
|
|
Messages that Refer to Services and Endpoints</a>
|
|
<br />
|
|
        3.3.1 <a href=
|
|
"#wsdlx-interface-aii">wsdlx:interface attribute information
|
|
item</a>
|
|
<br />
|
|
        3.3.2 <a href=
|
|
"#wsdlx-binding-aii">wsdlx:binding attribute information item</a>
|
|
<br />
|
|
        3.3.3 <a href=
|
|
"#wsdlx-consistency">wsdlx:interface and wsdlx:binding
|
|
Consistency</a>
|
|
<br />
|
|
        3.3.4 <a href=
|
|
"#wsdlx-xsanyuri">Use of wsdlx:interface and wsdlx:binding with
|
|
xs:anyURI</a>
|
|
<br />
|
|
4. <a href="#modularize">Modularizing WSDL 2.0 descriptions</a>
|
|
<br />
|
|
    4.1 <a href="#includes">Including
|
|
Descriptions</a>
|
|
<br />
|
|
        4.1.1 <a href=
|
|
"#include_location_attribute">location attribute information item
|
|
with include [owner element]</a>
|
|
<br />
|
|
    4.2 <a href="#imports">Importing
|
|
Descriptions</a>
|
|
<br />
|
|
        4.2.1 <a href=
|
|
"#import_namespace_attribute">namespace attribute information
|
|
item</a>
|
|
<br />
|
|
        4.2.2 <a href=
|
|
"#import_location_attribute">location attribute information item
|
|
with import [owner element]</a>
|
|
<br />
|
|
    4.3 <a href=
|
|
"#extensions-and-modules">Extensions</a>
|
|
<br />
|
|
5. <a href="#eii-documentation">Documentation</a>
|
|
<br />
|
|
6. <a href="#language-extensibility">Language Extensibility</a>
|
|
<br />
|
|
    6.1 <a href=
|
|
"#eii-extensibility">Element-based Extensibility</a>
|
|
<br />
|
|
        6.1.1 <a href=
|
|
"#mandatoryext">Mandatory extensions</a>
|
|
<br />
|
|
        6.1.2 <a href=
|
|
"#required-aii">required attribute information item</a>
|
|
<br />
|
|
    6.2 <a href=
|
|
"#aii-extensibility">Attribute-based Extensibility</a>
|
|
<br />
|
|
    6.3 <a href=
|
|
"#extensibility-semantics">Extensibility Semantics</a>
|
|
<br />
|
|
7. <a href="#wsdllocation">Locating WSDL 2.0 Documents</a>
|
|
<br />
|
|
    7.1 <a href=
|
|
"#wsdlLocation-aii">wsdli:wsdlLocation attribute information
|
|
item</a>
|
|
<br />
|
|
8. <a href="#conformance">Conformance</a>
|
|
<br />
|
|
    8.1 <a href="#infoset">XML Information Set
|
|
Conformance</a>
|
|
<br />
|
|
9. <a href="#Syntax-Summary">XML Syntax Summary (Non-Normative)</a>
|
|
<br />
|
|
10. <a href="#References">References</a>
|
|
<br />
|
|
    10.1 <a href=
|
|
"#Normative-References">Normative References</a>
|
|
<br />
|
|
    10.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="#ietf-draft">The application/wsdl+xml
|
|
Media Type</a>
|
|
<br />
|
|
    A.1 <a href="#ietf-reg">Registration</a>
|
|
<br />
|
|
    A.2 <a href="#frag-ids">Fragment
|
|
Identifiers</a>
|
|
<br />
|
|
        A.2.1 <a href=
|
|
"#wsdl.description">The Description Component</a>
|
|
<br />
|
|
        A.2.2 <a href=
|
|
"#wsdl.elementDeclaration">The Element Declaration Component</a>
|
|
<br />
|
|
        A.2.3 <a href=
|
|
"#wsdl.typeDefinition">The Type Definition Component</a>
|
|
<br />
|
|
        A.2.4 <a href=
|
|
"#wsdl.interface">The Interface Component</a>
|
|
<br />
|
|
        A.2.5 <a href=
|
|
"#wsdl.interfaceFault">The Interface Fault Component</a>
|
|
<br />
|
|
        A.2.6 <a href=
|
|
"#wsdl.interfaceOperation">The Interface Operation Component</a>
|
|
<br />
|
|
        A.2.7 <a href=
|
|
"#wsdl.interfaceMessageReference">The Interface Message Reference
|
|
Component</a>
|
|
<br />
|
|
        A.2.8 <a href=
|
|
"#wsdl.interfaceFaultReference">The Interface Fault Reference
|
|
Component</a>
|
|
<br />
|
|
        A.2.9 <a href=
|
|
"#wsdl.binding">The Binding Component</a>
|
|
<br />
|
|
        A.2.10 <a href=
|
|
"#wsdl.bindingFault">The Binding Fault Component</a>
|
|
<br />
|
|
        A.2.11 <a href=
|
|
"#wsdl.bindingOperation">The Binding Operation Component</a>
|
|
<br />
|
|
        A.2.12 <a href=
|
|
"#wsdl.bindingMessageReference">The Binding Message Reference
|
|
Component</a>
|
|
<br />
|
|
        A.2.13 <a href=
|
|
"#wsdl.bindingFaultReference">The Binding Fault Reference
|
|
Component</a>
|
|
<br />
|
|
        A.2.14 <a href=
|
|
"#wsdl.service">The Service Component</a>
|
|
<br />
|
|
        A.2.15 <a href=
|
|
"#wsdl.endpoint">The Endpoint Component</a>
|
|
<br />
|
|
        A.2.16 <a href=
|
|
"#wsdl.extension">Extension Components</a>
|
|
<br />
|
|
    A.3 <a href="#ietf-sec">Security
|
|
considerations</a>
|
|
<br />
|
|
B. <a href="#acknowledgments">Acknowledgements</a> (Non-Normative)
|
|
<br />
|
|
C. <a href="#wsdl-iri-references">IRI-References for WSDL 2.0
|
|
Components</a> (Non-Normative)
|
|
<br />
|
|
    C.1 <a href="#wsdl-iris">WSDL 2.0 IRIs</a>
|
|
<br />
|
|
    C.2 <a href=
|
|
"#component-designator-canonical-form">Canonical Form for WSDL 2.0
|
|
Component Designators</a>
|
|
<br />
|
|
    C.3 <a href="#Iri-ref-ex">Example</a>
|
|
<br />
|
|
D. <a href="#componentsummary">Component Summary</a>
|
|
(Non-Normative)
|
|
<br />
|
|
E. <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>Web Services Description Language Version 2.0 (WSDL 2.0)
|
|
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 specification defines a language for describing the
|
|
abstract functionality of a service as well as a framework for
|
|
describing the concrete details of a service description. It also
|
|
defines the conformance criteria for documents in this
|
|
language.</p>
|
|
<p>The companion specification, <em>Web Services Description
|
|
Language (WSDL) Version 2.0 Part 2: Adjuncts</em> [<cite><a href=
|
|
"#WSDL-PART2">WSDL 2.0 Adjuncts</a></cite>] describes extensions
|
|
for message exchange patterns, operation safety, operation styles
|
|
and binding extensions (for SOAP [<cite><a href=
|
|
"#SOAP12-PART1">SOAP 1.2 Part 1: Messaging Framework (Second
|
|
Edition)</a></cite>] and HTTP [<cite><a href="#RFC2616">IETF RFC
|
|
2616</a></cite>]).</p>
|
|
<div class="div2">
|
|
<h3><a name="intro_ws" id="intro_ws"></a>1.1 Service
|
|
Description</h3>
|
|
<p>WSDL 2.0 describes a Web service in two fundamental stages: one
|
|
abstract and one concrete. Within each stage, the description uses
|
|
a number of constructs to promote reusability of the description
|
|
and to separate independent design concerns.</p>
|
|
<p>At an abstract level, WSDL 2.0 describes a Web service in terms
|
|
of the messages it sends and receives; messages are described
|
|
independent of a specific wire format using a type system,
|
|
typically XML Schema.</p>
|
|
<p>An <em>operation</em> associates a message exchange pattern with
|
|
one or more messages. A <em>message exchange pattern</em>
|
|
identifies the sequence and cardinality of messages sent and/or
|
|
received as well as who they are logically sent to and/or received
|
|
from. An <em>interface</em> groups together operations without any
|
|
commitment to transport or wire format.</p>
|
|
<p>At a concrete level, a <em>binding</em> specifies transport and
|
|
wire format details for one or more interfaces. An
|
|
<em>endpoint</em> associates a network address with a binding. And
|
|
finally, a <em>service</em> groups together endpoints that
|
|
implement a common interface.</p>
|
|
</div>
|
|
<div class="div2">
|
|
<h3><a name="meaning" id="meaning"></a>1.2 The Meaning of a Service
|
|
Description</h3>
|
|
<p>A WSDL 2.0 service description indicates how potential clients
|
|
are intended to interact with the described service. It represents
|
|
an assertion that the described service fully implements and
|
|
conforms to what the WSDL 2.0 document describes. For example, as
|
|
further explained in section <a href="#mandatoryext"><strong>6.1.1
|
|
Mandatory extensions</strong></a>, if the WSDL 2.0 document
|
|
specifies a particular optional extension, the functionality
|
|
implied by that extension is only optional to the client. It must
|
|
be supported by the Web service.</p>
|
|
<p>A WSDL 2.0 interface describes potential interactions with a Web
|
|
service, not required interactions. The declaration of an operation
|
|
in a WSDL 2.0 interface is not an assertion that the interaction
|
|
described by the operation must occur. Rather it is an assertion
|
|
that if such an interaction is (somehow) initiated, then the
|
|
declared operation describes how that interaction is intended to
|
|
occur.</p>
|
|
</div>
|
|
<div class="div2">
|
|
<h3><a name="markup" id="markup"></a>1.3 Document Conformance</h3>
|
|
<p>An <em>element information item</em> (as defined in
|
|
[<cite><a href="#XMLInfoSet">XML Information Set</a></cite>]) whose
|
|
namespace name is "http://www.w3.org/ns/wsdl" and whose local part
|
|
is <code>description</code> conforms to this specification if it is
|
|
valid according to the XML Schema for that element as defined by
|
|
this specification (<a href=
|
|
"http://www.w3.org/2007/06/wsdl/wsdl20.xsd">http://www.w3.org/2007/06/wsdl/wsdl20.xsd</a>)
|
|
and additionally adheres to all the constraints contained in this
|
|
specification and conforms to the specifications of any extensions
|
|
contained in it. Such a conformant <em>element information
|
|
item</em> constitutes a <em>WSDL 2.0 document</em>.</p>
|
|
<p>The definition of the WSDL 2.0 language is based on the XML
|
|
Information Set [<cite><a href="#XMLInfoSet">XML Information
|
|
Set</a></cite>] but also imposes many semantic constraints over and
|
|
above structural conformance to this XML Infoset. In order to
|
|
precisely describe these constraints, and as an aid in precisely
|
|
defining the meaning of each WSDL 2.0 document, the WSDL 2.0
|
|
specification defines a component model <a href=
|
|
"#component_model"><strong>2. Component Model</strong></a> as an
|
|
additional layer of abstraction above the XML Infoset. Constraints
|
|
and meaning are defined in terms of this component model, and the
|
|
definition of each component includes a mapping that specifies how
|
|
values in the component model are derived from corresponding items
|
|
in the XML Infoset.</p>
|
|
<p>An XML 1.0 document that is valid with respect to the WSDL 2.0
|
|
XML Schema and that maps to a valid WSDL 2.0 Component Model is
|
|
conformant to the WSDL 2.0 specification.</p>
|
|
</div>
|
|
<div class="div2">
|
|
<h3><a name="notation" id="notation"></a>1.4 Notational
|
|
Conventions</h3>
|
|
<p>All parts of this specification are normative, with the
|
|
EXCEPTION of notes, pseudo-schemas, examples, and sections
|
|
explicitly marked as “Non-Normative”.</p>
|
|
<div class="div3">
|
|
<h4><a name="rfc2119keywords" id="rfc2119keywords"></a>1.4.1 RFC
|
|
2119 Keywords</h4>
|
|
<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 RFC 2119
|
|
[<cite><a href="#RFC2119">IETF RFC 2119</a></cite>].</p>
|
|
</div>
|
|
<div class="div3">
|
|
<h4><a name="rfc3986namespaces" id="rfc3986namespaces"></a>1.4.2
|
|
RFC 3986 Namespaces</h4>
|
|
<p>Namespace names of the general form:</p>
|
|
<ul>
|
|
<li>
|
|
<p>"http://example.org/..." and</p>
|
|
</li>
|
|
<li>
|
|
<p>"http://example.com/..."</p>
|
|
</li>
|
|
</ul>
|
|
<p>represent application or context-dependent URIs [<cite><a href=
|
|
"#RFC3986">IETF RFC 3986</a></cite>].</p>
|
|
</div>
|
|
<div class="div3">
|
|
<h4><a name="xmlSchemaAnyURI" id="xmlSchemaAnyURI"></a>1.4.3 XML
|
|
Schema anyURI</h4>
|
|
<p>This specification uses the XML Schema type
|
|
<code>xs:anyURI</code> (see [<cite><a href="#XMLSchemaP2">XML
|
|
Schema: Datatypes</a></cite>]). It is defined so that
|
|
<code>xs:anyURI</code> values are essentially IRIs (see
|
|
[<cite><a href="#RFC3987">IETF RFC 3987</a></cite>]). The
|
|
conversion from <code>xs:anyURI</code> values to an actual URI is
|
|
via an escaping procedure defined by (see [<cite><a href=
|
|
"#XLink">XLink 1.0</a></cite>]), which is identical in most
|
|
respects to IRI Section 3.1 (see [<cite><a href="#RFC3987">IETF RFC
|
|
3987</a></cite>]).</p>
|
|
<p>For interoperability, WSDL authors are advised to avoid the
|
|
US-ASCII characters: "<", ">", '"', space, "{", "}", "|",
|
|
"\", "^", and "`", which are allowed by the <code>xs:anyURI</code>
|
|
type, but disallowed in IRIs.</p>
|
|
</div>
|
|
<div class="div3">
|
|
<h4><a name="nsprefixes" id="nsprefixes"></a>1.4.4 Prefixes and
|
|
Namespaces Used in This Specification</h4>
|
|
<p>This specification uses predefined namespace prefixes
|
|
throughout; they are given in the following list. Note that the
|
|
choice of any namespace prefix is arbitrary and not semantically
|
|
significant (see [<cite><a href="#XMLNS">XML
|
|
Namespaces</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">Defined by this specification.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">wsdli</td>
|
|
<td rowspan="1" colspan="1">
|
|
"http://www.w3.org/ns/wsdl-instance"</td>
|
|
<td rowspan="1" colspan="1">Defined by this specification <a href=
|
|
"#wsdlLocation-aii"><strong>7.1 wsdli:wsdlLocation attribute
|
|
information item</strong></a>.</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">Defined by this specification <a href=
|
|
"#wsdlx-references"><strong>3.3 Describing Messages that Refer to
|
|
Services and Endpoints</strong></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 WSDL 2.0: Adjuncts
|
|
[<cite><a href="#WSDL-PART2">WSDL 2.0 Adjuncts</a></cite>].</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 WSDL 2.0: Adjuncts
|
|
[<cite><a href="#WSDL-PART2">WSDL 2.0 Adjuncts</a></cite>].</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 WSDL 2.0: Adjuncts
|
|
[<cite><a href="#WSDL-PART2">WSDL 2.0 Adjuncts</a></cite>].</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>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">xsi</td>
|
|
<td rowspan="1" colspan="1">
|
|
"http://www.w3.org/2001/XMLSchema-instance"</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 /></div>
|
|
<div class="div3">
|
|
<h4><a name="terminology" id="terminology"></a>1.4.5 Terms Used in
|
|
This Specification</h4>
|
|
<p>This section describes the terms and concepts introduced in Part
|
|
1 of the WSDL Version 2.0 specification (this document).</p>
|
|
<dl>
|
|
<dt class="label">Actual Value</dt>
|
|
<dd>
|
|
<p>As in [<cite><a href="#XMLSchemaP1">XML Schema:
|
|
Structures</a></cite>], the expression "actual value" is used to
|
|
refer to the member of the value space of the simple type
|
|
definition associated with an attribute information item which
|
|
corresponds to its normalized value. This will often be a string,
|
|
but may also be an integer, a boolean, an IRI-reference, etc.</p>
|
|
</dd>
|
|
<dt class="label">Inlined Schema</dt>
|
|
<dd>
|
|
<p>An XML schema that is defined in the <code>wsdl:types</code>
|
|
<em>element information item</em> of a WSDL 2.0 description. For
|
|
example, an XML Schema defined in an <code>xs:schema</code>
|
|
<em>element information item</em> <a href=
|
|
"#inlining-xsd"><strong>3.1.2 Inlining XML Schema</strong></a>.</p>
|
|
</dd>
|
|
</dl>
|
|
</div>
|
|
<div class="div3">
|
|
<h4><a name="xmlinfosetproperties" id=
|
|
"xmlinfosetproperties"></a>1.4.6 XML Information Set
|
|
Properties</h4>
|
|
<p>This specification refers to properties in the XML Information
|
|
Set [<cite><a href="#XMLInfoSet">XML Information Set</a></cite>].
|
|
Such properties are denoted by square brackets, e.g. [children],
|
|
[attributes].</p>
|
|
</div>
|
|
<div class="div3">
|
|
<h4><a name="wsdlcomponentmodelproperties" id=
|
|
"wsdlcomponentmodelproperties"></a>1.4.7 WSDL 2.0 Component Model
|
|
Properties</h4>
|
|
<p>This specification defines and refers to properties in the WSDL
|
|
2.0 Component Model <a href="#component_model"><strong>2. Component
|
|
Model</strong></a>. Such properties are denoted by curly brackets,
|
|
e.g. {<a href="#property-Interface.name">name</a>}, {<a href=
|
|
"#property-Description.interfaces">interfaces</a>}.</p>
|
|
<p>This specification uses a consistent naming convention for
|
|
component model properties that refer to components. If a property
|
|
refers to a required or optional component, then the property name
|
|
is the same as the component name. If a property refers to a set of
|
|
components, then the property name is the pluralized form of the
|
|
component name.</p>
|
|
</div>
|
|
<div class="div3">
|
|
<h4><a name="znotation" id="znotation"></a>1.4.8 Z Notation</h4>
|
|
<p>Z Notation [<cite><a href="#ZNotationReferenceManual">Z Notation
|
|
Reference Manual</a></cite>] was used in the development of this
|
|
specification. Z Notation is a formal specification language that
|
|
is based on standard mathematical notation. The Z Notation for this
|
|
specification has been verified using the Fuzz 2000 type-checker
|
|
[<cite><a href="#Fuzz2000">Fuzz 2000</a></cite>].</p>
|
|
<p>Since Z Notation is not widely known, it is not included the
|
|
normative version of this specification. However, it is included in
|
|
a <a href="wsdl20-z.html">non-normative version</a> which allows to
|
|
dynamically hide and show the Z Notation. Browsers correctly
|
|
display the mathematical Unicode characters, provided that the
|
|
required fonts are installed. Mathematical fonts for Mozilla
|
|
Firefox can be downloaded from the <a href=
|
|
"http://www.mozilla.org/projects/mathml/fonts/">Mozilla Web
|
|
site</a>.</p>
|
|
<p>The Z Notation was used to improve the quality of the normative
|
|
text that defines the Component Model, and to help ensure that the
|
|
test suite covered all important rules implied by the Component
|
|
Model. However, the Z Notation is non-normative, so any conflict
|
|
between it and the normative text is an error in the Z Notation.
|
|
Readers and implementers may nevertheless find the Z Notation
|
|
useful in cases where the normative text is unclear.</p>
|
|
<p>There are two elements of Z Notation syntax that conflict with
|
|
the notational conventions described in the preceding sections. In
|
|
Z Notation, square brackets are used to introduce basic sets, e.g.
|
|
[<span class="zi">ID</span>], which conflicts with the use of
|
|
square brackets to denote XML Information Set properties <a href=
|
|
"#xmlinfosetproperties"><strong>1.4.6 XML Information Set
|
|
Properties</strong></a>. Also, in Z Notation, curly brackets are
|
|
used to denote set display and set comprehension, e.g.
|
|
{1<span class="zprefix">,</span> 2<span class="zprefix">,</span>
|
|
3}, which conflicts with the use of curly brackets to denote WSDL
|
|
2.0 Component Model properties <a href=
|
|
"#wsdlcomponentmodelproperties"><strong>1.4.7 WSDL 2.0 Component
|
|
Model Properties</strong></a>. However, the intended meaning of
|
|
square and curly brackets should be clear from their context and
|
|
this minor notational conflict should not cause any confusion.</p>
|
|
</div>
|
|
<div class="div3">
|
|
<h4><a name="bnfpseudoschemas" id="bnfpseudoschemas"></a>1.4.9 BNF
|
|
Pseudo-Schemas</h4>
|
|
<p>Pseudo-schemas are provided for each component, before the
|
|
description of the component. They use BNF-style conventions for
|
|
attributes and elements: "?" denotes optionality (i.e. zero or one
|
|
occurrences), "*" denotes zero or more occurrences, "+" one or more
|
|
occurrences, "[" and "]" are used to form groups, and "|"
|
|
represents choice. Attributes are conventionally assigned a value
|
|
which corresponds to their type, as defined in the normative
|
|
schema. Elements with simple content are conventionally assigned a
|
|
value which corresponds to the type of their content, as defined in
|
|
the normative schema. Pseudo schemas do not include extension
|
|
points for brevity.</p>
|
|
<div class="exampleInner">
|
|
<pre xml:space="preserve">
|
|
<!-- sample pseudo-schema -->
|
|
<<strong>defined_element</strong>
|
|
required_attribute_of_type_string="<em>xs:string</em>"
|
|
optional_attribute_of_type_int="<em>xs:int</em>"? >
|
|
<required_element />
|
|
<optional_element />?
|
|
<one_or_more_of_these_elements />+
|
|
[ <choice_1 /> | <choice_2 /> ]*
|
|
</<strong>defined_element</strong>>
|
|
</pre></div>
|
|
</div>
|
|
<div class="div3">
|
|
<h4><a name="assertions" id="assertions"></a>1.4.10 Assertions</h4>
|
|
<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>E. Assertion
|
|
Summary</strong></a>.</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="div1">
|
|
<h2><a name="component_model" id="component_model"></a>2. Component
|
|
Model</h2>
|
|
<p>This section describes the conceptual model of WSDL 2.0 as a set
|
|
of components with attached properties, which collectively describe
|
|
a Web service. This model is called the <em>Component Model</em> of
|
|
WSDL 2.0. A <em>valid WSDL 2.0 component model</em> is a set of
|
|
WSDL 2.0 components and properties that satisfy all the
|
|
requirements given in this specification as indicated by keywords
|
|
whose interpretation is defined by RFC 2119 [<cite><a href=
|
|
"#RFC2119">IETF RFC 2119</a></cite>].</p>
|
|
<a name="zed-ComponentModel" id="zed-ComponentModel"></a>
|
|
<p>Components are typed collections of properties that correspond
|
|
to different aspects of Web services. Each subsection herein
|
|
describes a different type of component, its defined properties,
|
|
and its representation as an XML Infoset [<cite><a href=
|
|
"#XMLInfoSet">XML Information Set</a></cite>].</p>
|
|
<a name="zed-Component" id="zed-Component"></a><a name="zed-ID" id=
|
|
"zed-ID"></a><a name="zed-Identifier" id=
|
|
"zed-Identifier"></a><a name="zed-Id" id="zed-Id"></a><a name=
|
|
"zed-ComponentModel1" id="zed-ComponentModel1"></a><a name=
|
|
"zed-IdentifierValid" id="zed-IdentifierValid"></a><a name=
|
|
"zed-InterfaceComponents" id="zed-InterfaceComponents"></a><a name=
|
|
"zed-InterfaceComponentIds" id=
|
|
"zed-InterfaceComponentIds"></a><a name="zed-BindingComponents" id=
|
|
"zed-BindingComponents"></a><a name="zed-BindingComponentIds" id=
|
|
"zed-BindingComponentIds"></a><a name="zed-ServiceComponents" id=
|
|
"zed-ServiceComponents"></a><a name="zed-ServiceComponentIds" id=
|
|
"zed-ServiceComponentIds"></a><a name="zed-OtherComponents" id=
|
|
"zed-OtherComponents"></a><a name="zed-OtherComponentIds" id=
|
|
"zed-OtherComponentIds"></a><a name="zed-ComponentModel2" id=
|
|
"zed-ComponentModel2"></a><a name="zed-Base" id=
|
|
"zed-Base"></a><a name="zed-BaseValid" id=
|
|
"zed-BaseValid"></a><a name="zed-NestedBase" id=
|
|
"zed-NestedBase"></a><a name="zed-NestedBaseValid" id=
|
|
"zed-NestedBaseValid"></a>
|
|
<p>Properties are unordered and unique with respect to the
|
|
component they are associated with. Individual properties'
|
|
definitions may constrain their content (e.g., to a typed value,
|
|
another component, or a set of typed values or components), and
|
|
components may require the presence of a property to be considered
|
|
conformant. Such properties are marked as REQUIRED, whereas those
|
|
that are not required to be present are marked as OPTIONAL. By
|
|
convention, when specifying the mapping rules from the XML Infoset
|
|
representation of a component to the component itself, an optional
|
|
property that is absent in the component in question is described
|
|
as being “empty”. Unless otherwise specified, when a property is
|
|
identified as being a collection (a set or a list), its value may
|
|
be a 0-element (empty) collection. In order to simplify the
|
|
presentation of the rules that deal with sets of components, for
|
|
all OPTIONAL properties whose type is a set, the absence of such a
|
|
property from a component MUST be treated as semantically
|
|
equivalent to the presence of a property with the same name and
|
|
whose value is the empty set. In other words, every OPTIONAL
|
|
set-valued property MUST be assumed to have the empty set as its
|
|
default value, to be used in case the property is absent.</p>
|
|
<a name="zed-OPTIONAL" id="zed-OPTIONAL"></a>
|
|
<p>Component definitions are serializable in XML 1.0 format but are
|
|
independent of any particular serialization of the component model.
|
|
Component definitions use a subset (see <a href=
|
|
"#simpletypes"><strong>2.14 XML Schema 1.0 Simple Types Used in the
|
|
Component Model</strong></a>) of the simple types defined by the
|
|
XML Schema 1.0 specification [<cite><a href="#XMLSchemaP2">XML
|
|
Schema: Datatypes</a></cite>].</p>
|
|
<p>In addition to the direct XML Infoset representation described
|
|
here, the component model allows components external to the Infoset
|
|
through the mechanisms described in <a href=
|
|
"#modularize"><strong>4. Modularizing WSDL 2.0
|
|
descriptions</strong></a>.</p>
|
|
<p>A component model can be extracted from a given XML Infoset
|
|
which conforms to the XML Schema for WSDL 2.0 by recursively
|
|
mapping Information Items to their identified components, starting
|
|
with the <code>wsdl:description</code> <em>element information
|
|
item</em>. This includes the application of the mechanisms
|
|
described in <a href="#modularize"><strong>4. Modularizing WSDL 2.0
|
|
descriptions</strong></a>.</p>
|
|
<p>This document does not specify a means of producing an XML
|
|
Infoset representation from a component model instance. In
|
|
particular, there are in general many valid ways to modularize a
|
|
given component model instance into one or more XML Infosets.</p>
|
|
<div class="div2">
|
|
<h3><a name="Description" id="Description"></a>2.1 Description</h3>
|
|
<div class="div3">
|
|
<h4><a name="Description_details" id=
|
|
"Description_details"></a>2.1.1 The Description Component</h4>
|
|
<p>At a high level, the <a href=
|
|
"#component-Description">Description</a> component is just a
|
|
container for two categories of components: WSDL 2.0 components and
|
|
type system components.</p>
|
|
<p>WSDL 2.0 components are interfaces, bindings and services. Type
|
|
system components are element declarations and type
|
|
definitions.</p>
|
|
<p>Type system components describe the constraints on a message's
|
|
content. By default, these constraints are expressed in terms of
|
|
the [<cite><a href="#XMLInfoSet">XML Information Set</a></cite>],
|
|
i.e. they define the [local name], [namespace name], [children] and
|
|
[attributes] properties of an <em>element information item</em>.
|
|
Type systems based upon other data models are generally
|
|
accommodated by extensions to WSDL 2.0; see <a href=
|
|
"#language-extensibility"><strong>6. Language
|
|
Extensibility</strong></a>. In the case where they define
|
|
information equivalent to that of a XML Schema global element
|
|
declaration, they can be treated as if they were such a
|
|
declaration.</p>
|
|
<p>This specification does not define the behavior of a WSDL 2.0
|
|
document that uses multiple schema languages for describing type
|
|
system components simultaneously.</p>
|
|
<a name="zed-ElementContentModel" id="zed-ElementContentModel"></a>
|
|
<p>An <a name="component-ElementDeclaration" id=
|
|
"component-ElementDeclaration">Element Declaration</a> component
|
|
defines the name and content model of an <em>element information
|
|
item</em> such as that defined by an XML Schema global element
|
|
declaration. It has a {<a name="property-ElementDeclaration.name"
|
|
id="property-ElementDeclaration.name">name</a>} property that is
|
|
the QName of the <em>element information item</em> and a {<a name=
|
|
"property-ElementDeclaration.system" id=
|
|
"property-ElementDeclaration.system">system</a>} property that is
|
|
the namespace IRI of the extension <em>element information
|
|
item</em>s for the type system, e.g. the namespace of XML
|
|
Schema.</p>
|
|
<a name="zed-ElementDeclaration" id=
|
|
"zed-ElementDeclaration"></a><a name="zed-ElementDeclarationCM" id=
|
|
"zed-ElementDeclarationCM"></a>
|
|
<p>A <a name="component-TypeDefinition" id=
|
|
"component-TypeDefinition">Type Definition</a> component defines
|
|
the content model of an <em>element information item</em> such as
|
|
that defined by an XML Schema global type definition. It has a
|
|
{<a name="property-TypeDefinition.name" id=
|
|
"property-TypeDefinition.name">name</a>} property that is the QName
|
|
of the type and a {<a name="property-TypeDefinition.system" id=
|
|
"property-TypeDefinition.system">system</a>} property that is the
|
|
namespace IRI of the extension <em>element information item</em>s
|
|
for the type system, e.g. the namespace of XML Schema.</p>
|
|
<a name="zed-TypeDefinition" id="zed-TypeDefinition"></a><a name=
|
|
"zed-TypeDefinitionCM" id="zed-TypeDefinitionCM"></a>
|
|
<p><a href="#component-Interface">Interface</a>, <a href=
|
|
"#component-Binding">Binding</a>, <a href=
|
|
"#component-Service">Service</a>, <a href=
|
|
"#component-ElementDeclaration">Element Declaration</a>, and
|
|
<a href="#component-TypeDefinition">Type Definition</a> components
|
|
are directly contained in the <a href=
|
|
"#component-Description">Description</a> component and are referred
|
|
to as <em>top-level components</em>. The top-level WSDL 2.0
|
|
components contain other components, e.g. <a href=
|
|
"#component-InterfaceOperation">Interface Operation</a> and
|
|
<a href="#component-Endpoint">Endpoint</a>, which are referred to
|
|
as <em>nested components</em>. Nested components may contain other
|
|
nested components. The component that contains a nested component
|
|
is referred to as the <em>parent</em> of the nested component.
|
|
Nested components have a {<a name="property-.parent" id=
|
|
"property-.parent">parent</a>} property that is a reference to
|
|
their parent component.</p>
|
|
<a name="zed-TopLevelComponent" id=
|
|
"zed-TopLevelComponent"></a><a name="zed-Name" id=
|
|
"zed-Name"></a><a name="zed-Parent" id="zed-Parent"></a><a name=
|
|
"zed-ParentValid" id="zed-ParentValid"></a><a name=
|
|
"zed-NestedComponent" id="zed-NestedComponent"></a><a name=
|
|
"zed-ParentId" id="zed-ParentId"></a>
|
|
<p>The properties of the <a name="component-Description" id=
|
|
"component-Description">Description</a> component are as
|
|
follows:</p>
|
|
<ul>
|
|
<li>
|
|
<p>{<a name="property-Description.interfaces" id=
|
|
"property-Description.interfaces">interfaces</a>} OPTIONAL. A set
|
|
of <a href="#component-Interface">Interface</a> components.</p>
|
|
</li>
|
|
<li>
|
|
<p>{<a name="property-Description.bindings" id=
|
|
"property-Description.bindings">bindings</a>} OPTIONAL. A set of
|
|
<a href="#component-Binding">Binding</a> components.</p>
|
|
</li>
|
|
<li>
|
|
<p>{<a name="property-Description.services" id=
|
|
"property-Description.services">services</a>} OPTIONAL. A set of
|
|
<a href="#component-Service">Service</a> components.</p>
|
|
</li>
|
|
<li>
|
|
<p>{<a name="property-Description.elementdeclarations" id=
|
|
"property-Description.elementdeclarations">element
|
|
declarations</a>} OPTIONAL. A set of <a href=
|
|
"#component-ElementDeclaration">Element Declaration</a>
|
|
components.</p>
|
|
</li>
|
|
<li>
|
|
<p>{<a name="property-Description.typedefinitions" id=
|
|
"property-Description.typedefinitions">type definitions</a>}
|
|
REQUIRED. A set of <a href="#component-TypeDefinition">Type
|
|
Definition</a> components.</p>
|
|
</li>
|
|
</ul>
|
|
<a name="zed-Description" id="zed-Description"></a><a name=
|
|
"zed-stringTD..." id="zed-stringTD..."></a><a name=
|
|
"zed-BuiltInTypeDefComps" id="zed-BuiltInTypeDefComps"></a><a name=
|
|
"zed-XMLSchemaURI" id="zed-XMLSchemaURI"></a><a name=
|
|
"zed-BuiltInTypeDefIds" id="zed-BuiltInTypeDefIds"></a><a name=
|
|
"zed-DescriptionTypeDefs" id="zed-DescriptionTypeDefs"></a><a name=
|
|
"zed-DescriptionKey" id="zed-DescriptionKey"></a><a name=
|
|
"zed-DescriptionCM" id="zed-DescriptionCM"></a>
|
|
<p>The set of top-level components contained in the <a href=
|
|
"#component-Description">Description</a> component associated with
|
|
an initial WSDL 2.0 document consists of the components defined in
|
|
the initial document, plus the components associated with the WSDL
|
|
2.0 documents that the initial document includes, plus the
|
|
components defined by other WSDL 2.0 documents in the namespaces
|
|
that the initial document imports. The component model makes no
|
|
distinction between the components that are defined in the initial
|
|
document versus those that are defined in the included documents or
|
|
imported namespaces. However, any WSDL 2.0 document that contains
|
|
component definitions that refer by QName to WSDL 2.0 components
|
|
that belong to a different namespace MUST contain a
|
|
<code>wsdl:import</code> <em>element information item</em> for that
|
|
namespace (see <a href="#imports"><strong>4.2 Importing
|
|
Descriptions</strong></a> ). Furthermore, all QName references,
|
|
whether to the same or to different namespaces must resolve to
|
|
components (see <a href="#qnameres"><strong>2.17 QName
|
|
resolution</strong></a> ).</p>
|
|
<p>When using the XML Schema language to describe type system
|
|
components, the inclusion of <a href=
|
|
"#component-ElementDeclaration">Element Declaration</a> components
|
|
and <a href="#component-TypeDefinition">Type Definition</a>
|
|
components in a <a href="#component-Description">Description</a>
|
|
component is governed by the rules in <a href=
|
|
"#xsd-types"><strong>3.1 Using W3C XML Schema Definition
|
|
Language</strong></a>.</p>
|
|
<p>In addition to WSDL 2.0 components and type system components,
|
|
additional extension components MAY be added via extensibility
|
|
<a href="#language-extensibility"><strong>6. Language
|
|
Extensibility</strong></a>. Further, additional properties to WSDL
|
|
2.0 and type system components MAY also be added via
|
|
extensibility.</p>
|
|
</div>
|
|
<div class="div3">
|
|
<h4><a name="Description_XMLRep" id="Description_XMLRep"></a>2.1.2
|
|
XML Representation of Description Component</h4>
|
|
<div class="exampleInner">
|
|
<pre xml:space="preserve">
|
|
<<strong>description</strong>
|
|
targetNamespace="<em>xs:anyURI</em>" >
|
|
<documentation />*
|
|
[ <import /> | <include /> ]*
|
|
<types />?
|
|
[ <interface /> | <binding /> | <service /> ]*
|
|
</<strong>description</strong>>
|
|
</pre></div>
|
|
<p>WSDL 2.0 descriptions are represented in XML by one or more WSDL
|
|
2.0 Information Sets (Infosets), that is one or more
|
|
<code>description</code> <em>element information item</em>s. A WSDL
|
|
2.0 Infoset contains representations for a collection of WSDL 2.0
|
|
components that share a common target namespace and zero or more
|
|
<code>wsdl:import</code> <em>element information item</em>s
|
|
<a href="#imports"><strong>4.2 Importing Descriptions</strong></a>
|
|
that correspond to a collection with components from multiple
|
|
target namespaces.</p>
|
|
<p>The components directly defined or included within a <a href=
|
|
"#component-Description">Description</a> component are said to
|
|
belong to the same <em>target namespace</em>. The target namespace
|
|
therefore groups a set of related component definitions and
|
|
represents an unambiguous name for the intended semantics of the
|
|
collection of components. <span id="Description-1001" class=
|
|
"test-assertion-tr">The value of the <code>targetNamespace</code>
|
|
<em>attribute information item</em> SHOULD be
|
|
dereferencable.<sup><a href="#Description-1001-summary" title=
|
|
"Link to assertion Description-1001 summary">†</a></sup></span>
|
|
<span id="Description-1002" class="test-assertion-tr">It SHOULD
|
|
resolve to a human or machine processable document that directly or
|
|
indirectly defines the intended semantics of those
|
|
components.<sup><a href="#Description-1002-summary" title=
|
|
"Link to assertion Description-1002 summary">†</a></sup></span>
|
|
<span id="Description-1003" class="test-assertion-tr">It MAY
|
|
resolve to a WSDL 2.0 document that provides service description
|
|
information for that namespace.<sup><a href=
|
|
"#Description-1003-summary" title=
|
|
"Link to assertion Description-1003 summary">†</a></sup></span></p>
|
|
<p><span id="Description-1004" class="test-assertion-tr">If a WSDL
|
|
2.0 document is split into multiple WSDL 2.0 documents (which may
|
|
be combined as needed via <a href="#includes"><strong>4.1 Including
|
|
Descriptions</strong></a>), then the <code>targetNamespace</code>
|
|
<em>attribute information item</em> SHOULD resolve to a master WSDL
|
|
2.0 document that includes all the WSDL 2.0 documents needed for
|
|
that service description.<sup><a href="#Description-1004-summary"
|
|
title=
|
|
"Link to assertion Description-1004 summary">†</a></sup></span>
|
|
This approach enables the WSDL 2.0 component designator fragment
|
|
identifiers to be properly resolved.</p>
|
|
<p>Components that belong to imported namespaces have different
|
|
target namespace values than that of the importing WSDL 2.0
|
|
document. Thus importing is the mechanism to use components from
|
|
one namespace in the definition of components from another
|
|
namespace.</p>
|
|
<p>Note that each WSDL 2.0 document or type system component of the
|
|
same kind must be uniquely identified by its qualified name. That
|
|
is, if two distinct components of the same kind (<a href=
|
|
"#component-Interface">Interface</a>, <a href=
|
|
"#component-Binding">Binding</a>, etc.) are in the same target
|
|
namespace, then their QNames MUST be unique. However, different
|
|
kinds of components (e.g., an <a href=
|
|
"#component-Interface">Interface</a> component and a <a href=
|
|
"#component-Binding">Binding</a> component) MAY have the same
|
|
QName. Thus, QNames of components must be unique within the space
|
|
of those components in a given target namespace.</p>
|
|
<p>The <code>description</code> <em>element information item</em>
|
|
has the following Infoset properties:</p>
|
|
<ul>
|
|
<li>
|
|
<p>A [local name] of <code>description</code>.</p>
|
|
</li>
|
|
<li>
|
|
<p>A [namespace name] of "http://www.w3.org/ns/wsdl".</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>targetNamespace</code> <em>attribute
|
|
information item</em> as described below in <a href=
|
|
"#Description_targetnamespace_attribute"><strong>2.1.2.1
|
|
targetNamespace attribute information item</strong></a>.</p>
|
|
</li>
|
|
<li>
|
|
<p>Zero or more namespace qualified <em>attribute information
|
|
item</em>s whose [namespace name] is NOT
|
|
"http://www.w3.org/ns/wsdl".</p>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
<li>
|
|
<p><span id="Description-1005" class="test-assertion-tr">Zero or
|
|
more <em>element information item</em>s amongst its [children], in
|
|
order as follows:<sup><a href="#Description-1005-summary" title=
|
|
"Link to assertion Description-1005 summary">†</a></sup></span></p>
|
|
<ol class="enumar">
|
|
<li>
|
|
<p>Zero or more <code>documentation</code> <em>element information
|
|
item</em>s (see <a href="#eii-documentation"><strong>5.
|
|
Documentation</strong></a>).</p>
|
|
</li>
|
|
<li>
|
|
<p>Zero or more <em>element information item</em>s from among the
|
|
following, in any order:</p>
|
|
<ul>
|
|
<li>
|
|
<p>Zero or more <code>include</code> <em>element information
|
|
item</em>s (see <a href="#includes"><strong>4.1 Including
|
|
Descriptions</strong></a>)</p>
|
|
</li>
|
|
<li>
|
|
<p>Zero or more <code>import</code> <em>element information
|
|
item</em>s (see <a href="#imports"><strong>4.2 Importing
|
|
Descriptions</strong></a>)</p>
|
|
</li>
|
|
<li>
|
|
<p>Zero or more namespace-qualified <em>element information
|
|
item</em>s whose [namespace name] is NOT
|
|
"http://www.w3.org/ns/wsdl".</p>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
<li>
|
|
<p>An OPTIONAL <code>types</code> <em>element information item</em>
|
|
(see <a href="#eii-types"><strong>3. Types</strong></a>).</p>
|
|
</li>
|
|
<li>
|
|
<p>Zero or more <em>element information item</em>s from among the
|
|
following, in any order:</p>
|
|
<ul>
|
|
<li>
|
|
<p><code>interface</code> <em>element information item</em>s (see
|
|
<a href="#Interface_XMLRep"><strong>2.2.2 XML Representation of
|
|
Interface Component</strong></a>).</p>
|
|
</li>
|
|
<li>
|
|
<p><code>binding</code> <em>element information item</em>s (see
|
|
<a href="#Binding_XMLRep"><strong>2.7.2 XML Representation of
|
|
Binding Component</strong></a>).</p>
|
|
</li>
|
|
<li>
|
|
<p><code>service</code> <em>element information item</em>s (see
|
|
<a href="#Service_XMLRep"><strong>2.12.2 XML Representation of
|
|
Service Component</strong></a>).</p>
|
|
</li>
|
|
<li>
|
|
<p>Zero or more namespace-qualified <em>element information
|
|
item</em>s whose [namespace name] is NOT
|
|
"http://www.w3.org/ns/wsdl".</p>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
</ol>
|
|
</li>
|
|
</ul>
|
|
<div class="div4">
|
|
<h5><a name="Description_targetnamespace_attribute" id=
|
|
"Description_targetnamespace_attribute"></a>2.1.2.1
|
|
<code>targetNamespace</code> <em>attribute information
|
|
item</em></h5>
|
|
<p>The <code>targetNamespace</code> <em>attribute information
|
|
item</em> defines the namespace affiliation of top-level components
|
|
defined in this <code>description</code> <em>element information
|
|
item</em>. <a href="#component-Interface">Interface</a>, <a href=
|
|
"#component-Binding">Binding</a> and <a href=
|
|
"#component-Service">Service</a> are top-level components.</p>
|
|
<p>The <code>targetNamespace</code> <em>attribute information
|
|
item</em> has the following Infoset properties:</p>
|
|
<ul>
|
|
<li>
|
|
<p>A [local name] of <code>targetNamespace</code></p>
|
|
</li>
|
|
<li>
|
|
<p>A [namespace name] which has no value</p>
|
|
</li>
|
|
</ul>
|
|
<p>The type of the <code>targetNamespace</code> <em>attribute
|
|
information item</em> is <em>xs:anyURI</em>. <span id=
|
|
"Description-1006" class="test-assertion-tr">Its value MUST be an
|
|
absolute IRI (see [<cite><a href="#RFC3987">IETF RFC
|
|
3987</a></cite>]) and should be dereferencable.<sup><a href=
|
|
"#Description-1006-summary" title=
|
|
"Link to assertion Description-1006 summary">†</a></sup></span></p>
|
|
</div>
|
|
</div>
|
|
<div class="div3">
|
|
<h4><a name="Description_Mapping" id=
|
|
"Description_Mapping"></a>2.1.3 Mapping Description's XML
|
|
Representation to Component Properties</h4>
|
|
<p>The mapping from the XML Representation of the
|
|
<code>description</code> <em>element information item</em> (see
|
|
<a href="#Description_XMLRep"><strong>2.1.2 XML Representation of
|
|
Description Component</strong></a>) to the properties of the
|
|
<a href="#component-Description">Description</a> component is
|
|
described in <a href="#tab_Description_Mapping">Table 2-1</a>.</p>
|
|
<a name="tab_Description_Mapping" id="tab_Description_Mapping"></a>
|
|
<table border="1">
|
|
<caption>Table 2-1. Mapping from XML Representation to Description
|
|
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-Description.interfaces">interfaces</a>}</td>
|
|
<td rowspan="1" colspan="1">The set of <a href=
|
|
"#component-Interface">Interface</a> components corresponding to
|
|
all the <code>interface</code> <em>element information item</em>s
|
|
in the [children] of the <code>description</code> <em>element
|
|
information item</em>, if any, plus any included (via
|
|
<code>wsdl:include</code>) or imported (via
|
|
<code>wsdl:import</code>) <a href=
|
|
"#component-Interface">Interface</a> components (see <a href=
|
|
"#modularize"><strong>4. Modularizing WSDL 2.0
|
|
descriptions</strong></a>).</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">{<a href=
|
|
"#property-Description.bindings">bindings</a>}</td>
|
|
<td rowspan="1" colspan="1">The set of <a href=
|
|
"#component-Binding">Binding</a> components corresponding to all
|
|
the <code>binding</code> <em>element information item</em>s in the
|
|
[children] of the <code>description</code> <em>element information
|
|
item</em>, if any, plus any included (via
|
|
<code>wsdl:include</code>) or imported (via
|
|
<code>wsdl:import</code>) <a href="#component-Binding">Binding</a>
|
|
components (see <a href="#modularize"><strong>4. Modularizing WSDL
|
|
2.0 descriptions</strong></a>).</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">{<a href=
|
|
"#property-Description.services">services</a>}</td>
|
|
<td rowspan="1" colspan="1">The set of <a href=
|
|
"#component-Service">Service</a> components corresponding to all
|
|
the <code>service</code> <em>element information item</em>s in the
|
|
[children] of the <code>description</code> <em>element information
|
|
item</em>, if any, plus any included (via
|
|
<code>wsdl:include</code>) or imported (via
|
|
<code>wsdl:import</code>) <a href="#component-Service">Service</a>
|
|
components (see <a href="#modularize"><strong>4. Modularizing WSDL
|
|
2.0 descriptions</strong></a>).</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">{<a href=
|
|
"#property-Description.elementdeclarations">element
|
|
declarations</a>}</td>
|
|
<td rowspan="1" colspan="1">The set of <a href=
|
|
"#component-ElementDeclaration">Element Declaration</a> components
|
|
corresponding to all the element declarations defined as
|
|
descendants of the <code>types</code> <em>element information
|
|
item</em>, if any, plus any included (via <code>xs:include</code>)
|
|
or imported (via <code>xs:import</code>) <a href=
|
|
"#component-ElementDeclaration">Element Declaration</a> components.
|
|
At a minimum this will include all the global element declarations
|
|
defined by XML Schema <code>element</code> <em>element information
|
|
item</em>s. It MAY also include any declarations from some other
|
|
type system which describes the [local name], [namespace name],
|
|
[attributes] and [children] properties of an <em>element
|
|
information item</em>. <span id="Types-1007" class=
|
|
"test-assertion-tr">Each XML Schema element declaration MUST have a
|
|
unique QName.<sup><a href="#Types-1007-summary" title=
|
|
"Link to assertion Types-1007 summary">†</a></sup></span></td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">{<a href=
|
|
"#property-Description.typedefinitions">type definitions</a>}</td>
|
|
<td rowspan="1" colspan="1">The set of <a href=
|
|
"#component-TypeDefinition">Type Definition</a> components
|
|
corresponding to all the type definitions defined as descendants of
|
|
the <code>types</code> <em>element information item</em>, if any,
|
|
plus any included (via <code>xs:include</code>) or imported (via
|
|
<code>xs:import</code>) <a href="#component-TypeDefinition">Type
|
|
Definition</a> components. In addition, the built-in datatypes
|
|
defined by XML Schema Part 2: Datatypes Second Edition
|
|
[<cite><a href="#XMLSchemaP2">XML Schema: Datatypes</a></cite>],
|
|
namely the nineteen primitive datatypes <code>xs:string</code>,
|
|
<code>xs:boolean</code>, <code>xs:decimal</code>,
|
|
<code>xs:float</code>, <code>xs:double</code>,
|
|
<code>xs:duration</code>, <code>xs:dateTime</code>,
|
|
<code>xs:time</code>, <code>xs:date</code>,
|
|
<code>xs:gYearMonth</code>, <code>xs:gYear</code>,
|
|
<code>xs:gMonthDay</code>, <code>xs:gDay</code>,
|
|
<code>xs:gMonth</code>, <code>xs:hexBinary</code>,
|
|
<code>xs:base64Binary</code>, <code>xs:anyURI</code>,
|
|
<code>xs:QName</code>, <code>xs:NOTATION</code>, and the
|
|
twenty-five derived datatypes <code>xs:normalizedString</code>,
|
|
<code>xs:token</code>, <code>xs:language</code>,
|
|
<code>xs:NMTOKEN</code>, <code>xs:NMTOKENS</code>,
|
|
<code>xs:Name</code>, <code>xs:NCName</code>, <code>xs:ID</code>,
|
|
<code>xs:IDREF</code>, <code>xs:IDREFS</code>,
|
|
<code>xs:ENTITY</code>, <code>xs:ENTITIES</code>,
|
|
<code>xs:integer</code>, <code>xs:nonPositiveInteger</code>,
|
|
<code>xs:negativeInteger</code>, <code>xs:long</code>,
|
|
<code>xs:int</code>, <code>xs:short</code>, <code>xs:byte</code>,
|
|
<code>xs:nonNegativeInteger</code>, <code>xs:unsignedLong</code>,
|
|
<code>xs:unsignedInt</code>, <code>xs:unsignedShort</code>,
|
|
<code>xs:unsignedByte</code>, <code>xs:positiveInteger</code>. The
|
|
set MAY also include any definitions from some other type system
|
|
which describes the [attributes] and [children] properties of an
|
|
<em>element information item</em>. <span id="Types-1008" class=
|
|
"test-assertion-tr">Each XML Schema type definition MUST have a
|
|
unique QName.<sup><a href="#Types-1008-summary" title=
|
|
"Link to assertion Types-1008 summary">†</a></sup></span></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
<br /></div>
|
|
</div>
|
|
<div class="div2">
|
|
<h3><a name="Interface" id="Interface"></a>2.2 Interface</h3>
|
|
<div class="div3">
|
|
<h4><a name="Interface_details" id="Interface_details"></a>2.2.1
|
|
The Interface Component</h4>
|
|
<p>An <a href="#component-Interface">Interface</a> component
|
|
describes sequences of messages that a service sends and/or
|
|
receives. It does this by grouping related messages into
|
|
operations. An operation is a sequence of input and output
|
|
messages, and an interface is a set of operations.</p>
|
|
<p>An interface can optionally extend one or more other interfaces.
|
|
<span id="Interface-1009" class="test-assertion-tr">To avoid
|
|
circular definitions, an interface MUST NOT appear in the set of
|
|
interfaces it extends, either directly or indirectly. <sup><a href=
|
|
"#Interface-1009-summary" title=
|
|
"Link to assertion Interface-1009 summary">†</a></sup></span> The
|
|
set of operations available in an interface includes all the
|
|
operations defined by the interfaces it extends directly or
|
|
indirectly, together with any operations it directly defines. The
|
|
operations directly defined on an interface are referred to as the
|
|
<em>declared</em> operations of the interface. In the process,
|
|
operation components that are equivalent per <a href=
|
|
"#compequiv"><strong>2.15 Equivalence of Components</strong></a>
|
|
are treated as one single component. The interface extension
|
|
mechanism behaves in a similar way for all other components that
|
|
can be defined inside an interface, namely <a href=
|
|
"#component-InterfaceFault">Interface Fault</a> components.</p>
|
|
<p>Interfaces are named constructs and can be referred to by QName
|
|
(see <a href="#qnameres"><strong>2.17 QName
|
|
resolution</strong></a>). For instance, <a href=
|
|
"#component-Binding">Binding</a> components refer to interfaces in
|
|
this way.</p>
|
|
<p>The properties of the <a name="component-Interface" id=
|
|
"component-Interface">Interface</a> component are as follows:</p>
|
|
<ul>
|
|
<li>
|
|
<p>{<a name="property-Interface.name" id=
|
|
"property-Interface.name">name</a>} REQUIRED. An
|
|
<em>xs:QName</em>.</p>
|
|
</li>
|
|
<li>
|
|
<p>{<a name="property-Interface.extendedinterfaces" id=
|
|
"property-Interface.extendedinterfaces">extended interfaces</a>}
|
|
OPTIONAL. A set of declared <a href=
|
|
"#component-Interface">Interface</a> components which this
|
|
interface extends.</p>
|
|
</li>
|
|
<li>
|
|
<p>{<a name="property-Interface.interfacefaults" id=
|
|
"property-Interface.interfacefaults">interface faults</a>}
|
|
OPTIONAL. The set of declared <a href=
|
|
"#component-InterfaceFault">Interface Fault</a> components. Note
|
|
that the namespace name of the {<a href=
|
|
"#property-InterfaceFault.name">name</a>} property of each <a href=
|
|
"#component-InterfaceFault">Interface Fault</a> in this set is the
|
|
same as the namespace name of the {<a href=
|
|
"#property-Interface.name">name</a>} property of this <a href=
|
|
"#component-Interface">Interface</a> component.</p>
|
|
</li>
|
|
<li>
|
|
<p>{<a name="property-Interface.interfaceoperations" id=
|
|
"property-Interface.interfaceoperations">interface operations</a>}
|
|
OPTIONAL. A set of declared <a href=
|
|
"#component-InterfaceOperation">Interface Operation</a> components.
|
|
Note that the namespace name of the {<a href=
|
|
"#property-InterfaceOperation.name">name</a>} property of each
|
|
<a href="#component-InterfaceOperation">Interface Operation</a> in
|
|
this set is the same as the namespace name of the {<a href=
|
|
"#property-Interface.name">name</a>} property of this <a href=
|
|
"#component-Interface">Interface</a> component.</p>
|
|
</li>
|
|
</ul>
|
|
<a name="zed-Interface" id="zed-Interface"></a><a name=
|
|
"zed-InterfaceRI" id="zed-InterfaceRI"></a>
|
|
<p><span id="Interface-1010" class="test-assertion-tr">For each
|
|
<a href="#component-Interface">Interface</a> component in the
|
|
{<a href="#property-Description.interfaces">interfaces</a>}
|
|
property of a <a href="#component-Description">Description</a>
|
|
component, the {<a href="#property-Interface.name">name</a>}
|
|
property MUST be unique.<sup><a href="#Interface-1010-summary"
|
|
title=
|
|
"Link to assertion Interface-1010 summary">†</a></sup></span></p>
|
|
<a name="zed-InterfaceKey" id="zed-InterfaceKey"></a><a name=
|
|
"zed-InterfaceParent" id="zed-InterfaceParent"></a><a name=
|
|
"zed-InterfaceAllExtendedInterfaces" id=
|
|
"zed-InterfaceAllExtendedInterfaces"></a><a name=
|
|
"zed-InterfaceExtendsAcyclic" id=
|
|
"zed-InterfaceExtendsAcyclic"></a><a name=
|
|
"zed-InterfaceAllInterfaceOperations" id=
|
|
"zed-InterfaceAllInterfaceOperations"></a><a name=
|
|
"zed-InterfaceAllInterfaceFaults" id=
|
|
"zed-InterfaceAllInterfaceFaults"></a><a name="zed-InterfaceCM" id=
|
|
"zed-InterfaceCM"></a></div>
|
|
<div class="div3">
|
|
<h4><a name="Interface_XMLRep" id="Interface_XMLRep"></a>2.2.2 XML
|
|
Representation of Interface Component</h4>
|
|
<div class="exampleInner">
|
|
<pre xml:space="preserve">
|
|
<description>
|
|
<<strong>interface</strong>
|
|
name="<em>xs:NCName</em>"
|
|
extends="<em>list of xs:QName</em>"?
|
|
styleDefault="<em>list of xs:anyURI</em>"? >
|
|
<documentation />*
|
|
[ <fault /> | <operation /> ]*
|
|
</<strong>interface</strong>>
|
|
</description>
|
|
</pre></div>
|
|
<p>The XML representation for an <a href=
|
|
"#component-Interface">Interface</a> component is an <em>element
|
|
information item</em> with the following Infoset properties:</p>
|
|
<ul>
|
|
<li>
|
|
<p>A [local name] of <code>interface</code></p>
|
|
</li>
|
|
<li>
|
|
<p>A [namespace name] of "http://www.w3.org/ns/wsdl"</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>
|
|
as described below in <a href=
|
|
"#Interface_name_attribute"><strong>2.2.2.1 name attribute
|
|
information item with interface [owner element]</strong></a>.</p>
|
|
</li>
|
|
<li>
|
|
<p>An OPTIONAL <code>extends</code> <em>attribute information
|
|
item</em> as described below in <a href=
|
|
"#Interface_extends_attribute"><strong>2.2.2.2 extends attribute
|
|
information item</strong></a>.</p>
|
|
</li>
|
|
<li>
|
|
<p>An OPTIONAL <code>styleDefault</code> <em>attribute information
|
|
item</em> as described below in <a href=
|
|
"#Interface_styleDefault_attribute"><strong>2.2.2.3 styleDefault
|
|
attribute information item</strong></a>.</p>
|
|
</li>
|
|
<li>
|
|
<p>Zero or more namespace qualified <em>attribute information
|
|
item</em>s whose [namespace name] is NOT
|
|
"http://www.w3.org/ns/wsdl".</p>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
<li>
|
|
<p>Zero or more <em>element information item</em>s 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 (see <a href="#eii-documentation"><strong>5.
|
|
Documentation</strong></a>).</p>
|
|
</li>
|
|
<li>
|
|
<p>Zero or more <em>element information item</em>s from among the
|
|
following, in any order:</p>
|
|
<ul>
|
|
<li>
|
|
<p>Zero or more <code>fault</code> <em>element information
|
|
item</em>s <a href="#InterfaceFault_XMLRep"><strong>2.3.2 XML
|
|
Representation of Interface Fault Component</strong></a>.</p>
|
|
</li>
|
|
<li>
|
|
<p>Zero or more <code>operation</code> <em>element information
|
|
item</em>s <a href="#InterfaceOperation_XMLRep"><strong>2.4.2 XML
|
|
Representation of Interface Operation Component</strong></a>.</p>
|
|
</li>
|
|
<li>
|
|
<p>Zero or more namespace-qualified <em>element information
|
|
item</em>s whose [namespace name] is NOT
|
|
"http://www.w3.org/ns/wsdl".</p>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
</ol>
|
|
</li>
|
|
</ul>
|
|
<div class="div4">
|
|
<h5><a name="Interface_name_attribute" id=
|
|
"Interface_name_attribute"></a>2.2.2.1 <code>name</code>
|
|
<em>attribute information item</em> with <code>interface</code>
|
|
[owner element]</h5>
|
|
<p>The <code>name</code> <em>attribute information item</em>
|
|
together with the <code>targetNamespace</code> <em>attribute
|
|
information item</em> of the [parent] <code>description</code>
|
|
<em>element information item</em> forms the QName of the
|
|
interface.</p>
|
|
<p>The <code>name</code> <em>attribute information item</em> has
|
|
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>
|
|
</ul>
|
|
<p>The type of the <code>name</code> <em>attribute information
|
|
item</em> is <em>xs:NCName</em>.</p>
|
|
</div>
|
|
<div class="div4">
|
|
<h5><a name="Interface_extends_attribute" id=
|
|
"Interface_extends_attribute"></a>2.2.2.2 <code>extends</code>
|
|
<em>attribute information item</em></h5>
|
|
<p>The <code>extends</code> <em>attribute information item</em>
|
|
lists the interfaces that this interface derives from.</p>
|
|
<p>The <code>extends</code> <em>attribute information item</em> has
|
|
the following Infoset properties:</p>
|
|
<ul>
|
|
<li>
|
|
<p>A [local name] of <code>extends</code></p>
|
|
</li>
|
|
<li>
|
|
<p>A [namespace name] which has no value</p>
|
|
</li>
|
|
</ul>
|
|
<p>The type of the <code>extends</code> <em>attribute information
|
|
item</em> is a whitespace-separated list of <em>xs:QName</em>.</p>
|
|
<p><span id="Interface-1011" class="test-assertion-tr">The list of
|
|
<em>xs:QName</em> in an <code>extends</code> <em>attribute
|
|
information item</em> MUST NOT contain duplicates.<sup><a href=
|
|
"#Interface-1011-summary" title=
|
|
"Link to assertion Interface-1011 summary">†</a></sup></span></p>
|
|
</div>
|
|
<div class="div4">
|
|
<h5><a name="Interface_styleDefault_attribute" id=
|
|
"Interface_styleDefault_attribute"></a>2.2.2.3
|
|
<code>styleDefault</code> <em>attribute information item</em></h5>
|
|
<p>The <code>styleDefault</code> <em>attribute information
|
|
item</em> indicates the default style (see <a href=
|
|
"#InterfaceOperationStyle"><strong>2.4.1.2 Operation
|
|
Style</strong></a>) used to construct the {<a href=
|
|
"#property-InterfaceMessageReference.elementdeclaration">element
|
|
declaration</a>} properties of {<a href=
|
|
"#property-InterfaceOperation.interfacemessagereferences">interface
|
|
message references</a>} of all operations contained within the
|
|
[owner element] <code>interface</code>.</p>
|
|
<p>The <code>styleDefault</code> <em>attribute information
|
|
item</em> has the following Infoset properties:</p>
|
|
<ul>
|
|
<li>
|
|
<p>A [local name] of <code>styleDefault.</code></p>
|
|
</li>
|
|
<li>
|
|
<p>A [namespace name] which has no value.</p>
|
|
</li>
|
|
</ul>
|
|
<p>The type of the <code>styleDefault</code> <em>attribute
|
|
information item</em> is <em>list of xs:anyURI</em>. <span id=
|
|
"Interface-1012" class="test-assertion-tr">Its value, if present,
|
|
MUST contain absolute IRIs (see [<cite><a href="#RFC3987">IETF RFC
|
|
3987</a></cite>]).<sup><a href="#Interface-1012-summary" title=
|
|
"Link to assertion Interface-1012 summary">†</a></sup></span></p>
|
|
</div>
|
|
</div>
|
|
<div class="div3">
|
|
<h4><a name="Interface_Mapping" id="Interface_Mapping"></a>2.2.3
|
|
Mapping Interface's XML Representation to Component Properties</h4>
|
|
<p>The mapping from the XML Representation of the
|
|
<code>interface</code> <em>element information item</em> (see
|
|
<a href="#Interface_XMLRep"><strong>2.2.2 XML Representation of
|
|
Interface Component</strong></a>) to the properties of the <a href=
|
|
"#component-Interface">Interface</a> component is as described in
|
|
<a href="#tab_Interface_Mapping">Table 2-2</a>.</p>
|
|
<a name="tab_Interface_Mapping" id="tab_Interface_Mapping"></a>
|
|
<table border="1">
|
|
<caption>Table 2-2. Mapping from XML Representation to Interface
|
|
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-Interface.name">name</a>}</td>
|
|
<td rowspan="1" colspan="1">The QName whose local name is actual
|
|
value of the <code>name</code> <em>attribute information item</em>
|
|
and whose namespace name is the actual value of the
|
|
<code>targetNamespace</code> <em>attribute information item</em> of
|
|
the [parent] <code>description</code> <em>element information
|
|
item</em></td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">{<a href=
|
|
"#property-Interface.extendedinterfaces">extended
|
|
interfaces</a>}</td>
|
|
<td rowspan="1" colspan="1">The set of <a href=
|
|
"#component-Interface">Interface</a> components resolved to by the
|
|
values in the <code>extends</code> <em>attribute information
|
|
item</em>, if any (see <a href="#qnameres"><strong>2.17 QName
|
|
resolution</strong></a>).</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">{<a href=
|
|
"#property-Interface.interfacefaults">interface faults</a>}</td>
|
|
<td rowspan="1" colspan="1">The set of <a href=
|
|
"#component-InterfaceFault">Interface Fault</a> components
|
|
corresponding to the <code>fault</code> <em>element information
|
|
item</em>s in [children], if any.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">{<a href=
|
|
"#property-Interface.interfaceoperations">interface
|
|
operations</a>}</td>
|
|
<td rowspan="1" colspan="1">The set of <a href=
|
|
"#component-InterfaceOperation">Interface Operation</a> components
|
|
corresponding to the <code>operation</code> <em>element information
|
|
item</em>s in [children], if any.</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
<br />
|
|
<p>Recall that, per <a href="#Interface_details"><strong>2.2.1 The
|
|
Interface Component</strong></a>, the <a href=
|
|
"#component-Interface">Interface</a> components in the {<a href=
|
|
"#property-Interface.extendedinterfaces">extended interfaces</a>}
|
|
property of a given <a href="#component-Interface">Interface</a>
|
|
component MUST NOT contain that <a href=
|
|
"#component-Interface">Interface</a> component in any of their
|
|
{<a href="#property-Interface.extendedinterfaces">extended
|
|
interfaces</a>} properties, that is to say, recursive extension of
|
|
interfaces is disallowed.</p>
|
|
</div>
|
|
</div>
|
|
<div class="div2">
|
|
<h3><a name="InterfaceFault" id="InterfaceFault"></a>2.3 Interface
|
|
Fault</h3>
|
|
<div class="div3">
|
|
<h4><a name="InterfaceFault_details" id=
|
|
"InterfaceFault_details"></a>2.3.1 The Interface Fault
|
|
Component</h4>
|
|
<p>A fault is an event that occurs during the execution of a
|
|
message exchange that disrupts the normal flow of messages.</p>
|
|
<p>A fault is typically raised when a party is unable to
|
|
communicate an error condition inside the normal message flow, or a
|
|
party wishes to terminate a message exchange. A fault message may
|
|
be used to communicate out of band information such as the reason
|
|
for the error, the origin of the fault, as well as other informal
|
|
diagnostics such as a program stack trace.</p>
|
|
<p>An <a href="#component-InterfaceFault">Interface Fault</a>
|
|
component describes a fault that MAY occur during invocation of an
|
|
operation of the interface. The <a href=
|
|
"#component-InterfaceFault">Interface Fault</a> component declares
|
|
an abstract fault by naming it and indicating the contents of the
|
|
fault message. When and how the fault message flows is indicated by
|
|
the <a href="#component-InterfaceOperation">Interface Operation</a>
|
|
component.</p>
|
|
<p>The <a href="#component-InterfaceFault">Interface Fault</a>
|
|
component provides a clear mechanism to name and describe the set
|
|
of faults an interface may generate. This allows operations to
|
|
easily identify the individual faults they may generate by name.
|
|
This mechanism allows the ready identification of the same fault
|
|
occurring across multiple operations and referenced in multiple
|
|
bindings as well as reducing duplication of description for an
|
|
individual fault.</p>
|
|
<p>Faults other than the ones described in the <a href=
|
|
"#component-Interface">Interface</a> component may also be
|
|
generated at run-time, i.e. faults are an open set. The <a href=
|
|
"#component-Interface">Interface</a> component describes faults
|
|
that have application level semantics, i.e. that the client or
|
|
service is expected to handle, and potentially recover from, as
|
|
part of the application processing logic. For example, an <a href=
|
|
"#component-Interface">Interface</a> component that accepts a
|
|
credit card number may describe faults that indicate the credit
|
|
card number is invalid, has been reported stolen, or has expired.
|
|
The <a href="#component-Interface">Interface</a> component does not
|
|
describe general system faults such as network failures, out of
|
|
memory conditions, out of disk space conditions, invalid message
|
|
formats, etc., although these faults may be generated as part of
|
|
the message exchange. Such general system faults can reasonably be
|
|
expected to occur in any message exchange and explicitly describing
|
|
them in an <a href="#component-Interface">Interface</a> component
|
|
is therefore uninformative.</p>
|
|
<p>The properties of the <a name="component-InterfaceFault" id=
|
|
"component-InterfaceFault">Interface Fault</a> component are as
|
|
follows:</p>
|
|
<ul>
|
|
<li>
|
|
<p>{<a name="property-InterfaceFault.name" id=
|
|
"property-InterfaceFault.name">name</a>} REQUIRED. An
|
|
<em>xs:QName</em>.</p>
|
|
</li>
|
|
<li>
|
|
<p>{<a name="property-InterfaceFault.messagecontentmodel" id=
|
|
"property-InterfaceFault.messagecontentmodel">message content
|
|
model</a>} REQUIRED. <span id="InterfaceFault-1013" class=
|
|
"test-assertion-tr">An <em>xs:token</em> with one of the values
|
|
<em>#any</em>, <em>#none</em>, <em>#other</em>, or
|
|
<em>#element</em>.<sup><a href="#InterfaceFault-1013-summary"
|
|
title="Link to assertion InterfaceFault-1013 summary">†</a></sup></span>
|
|
A value of <em>#any</em> indicates that the fault content is any
|
|
single element. A value of <em>#none</em> indicates there is no
|
|
fault content. A value of <em>#other</em> indicates that the fault
|
|
content is described by some other extension property that
|
|
references a declaration in a non-XML extension type system. A
|
|
value of <em>#element</em> indicates that the fault consists of a
|
|
single element described by the global element declaration
|
|
referenced by the {<a href=
|
|
"#property-InterfaceFault.elementdeclaration">element
|
|
declaration</a>} property. This property is used only when the
|
|
fault is described using an XML-based data model.</p>
|
|
</li>
|
|
<li>
|
|
<p>{<a name="property-InterfaceFault.elementdeclaration" id=
|
|
"property-InterfaceFault.elementdeclaration">element
|
|
declaration</a>} OPTIONAL. A reference to an <a href=
|
|
"#component-ElementDeclaration">Element Declaration</a> component
|
|
in the {<a href="#property-Description.elementdeclarations">element
|
|
declarations</a>} property of the <a href=
|
|
"#component-Description">Description</a> component. This element
|
|
represents the content or “payload” of the fault. <span id=
|
|
"InterfaceFault-1014" class="test-assertion-tr">When the {<a href=
|
|
"#property-InterfaceFault.messagecontentmodel">message content
|
|
model</a>} property has the value <em>#any</em> or <em>#none</em>
|
|
the {<a href="#property-InterfaceFault.elementdeclaration">element
|
|
declaration</a>} property MUST be empty.<sup><a href=
|
|
"#InterfaceFault-1014-summary" title=
|
|
"Link to assertion InterfaceFault-1014 summary">†</a></sup></span></p>
|
|
</li>
|
|
<li>
|
|
<p>{<a name="property-InterfaceFault.parent" id=
|
|
"property-InterfaceFault.parent">parent</a>} REQUIRED. The <a href=
|
|
"#component-Interface">Interface</a> component that contains this
|
|
component in its {<a href=
|
|
"#property-Interface.interfacefaults">interface faults</a>}
|
|
property.</p>
|
|
</li>
|
|
</ul>
|
|
<a name="zed-InterfaceFault" id="zed-InterfaceFault"></a><a name=
|
|
"zed-InterfaceFaultRI" id="zed-InterfaceFaultRI"></a>
|
|
<p>For each <a href="#component-InterfaceFault">Interface Fault</a>
|
|
component in the {<a href=
|
|
"#property-Interface.interfacefaults">interface faults</a>}
|
|
property of an <a href="#component-Interface">Interface</a>
|
|
component, the {<a href="#property-InterfaceFault.name">name</a>}
|
|
property must be unique. Note that this constraint is enforced by
|
|
the normative WSDL 2.0 XML schema.</p>
|
|
<p><a href="#component-InterfaceFault">Interface Fault</a>
|
|
components are uniquely identified by the QName of the enclosing
|
|
<a href="#component-Interface">Interface</a> component and QName of
|
|
the <a href="#component-InterfaceFault">Interface Fault</a>
|
|
component itself.</p>
|
|
<a name="zed-InterfaceFaultKey" id="zed-InterfaceFaultKey"></a>
|
|
<div class="note">
|
|
<p class="prefix"><strong>Note:</strong></p>
|
|
<p>Despite having a {<a href=
|
|
"#property-InterfaceFault.name">name</a>} property, <a href=
|
|
"#component-InterfaceFault">Interface Fault</a> components cannot
|
|
be identified solely by their QName. Indeed, two <a href=
|
|
"#component-Interface">Interface</a> components whose {<a href=
|
|
"#property-Interface.name">name</a>} property value has the same
|
|
namespace name, but different local names, can contain <a href=
|
|
"#component-InterfaceFault">Interface Fault</a> components with the
|
|
same {<a href="#property-InterfaceFault.name">name</a>} property
|
|
value. Thus, the {<a href="#property-InterfaceFault.name">name</a>}
|
|
property of <a href="#component-InterfaceFault">Interface Fault</a>
|
|
component is not sufficient to form the unique identity of an
|
|
<a href="#component-InterfaceFault">Interface Fault</a> component.
|
|
A method for uniquely identifying components is defined in <a href=
|
|
"#frag-ids"><strong>A.2 Fragment Identifiers</strong></a>. See
|
|
<a href="#wsdl.interfaceFault"><strong>A.2.5 The Interface Fault
|
|
Component</strong></a> for the definition of the fragment
|
|
identifier for the <a href="#component-InterfaceFault">Interface
|
|
Fault</a> component.</p>
|
|
</div>
|
|
<p><span id="InterfaceFault-1015" class="test-assertion-tr">In
|
|
cases where, due to an interface extending one or more other
|
|
interfaces, two or more <a href=
|
|
"#component-InterfaceFault">Interface Fault</a> components have the
|
|
same value for their {<a href=
|
|
"#property-InterfaceFault.name">name</a>} property, then the
|
|
component models of those <a href=
|
|
"#component-InterfaceFault">Interface Fault</a> components MUST be
|
|
equivalent (see <a href="#compequiv"><strong>2.15 Equivalence of
|
|
Components</strong></a>). <sup><a href=
|
|
"#InterfaceFault-1015-summary" title=
|
|
"Link to assertion InterfaceFault-1015 summary">†</a></sup></span>
|
|
If the <a href="#component-InterfaceFault">Interface Fault</a>
|
|
components are equivalent then they are considered to collapse into
|
|
a single component. Within the same <a href=
|
|
"#component-Interface">Interface</a> component, if two <a href=
|
|
"#component-InterfaceFault">Interface Fault</a> components are not
|
|
equivalent then their {<a href=
|
|
"#property-InterfaceFault.name">name</a>} properties MUST NOT be
|
|
equal.</p>
|
|
<a name="zed-InterfaceFaultNameUnique" id=
|
|
"zed-InterfaceFaultNameUnique"></a>
|
|
<p>Note that, due to the above rules, if two interfaces that have
|
|
the same value for the namespace name of their {<a href=
|
|
"#property-Interface.name">name</a>} property also have one or more
|
|
faults that have the same value for their {<a href=
|
|
"#property-InterfaceFault.name">name</a>} property, then those two
|
|
interfaces cannot both form part of the derivation chain of a
|
|
derived interface unless those faults are the same fault.</p>
|
|
<p><span id="InterfaceFault-1016" class="test-assertion-tr">For the
|
|
above reason, it is considered good practice to ensure, where
|
|
necessary, that the local name of the {<a href=
|
|
"#property-InterfaceFault.name">name</a>} property of <a href=
|
|
"#component-InterfaceFault">Interface Fault</a> components within a
|
|
namespace SHOULD be unique, thus allowing such derivation to occur
|
|
without inadvertent error.<sup><a href=
|
|
"#InterfaceFault-1016-summary" title=
|
|
"Link to assertion InterfaceFault-1016 summary">†</a></sup></span></p>
|
|
<p>If a type system NOT based on the XML Infoset [<cite><a href=
|
|
"#XMLInfoSet">XML Information Set</a></cite>] is in use (as
|
|
considered in <a href="#other-types"><strong>3.2 Using Other Schema
|
|
Languages</strong></a>) then additional properties would need to be
|
|
added to the <a href="#component-InterfaceFault">Interface
|
|
Fault</a> component (along with extension attributes to its XML
|
|
representation) to allow associating such message types with the
|
|
message reference.</p>
|
|
<a name="zed-InterfaceFaultCM" id="zed-InterfaceFaultCM"></a></div>
|
|
<div class="div3">
|
|
<h4><a name="InterfaceFault_XMLRep" id=
|
|
"InterfaceFault_XMLRep"></a>2.3.2 XML Representation of Interface
|
|
Fault Component</h4>
|
|
<div class="exampleInner">
|
|
<pre xml:space="preserve">
|
|
<description>
|
|
<interface>
|
|
<<strong>fault</strong>
|
|
name="<em>xs:NCName</em>"
|
|
element="<em>union of xs:QName, xs:token</em>"? >
|
|
<documentation />*
|
|
</<strong>fault</strong>>
|
|
</interface>
|
|
</description>
|
|
</pre></div>
|
|
<p>The XML representation for an <a href=
|
|
"#component-InterfaceFault">Interface Fault</a> component is an
|
|
<em>element information item</em> with the following Infoset
|
|
properties:</p>
|
|
<ul>
|
|
<li>
|
|
<p>A [local name] of <code>fault</code></p>
|
|
</li>
|
|
<li>
|
|
<p>A [namespace name] of "http://www.w3.org/ns/wsdl"</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>
|
|
as described below in <a href=
|
|
"#Interfacefault_name_attribute"><strong>2.3.2.1 name attribute
|
|
information item with fault [owner element]</strong></a>.</p>
|
|
</li>
|
|
<li>
|
|
<p>An OPTIONAL <code>element</code> <em>attribute information
|
|
item</em> as described below in <a href=
|
|
"#Interface_element_attribute"><strong>2.3.2.2 element attribute
|
|
information item with fault [owner element]</strong></a>.</p>
|
|
</li>
|
|
<li>
|
|
<p>Zero or more namespace qualified <em>attribute information
|
|
item</em>s whose [namespace name] is NOT
|
|
"http://www.w3.org/ns/wsdl".</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 (see <a href="#eii-documentation"><strong>5.
|
|
Documentation</strong></a>).</p>
|
|
</li>
|
|
<li>
|
|
<p>Zero or more namespace-qualified <em>element information
|
|
item</em> s whose [namespace name] is NOT "
|
|
http://www.w3.org/ns/wsdl " .</p>
|
|
</li>
|
|
</ol>
|
|
</li>
|
|
</ul>
|
|
<div class="div4">
|
|
<h5><a name="Interfacefault_name_attribute" id=
|
|
"Interfacefault_name_attribute"></a>2.3.2.1 <code>name</code>
|
|
<em>attribute information item</em> with <code>fault</code> [owner
|
|
element]</h5>
|
|
<p>The <code>name</code> <em>attribute information item</em>
|
|
identifies a given <code>fault</code> <em>element information
|
|
item</em> inside a given <code>interface</code> <em>element
|
|
information item</em>.</p>
|
|
<p>The <code>name</code> <em>attribute information item</em> has
|
|
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>
|
|
</ul>
|
|
<p>The type of the <code>name</code> <em>attribute information
|
|
item</em> is <em>xs:NCName</em>.</p>
|
|
</div>
|
|
<div class="div4">
|
|
<h5><a name="Interface_element_attribute" id=
|
|
"Interface_element_attribute"></a>2.3.2.2 <code>element</code>
|
|
<em>attribute information item</em> with <code>fault</code> [owner
|
|
element]</h5>
|
|
<p>The <code>element</code> <em>attribute information item</em>
|
|
refers, by QName, to an <a href=
|
|
"#component-ElementDeclaration">Element Declaration</a>
|
|
component.</p>
|
|
<p>The <code>element</code> <em>attribute information item</em> has
|
|
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>
|
|
</ul>
|
|
<p>The type of the <code>element</code> <em>attribute information
|
|
item</em> is a union of <em>xs:QName</em> and <em>xs:token</em>
|
|
where the allowed token values are <em>#any</em>, <em>#none</em>,
|
|
or <em>#other</em>.</p>
|
|
</div>
|
|
</div>
|
|
<div class="div3">
|
|
<h4><a name="InterfaceFault_Mapping" id=
|
|
"InterfaceFault_Mapping"></a>2.3.3 Mapping Interface Fault's XML
|
|
Representation to Component Properties</h4>
|
|
<p>The mapping from the XML Representation of the
|
|
<code>fault</code> <em>element information item</em> (see <a href=
|
|
"#InterfaceFault_XMLRep"><strong>2.3.2 XML Representation of
|
|
Interface Fault Component</strong></a>) to the properties of the
|
|
<a href="#component-InterfaceFault">Interface Fault</a> component
|
|
is as described in <a href="#tab_InterfaceFault_Mapping">Table
|
|
2-3</a>.</p>
|
|
<a name="tab_InterfaceFault_Mapping" id=
|
|
"tab_InterfaceFault_Mapping"></a>
|
|
<table border="1">
|
|
<caption>Table 2-3. Mapping from XML Representation to Interface
|
|
Fault 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-InterfaceFault.name">name</a>}</td>
|
|
<td rowspan="1" colspan="1">The QName whose local name is the
|
|
actual value of the <code>name</code> <em>attribute information
|
|
item</em>. and whose namespace name is the actual value of the
|
|
<code>targetNamespace</code> <em>attribute information item</em> of
|
|
the [parent] <code>description</code> <em>element information
|
|
item</em> of the [parent] <code>interface</code> <em>element
|
|
information item</em>.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">{<a href=
|
|
"#property-InterfaceFault.messagecontentmodel">message content
|
|
model</a>}</td>
|
|
<td rowspan="1" colspan="1">If the <code>element</code>
|
|
<em>attribute information item</em> is present and its value is a
|
|
QName, then <em>#element</em>; otherwise the actual value of the
|
|
<code>element</code> <em>attribute information item</em>, if any;
|
|
otherwise <em>#other</em>.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">{<a href=
|
|
"#property-InterfaceFault.elementdeclaration">element
|
|
declaration</a>}</td>
|
|
<td rowspan="1" colspan="1">If the <code>element</code>
|
|
<em>attribute information item</em> is present and its value is a
|
|
QName, then the <a href="#component-ElementDeclaration">Element
|
|
Declaration</a> component from the {<a href=
|
|
"#property-Description.elementdeclarations">element
|
|
declarations</a>} property of the <a href=
|
|
"#component-Description">Description</a> component resolved to by
|
|
the value of the <code>element</code> <em>attribute information
|
|
item</em> (see <a href="#qnameres"><strong>2.17 QName
|
|
resolution</strong></a>); otherwise empty. <span id=
|
|
"InterfaceFault-1017" class="test-assertion-tr">If the
|
|
<code>element</code> <em>attribute information item</em> has a
|
|
value, then it MUST resolve to an <a href=
|
|
"#component-ElementDeclaration">Element Declaration</a> component
|
|
from the {<a href=
|
|
"#property-Description.elementdeclarations">element
|
|
declarations</a>} property of the <a href=
|
|
"#component-Description">Description</a> component.<sup><a href=
|
|
"#InterfaceFault-1017-summary" title=
|
|
"Link to assertion InterfaceFault-1017 summary">†</a></sup></span></td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">{<a href=
|
|
"#property-InterfaceFault.parent">parent</a>}</td>
|
|
<td rowspan="1" colspan="1">The <a href=
|
|
"#component-Interface">Interface</a> component corresponding to the
|
|
<code>interface</code> <em>element information item</em> in
|
|
[parent].</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
<br /></div>
|
|
</div>
|
|
<div class="div2">
|
|
<h3><a name="InterfaceOperation" id="InterfaceOperation"></a>2.4
|
|
Interface Operation</h3>
|
|
<div class="div3">
|
|
<h4><a name="InterfaceOperation_details" id=
|
|
"InterfaceOperation_details"></a>2.4.1 The Interface Operation
|
|
Component</h4>
|
|
<p>An <a href="#component-InterfaceOperation">Interface
|
|
Operation</a> component describes an operation that a given
|
|
interface supports. An operation is an interaction with the service
|
|
consisting of a set of (ordinary and fault) messages exchanged
|
|
between the service and the other parties involved in the
|
|
interaction. The sequencing and cardinality of the messages
|
|
involved in a particular interaction is governed by the <em>message
|
|
exchange pattern</em> used by the operation (see {<a href=
|
|
"#property-InterfaceOperation.messageexchangepattern">message
|
|
exchange pattern</a>} property).</p>
|
|
<p>A message exchange pattern defines placeholders for messages,
|
|
the participants in the pattern (i.e., the sources and sinks of the
|
|
messages), and the cardinality and sequencing of messages exchanged
|
|
by the participants. The message placeholders are associated with
|
|
specific message types by the operation that uses the pattern by
|
|
means of message and fault references (see {<a href=
|
|
"#property-InterfaceOperation.interfacemessagereferences">interface
|
|
message references</a>} and {<a href=
|
|
"#property-InterfaceOperation.interfacefaultreferences">interface
|
|
fault references</a>} properties). The service whose operation is
|
|
using the pattern becomes one of the participants of the pattern.
|
|
This specification does not define a machine understandable
|
|
language for defining message exchange patterns, nor does it define
|
|
any specific patterns. The companion specification, [<cite><a href=
|
|
"#WSDL-PART2">WSDL 2.0 Adjuncts</a></cite>] defines a set of such
|
|
patterns and defines identifying IRIs any of which MAY be used as
|
|
the value of the {<a href=
|
|
"#property-InterfaceOperation.messageexchangepattern">message
|
|
exchange pattern</a>} property.</p>
|
|
<p>The properties of the <a name="component-InterfaceOperation" id=
|
|
"component-InterfaceOperation">Interface Operation</a> component
|
|
are as follows:</p>
|
|
<ul>
|
|
<li>
|
|
<p>{<a name="property-InterfaceOperation.name" id=
|
|
"property-InterfaceOperation.name">name</a>} REQUIRED. An
|
|
<em>xs:QName</em>.</p>
|
|
</li>
|
|
<li>
|
|
<p>{<a name="property-InterfaceOperation.messageexchangepattern"
|
|
id="property-InterfaceOperation.messageexchangepattern">message
|
|
exchange pattern</a>} REQUIRED. An <em>xs:anyURI</em> identifying
|
|
the message exchange pattern used by the operation. <span id=
|
|
"InterfaceOperation-1018" class="test-assertion-tr">This
|
|
<em>xs:anyURI</em> MUST be an absolute IRI (see [<cite><a href=
|
|
"#RFC3987">IETF RFC 3987</a></cite>]).<sup><a href=
|
|
"#InterfaceOperation-1018-summary" title=
|
|
"Link to assertion InterfaceOperation-1018 summary">†</a></sup></span></p>
|
|
</li>
|
|
<li>
|
|
<p>{<a name=
|
|
"property-InterfaceOperation.interfacemessagereferences" id=
|
|
"property-InterfaceOperation.interfacemessagereferences">interface
|
|
message references</a>} OPTIONAL. A set of <a href=
|
|
"#component-InterfaceMessageReference">Interface Message
|
|
Reference</a> components for the ordinary messages the operation
|
|
accepts or sends.</p>
|
|
</li>
|
|
<li>
|
|
<p>{<a name="property-InterfaceOperation.interfacefaultreferences"
|
|
id="property-InterfaceOperation.interfacefaultreferences">interface
|
|
fault references</a>} OPTIONAL. A set of <a href=
|
|
"#component-InterfaceFaultReference">Interface Fault Reference</a>
|
|
components for the fault messages the operation accepts or
|
|
sends.</p>
|
|
</li>
|
|
<li>
|
|
<p>{<a name="property-InterfaceOperation.style" id=
|
|
"property-InterfaceOperation.style">style</a>} OPTIONAL. A set of
|
|
<em>xs:anyURI</em>s identifying the rules that were used to
|
|
construct the {<a href=
|
|
"#property-InterfaceMessageReference.elementdeclaration">element
|
|
declaration</a>} properties of {<a href=
|
|
"#property-InterfaceOperation.interfacemessagereferences">interface
|
|
message references</a>}. (See <a href=
|
|
"#InterfaceOperationStyle"><strong>2.4.1.2 Operation
|
|
Style</strong></a>.) <span id="InterfaceOperation-1019" class=
|
|
"test-assertion-tr">These <em>xs:anyURI</em>s MUST be absolute IRIs
|
|
(see [<cite><a href="#RFC3986">IETF RFC
|
|
3986</a></cite>]).<sup><a href="#InterfaceOperation-1019-summary"
|
|
title=
|
|
"Link to assertion InterfaceOperation-1019 summary">†</a></sup></span></p>
|
|
</li>
|
|
<li>
|
|
<p>{<a name="property-InterfaceOperation.parent" id=
|
|
"property-InterfaceOperation.parent">parent</a>} REQUIRED. The
|
|
<a href="#component-Interface">Interface</a> component that
|
|
contains this component in its {<a href=
|
|
"#property-Interface.interfaceoperations">interface operations</a>}
|
|
property.</p>
|
|
</li>
|
|
</ul>
|
|
<a name="zed-InterfaceOperation" id=
|
|
"zed-InterfaceOperation"></a><a name="zed-InterfaceOperationRI" id=
|
|
"zed-InterfaceOperationRI"></a>
|
|
<p>For each <a href="#component-InterfaceOperation">Interface
|
|
Operation</a> component in the {<a href=
|
|
"#property-Interface.interfaceoperations">interface operations</a>}
|
|
property of an <a href="#component-Interface">Interface</a>
|
|
component, the {<a href=
|
|
"#property-InterfaceOperation.name">name</a>} property MUST be
|
|
unique. Note that this constraint is enforced by the normative WSDL
|
|
2.0 XML schema.</p>
|
|
<p><a href="#component-InterfaceOperation">Interface Operation</a>
|
|
components are uniquely identified by the QName of the enclosing
|
|
<a href="#component-Interface">Interface</a> component and QName of
|
|
the <a href="#component-InterfaceOperation">Interface Operation</a>
|
|
component itself.</p>
|
|
<a name="zed-InterfaceOperationKey" id=
|
|
"zed-InterfaceOperationKey"></a>
|
|
<div class="note">
|
|
<p class="prefix"><strong>Note:</strong></p>
|
|
<p>Despite having a {<a href=
|
|
"#property-InterfaceOperation.name">name</a>} property, <a href=
|
|
"#component-InterfaceOperation">Interface Operation</a> components
|
|
cannot be identified solely by their QName. Indeed, two <a href=
|
|
"#component-Interface">Interface</a> components whose {<a href=
|
|
"#property-Interface.name">name</a>} property value has the same
|
|
namespace name, but different local names, can contain <a href=
|
|
"#component-InterfaceOperation">Interface Operation</a> components
|
|
with the same {<a href=
|
|
"#property-InterfaceOperation.name">name</a>} property value. Thus,
|
|
the {<a href="#property-InterfaceOperation.name">name</a>} property
|
|
of <a href="#component-InterfaceOperation">Interface Operation</a>
|
|
components is not sufficient to form the unique identity of an
|
|
<a href="#component-InterfaceOperation">Interface Operation</a>
|
|
component. A method for uniquely identifying components is defined
|
|
in <a href="#frag-ids"><strong>A.2 Fragment
|
|
Identifiers</strong></a> . See <a href=
|
|
"#wsdl.interfaceOperation"><strong>A.2.6 The Interface Operation
|
|
Component</strong></a> for the definition of the fragment
|
|
identifier for the <a href=
|
|
"#component-InterfaceOperation">Interface Operation</a>
|
|
component.</p>
|
|
</div>
|
|
<p><span id="InterfaceOperation-1020" class="test-assertion-tr">In
|
|
cases where, due to an interface extending one or more other
|
|
interfaces, two or more <a href=
|
|
"#component-InterfaceOperation">Interface Operation</a> components
|
|
have the same value for their {<a href=
|
|
"#property-InterfaceOperation.name">name</a>} property, then the
|
|
component models of those Interface Operation components MUST be
|
|
equivalent (see <a href="#compequiv"><strong>2.15 Equivalence of
|
|
Components</strong></a>).<sup><a href=
|
|
"#InterfaceOperation-1020-summary" title=
|
|
"Link to assertion InterfaceOperation-1020 summary">†</a></sup></span>
|
|
If the <a href="#component-InterfaceOperation">Interface
|
|
Operation</a> components are equivalent then they are considered to
|
|
collapse into a single component. Within the same <a href=
|
|
"#component-Interface">Interface</a> component, if two <a href=
|
|
"#component-InterfaceOperation">Interface Operation</a> components
|
|
are not equivalent then their {<a href=
|
|
"#property-InterfaceOperation.name">name</a>} properties MUST NOT
|
|
be equal.</p>
|
|
<a name="zed-InterfaceOperationNameUnique" id=
|
|
"zed-InterfaceOperationNameUnique"></a>
|
|
<p>Note that, due to the above rules, if two interfaces that have
|
|
the same value for the namespace name of their {<a href=
|
|
"#property-Interface.name">name</a>} property also have one or more
|
|
operations that have the same value for their {<a href=
|
|
"#property-InterfaceOperation.name">name</a>} property, then those
|
|
two interfaces cannot both form part of the derivation chain of a
|
|
derived interface unless those operations are the same
|
|
operation.</p>
|
|
<p><span id="InterfaceOperation-1021" class="test-assertion-tr">For
|
|
the above reason, it is considered good practice to ensure, where
|
|
necessary, that the {<a href=
|
|
"#property-InterfaceOperation.name">name</a>} property of <a href=
|
|
"#component-InterfaceOperation">Interface Operation</a> components
|
|
within a namespace SHOULD be unique, thus allowing such derivation
|
|
to occur without inadvertent error.<sup><a href=
|
|
"#InterfaceOperation-1021-summary" title=
|
|
"Link to assertion InterfaceOperation-1021 summary">†</a></sup></span></p>
|
|
<p>More than one <a href=
|
|
"#component-InterfaceFaultReference">Interface Fault Reference</a>
|
|
component in the {<a href=
|
|
"#property-InterfaceOperation.interfacefaultreferences">interface
|
|
fault references</a>} property of an <a href=
|
|
"#component-InterfaceOperation">Interface Operation</a> component
|
|
may refer to the same message label. In that case, the listed fault
|
|
types define alternative fault messages. This allows one to
|
|
indicate that there is more than one type of fault that is related
|
|
to that message.</p>
|
|
<a name="zed-InterfaceOperationParent" id=
|
|
"zed-InterfaceOperationParent"></a><a name=
|
|
"zed-InterfaceOperationCM" id="zed-InterfaceOperationCM"></a>
|
|
<div class="div4">
|
|
<h5><a name="MessageExchangePattern" id=
|
|
"MessageExchangePattern"></a>2.4.1.1 Message Exchange Pattern</h5>
|
|
<p>This section describes some aspects of message exchange patterns
|
|
in more detail. Refer to the <em>Web Services Description Language
|
|
(WSDL) Version 2.0 Part 2: Adjuncts</em> specification
|
|
[<cite><a href="#WSDL-PART2">WSDL 2.0 Adjuncts</a></cite>] for a
|
|
complete discussion of the semantics of message exchange patterns
|
|
in general, as well as the definitions of the message exchange
|
|
patterns that are predefined by WSDL 2.0.</p>
|
|
<p>A <em>placeholder message</em> is a template for an actual
|
|
message as described by an <a href=
|
|
"#component-InterfaceMessageReference">Interface Message
|
|
Reference</a> component. Although a placeholder message is not
|
|
itself a component, it is useful to regard it as having both a
|
|
{<a href="#property-InterfaceMessageReference.messagelabel">message
|
|
label</a>} and a {<a href=
|
|
"#property-InterfaceMessageReference.direction">direction</a>}
|
|
property which define the values of the actual <a href=
|
|
"#component-InterfaceMessageReference">Interface Message
|
|
Reference</a> component that corresponds to it. A placeholder
|
|
message is also associated with some node that exchanges the
|
|
message with the service. Furthermore, a placeholder message may be
|
|
designated as optional in the exchange.</p>
|
|
<a name="zed-Node" id="zed-Node"></a><a name=
|
|
"zed-PlaceholderMessage" id="zed-PlaceholderMessage"></a>
|
|
<p>A <em>fault propagation ruleset</em> specifies the relation
|
|
between the <a href="#component-InterfaceFaultReference">Interface
|
|
Fault Reference</a> and <a href=
|
|
"#component-InterfaceMessageReference">Interface Message
|
|
Reference</a> components of an <a href=
|
|
"#component-InterfaceOperation">Interface Operation</a> component.
|
|
The <em>Web Services Description Language (WSDL) Version 2.0 Part
|
|
2: Adjuncts</em> specification [<cite><a href="#WSDL-PART2">WSDL
|
|
2.0 Adjuncts</a></cite>] defines three fault propagation rulesets
|
|
which we will refer to as <em>fault-replaces-message</em>,
|
|
<em>message-triggers-fault</em>, and <em>no-faults</em>. These
|
|
three fault propagation rulesets are used by the predefined message
|
|
exchange patterns defined in [<cite><a href="#WSDL-PART2">WSDL 2.0
|
|
Adjuncts</a></cite>]. Other message exchange patterns can define
|
|
additional fault propagation rulesets.</p>
|
|
<a name="zed-FaultPropagationRuleset" id=
|
|
"zed-FaultPropagationRuleset"></a>
|
|
<p>A <em>message exchange pattern</em> is a template for the
|
|
exchange of one or more messages, and their associated faults,
|
|
between the service and one or more other nodes as described by an
|
|
<a href="#component-InterfaceOperation">Interface Operation</a>
|
|
component. The service and the other nodes are referred to as the
|
|
<em>participants</em> in the exchange. More specifically, a message
|
|
exchange pattern consists of a sequence of one or more placeholder
|
|
messages. Each placeholder message within this sequence is uniquely
|
|
identified by its {<a href=
|
|
"#property-InterfaceMessageReference.messagelabel">message
|
|
label</a>} property. <span id="MEP-1022" class=
|
|
"test-assertion-tr">A message exchange pattern is itself uniquely
|
|
identified by an absolute IRI, which is used as the value of the
|
|
{<a href=
|
|
"#property-InterfaceOperation.messageexchangepattern">message
|
|
exchange pattern</a>} property of the <a href=
|
|
"#component-InterfaceOperation">Interface Operation</a> component,
|
|
and which specifies the fault propagation ruleset that its faults
|
|
obey.<sup><a href="#MEP-1022-summary" title=
|
|
"Link to assertion MEP-1022 summary">†</a></sup></span></p>
|
|
<a name="zed-MessageExchangePattern" id=
|
|
"zed-MessageExchangePattern"></a></div>
|
|
<div class="div4">
|
|
<h5><a name="InterfaceOperationStyle" id=
|
|
"InterfaceOperationStyle"></a>2.4.1.2 Operation Style</h5>
|
|
<p>An operation style specifies additional information about an
|
|
operation. For example, an operation style may define structural
|
|
constraints on the element declarations of the interface message
|
|
reference or interface fault components used by the operation. This
|
|
additional information in no way affects the messages and faults
|
|
exchanged with the service and it can therefore be safely ignored
|
|
in that context. However, the additional information can be used
|
|
for other purposes, for example, improved code generation. The
|
|
{<a href="#property-InterfaceOperation.style">style</a>} property
|
|
of the <a href="#component-InterfaceOperation">Interface
|
|
Operation</a> component contains a set of zero or more IRIs that
|
|
identify operation styles. <span id="InterfaceOperation-1023"
|
|
class="test-assertion-tr">An <a href=
|
|
"#component-InterfaceOperation">Interface Operation</a> component
|
|
MUST satisfy the specification defined by each operation style
|
|
identified by its {<a href=
|
|
"#property-InterfaceOperation.style">style</a>} property.
|
|
<sup><a href="#InterfaceOperation-1023-summary" title=
|
|
"Link to assertion InterfaceOperation-1023 summary">†</a></sup></span>
|
|
If no <a href="#component-InterfaceOperation">Interface
|
|
Operation</a> component can simultaneously satisfy all of the
|
|
styles, the document is invalid.</p>
|
|
<p>If the {<a href="#property-InterfaceOperation.style">style</a>}
|
|
property of an <a href="#component-InterfaceOperation">Interface
|
|
Operation</a> component does have a value, then that value (a set
|
|
of IRIs) specifies the rules that were used to define the element
|
|
declarations (or other properties that define the message and fault
|
|
contents; see <a href="#other-types"><strong>3.2 Using Other Schema
|
|
Languages</strong></a>) of the <a href=
|
|
"#component-InterfaceMessageReference">Interface Message
|
|
Reference</a> or <a href="#component-InterfaceFault">Interface
|
|
Fault</a> components used by the operation. Although a given
|
|
operation style has the ability to constrain <em>all</em> input and
|
|
output messages and faults of an operation, it MAY choose to
|
|
constrain any combination thereof, e.g. only the messages, or only
|
|
the inputs.</p>
|
|
<p>Please refer to the <em>Web Services Description Language (WSDL)
|
|
Version 2.0 Part 2: Adjuncts</em> specification [<cite><a href=
|
|
"#WSDL-PART2">WSDL 2.0 Adjuncts</a></cite>] for particular
|
|
operation style definitions.</p>
|
|
</div>
|
|
</div>
|
|
<div class="div3">
|
|
<h4><a name="InterfaceOperation_XMLRep" id=
|
|
"InterfaceOperation_XMLRep"></a>2.4.2 XML Representation of
|
|
Interface Operation Component</h4>
|
|
<div class="exampleInner">
|
|
<pre xml:space="preserve">
|
|
<description>
|
|
<interface>
|
|
<<strong>operation</strong>
|
|
name="<em>xs:NCName</em>"
|
|
pattern="<em>xs:anyURI</em>"?
|
|
style="<em>list of xs:anyURI</em>"? >
|
|
<documentation />*
|
|
[ <input /> | <output /> | <infault /> | <outfault /> ]*
|
|
</<strong>operation</strong>>
|
|
</interface>
|
|
</description>
|
|
</pre></div>
|
|
<p>The XML representation for an <a href=
|
|
"#component-InterfaceOperation">Interface Operation</a> component
|
|
is an <em>element information item</em> with the following Infoset
|
|
properties:</p>
|
|
<ul>
|
|
<li>
|
|
<p>A [local name] of <code>operation</code></p>
|
|
</li>
|
|
<li>
|
|
<p>A [namespace name] of "http://www.w3.org/ns/wsdl"</p>
|
|
</li>
|
|
<li>
|
|
<p>Two 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>
|
|
as described below in <a href=
|
|
"#Interfaceoperation_name_attribute"><strong>2.4.2.1 name attribute
|
|
information item with operation [owner element]</strong></a>.</p>
|
|
</li>
|
|
<li>
|
|
<p>An OPTIONAL <code>pattern</code> <em>attribute information
|
|
item</em> as described below in <a href=
|
|
"#Interfaceoperation_pattern_attribute"><strong>2.4.2.2 pattern
|
|
attribute information item with operation [owner
|
|
element]</strong></a>.</p>
|
|
</li>
|
|
<li>
|
|
<p>An OPTIONAL <code>style</code> <em>attribute information
|
|
item</em> as described below in <a href=
|
|
"#InterfaceOperation_style_attribute"><strong>2.4.2.3 style
|
|
attribute information item with operation [owner
|
|
element]</strong></a>.</p>
|
|
</li>
|
|
<li>
|
|
<p>Zero or more namespace qualified <em>attribute information
|
|
item</em>s whose [namespace name] is NOT
|
|
"http://www.w3.org/ns/wsdl".</p>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
<li>
|
|
<p>One 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 (see <a href="#eii-documentation"><strong>5.
|
|
Documentation</strong></a>).</p>
|
|
</li>
|
|
<li>
|
|
<p>One or more <em>element information item</em>s from among the
|
|
following, in any order:</p>
|
|
<ul>
|
|
<li>
|
|
<p>One or more <em>element information item</em>s from among the
|
|
following, in any order:</p>
|
|
<ul>
|
|
<li>
|
|
<p>Zero or more <code>input</code> <em>element information
|
|
item</em>s (see <a href=
|
|
"#InterfaceMessageReference_XMLRep"><strong>2.5.2 XML
|
|
Representation of Interface Message Reference
|
|
Component</strong></a>).</p>
|
|
</li>
|
|
<li>
|
|
<p>Zero or more <code>output</code> <em>element information
|
|
item</em>s (see <a href=
|
|
"#InterfaceMessageReference_XMLRep"><strong>2.5.2 XML
|
|
Representation of Interface Message Reference
|
|
Component</strong></a>).</p>
|
|
</li>
|
|
<li>
|
|
<p>Zero or more <code>infault</code> <em>element information
|
|
item</em>s (see <a href=
|
|
"#InterfaceFaultReference_XMLRep"><strong>2.6.2 XML Representation
|
|
of Interface Fault Reference</strong></a>).</p>
|
|
</li>
|
|
<li>
|
|
<p>Zero or more <code>outfault</code> <em>element information
|
|
item</em>s (see <a href=
|
|
"#InterfaceFaultReference_XMLRep"><strong>2.6.2 XML Representation
|
|
of Interface Fault Reference</strong></a>).</p>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
<li>
|
|
<p>Zero or more namespace-qualified <em>element information
|
|
item</em>s whose [namespace name] is NOT
|
|
"http://www.w3.org/ns/wsdl".</p>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
</ol>
|
|
</li>
|
|
</ul>
|
|
<div class="div4">
|
|
<h5><a name="Interfaceoperation_name_attribute" id=
|
|
"Interfaceoperation_name_attribute"></a>2.4.2.1 <code>name</code>
|
|
<em>attribute information item</em> with <code>operation</code>
|
|
[owner element]</h5>
|
|
<p>The <code>name</code> <em>attribute information item</em>
|
|
identifies a given <code>operation</code> <em>element information
|
|
item</em> inside a given <code>interface</code> <em>element
|
|
information item</em>.</p>
|
|
<p>The <code>name</code> <em>attribute information item</em> has
|
|
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>
|
|
</ul>
|
|
<p>The type of the <code>name</code> <em>attribute information
|
|
item</em> is <em>xs:NCName</em>.</p>
|
|
</div>
|
|
<div class="div4">
|
|
<h5><a name="Interfaceoperation_pattern_attribute" id=
|
|
"Interfaceoperation_pattern_attribute"></a>2.4.2.2
|
|
<code>pattern</code> <em>attribute information item</em> with
|
|
<code>operation</code> [owner element]</h5>
|
|
<p>The <code>pattern</code> <em>attribute information item</em>
|
|
identifies the message exchange pattern a given operation uses.</p>
|
|
<p>The <code>pattern</code> <em>attribute information item</em> has
|
|
the following Infoset properties:</p>
|
|
<ul>
|
|
<li>
|
|
<p>A [local name] of <code>pattern</code></p>
|
|
</li>
|
|
<li>
|
|
<p>A [namespace name] which has no value</p>
|
|
</li>
|
|
</ul>
|
|
<p>The type of the <code>pattern</code> <em>attribute information
|
|
item</em> is <em>xs:anyURI</em>. Note that its value must be an
|
|
absolute IRI (see [<cite><a href="#RFC3987">IETF RFC
|
|
3987</a></cite>]).</p>
|
|
</div>
|
|
<div class="div4">
|
|
<h5><a name="InterfaceOperation_style_attribute" id=
|
|
"InterfaceOperation_style_attribute"></a>2.4.2.3 <code>style</code>
|
|
<em>attribute information item</em> with <code>operation</code>
|
|
[owner element]</h5>
|
|
<p>The <code>style</code> <em>attribute information item</em>
|
|
indicates the rules that were used to construct the {<a href=
|
|
"#property-InterfaceMessageReference.elementdeclaration">element
|
|
declaration</a>} properties of the <a href=
|
|
"#component-InterfaceMessageReference">Interface Message
|
|
Reference</a> components which are members of the {<a href=
|
|
"#property-InterfaceOperation.interfacemessagereferences">interface
|
|
message references</a>} property of the [owner element]
|
|
operation.</p>
|
|
<p>The <code>style</code> <em>attribute information item</em> has
|
|
the following Infoset properties:</p>
|
|
<ul>
|
|
<li>
|
|
<p>A [local name] of <code>style</code></p>
|
|
</li>
|
|
<li>
|
|
<p>A [namespace name] which has no value</p>
|
|
</li>
|
|
</ul>
|
|
<p>The type of the <code>style</code> <em>attribute information
|
|
item</em> is <em>list of xs:anyURI</em>. Note that its value must
|
|
be an absolute IRI (see [<cite><a href="#RFC3987">IETF RFC
|
|
3987</a></cite>]).</p>
|
|
</div>
|
|
</div>
|
|
<div class="div3">
|
|
<h4><a name="InterfaceOperation_Mapping" id=
|
|
"InterfaceOperation_Mapping"></a>2.4.3 Mapping Interface
|
|
Operation's XML Representation to Component Properties</h4>
|
|
<p>The mapping from the XML Representation of the
|
|
<code>operation</code> <em>element information item</em> (see
|
|
<a href="#InterfaceOperation_XMLRep"><strong>2.4.2 XML
|
|
Representation of Interface Operation Component</strong></a>) to
|
|
the properties of the Interface Operation component (see <a href=
|
|
"#InterfaceOperation_details"><strong>2.4.1 The Interface Operation
|
|
Component</strong></a>) is as described in <a href=
|
|
"#tab_InterfaceOperation_Mapping">Table 2-4</a>.</p>
|
|
<a name="tab_InterfaceOperation_Mapping" id=
|
|
"tab_InterfaceOperation_Mapping"></a>
|
|
<table border="1">
|
|
<caption>Table 2-4. Mapping from XML Representation 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.name">name</a>}</td>
|
|
<td rowspan="1" colspan="1">The QName whose local name is the
|
|
actual value of the <code>name</code> <em>attribute information
|
|
item</em> and whose namespace name is the actual value of the
|
|
<code>targetNamespace</code> <em>attribute information item</em> of
|
|
the [parent] <code>description</code> <em>element information
|
|
item</em> of the [parent] <code>interface</code> <em>element
|
|
information item</em>.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">{<a href=
|
|
"#property-InterfaceOperation.messageexchangepattern">message
|
|
exchange pattern</a>}</td>
|
|
<td rowspan="1" colspan="1">The actual value of the
|
|
<code>pattern</code> <em>attribute information item</em>; otherwise
|
|
'http://www.w3.org/ns/wsdl/in-out'.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">{<a href=
|
|
"#property-InterfaceOperation.interfacemessagereferences">interface
|
|
message references</a>}</td>
|
|
<td rowspan="1" colspan="1">The set of message references
|
|
corresponding to the <code>input</code> and <code>output</code>
|
|
<em>element information item</em>s in [children], if any.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">{<a href=
|
|
"#property-InterfaceOperation.interfacefaultreferences">interface
|
|
fault references</a>}</td>
|
|
<td rowspan="1" colspan="1">The set of interface fault references
|
|
corresponding to the <code>infault</code> and <code>outfault</code>
|
|
<em>element information item</em>s in [children], if any.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">{<a href=
|
|
"#property-InterfaceOperation.style">style</a>}</td>
|
|
<td rowspan="1" colspan="1">The set containing the IRIs in the
|
|
actual value of the <code>style</code> <em>attribute information
|
|
item</em>, if present; otherwise the set containing the IRIs in the
|
|
actual value of the <code>styleDefault</code> <em>attribute
|
|
information item</em> of the [parent] <code>interface</code>
|
|
<em>element information item</em>, if present; otherwise
|
|
empty.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">{<a href=
|
|
"#property-InterfaceOperation.parent">parent</a>}</td>
|
|
<td rowspan="1" colspan="1">The <a href=
|
|
"#component-Interface">Interface</a> component corresponding to the
|
|
<code>interface</code> <em>element information item</em> in
|
|
[parent].</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
<br /></div>
|
|
</div>
|
|
<div class="div2">
|
|
<h3><a name="InterfaceMessageReference" id=
|
|
"InterfaceMessageReference"></a>2.5 Interface Message
|
|
Reference</h3>
|
|
<div class="div3">
|
|
<h4><a name="InterfaceMessageReference_details" id=
|
|
"InterfaceMessageReference_details"></a>2.5.1 The Interface Message
|
|
Reference Component</h4>
|
|
<p>An <a href="#component-InterfaceMessageReference">Interface
|
|
Message Reference</a> component defines the content, or
|
|
<em>payload</em>, of a message exchanged in an operation. By
|
|
default, the message content is defined by an XML-based type system
|
|
such as XML Schema. Other type systems may be used via the WSDL 2.0
|
|
type system extension mechanism.</p>
|
|
<p>A message exchange pattern defines a set of placeholder messages
|
|
that participate in the pattern and assigns them unique message
|
|
labels within the pattern (e.g. 'In', 'Out'). The purpose of an
|
|
<a href="#component-InterfaceMessageReference">Interface Message
|
|
Reference</a> component is to associate an actual message element
|
|
(XML element declaration or some other declaration (see <a href=
|
|
"#other-types"><strong>3.2 Using Other Schema
|
|
Languages</strong></a>)) with a message in the pattern, as
|
|
identified by its message label. Later, when the message exchange
|
|
pattern is instantiated, messages corresponding to that particular
|
|
label will follow the element assignment made by the <a href=
|
|
"#component-InterfaceMessageReference">Interface Message
|
|
Reference</a> component.</p>
|
|
<p>The properties of the <a name=
|
|
"component-InterfaceMessageReference" id=
|
|
"component-InterfaceMessageReference">Interface Message
|
|
Reference</a> component are as follows:</p>
|
|
<ul>
|
|
<li>
|
|
<p>{<a name="property-InterfaceMessageReference.messagelabel" id=
|
|
"property-InterfaceMessageReference.messagelabel">message
|
|
label</a>} REQUIRED. An <em>xs:NCName</em>. This property
|
|
identifies the role this message plays in the {<a href=
|
|
"#property-InterfaceOperation.messageexchangepattern">message
|
|
exchange pattern</a>} of the <a href=
|
|
"#component-InterfaceOperation">Interface Operation</a> component
|
|
this message is contained within. <span id="MessageLabel-1024"
|
|
class="test-assertion-tr">The value of this property MUST match the
|
|
name of a placeholder message defined by the message exchange
|
|
pattern.<sup><a href="#MessageLabel-1024-summary" title=
|
|
"Link to assertion MessageLabel-1024 summary">†</a></sup></span></p>
|
|
</li>
|
|
<li>
|
|
<p>{<a name="property-InterfaceMessageReference.direction" id=
|
|
"property-InterfaceMessageReference.direction">direction</a>}
|
|
REQUIRED. <span id="InterfaceMessageReference-1025" class=
|
|
"test-assertion-tr">An <em>xs:token</em> with one of the values
|
|
<em>in</em> or <em>out</em>, indicating whether the message is
|
|
coming to the service or going from the service,
|
|
respectively.<sup><a href="#InterfaceMessageReference-1025-summary"
|
|
title=
|
|
"Link to assertion InterfaceMessageReference-1025 summary">†</a></sup></span> 
|
|
<span id="InterfaceMessageReference-1026" class=
|
|
"test-assertion-tr">The direction MUST be the same as the direction
|
|
of the message identified by the {<a href=
|
|
"#property-InterfaceMessageReference.messagelabel">message
|
|
label</a>} property in the {<a href=
|
|
"#property-InterfaceOperation.messageexchangepattern">message
|
|
exchange pattern</a>} of the <a href=
|
|
"#component-InterfaceOperation">Interface Operation</a> component
|
|
this is contained within.<sup><a href=
|
|
"#InterfaceMessageReference-1026-summary" title=
|
|
"Link to assertion InterfaceMessageReference-1026 summary">†</a></sup></span></p>
|
|
</li>
|
|
<li>
|
|
<p>{<a name=
|
|
"property-InterfaceMessageReference.messagecontentmodel" id=
|
|
"property-InterfaceMessageReference.messagecontentmodel">message
|
|
content model</a>} REQUIRED. <span id=
|
|
"InterfaceMessageReference-1027" class="test-assertion-tr">An
|
|
<em>xs:token</em> with one of the values <em>#any</em>,
|
|
<em>#none</em>, <em>#other</em>, or <em>#element</em>.<sup><a href=
|
|
"#InterfaceMessageReference-1027-summary" title=
|
|
"Link to assertion InterfaceMessageReference-1027 summary">†</a></sup></span>
|
|
A value of <em>#any</em> indicates that the message content is any
|
|
single element. A value of <em>#none</em> indicates there is no
|
|
message content. A value of <em>#other</em> indicates that the
|
|
message content is described by some other extension property that
|
|
references a declaration in a non-XML extension type system. A
|
|
value of <em>#element</em> indicates that the message consists of a
|
|
single element described by the global element declaration
|
|
referenced by the {<a href=
|
|
"#property-InterfaceMessageReference.elementdeclaration">element
|
|
declaration</a>} property. This property is used only when the
|
|
message is described using an XML-based data model.</p>
|
|
</li>
|
|
<li>
|
|
<p>{<a name="property-InterfaceMessageReference.elementdeclaration"
|
|
id="property-InterfaceMessageReference.elementdeclaration">element
|
|
declaration</a>} OPTIONAL. A reference to an <a href=
|
|
"#component-ElementDeclaration">Element Declaration</a> component
|
|
in the {<a href="#property-Description.elementdeclarations">element
|
|
declarations</a>} property of the <a href=
|
|
"#component-Description">Description</a> component. This element
|
|
represents the content or “payload” of the message. <span id=
|
|
"InterfaceMessageReference-1028" class="test-assertion-tr">When the
|
|
{<a href=
|
|
"#property-InterfaceMessageReference.messagecontentmodel">message
|
|
content model</a>} property has the value <em>#any</em> or
|
|
<em>#none</em>, the {<a href=
|
|
"#property-InterfaceMessageReference.elementdeclaration">element
|
|
declaration</a>} property MUST be empty.<sup><a href=
|
|
"#InterfaceMessageReference-1028-summary" title=
|
|
"Link to assertion InterfaceMessageReference-1028 summary">†</a></sup></span></p>
|
|
</li>
|
|
<li>
|
|
<p>{<a name="property-InterfaceMessageReference.parent" id=
|
|
"property-InterfaceMessageReference.parent">parent</a>} REQUIRED.
|
|
The <a href="#component-InterfaceOperation">Interface Operation</a>
|
|
component that contains this component in its {<a href=
|
|
"#property-InterfaceOperation.interfacemessagereferences">interface
|
|
message references</a>} property.</p>
|
|
</li>
|
|
</ul>
|
|
<a name="zed-Direction" id="zed-Direction"></a><a name=
|
|
"zed-MessageContentModel" id="zed-MessageContentModel"></a><a name=
|
|
"zed-InterfaceMessageReference" id=
|
|
"zed-InterfaceMessageReference"></a><a name=
|
|
"zed-InterfaceMessageReferenceRI" id=
|
|
"zed-InterfaceMessageReferenceRI"></a>
|
|
<p><span id="InterfaceMessageReference-1029" class=
|
|
"test-assertion-tr">For each <a href=
|
|
"#component-InterfaceMessageReference">Interface Message
|
|
Reference</a> component in the {<a href=
|
|
"#property-InterfaceOperation.interfacemessagereferences">interface
|
|
message references</a>} property of an <a href=
|
|
"#component-InterfaceOperation">Interface Operation</a> component,
|
|
its {<a href=
|
|
"#property-InterfaceMessageReference.messagelabel">message
|
|
label</a>} property MUST be unique.<sup><a href=
|
|
"#InterfaceMessageReference-1029-summary" title=
|
|
"Link to assertion InterfaceMessageReference-1029 summary">†</a></sup></span></p>
|
|
<a name="zed-InterfaceMessageReferenceKey" id=
|
|
"zed-InterfaceMessageReferenceKey"></a>
|
|
<p>If a type system not based upon the XML Infoset is in use (as
|
|
considered in <a href="#other-types"><strong>3.2 Using Other Schema
|
|
Languages</strong></a>), then additional properties would need to
|
|
be added to the <a href=
|
|
"#component-InterfaceMessageReference">Interface Message
|
|
Reference</a> component (along with extension attributes to its XML
|
|
representation) to allow associating such message types with the
|
|
message reference.</p>
|
|
<a name="zed-InterfaceMessageReferenceCM" id=
|
|
"zed-InterfaceMessageReferenceCM"></a></div>
|
|
<div class="div3">
|
|
<h4><a name="InterfaceMessageReference_XMLRep" id=
|
|
"InterfaceMessageReference_XMLRep"></a>2.5.2 XML Representation of
|
|
Interface Message Reference Component</h4>
|
|
<div class="exampleInner">
|
|
<pre xml:space="preserve">
|
|
<description>
|
|
<interface>
|
|
<operation>
|
|
<<strong>input</strong>
|
|
messageLabel="<em>xs:NCName</em>"?
|
|
element="<em>union of xs:QName, xs:token</em>"? >
|
|
<documentation />*
|
|
</<strong>input</strong>>
|
|
<<strong>output</strong>
|
|
messageLabel="<em>xs:NCName</em>"?
|
|
element="<em>union of xs:QName, xs:token</em>"? >
|
|
<documentation />*
|
|
</<strong>output</strong>>
|
|
</operation>
|
|
</interface>
|
|
</description>
|
|
</pre></div>
|
|
<p>The XML representation for an <a href=
|
|
"#component-InterfaceMessageReference">Interface Message
|
|
Reference</a> component is an <em>element information item</em>
|
|
with the following Infoset properties:</p>
|
|
<ul>
|
|
<li>
|
|
<p>A [local name] of <code>input</code> or <code>output</code></p>
|
|
</li>
|
|
<li>
|
|
<p>A [namespace name] of "http://www.w3.org/ns/wsdl"</p>
|
|
</li>
|
|
<li>
|
|
<p>Zero or more <em>attribute information item</em>s amongst its
|
|
[attributes] as follows:</p>
|
|
<ul>
|
|
<li>
|
|
<p>An OPTIONAL <code>messageLabel</code> <em>attribute information
|
|
item</em> as described below in <a href=
|
|
"#InterfaceMessageReference_messageReference_attribute"><strong>2.5.2.1
|
|
messageLabel attribute information item with input or output [owner
|
|
element]</strong></a>.</p>
|
|
</li>
|
|
<li>
|
|
<p>An OPTIONAL <code>element</code> <em>attribute information
|
|
item</em> as described below in <a href=
|
|
"#InterfaceMessageReference_element_attribute"><strong>2.5.2.2
|
|
element attribute information item with input or output [owner
|
|
element]</strong></a>.</p>
|
|
</li>
|
|
<li>
|
|
<p>Zero or more namespace qualified <em>attribute information
|
|
item</em>s whose [namespace name] is NOT
|
|
"http://www.w3.org/ns/wsdl".</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 (see <a href="#eii-documentation"><strong>5.
|
|
Documentation</strong></a>).</p>
|
|
</li>
|
|
<li>
|
|
<p>Zero or more namespace-qualified <em>element information
|
|
item</em>s whose [namespace name] is NOT
|
|
"http://www.w3.org/ns/wsdl".</p>
|
|
</li>
|
|
</ol>
|
|
</li>
|
|
</ul>
|
|
<div class="div4">
|
|
<h5><a name="InterfaceMessageReference_messageReference_attribute"
|
|
id=
|
|
"InterfaceMessageReference_messageReference_attribute"></a>2.5.2.1
|
|
<code>messageLabel</code> <em>attribute information item</em> with
|
|
<code>input</code> or <code>output</code> [owner element]</h5>
|
|
<p>The <code>messageLabel</code> <em>attribute information
|
|
item</em> identifies the role of this message in the message
|
|
exchange pattern of the given <code>operation</code> <em>element
|
|
information item</em>.</p>
|
|
<p>The <code>messageLabel</code> <em>attribute information
|
|
item</em> has the following Infoset properties:</p>
|
|
<ul>
|
|
<li>
|
|
<p>A [local name] of <code>messageLabel</code></p>
|
|
</li>
|
|
<li>
|
|
<p>A [namespace name] which has no value</p>
|
|
</li>
|
|
</ul>
|
|
<p>The type of the <code>messageLabel</code> <em>attribute
|
|
information item</em> is <em>xs:NCName</em>.</p>
|
|
</div>
|
|
<div class="div4">
|
|
<h5><a name="InterfaceMessageReference_element_attribute" id=
|
|
"InterfaceMessageReference_element_attribute"></a>2.5.2.2
|
|
<code>element</code> <em>attribute information item</em> with
|
|
<code>input</code> or <code>output</code> [owner element]</h5>
|
|
<p>The <code>element</code> <em>attribute information item</em> has
|
|
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>
|
|
</ul>
|
|
<p>The type of the <code>element</code> <em>attribute information
|
|
item</em> is a union of <em>xs:QName</em> and <em>xs:token</em>
|
|
where the allowed token values are <em>#any</em>, <em>#none</em>,
|
|
or <em>#other</em>.</p>
|
|
</div>
|
|
</div>
|
|
<div class="div3">
|
|
<h4><a name="InterfaceMessageReference_Mapping" id=
|
|
"InterfaceMessageReference_Mapping"></a>2.5.3 Mapping Interface
|
|
Message Reference's XML Representation to Component Properties</h4>
|
|
<p>The mapping from the XML Representation of the interface message
|
|
reference <em>element information item</em> (see <a href=
|
|
"#InterfaceMessageReference_XMLRep"><strong>2.5.2 XML
|
|
Representation of Interface Message Reference
|
|
Component</strong></a>) to the properties of the <a href=
|
|
"#component-InterfaceMessageReference">Interface Message
|
|
Reference</a> component (see <a href=
|
|
"#InterfaceMessageReference_details"><strong>2.5.1 The Interface
|
|
Message Reference Component</strong></a>) is as described in
|
|
<a href="#tab_InterfaceMessageReference_Mapping">Table 2-5</a> and
|
|
uses the definitions below.</p>
|
|
<p>Define the <em>message exchange pattern</em> of the <em>element
|
|
information item</em> to be the {<a href=
|
|
"#property-InterfaceOperation.messageexchangepattern">message
|
|
exchange pattern</a>} of the parent <a href=
|
|
"#component-InterfaceOperation">Interface Operation</a>
|
|
component.</p>
|
|
<p>Define the <em>message direction</em> of the <em>element
|
|
information item</em> to be <em>in</em> if its local name is
|
|
<code>input</code>, and <em>out</em> if its local name is
|
|
<code>output</code>.</p>
|
|
<p>Note that the <code>messageLabel</code> <em>attribute
|
|
information item</em> of an interface message reference <em>element
|
|
information item</em> must be present if the message exchange
|
|
pattern has more than one placeholder message with {<a href=
|
|
"#property-InterfaceMessageReference.direction">direction</a>}
|
|
equal to the message direction.</p>
|
|
<p><span id="MessageLabel-1030" class="test-assertion-tr">If the
|
|
<code>messageLabel</code> <em>attribute information item</em> of an
|
|
interface message reference <em>element information item</em> is
|
|
present, then its actual value MUST match the {<a href=
|
|
"#property-InterfaceMessageReference.messagelabel">message
|
|
label</a>} of some placeholder message with {<a href=
|
|
"#property-InterfaceMessageReference.direction">direction</a>}
|
|
equal to the message direction. <sup><a href=
|
|
"#MessageLabel-1030-summary" title=
|
|
"Link to assertion MessageLabel-1030 summary">†</a></sup></span></p>
|
|
<p><span id="MessageLabel-1031" class="test-assertion-tr">If the
|
|
<code>messageLabel</code> <em>attribute information item</em> of an
|
|
interface message reference <em>element information item</em> is
|
|
absent then there MUST be a unique placeholder message with
|
|
{<a href=
|
|
"#property-InterfaceMessageReference.direction">direction</a>}
|
|
equal to the message direction. <sup><a href=
|
|
"#MessageLabel-1031-summary" title=
|
|
"Link to assertion MessageLabel-1031 summary">†</a></sup></span></p>
|
|
<p>Define the <em>effective message label</em> of an interface
|
|
message reference <em>element information item</em> to be either
|
|
the actual value of the <code>messageLabel</code> <em>attribute
|
|
information item</em> if it is present, or the {<a href=
|
|
"#property-InterfaceMessageReference.messagelabel">message
|
|
label</a>} of the unique placeholder message with {<a href=
|
|
"#property-InterfaceMessageReference.direction">direction</a>}
|
|
equal to the message direction if the <em>attribute information
|
|
item</em> is absent.</p>
|
|
<p><span id="MessageLabel-1032" class="test-assertion-tr">If the
|
|
local name is <code>input</code> then the message exchange pattern
|
|
MUST have at least one placeholder message with direction
|
|
"In".<sup><a href="#MessageLabel-1032-summary" title=
|
|
"Link to assertion MessageLabel-1032 summary">†</a></sup></span></p>
|
|
<p><span id="MessageLabel-1033" class="test-assertion-tr">If the
|
|
local name is <code>output</code> then the message exchange pattern
|
|
MUST have at least one placeholder message with direction
|
|
"Out".<sup><a href="#MessageLabel-1033-summary" title=
|
|
"Link to assertion MessageLabel-1033 summary">†</a></sup></span></p>
|
|
<p><span id="MessageLabel-1034" class="test-assertion-tr">If the
|
|
local name is <code>infault</code> then the message exchange
|
|
pattern MUST support at least one fault in the "In"
|
|
direction.<sup><a href="#MessageLabel-1034-summary" title=
|
|
"Link to assertion MessageLabel-1034 summary">†</a></sup></span></p>
|
|
<p><span id="MessageLabel-1035" class="test-assertion-tr">If the
|
|
local name is <code>outfault</code> then the message exchange
|
|
pattern MUST support at least one fault in the "Out"
|
|
direction.<sup><a href="#MessageLabel-1035-summary" title=
|
|
"Link to assertion MessageLabel-1035 summary">†</a></sup></span></p>
|
|
<a name="tab_InterfaceMessageReference_Mapping" id=
|
|
"tab_InterfaceMessageReference_Mapping"></a>
|
|
<table border="1">
|
|
<caption>Table 2-5. Mapping from XML Representation to Interface
|
|
Message Reference 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-InterfaceMessageReference.messagelabel">message
|
|
label</a>}</td>
|
|
<td rowspan="1" colspan="1">The effective message label.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">{<a href=
|
|
"#property-InterfaceMessageReference.direction">direction</a>}</td>
|
|
<td rowspan="1" colspan="1">The message direction.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">{<a href=
|
|
"#property-InterfaceMessageReference.messagecontentmodel">message
|
|
content model</a>}</td>
|
|
<td rowspan="1" colspan="1">If the <code>element</code>
|
|
<em>attribute information item</em> is present and its value is a
|
|
QName, then <em>#element</em>; otherwise the actual value of the
|
|
<code>element</code> <em>attribute information item</em>, if any;
|
|
otherwise <em>#other</em>.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">{<a href=
|
|
"#property-InterfaceMessageReference.elementdeclaration">element
|
|
declaration</a>}</td>
|
|
<td rowspan="1" colspan="1">If the <code>element</code>
|
|
<em>attribute information item</em> is present and its value is a
|
|
QName, then the <a href="#component-ElementDeclaration">Element
|
|
Declaration</a> component from the {<a href=
|
|
"#property-Description.elementdeclarations">element
|
|
declarations</a>} property of the <a href=
|
|
"#component-Description">Description</a> component resolved to by
|
|
the value of the <code>element</code> <em>attribute information
|
|
item</em> (see <a href="#qnameres"><strong>2.17 QName
|
|
resolution</strong></a>); otherwise empty. <span id=
|
|
"InterfaceMessageReference-1036" class="test-assertion-tr">If the
|
|
<code>element</code> <em>attribute information item</em> has a
|
|
value, then it MUST resolve to an <a href=
|
|
"#component-ElementDeclaration">Element Declaration</a> component
|
|
from the {<a href=
|
|
"#property-Description.elementdeclarations">element
|
|
declarations</a>} property of the <a href=
|
|
"#component-Description">Description</a> component.<sup><a href=
|
|
"#InterfaceMessageReference-1036-summary" title=
|
|
"Link to assertion InterfaceMessageReference-1036 summary">†</a></sup></span></td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">{<a href=
|
|
"#property-InterfaceMessageReference.parent">parent</a>}</td>
|
|
<td rowspan="1" colspan="1">The <a href=
|
|
"#component-InterfaceOperation">Interface Operation</a> component
|
|
corresponding to the <code>interface</code> <em>element information
|
|
item</em> in [parent].</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
<br /></div>
|
|
</div>
|
|
<div class="div2">
|
|
<h3><a name="InterfaceFaultReference" id=
|
|
"InterfaceFaultReference"></a>2.6 Interface Fault Reference</h3>
|
|
<div class="div3">
|
|
<h4><a name="InterfaceFaultReference_details" id=
|
|
"InterfaceFaultReference_details"></a>2.6.1 The Interface Fault
|
|
Reference Component</h4>
|
|
<p>An <a href="#component-InterfaceFaultReference">Interface Fault
|
|
Reference</a> component associates a defined type, specified by an
|
|
<a href="#component-InterfaceFault">Interface Fault</a> component,
|
|
to a fault message exchanged in an operation.</p>
|
|
<p>A message exchange pattern defines a set of placeholder messages
|
|
that participate in the pattern and assigns them unique message
|
|
labels within the pattern (e.g. 'In', 'Out'). The purpose of an
|
|
<a href="#component-InterfaceFaultReference">Interface Fault
|
|
Reference</a> component is to associate an actual message type (XML
|
|
element declaration or some other declaration (see <a href=
|
|
"#other-types"><strong>3.2 Using Other Schema
|
|
Languages</strong></a>) for message content, as specified by an
|
|
<a href="#component-InterfaceFault">Interface Fault</a> component)
|
|
with a fault message occurring in the pattern. In order to identify
|
|
the fault message it describes, the <a href=
|
|
"#component-InterfaceFaultReference">Interface Fault Reference</a>
|
|
component uses the message label of the message the fault is
|
|
associated with, as a key.</p>
|
|
<p>As indicated earlier, the companion specification
|
|
[<cite><a href="#WSDL-PART2">WSDL 2.0 Adjuncts</a></cite>] defines
|
|
several <em>fault propagation rulesets</em> that a given message
|
|
exchange pattern may use. For the ruleset
|
|
<em>fault-replaces-message</em>, the message that the fault relates
|
|
to identifies the message <em>in place of which</em> the declared
|
|
fault message will occur. Thus, the fault message will travel in
|
|
the <em>same</em> direction as the message it replaces in the
|
|
pattern. For the ruleset <em>message-triggers-fault</em>, the
|
|
message that the fault relates to identifies the message <em>after
|
|
which</em> the indicated fault may occur, in the opposite direction
|
|
of the referred to message. That is, the fault message will travel
|
|
in the <em>opposite</em> direction of the message it comes after in
|
|
the message exchange pattern.</p>
|
|
<p>The properties of the <a name=
|
|
"component-InterfaceFaultReference" id=
|
|
"component-InterfaceFaultReference">Interface Fault Reference</a>
|
|
component are as follows:</p>
|
|
<ul>
|
|
<li>
|
|
<p>{<a name="property-InterfaceFaultReference.interfacefault" id=
|
|
"property-InterfaceFaultReference.interfacefault">interface
|
|
fault</a>} REQUIRED. An <a href=
|
|
"#component-InterfaceFault">Interface Fault</a> component in the
|
|
{<a href="#property-Interface.interfacefaults">interface
|
|
faults</a>} property of the [parent] <a href=
|
|
"#component-InterfaceOperation">Interface Operation</a> component's
|
|
[parent] <a href="#component-Interface">Interface</a> component, or
|
|
an <a href="#component-Interface">Interface</a> component that it
|
|
directly or indirectly extends. Identifying the <a href=
|
|
"#component-InterfaceFault">Interface Fault</a> component therefore
|
|
indirectly defines the actual content or payload of the fault
|
|
message.</p>
|
|
</li>
|
|
<li>
|
|
<p>{<a name="property-InterfaceFaultReference.messagelabel" id=
|
|
"property-InterfaceFaultReference.messagelabel">message label</a>}
|
|
REQUIRED. An <em>xs:NCName</em>. This property identifies the
|
|
message this fault relates to among those defined in the {<a href=
|
|
"#property-InterfaceOperation.messageexchangepattern">message
|
|
exchange pattern</a>} property of the <a href=
|
|
"#component-InterfaceOperation">Interface Operation</a> component
|
|
it is contained within. <span id="InterfaceFaultReference-1037"
|
|
class="test-assertion-tr">The value of this property MUST match the
|
|
name of a placeholder message defined by the message exchange
|
|
pattern.<sup><a href="#InterfaceFaultReference-1037-summary" title=
|
|
"Link to assertion InterfaceFaultReference-1037 summary">†</a></sup></span></p>
|
|
</li>
|
|
<li>
|
|
<p>{<a name="property-InterfaceFaultReference.direction" id=
|
|
"property-InterfaceFaultReference.direction">direction</a>}
|
|
REQUIRED. A <em>xs:token</em> with one of the values <em>in</em> or
|
|
<em>out</em>, indicating whether the fault is coming to the service
|
|
or going from the service, respectively. <span id=
|
|
"InterfaceFaultReference-1038" class="test-assertion-tr">The
|
|
direction MUST be consistent with the direction implied by the
|
|
fault propagation ruleset used in the message exchange pattern of
|
|
the operation.<sup><a href="#InterfaceFaultReference-1038-summary"
|
|
title=
|
|
"Link to assertion InterfaceFaultReference-1038 summary">†</a></sup></span>
|
|
For example, if the ruleset <em>fault-replaces-message</em> is
|
|
used, then a fault that refers to an outgoing message would have a
|
|
{<a href=
|
|
"#property-InterfaceFaultReference.direction">direction</a>}
|
|
property value of <em>out</em>. On the other hand, if the ruleset
|
|
<em>message-triggers-fault</em> is used, then a fault that refers
|
|
to an outgoing message would have a {<a href=
|
|
"#property-InterfaceFaultReference.direction">direction</a>}
|
|
property value of <em>in</em> as the fault travels in the opposite
|
|
direction of the message.</p>
|
|
</li>
|
|
<li>
|
|
<p>{<a name="property-InterfaceFaultReference.parent" id=
|
|
"property-InterfaceFaultReference.parent">parent</a>} REQUIRED. The
|
|
<a href="#component-InterfaceOperation">Interface Operation</a>
|
|
component that contains this component in its {<a href=
|
|
"#property-InterfaceOperation.interfacefaultreferences">interface
|
|
fault references</a>} property.</p>
|
|
</li>
|
|
</ul>
|
|
<a name="zed-InterfaceFaultReference" id=
|
|
"zed-InterfaceFaultReference"></a><a name=
|
|
"zed-InterfaceFaultReferenceRI" id=
|
|
"zed-InterfaceFaultReferenceRI"></a>
|
|
<p><span id="InterfaceFaultReference-1039" class=
|
|
"test-assertion-tr">For each <a href=
|
|
"#component-InterfaceFaultReference">Interface Fault Reference</a>
|
|
component in the {<a href=
|
|
"#property-InterfaceOperation.interfacefaultreferences">interface
|
|
fault references</a>} property of an <a href=
|
|
"#component-InterfaceOperation">Interface Operation</a> component,
|
|
the combination of its {<a href=
|
|
"#property-InterfaceFaultReference.interfacefault">interface
|
|
fault</a>} and {<a href=
|
|
"#property-InterfaceFaultReference.messagelabel">message label</a>}
|
|
properties MUST be unique.<sup><a href=
|
|
"#InterfaceFaultReference-1039-summary" title=
|
|
"Link to assertion InterfaceFaultReference-1039 summary">†</a></sup></span></p>
|
|
<a name="zed-InterfaceFaultReferenceKey" id=
|
|
"zed-InterfaceFaultReferenceKey"></a><a name=
|
|
"zed-InterfaceFaultReferenceConsistent" id=
|
|
"zed-InterfaceFaultReferenceConsistent"></a><a name=
|
|
"zed-InterfaceFaultReferenceCM" id=
|
|
"zed-InterfaceFaultReferenceCM"></a></div>
|
|
<div class="div3">
|
|
<h4><a name="InterfaceFaultReference_XMLRep" id=
|
|
"InterfaceFaultReference_XMLRep"></a>2.6.2 XML Representation of
|
|
Interface Fault Reference</h4>
|
|
<div class="exampleInner">
|
|
<pre xml:space="preserve">
|
|
<description>
|
|
<interface>
|
|
<operation>
|
|
<<strong>infault</strong>
|
|
ref="<em>xs:QName</em>"
|
|
messageLabel="<em>xs:NCName</em>"? >
|
|
<documentation />*
|
|
</<strong>infault</strong>>*
|
|
<<strong>outfault</strong>
|
|
ref="<em>xs:QName</em>"
|
|
messageLabel="<em>xs:NCName</em>"? >
|
|
<documentation />*
|
|
</<strong>outfault</strong>>*
|
|
</operation>
|
|
</interface>
|
|
</description>
|
|
</pre></div>
|
|
<p>The XML representation for an <a href=
|
|
"#component-InterfaceFaultReference">Interface Fault Reference</a>
|
|
component is an <em>element information item</em> with the
|
|
following Infoset properties:</p>
|
|
<ul>
|
|
<li>
|
|
<p>A [local name] of <code>infault</code> or
|
|
<code>outfault</code></p>
|
|
</li>
|
|
<li>
|
|
<p>A [namespace name] of "http://www.w3.org/ns/wsdl"</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>
|
|
as described below in <a href=
|
|
"#InterfaceFaultReference_ref_attribute"><strong>2.6.2.1 ref
|
|
attribute information item with infault, or outfault [owner
|
|
element]</strong></a>.</p>
|
|
</li>
|
|
<li>
|
|
<p>An OPTIONAL <code>messageLabel</code> <em>attribute information
|
|
item</em> as described below in <a href=
|
|
"#InterfaceFaultReference_messageReference_attribute"><strong>2.6.2.2
|
|
messageLabel attribute information item with infault, or outfault
|
|
[owner element]</strong></a>.</p>
|
|
</li>
|
|
<li>
|
|
<p>Zero or more namespace qualified <em>attribute information
|
|
item</em>s whose [namespace name] is NOT
|
|
"http://www.w3.org/ns/wsdl".</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 (see <a href="#eii-documentation"><strong>5.
|
|
Documentation</strong></a>).</p>
|
|
</li>
|
|
<li>
|
|
<p>Zero or more namespace-qualified <em>element information
|
|
item</em>s whose [namespace name] is NOT
|
|
"http://www.w3.org/ns/wsdl".</p>
|
|
</li>
|
|
</ol>
|
|
</li>
|
|
</ul>
|
|
<div class="div4">
|
|
<h5><a name="InterfaceFaultReference_ref_attribute" id=
|
|
"InterfaceFaultReference_ref_attribute"></a>2.6.2.1
|
|
<code>ref</code> <em>attribute information item</em> with
|
|
<code>infault</code>, or <code>outfault</code> [owner element]</h5>
|
|
<p>The <code>ref</code> <em>attribute information item</em> refers
|
|
to a fault component.</p>
|
|
<p>The <code>ref</code> <em>attribute information item</em> has 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>
|
|
</ul>
|
|
<p>The type of the <code>ref</code> <em>attribute information
|
|
item</em> is <em>xs:QName</em>.</p>
|
|
</div>
|
|
<div class="div4">
|
|
<h5><a name="InterfaceFaultReference_messageReference_attribute"
|
|
id="InterfaceFaultReference_messageReference_attribute"></a>2.6.2.2
|
|
<code>messageLabel</code> <em>attribute information item</em> with
|
|
<code>infault</code>, or <code>outfault</code> [owner element]</h5>
|
|
<p>The <code>messageLabel</code> <em>attribute information
|
|
item</em> identifies the message in the message exchange pattern of
|
|
the given <code>operation</code> <em>element information item</em>
|
|
that is associated with this fault.</p>
|
|
<p>The <code>messageLabel</code> <em>attribute information
|
|
item</em> has the following Infoset properties:</p>
|
|
<ul>
|
|
<li>
|
|
<p>A [local name] of <code>messageLabel</code></p>
|
|
</li>
|
|
<li>
|
|
<p>A [namespace name] which has no value</p>
|
|
</li>
|
|
</ul>
|
|
<p>The type of the <code>messageLabel</code> <em>attribute
|
|
information item</em> is <em>xs:NCName</em>.</p>
|
|
<p><span id="InterfaceFaultReference-1040" class=
|
|
"test-assertion-tr">The <code>messageLabel</code> <em>attribute
|
|
information item</em> MUST be present in the XML representation of
|
|
an <a href="#component-InterfaceFaultReference">Interface Fault
|
|
Reference</a> component with a given {<a href=
|
|
"#property-InterfaceFaultReference.direction">direction</a>}, if
|
|
the {<a href=
|
|
"#property-InterfaceOperation.messageexchangepattern">message
|
|
exchange pattern</a>} of the parent <a href=
|
|
"#component-InterfaceOperation">Interface Operation</a> component
|
|
has more than one fault with that direction.<sup><a href=
|
|
"#InterfaceFaultReference-1040-summary" title=
|
|
"Link to assertion InterfaceFaultReference-1040 summary">†</a></sup></span>
|
|
Recall that the <em>fault propagation ruleset</em> of the {<a href=
|
|
"#property-InterfaceOperation.messageexchangepattern">message
|
|
exchange pattern</a>} specifies the relation between faults and
|
|
messages. For example, the <em>fault-replaces-message</em> ruleset
|
|
specifies that the faults have the same direction as the messages,
|
|
while the <em>message-triggers-fault</em> ruleset specifies that
|
|
the faults have the opposite direction from the messages.</p>
|
|
</div>
|
|
</div>
|
|
<div class="div3">
|
|
<h4><a name="InterfaceFaultReference_Mapping" id=
|
|
"InterfaceFaultReference_Mapping"></a>2.6.3 Mapping Interface Fault
|
|
Reference's XML Representation to Component Properties</h4>
|
|
<p>The mapping from the XML Representation of the message reference
|
|
<em>element information item</em> (see <a href=
|
|
"#InterfaceFaultReference_XMLRep"><strong>2.6.2 XML Representation
|
|
of Interface Fault Reference</strong></a>) to the properties of the
|
|
Interface Fault Reference component (see <a href=
|
|
"#InterfaceFaultReference_details"><strong>2.6.1 The Interface
|
|
Fault Reference Component</strong></a>) is as described in <a href=
|
|
"#tab_InterfaceFaultReference_Mapping">Table 2-6</a> and uses the
|
|
definitions below.</p>
|
|
<p>Define the <em>message exchange pattern</em> of the <em>element
|
|
information item</em> to be the {<a href=
|
|
"#property-InterfaceOperation.messageexchangepattern">message
|
|
exchange pattern</a>} of the parent <a href=
|
|
"#component-InterfaceOperation">Interface Operation</a>
|
|
component.</p>
|
|
<p>Define the <em>fault direction</em> of the <em>element
|
|
information item</em> to be <em>in</em> if its local name is
|
|
<code>infault</code> and <em>out</em> if its local name is
|
|
<code>outfault</code>.</p>
|
|
<p>Define the <em>message direction</em> of the <em>element
|
|
information item</em> to be the {<a href=
|
|
"#property-InterfaceMessageReference.direction">direction</a>} of
|
|
the placeholder message associated with the fault as specified by
|
|
the fault propagation ruleset of the message exchange pattern.</p>
|
|
<p><span id="MessageLabel-1041" class="test-assertion-tr">The
|
|
<code>messageLabel</code> <em>attribute information item</em> of an
|
|
interface fault reference <em>element information item</em> MUST be
|
|
present if the message exchange pattern has more than one
|
|
placeholder message with {<a href=
|
|
"#property-InterfaceMessageReference.direction">direction</a>}
|
|
equal to the message direction. <sup><a href=
|
|
"#MessageLabel-1041-summary" title=
|
|
"Link to assertion MessageLabel-1041 summary">†</a></sup></span></p>
|
|
<p><span id="MessageLabel-1042" class="test-assertion-tr">If the
|
|
<code>messageLabel</code> <em>attribute information item</em> of an
|
|
interface fault reference <em>element information item</em> is
|
|
present then its actual value MUST match the {<a href=
|
|
"#property-InterfaceMessageReference.messagelabel">message
|
|
label</a>} of some placeholder message with {<a href=
|
|
"#property-InterfaceMessageReference.direction">direction</a>}
|
|
equal to the message direction. <sup><a href=
|
|
"#MessageLabel-1042-summary" title=
|
|
"Link to assertion MessageLabel-1042 summary">†</a></sup></span></p>
|
|
<p><span id="MessageLabel-1043" class="test-assertion-tr">If the
|
|
<code>messageLabel</code> <em>attribute information item</em> of an
|
|
interface fault reference <em>element information item</em> is
|
|
absent then there MUST be a unique placeholder message with
|
|
{<a href=
|
|
"#property-InterfaceMessageReference.direction">direction</a>}
|
|
equal to the message direction. <sup><a href=
|
|
"#MessageLabel-1043-summary" title=
|
|
"Link to assertion MessageLabel-1043 summary">†</a></sup></span></p>
|
|
<p>Define the <em>effective message label</em> of an interface
|
|
fault reference <em>element information item</em> to be either the
|
|
actual value of the <code>messageLabel</code> <em>attribute
|
|
information item</em> if it is present, or the {<a href=
|
|
"#property-InterfaceMessageReference.messagelabel">message
|
|
label</a>} of the unique placeholder message whose {<a href=
|
|
"#property-InterfaceMessageReference.direction">direction</a>} is
|
|
equal to the message direction if the <em>attribute information
|
|
item</em> is absent.</p>
|
|
<a name="tab_InterfaceFaultReference_Mapping" id=
|
|
"tab_InterfaceFaultReference_Mapping"></a>
|
|
<table border="1">
|
|
<caption>Table 2-6. Mapping from XML Representation to Interface
|
|
Fault Reference 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-InterfaceFaultReference.interfacefault">interface
|
|
fault</a>}</td>
|
|
<td rowspan="1" colspan="1">The <a href=
|
|
"#component-InterfaceFault">Interface Fault</a> component from
|
|
{<a href="#property-Interface.interfacefaults">interface
|
|
faults</a>} property of the parent <a href=
|
|
"#component-Interface">Interface</a> component, or an <a href=
|
|
"#component-Interface">Interface</a> component that it directly or
|
|
indirectly extends, with {<a href=
|
|
"#property-InterfaceFault.name">name</a>} equal to the actual value
|
|
of the <code>ref</code> <em>attribute information item</em>.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">{<a href=
|
|
"#property-InterfaceFaultReference.messagelabel">message
|
|
label</a>}</td>
|
|
<td rowspan="1" colspan="1">The effective message label.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">{<a href=
|
|
"#property-InterfaceFaultReference.direction">direction</a>}</td>
|
|
<td rowspan="1" colspan="1">The fault direction.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">{<a href=
|
|
"#property-InterfaceFaultReference.parent">parent</a>}</td>
|
|
<td rowspan="1" colspan="1">The <a href=
|
|
"#component-InterfaceOperation">Interface Operation</a> component
|
|
corresponding to the <code>interface</code> <em>element information
|
|
item</em> in [parent].</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
<br /></div>
|
|
</div>
|
|
<div class="div2">
|
|
<h3><a name="Binding" id="Binding"></a>2.7 Binding</h3>
|
|
<div class="div3">
|
|
<h4><a name="Binding_details" id="Binding_details"></a>2.7.1 The
|
|
Binding Component</h4>
|
|
<p>A <a href="#component-Binding">Binding</a> component describes a
|
|
concrete message format and transmission protocol which may be used
|
|
to define an endpoint (see <a href="#Endpoint"><strong>2.13
|
|
Endpoint</strong></a>). That is, a <a href=
|
|
"#component-Binding">Binding</a> component defines the
|
|
implementation details necessary to access the service.</p>
|
|
<p><a href="#component-Binding">Binding</a> components can be used
|
|
to describe such information in a reusable manner for any interface
|
|
or specifically for a given interface. Furthermore, binding
|
|
information MAY be specified on a per-operation basis (see <a href=
|
|
"#Binding_Operation_details"><strong>2.9.1 The Binding Operation
|
|
Component</strong></a>) within an interface, in addition to across
|
|
all operations of an interface.</p>
|
|
<p><span id="Binding-1044" class="test-assertion-tr">If a <a href=
|
|
"#component-Binding">Binding</a> component specifies any
|
|
operation-specific binding details (by including <a href=
|
|
"#component-BindingOperation">Binding Operation</a> components) or
|
|
any fault binding details (by including <a href=
|
|
"#component-BindingFault">Binding Fault</a> components), then it
|
|
MUST specify an interface the <a href=
|
|
"#component-Binding">Binding</a> component applies to, so as to
|
|
indicate which interface the operations come from.<sup><a href=
|
|
"#Binding-1044-summary" title=
|
|
"Link to assertion Binding-1044 summary">†</a></sup></span></p>
|
|
<p>Conversely, a <a href="#component-Binding">Binding</a> component
|
|
which omits any operation-specific binding details and any fault
|
|
binding details MAY omit specifying an interface. <a href=
|
|
"#component-Binding">Binding</a> components that do not specify an
|
|
interface MAY be used to specify operation-independent binding
|
|
details for <a href="#component-Service">Service</a> components
|
|
with different interfaces. That is, such <a href=
|
|
"#component-Binding">Binding</a> components are reusable across one
|
|
or more interfaces.</p>
|
|
<p>No concrete binding details are given in this specification. The
|
|
companion specification, <em>Web Services Description Language
|
|
(WSDL) Version 2.0 Part 2: Adjuncts</em> [<cite><a href=
|
|
"#WSDL-PART2">WSDL 2.0 Adjuncts</a></cite>] defines such bindings
|
|
for SOAP 1.2 [<cite><a href="#SOAP12-PART1">SOAP 1.2 Part 1:
|
|
Messaging Framework (Second Edition)</a></cite>] and HTTP
|
|
[<cite><a href="#RFC2616">IETF RFC 2616</a></cite>]. Other
|
|
specifications MAY define additional binding details. Such
|
|
specifications are expected to annotate the <a href=
|
|
"#component-Binding">Binding</a> component (and its sub-components)
|
|
with additional properties and specify the mapping from the XML
|
|
representation to these properties.</p>
|
|
<p><span id="Binding-1045" class="test-assertion-tr">A <a href=
|
|
"#component-Binding">Binding</a> component that defines bindings
|
|
for an <a href="#component-Interface">Interface</a> component MUST
|
|
define bindings for all the operations of that <a href=
|
|
"#component-Interface">Interface</a> component.<sup><a href=
|
|
"#Binding-1045-summary" title=
|
|
"Link to assertion Binding-1045 summary">†</a></sup></span> The
|
|
bindings can occur via defaulting rules which allow one to specify
|
|
default bindings for all operations and faults (see, for example
|
|
[<cite><a href="#WSDL-PART2">WSDL 2.0 Adjuncts</a></cite>]) or by
|
|
defining bindings for each <a href=
|
|
"#component-InterfaceOperation">Interface Operation</a> and
|
|
<a href="#component-InterfaceFault">Interface Fault</a> component
|
|
of the <a href="#component-Interface">Interface</a> component.</p>
|
|
<p><span id="Binding-1046" class="test-assertion-tr">Similarly,
|
|
whenever a reusable <a href="#component-Binding">Binding</a>
|
|
component (i.e. one that does not specify an <a href=
|
|
"#component-Interface">Interface</a> component) is applied to a
|
|
specific <a href="#component-Interface">Interface</a> component in
|
|
the context of an <a href="#component-Endpoint">Endpoint</a>
|
|
component (see <a href="#Endpoint_details"><strong>2.13.1 The
|
|
Endpoint Component</strong></a>), the <a href=
|
|
"#component-Binding">Binding</a> component MUST define bindings for
|
|
each <a href="#component-InterfaceOperation">Interface
|
|
Operation</a> and <a href="#component-InterfaceFault">Interface
|
|
Fault</a> component of the <a href=
|
|
"#component-Interface">Interface</a> component, via a combination
|
|
of properties defined on the <a href=
|
|
"#component-Binding">Binding</a> component itself and default
|
|
binding rules specific to its binding type.<sup><a href=
|
|
"#Binding-1046-summary" title=
|
|
"Link to assertion Binding-1046 summary">†</a></sup></span></p>
|
|
<p><span id="Binding-1047" class="test-assertion-tr">A <a href=
|
|
"#component-Binding">Binding</a> component that defines bindings
|
|
for an <a href="#component-Interface">Interface</a> component MUST
|
|
define bindings for all the faults of that <a href=
|
|
"#component-Interface">Interface</a> component that are referenced
|
|
from any of the operations in that <a href=
|
|
"#component-Interface">Interface</a> component.<sup><a href=
|
|
"#Binding-1047-summary" title=
|
|
"Link to assertion Binding-1047 summary">†</a></sup></span> As for
|
|
the case of operations, the binding can be defined by defaulting
|
|
rules. Note that only the faults actually referenced by operations
|
|
are required to have bindings.</p>
|
|
<p>Bindings are named constructs and can be referred to by QName
|
|
(see <a href="#qnameres"><strong>2.17 QName
|
|
resolution</strong></a>). For instance, <a href=
|
|
"#component-Endpoint">Endpoint</a> components refer to bindings in
|
|
this way.</p>
|
|
<p>The properties of the <a name="component-Binding" id=
|
|
"component-Binding">Binding</a> component are as follows:</p>
|
|
<ul>
|
|
<li>
|
|
<p>{<a name="property-Binding.name" id=
|
|
"property-Binding.name">name</a>} REQUIRED. An
|
|
<em>xs:QName</em>.</p>
|
|
</li>
|
|
<li>
|
|
<p>{<a name="property-Binding.interface" id=
|
|
"property-Binding.interface">interface</a>} OPTIONAL. An <a href=
|
|
"#component-Interface">Interface</a> component indicating the
|
|
interface for which binding information is being specified.</p>
|
|
</li>
|
|
<li>
|
|
<p>{<a name="property-Binding.type" id=
|
|
"property-Binding.type">type</a>} REQUIRED. An <em>xs:anyURI</em>.
|
|
<span id="Binding-1048" class="test-assertion-tr">This
|
|
<em>xs:anyURI</em> MUST be an absolute IRI as defined by
|
|
[<cite><a href="#RFC3987">IETF RFC 3987</a></cite>].<sup><a href=
|
|
"#Binding-1048-summary" title=
|
|
"Link to assertion Binding-1048 summary">†</a></sup></span> The
|
|
value of this IRI indicates what kind of concrete binding details
|
|
are contained within this <a href="#component-Binding">Binding</a>
|
|
component. Specifications (such as [<cite><a href=
|
|
"#WSDL-PART2">WSDL 2.0 Adjuncts</a></cite>]) that define such
|
|
concrete binding details MUST specify appropriate values for this
|
|
property. The value of this property MAY be the namespace name of
|
|
the extension elements or attributes which define those concrete
|
|
binding details.</p>
|
|
</li>
|
|
<li>
|
|
<p>{<a name="property-Binding.bindingfaults" id=
|
|
"property-Binding.bindingfaults">binding faults</a>} OPTIONAL. A
|
|
set of <a href="#component-BindingFault">Binding Fault</a>
|
|
components.</p>
|
|
</li>
|
|
<li>
|
|
<p>{<a name="property-Binding.bindingoperations" id=
|
|
"property-Binding.bindingoperations">binding operations</a>}
|
|
OPTIONAL. A set of <a href="#component-BindingOperation">Binding
|
|
Operation</a> components.</p>
|
|
</li>
|
|
</ul>
|
|
<a name="zed-Binding" id="zed-Binding"></a><a name="zed-BindingRI"
|
|
id="zed-BindingRI"></a>
|
|
<p><span id="Binding-1049" class="test-assertion-tr">For each
|
|
<a href="#component-Binding">Binding</a> component in the {<a href=
|
|
"#property-Description.bindings">bindings</a>} property of a
|
|
<a href="#component-Description">Description</a> component, the
|
|
{<a href="#property-Binding.name">name</a>} property MUST be
|
|
unique.<sup><a href="#Binding-1049-summary" title=
|
|
"Link to assertion Binding-1049 summary">†</a></sup></span></p>
|
|
<a name="zed-BindingKey" id="zed-BindingKey"></a><a name=
|
|
"zed-BindingParent" id="zed-BindingParent"></a><a name=
|
|
"zed-BindingCM" id="zed-BindingCM"></a></div>
|
|
<div class="div3">
|
|
<h4><a name="Binding_XMLRep" id="Binding_XMLRep"></a>2.7.2 XML
|
|
Representation of Binding Component</h4>
|
|
<div class="exampleInner">
|
|
<pre xml:space="preserve">
|
|
<description>
|
|
<<strong>binding</strong>
|
|
name="<em>xs:NCName</em>"
|
|
interface="<em>xs:QName</em>"?
|
|
type="<em>xs:anyURI</em>" >
|
|
<documentation />*
|
|
[ <fault /> | <operation /> ]*
|
|
</<strong>binding</strong>>
|
|
</description>
|
|
</pre></div>
|
|
<p>The XML representation for a <a href=
|
|
"#component-Binding">Binding</a> component is an <em>element
|
|
information item</em> with the following Infoset properties:</p>
|
|
<ul>
|
|
<li>
|
|
<p>A [local name] of <code>binding</code></p>
|
|
</li>
|
|
<li>
|
|
<p>A [namespace name] of "http://www.w3.org/ns/wsdl"</p>
|
|
</li>
|
|
<li>
|
|
<p>Two 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>
|
|
as described below in <a href=
|
|
"#Binding_name_attribute"><strong>2.7.2.1 name attribute
|
|
information item with binding [owner element]</strong></a>.</p>
|
|
</li>
|
|
<li>
|
|
<p>An OPTIONAL <code>interface</code> <em>attribute information
|
|
item</em> as described below in <a href=
|
|
"#Binding_interface_attribute"><strong>2.7.2.2 interface attribute
|
|
information item with binding [owner element]</strong></a>.</p>
|
|
</li>
|
|
<li>
|
|
<p>An REQUIRED <code>type</code> <em>attribute information
|
|
item</em> as described below in <a href=
|
|
"#Binding_type_attribute"><strong>2.7.2.3 type attribute
|
|
information item with binding [owner element]</strong></a>.</p>
|
|
</li>
|
|
<li>
|
|
<p>Zero or more namespace qualified <em>attribute information
|
|
item</em>s whose [namespace name] is NOT
|
|
"http://www.w3.org/ns/wsdl".</p>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
<li>
|
|
<p>Zero or more <em>element information item</em>s 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 (see <a href="#eii-documentation"><strong>5.
|
|
Documentation</strong></a>).</p>
|
|
</li>
|
|
<li>
|
|
<p>Zero or more <em>element information item</em>s from among the
|
|
following, in any order:</p>
|
|
<ul>
|
|
<li>
|
|
<p>Zero or more <code>fault</code> <em>element information
|
|
item</em>s (see <a href="#Binding_Fault_XMLRep"><strong>2.8.2 XML
|
|
Representation of Binding Fault Component</strong></a>).</p>
|
|
</li>
|
|
<li>
|
|
<p>Zero or more <code>operation</code> <em>element information
|
|
item</em>s (see <a href="#Binding_Operation_XMLRep"><strong>2.9.2
|
|
XML Representation of Binding Operation
|
|
Component</strong></a>).</p>
|
|
</li>
|
|
<li>
|
|
<p>Zero or more namespace-qualified <em>element information
|
|
item</em>s whose [namespace name] is NOT
|
|
"http://www.w3.org/ns/wsdl". Such <em>element information
|
|
item</em>s are considered to be binding extension elements(see
|
|
<a href="#Binding_extension_elements"><strong>2.7.2.4 Binding
|
|
extension elements</strong></a>).</p>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
</ol>
|
|
</li>
|
|
</ul>
|
|
<div class="div4">
|
|
<h5><a name="Binding_name_attribute" id=
|
|
"Binding_name_attribute"></a>2.7.2.1 <code>name</code>
|
|
<em>attribute information item</em> with <code>binding</code>
|
|
[owner element]</h5>
|
|
<p>The <code>name</code> <em>attribute information item</em>
|
|
together with the <code>targetNamespace</code> <em>attribute
|
|
information item</em> of the <code>description</code> <em>element
|
|
information item</em> forms the QName of the binding.</p>
|
|
<p>The <code>name</code> <em>attribute information item</em> has
|
|
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>
|
|
</ul>
|
|
<p>The type of the <code>name</code> <em>attribute information
|
|
item</em> is <em>xs:NCName</em>.</p>
|
|
</div>
|
|
<div class="div4">
|
|
<h5><a name="Binding_interface_attribute" id=
|
|
"Binding_interface_attribute"></a>2.7.2.2 <code>interface</code>
|
|
<em>attribute information item</em> with <code>binding</code>
|
|
[owner element]</h5>
|
|
<p>The <code>interface</code> <em>attribute information item</em>
|
|
refers, by QName, to an <a href=
|
|
"#component-Interface">Interface</a> component.</p>
|
|
<p>The <code>interface</code> <em>attribute information item</em>
|
|
has the following Infoset properties:</p>
|
|
<ul>
|
|
<li>
|
|
<p>A [local name] of <code>interface</code></p>
|
|
</li>
|
|
<li>
|
|
<p>A [namespace name] which has no value</p>
|
|
</li>
|
|
</ul>
|
|
<p>The type of the <code>interface</code> <em>attribute information
|
|
item</em> is <em>xs:QName</em>.</p>
|
|
</div>
|
|
<div class="div4">
|
|
<h5><a name="Binding_type_attribute" id=
|
|
"Binding_type_attribute"></a>2.7.2.3 <code>type</code>
|
|
<em>attribute information item</em> with <code>binding</code>
|
|
[owner element]</h5>
|
|
<p>The <code>type</code> <em>attribute information item</em>
|
|
identifies the kind of binding details contained in the <a href=
|
|
"#component-Binding">Binding</a> component.</p>
|
|
<p>The <code>type</code> <em>attribute information item</em> has
|
|
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>
|
|
</ul>
|
|
<p>The type of the <code>type</code> <em>attribute information
|
|
item</em> is <em>xs:anyURI</em>.</p>
|
|
</div>
|
|
<div class="div4">
|
|
<h5><a name="Binding_extension_elements" id=
|
|
"Binding_extension_elements"></a>2.7.2.4 Binding extension
|
|
elements</h5>
|
|
<p>Binding extension elements are used to provide information
|
|
specific to a particular binding. The semantics of such <em>element
|
|
information item</em>s are defined by the specification for those
|
|
<em>element information item</em>s. Such specifications are
|
|
expected to annotate the <a href="#component-Binding">Binding</a>
|
|
component with additional properties and specify the mapping from
|
|
the XML representation to those properties.</p>
|
|
</div>
|
|
</div>
|
|
<div class="div3">
|
|
<h4><a name="Binding_Mapping" id="Binding_Mapping"></a>2.7.3
|
|
Mapping Binding's XML Representation to Component Properties</h4>
|
|
<p>The mapping from the XML Representation of the
|
|
<code>binding</code> <em>element information item</em> (see
|
|
<a href="#Binding_XMLRep"><strong>2.7.2 XML Representation of
|
|
Binding Component</strong></a>) to the properties of the <a href=
|
|
"#component-Binding">Binding</a> component (see <a href=
|
|
"#Binding_details"><strong>2.7.1 The Binding
|
|
Component</strong></a>) is as described in <a href=
|
|
"#tab_Binding_Mapping">Table 2-7</a>.</p>
|
|
<a name="tab_Binding_Mapping" id="tab_Binding_Mapping"></a>
|
|
<table border="1">
|
|
<caption>Table 2-7. Mapping from XML Representation to Binding
|
|
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-Binding.name">name</a>}</td>
|
|
<td rowspan="1" colspan="1">The QName whose local name is the
|
|
actual value of the <code>name</code> <em>attribute information
|
|
item</em> and whose namespace name is the actual value of the
|
|
<code>targetNamespace</code> <em>attribute information item</em> of
|
|
the [parent] <code>description</code> <em>element information
|
|
item</em>.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">{<a href=
|
|
"#property-Binding.interface">interface</a>}</td>
|
|
<td rowspan="1" colspan="1">The <a href=
|
|
"#component-Interface">Interface</a> component resolved to by the
|
|
actual value of the <code>interface</code> <em>attribute
|
|
information item</em> (see <a href="#qnameres"><strong>2.17 QName
|
|
resolution</strong></a>), if any.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">{<a href=
|
|
"#property-Binding.type">type</a>}</td>
|
|
<td rowspan="1" colspan="1">The actual value of the
|
|
<code>type</code> <em>attribute information item</em>.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">{<a href=
|
|
"#property-Binding.bindingfaults">binding faults</a>}</td>
|
|
<td rowspan="1" colspan="1">The set of <a href=
|
|
"#component-BindingFault">Binding Fault</a> components
|
|
corresponding to the <code>fault</code> <em>element information
|
|
item</em>s in [children], if any.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">{<a href=
|
|
"#property-Binding.bindingoperations">binding operations</a>}</td>
|
|
<td rowspan="1" colspan="1">The set of <a href=
|
|
"#component-BindingOperation">Binding Operation</a> components
|
|
corresponding to the <code>operation</code> <em>element information
|
|
item</em>s in [children], if any.</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
<br /></div>
|
|
</div>
|
|
<div class="div2">
|
|
<h3><a name="Binding_Fault" id="Binding_Fault"></a>2.8 Binding
|
|
Fault</h3>
|
|
<div class="div3">
|
|
<h4><a name="Binding_Fault_details" id=
|
|
"Binding_Fault_details"></a>2.8.1 The Binding Fault Component</h4>
|
|
<p>A <a href="#component-BindingFault">Binding Fault</a> component
|
|
describes a concrete binding of a particular fault within an
|
|
interface to a particular concrete message format. A particular
|
|
fault of an interface is uniquely identified by its {<a href=
|
|
"#property-InterfaceFault.name">name</a>} property.</p>
|
|
<p>Note that the fault does not occur by itself -it occurs as part
|
|
of a message exchange as defined by an <a href=
|
|
"#component-InterfaceOperation">Interface Operation</a> component
|
|
(and its binding counterpart the <a href=
|
|
"#component-BindingOperation">Binding Operation</a> component).
|
|
Thus, the fault binding information specified in a <a href=
|
|
"#component-BindingFault">Binding Fault</a> component describes how
|
|
faults that occur within a message exchange of an operation will be
|
|
formatted and carried in the transport.</p>
|
|
<p>The properties of the <a name="component-BindingFault" id=
|
|
"component-BindingFault">Binding Fault</a> component are as
|
|
follows:</p>
|
|
<ul>
|
|
<li>
|
|
<p>{<a name="property-BindingFault.interfacefault" id=
|
|
"property-BindingFault.interfacefault">interface fault</a>}
|
|
REQUIRED. An <a href="#component-InterfaceFault">Interface
|
|
Fault</a> component in the {<a href=
|
|
"#property-Interface.interfacefaults">interface faults</a>}
|
|
property of the <a href="#component-Interface">Interface</a>
|
|
component identified by the {<a href=
|
|
"#property-Binding.interface">interface</a>} property of the parent
|
|
<a href="#component-Binding">Binding</a> component, or an <a href=
|
|
"#component-Interface">Interface</a> component that that <a href=
|
|
"#component-Interface">Interface</a> component directly or
|
|
indirectly extends. This is the <a href=
|
|
"#component-InterfaceFault">Interface Fault</a> component for which
|
|
binding information is being specified.</p>
|
|
</li>
|
|
<li>
|
|
<p>{<a name="property-BindingFault.parent" id=
|
|
"property-BindingFault.parent">parent</a>} REQUIRED. The <a href=
|
|
"#component-Binding">Binding</a> component that contains this
|
|
component in its {<a href="#property-Binding.bindingfaults">binding
|
|
faults</a>} property.</p>
|
|
</li>
|
|
</ul>
|
|
<a name="zed-BindingFault" id="zed-BindingFault"></a><a name=
|
|
"zed-BindingFaultRI" id="zed-BindingFaultRI"></a>
|
|
<p><span id="BindingFault-1050" class="test-assertion-tr">For each
|
|
<a href="#component-BindingFault">Binding Fault</a> component in
|
|
the {<a href="#property-Binding.bindingfaults">binding faults</a>}
|
|
property of a <a href="#component-Binding">Binding</a> component,
|
|
the {<a href="#property-BindingFault.interfacefault">interface
|
|
fault</a>} property MUST be unique.<sup><a href=
|
|
"#BindingFault-1050-summary" title=
|
|
"Link to assertion BindingFault-1050 summary">†</a></sup></span>
|
|
That is, one cannot define multiple bindings for the same fault
|
|
within a given <a href="#component-Binding">Binding</a>
|
|
component.</p>
|
|
<a name="zed-BindingFaultKey" id="zed-BindingFaultKey"></a><a name=
|
|
"zed-BindingFaultConsistent" id=
|
|
"zed-BindingFaultConsistent"></a><a name="zed-BindingFaultCM" id=
|
|
"zed-BindingFaultCM"></a></div>
|
|
<div class="div3">
|
|
<h4><a name="Binding_Fault_XMLRep" id=
|
|
"Binding_Fault_XMLRep"></a>2.8.2 XML Representation of Binding
|
|
Fault Component</h4>
|
|
<div class="exampleInner">
|
|
<pre xml:space="preserve">
|
|
<description>
|
|
<binding>
|
|
<<strong>fault</strong>
|
|
ref="<em>xs:QName</em>" >
|
|
<documentation />*
|
|
</<strong>fault</strong>>
|
|
</binding>
|
|
</description>
|
|
</pre></div>
|
|
<p>The XML representation for a <a href=
|
|
"#component-BindingFault">Binding Fault</a> component is an
|
|
<em>element information item</em> with the following Infoset
|
|
properties:</p>
|
|
<ul>
|
|
<li>
|
|
<p>A [local name] of <code>fault</code></p>
|
|
</li>
|
|
<li>
|
|
<p>A [namespace name] of "http://www.w3.org/ns/wsdl"</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>
|
|
as described below in <a href=
|
|
"#Binding_Fault_ref_attribute"><strong>2.8.2.1 ref attribute
|
|
information item with fault [owner element]</strong></a>.</p>
|
|
</li>
|
|
<li>
|
|
<p>Zero or more namespace qualified <em>attribute information
|
|
item</em>s whose [namespace name] is NOT
|
|
"http://www.w3.org/ns/wsdl".</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 (see <a href="#eii-documentation"><strong>5.
|
|
Documentation</strong></a>).</p>
|
|
</li>
|
|
<li>
|
|
<p>Zero or more namespace-qualified <em>element information
|
|
item</em>s whose [namespace name] is NOT
|
|
"http://www.w3.org/ns/wsdl". Such <em>element information
|
|
item</em>s are considered to be binding fault extension elements as
|
|
described further below (see <a href=
|
|
"#Binding_Fault_extension_elements"><strong>2.8.2.2 Binding Fault
|
|
extension elements</strong></a>).</p>
|
|
</li>
|
|
</ol>
|
|
</li>
|
|
</ul>
|
|
<div class="div4">
|
|
<h5><a name="Binding_Fault_ref_attribute" id=
|
|
"Binding_Fault_ref_attribute"></a>2.8.2.1 <code>ref</code>
|
|
<em>attribute information item</em> with <code>fault</code> [owner
|
|
element]</h5>
|
|
<p>The <code>ref</code> <em>attribute information item</em> has 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>
|
|
</ul>
|
|
<p>The type of the <code>ref</code> <em>attribute information
|
|
item</em> is <em>xs:QName</em>.</p>
|
|
</div>
|
|
<div class="div4">
|
|
<h5><a name="Binding_Fault_extension_elements" id=
|
|
"Binding_Fault_extension_elements"></a>2.8.2.2 Binding Fault
|
|
extension elements</h5>
|
|
<p>Binding Fault extension elements are used to provide information
|
|
specific to a particular fault in a binding. The semantics of such
|
|
<em>element information item</em>s are defined by the specification
|
|
for those <em>element information item</em>s. Such specifications
|
|
are expected to annotate the <a href=
|
|
"#component-BindingFault">Binding Fault</a> component with
|
|
additional properties and specify the mapping from the XML
|
|
representation to those properties.</p>
|
|
</div>
|
|
</div>
|
|
<div class="div3">
|
|
<h4><a name="Binding_Fault_Mapping" id=
|
|
"Binding_Fault_Mapping"></a>2.8.3 Mapping Binding Fault's XML
|
|
Representation to Component Properties</h4>
|
|
<p>The mapping from the XML Representation of the
|
|
<code>fault</code> <em>element information item</em> (see <a href=
|
|
"#Binding_Fault_XMLRep"><strong>2.8.2 XML Representation of Binding
|
|
Fault Component</strong></a>) to the properties of the <a href=
|
|
"#component-BindingFault">Binding Fault</a> component (see <a href=
|
|
"#Binding_Fault_details"><strong>2.8.1 The Binding Fault
|
|
Component</strong></a>) is as described in <a href=
|
|
"#tab_Binding_Fault_Mapping">Table 2-8</a>.</p>
|
|
<a name="tab_Binding_Fault_Mapping" id=
|
|
"tab_Binding_Fault_Mapping"></a>
|
|
<table border="1">
|
|
<caption>Table 2-8. Mapping from XML Representation to Binding
|
|
Fault 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-BindingFault.interfacefault">interface fault</a>}</td>
|
|
<td rowspan="1" colspan="1">The <a href=
|
|
"#component-InterfaceFault">Interface Fault</a> component
|
|
corresponding to the actual value of the <code>ref</code>
|
|
<em>attribute information item</em>.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">{<a href=
|
|
"#property-BindingFault.parent">parent</a>}</td>
|
|
<td rowspan="1" colspan="1">The <a href=
|
|
"#component-Binding">Binding</a> component corresponding to the
|
|
<code>binding</code> <em>element information item</em> in
|
|
[parent].</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
<br /></div>
|
|
</div>
|
|
<div class="div2">
|
|
<h3><a name="Binding_Operation" id="Binding_Operation"></a>2.9
|
|
Binding Operation</h3>
|
|
<div class="div3">
|
|
<h4><a name="Binding_Operation_details" id=
|
|
"Binding_Operation_details"></a>2.9.1 The Binding Operation
|
|
Component</h4>
|
|
<p>The <a href="#component-BindingOperation">Binding Operation</a>
|
|
component describes the concrete message format(s) and protocol
|
|
interaction(s) associated with a particular interface operation for
|
|
a given endpoint. A particular operation of an interface is
|
|
uniquely identified by its {<a href=
|
|
"#property-InterfaceOperation.name">name</a>} property.</p>
|
|
<p>The properties of the <a name="component-BindingOperation" id=
|
|
"component-BindingOperation">Binding Operation</a> component are as
|
|
follows:</p>
|
|
<ul>
|
|
<li>
|
|
<p>{<a name="property-BindingOperation.interfaceoperation" id=
|
|
"property-BindingOperation.interfaceoperation">interface
|
|
operation</a>} REQUIRED. An <a href=
|
|
"#component-InterfaceOperation">Interface Operation</a> component
|
|
in the {<a href="#property-Interface.interfaceoperations">interface
|
|
operations</a>} property of the <a href=
|
|
"#component-Interface">Interface</a> component identified by the
|
|
{<a href="#property-Binding.interface">interface</a>} property of
|
|
the [parent] <a href="#component-Binding">Binding</a> component, or
|
|
an Interface component that that <a href=
|
|
"#component-Interface">Interface</a> component directly or
|
|
indirectly extends. This is the <a href=
|
|
"#component-InterfaceOperation">Interface Operation</a> component
|
|
for which binding information is being specified.</p>
|
|
</li>
|
|
<li>
|
|
<p>{<a name="property-BindingOperation.bindingmessagereferences"
|
|
id="property-BindingOperation.bindingmessagereferences">binding
|
|
message references</a>} OPTIONAL. A set of <a href=
|
|
"#component-BindingMessageReference">Binding Message Reference</a>
|
|
components.</p>
|
|
</li>
|
|
<li>
|
|
<p>{<a name="property-BindingOperation.bindingfaultreferences" id=
|
|
"property-BindingOperation.bindingfaultreferences">binding fault
|
|
references</a>} OPTIONAL. A set of <a href=
|
|
"#component-BindingFaultReference">Binding Fault Reference</a>
|
|
components.</p>
|
|
</li>
|
|
<li>
|
|
<p>{<a name="property-BindingOperation.parent" id=
|
|
"property-BindingOperation.parent">parent</a>} REQUIRED. The
|
|
<a href="#component-Binding">Binding</a> component that contains
|
|
this component in its {<a href=
|
|
"#property-Binding.bindingoperations">binding operations</a>}
|
|
property.</p>
|
|
</li>
|
|
</ul>
|
|
<a name="zed-BindingOperation" id=
|
|
"zed-BindingOperation"></a><a name="zed-BindingOperationRI" id=
|
|
"zed-BindingOperationRI"></a>
|
|
<p><span id="BindingOperation-1051" class="test-assertion-tr">For
|
|
each <a href="#component-BindingOperation">Binding Operation</a>
|
|
component in the {<a href=
|
|
"#property-Binding.bindingoperations">binding operations</a>}
|
|
property of a <a href="#component-Binding">Binding</a> component,
|
|
the {<a href=
|
|
"#property-BindingOperation.interfaceoperation">interface
|
|
operation</a>} property MUST be unique.<sup><a href=
|
|
"#BindingOperation-1051-summary" title=
|
|
"Link to assertion BindingOperation-1051 summary">†</a></sup></span>
|
|
That is, one cannot define multiple bindings for the same operation
|
|
within a given <a href="#component-Binding">Binding</a>
|
|
component.</p>
|
|
<a name="zed-BindingOperationKey" id=
|
|
"zed-BindingOperationKey"></a><a name="zed-BindingOperationParent"
|
|
id="zed-BindingOperationParent"></a><a name=
|
|
"zed-BindingOperationConsistent" id=
|
|
"zed-BindingOperationConsistent"></a><a name=
|
|
"zed-BindingOperationCM" id="zed-BindingOperationCM"></a></div>
|
|
<div class="div3">
|
|
<h4><a name="Binding_Operation_XMLRep" id=
|
|
"Binding_Operation_XMLRep"></a>2.9.2 XML Representation of Binding
|
|
Operation Component</h4>
|
|
<div class="exampleInner">
|
|
<pre xml:space="preserve">
|
|
<description>
|
|
<binding>
|
|
<<strong>operation</strong>
|
|
ref="<em>xs:QName</em>" >
|
|
<documentation />*
|
|
[ <input /> | <output /> | <infault /> | <outfault /> ]*
|
|
</<strong>operation</strong>>
|
|
</binding>
|
|
</description>
|
|
</pre></div>
|
|
<p>The XML representation for a <a href=
|
|
"#component-BindingOperation">Binding Operation</a> component is an
|
|
<em>element information item</em> with the following Infoset
|
|
properties:</p>
|
|
<ul>
|
|
<li>
|
|
<p>A [local name] of <code>operation</code></p>
|
|
</li>
|
|
<li>
|
|
<p>A [namespace name] of "http://www.w3.org/ns/wsdl"</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>
|
|
as described below in <a href=
|
|
"#Binding_Operation_ref_attribute"><strong>2.9.2.1 ref attribute
|
|
information item with operation [owner element]</strong></a>.</p>
|
|
</li>
|
|
<li>
|
|
<p>Zero or more namespace qualified <em>attribute information
|
|
item</em>s whose [namespace name] is NOT
|
|
"http://www.w3.org/ns/wsdl".</p>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
<li>
|
|
<p>Zero or more <em>element information item</em>s 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 (see <a href="#eii-documentation"><strong>5.
|
|
Documentation</strong></a>).</p>
|
|
</li>
|
|
<li>
|
|
<p>Zero or more <em>element information item</em>s from among the
|
|
following, in any order:</p>
|
|
<ul>
|
|
<li>
|
|
<p>Zero or more <code>input</code> <em>element information
|
|
item</em>s (see <a href="#Binding_Message_Reference"><strong>2.10
|
|
Binding Message Reference</strong></a>)</p>
|
|
</li>
|
|
<li>
|
|
<p>Zero or more <code>output</code> <em>element information
|
|
item</em>s (see <a href="#Binding_Message_Reference"><strong>2.10
|
|
Binding Message Reference</strong></a>)</p>
|
|
</li>
|
|
<li>
|
|
<p>Zero or more <code>infault</code> <em>element information
|
|
item</em>s (see <a href="#Binding_Fault_Reference"><strong>2.11
|
|
Binding Fault Reference</strong></a>)</p>
|
|
</li>
|
|
<li>
|
|
<p>Zero or more <code>outfault</code> <em>element information
|
|
item</em>s (see <a href="#Binding_Fault_Reference"><strong>2.11
|
|
Binding Fault Reference</strong></a>)</p>
|
|
</li>
|
|
<li>
|
|
<p>Zero or more namespace-qualified <em>element information
|
|
item</em> whose [namespace name] is NOT " http://www.w3.org/ns/wsdl
|
|
". Such <em>element information item</em>s are considered to be
|
|
binding operation extension elements as described below (see
|
|
<a href="#Binding_Operation_extension_elements"><strong>2.9.2.2
|
|
Binding Operation extension elements</strong></a>).</p>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
</ol>
|
|
</li>
|
|
</ul>
|
|
<div class="div4">
|
|
<h5><a name="Binding_Operation_ref_attribute" id=
|
|
"Binding_Operation_ref_attribute"></a>2.9.2.1 <code>ref</code>
|
|
<em>attribute information item</em> with <code>operation</code>
|
|
[owner element]</h5>
|
|
<p>The <code>ref</code> <em>attribute information item</em> has 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>
|
|
</ul>
|
|
<p>The type of the <code>ref</code> <em>attribute information
|
|
item</em> is <em>xs:QName</em>.</p>
|
|
</div>
|
|
<div class="div4">
|
|
<h5><a name="Binding_Operation_extension_elements" id=
|
|
"Binding_Operation_extension_elements"></a>2.9.2.2 Binding
|
|
Operation extension elements</h5>
|
|
<p>Binding Operation extension elements are used to provide
|
|
information specific to a particular operation in a binding. The
|
|
semantics of such <em>element information item</em>s are defined by
|
|
the specification for those <em>element information item</em>s.
|
|
Such specifications are expected to annotate the <a href=
|
|
"#component-BindingOperation">Binding Operation</a> component with
|
|
additional properties and specify the mapping from the XML
|
|
representation to those properties.</p>
|
|
</div>
|
|
</div>
|
|
<div class="div3">
|
|
<h4><a name="Binding_Operation_Mapping" id=
|
|
"Binding_Operation_Mapping"></a>2.9.3 Mapping Binding Operation's
|
|
XML Representation to Component Properties</h4>
|
|
<p>The mapping from the XML Representation of the
|
|
<code>operation</code> <em>element information item</em> (see
|
|
<a href="#Binding_Operation_XMLRep"><strong>2.9.2 XML
|
|
Representation of Binding Operation Component</strong></a>) to the
|
|
properties of the <a href="#component-BindingOperation">Binding
|
|
Operation</a> component is as described in <a href=
|
|
"#tab_Binding_Operation_Mapping">Table 2-9</a>.</p>
|
|
<a name="tab_Binding_Operation_Mapping" id=
|
|
"tab_Binding_Operation_Mapping"></a>
|
|
<table border="1">
|
|
<caption>Table 2-9. Mapping from XML Representation to Binding
|
|
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-BindingOperation.interfaceoperation">interface
|
|
operation</a>}</td>
|
|
<td rowspan="1" colspan="1">The <a href=
|
|
"#component-InterfaceOperation">Interface Operation</a> component
|
|
corresponding to the actual value of the <code>ref</code>
|
|
<em>attribute information item</em>.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">{<a href=
|
|
"#property-BindingOperation.bindingmessagereferences">binding
|
|
message references</a>}</td>
|
|
<td rowspan="1" colspan="1">The set of <a href=
|
|
"#component-BindingMessageReference">Binding Message Reference</a>
|
|
components corresponding to the <code>input</code> and
|
|
<code>output</code> <em>element information item</em>s in
|
|
[children], if any.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">{<a href=
|
|
"#property-BindingOperation.bindingfaultreferences">binding fault
|
|
references</a>}</td>
|
|
<td rowspan="1" colspan="1">The set of <a href=
|
|
"#component-BindingFaultReference">Binding Fault Reference</a>
|
|
components corresponding to the <code>infault</code> and
|
|
<code>outfault</code> <em>element information item</em>s in
|
|
[children], if any.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">{<a href=
|
|
"#property-BindingOperation.parent">parent</a>}</td>
|
|
<td rowspan="1" colspan="1">The <a href=
|
|
"#component-Binding">Binding</a> component corresponding to the
|
|
<code>binding</code> <em>element information item</em> in
|
|
[parent].</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
<br /></div>
|
|
</div>
|
|
<div class="div2">
|
|
<h3><a name="Binding_Message_Reference" id=
|
|
"Binding_Message_Reference"></a>2.10 Binding Message Reference</h3>
|
|
<div class="div3">
|
|
<h4><a name="Binding_Message_Reference_details" id=
|
|
"Binding_Message_Reference_details"></a>2.10.1 The Binding Message
|
|
Reference Component</h4>
|
|
<p>A <a href="#component-BindingMessageReference">Binding Message
|
|
Reference</a> component describes a concrete binding of a
|
|
particular message participating in an operation to a particular
|
|
concrete message format.</p>
|
|
<p>The properties of the <a name=
|
|
"component-BindingMessageReference" id=
|
|
"component-BindingMessageReference">Binding Message Reference</a>
|
|
component are as follows:</p>
|
|
<ul>
|
|
<li>
|
|
<p>{<a name=
|
|
"property-BindingMessageReference.interfacemessagereference" id=
|
|
"property-BindingMessageReference.interfacemessagereference">interface
|
|
message reference</a>} REQUIRED. An <a href=
|
|
"#component-InterfaceMessageReference">Interface Message
|
|
Reference</a> component among those in the {<a href=
|
|
"#property-InterfaceOperation.interfacemessagereferences">interface
|
|
message references</a>} property of the <a href=
|
|
"#component-InterfaceOperation">Interface Operation</a> component
|
|
being bound by the containing <a href=
|
|
"#component-BindingOperation">Binding Operation</a> component.</p>
|
|
</li>
|
|
<li>
|
|
<p>{<a name="property-BindingMessageReference.parent" id=
|
|
"property-BindingMessageReference.parent">parent</a>} REQUIRED. The
|
|
<a href="#component-BindingOperation">Binding Operation</a>
|
|
component that contains this component in its {<a href=
|
|
"#property-BindingOperation.bindingmessagereferences">binding
|
|
message references</a>} property.</p>
|
|
</li>
|
|
</ul>
|
|
<a name="zed-BindingMessageReference" id=
|
|
"zed-BindingMessageReference"></a><a name=
|
|
"zed-BindingMessageReferenceRI" id=
|
|
"zed-BindingMessageReferenceRI"></a>
|
|
<p><span id="BindingMessageReference-1052" class=
|
|
"test-assertion-tr">For each <a href=
|
|
"#component-BindingMessageReference">Binding Message Reference</a>
|
|
component in the {<a href=
|
|
"#property-BindingOperation.bindingmessagereferences">binding
|
|
message references</a>} property of a <a href=
|
|
"#component-BindingOperation">Binding Operation</a> component, the
|
|
{<a href=
|
|
"#property-BindingMessageReference.interfacemessagereference">interface
|
|
message reference</a>} property MUST be unique.<sup><a href=
|
|
"#BindingMessageReference-1052-summary" title=
|
|
"Link to assertion BindingMessageReference-1052 summary">†</a></sup></span>
|
|
That is, the same message cannot be bound twice within the same
|
|
operation.</p>
|
|
<a name="zed-BindingMessageReferenceKey" id=
|
|
"zed-BindingMessageReferenceKey"></a><a name=
|
|
"zed-BindingMessageReferenceConsistent" id=
|
|
"zed-BindingMessageReferenceConsistent"></a><a name=
|
|
"zed-BindingMessageReferenceCM" id=
|
|
"zed-BindingMessageReferenceCM"></a></div>
|
|
<div class="div3">
|
|
<h4><a name="Binding_Message_Reference_XMLRep" id=
|
|
"Binding_Message_Reference_XMLRep"></a>2.10.2 XML Representation of
|
|
Binding Message Reference Component</h4>
|
|
<div class="exampleInner">
|
|
<pre xml:space="preserve">
|
|
<description>
|
|
<binding>
|
|
<operation>
|
|
<<strong>input</strong>
|
|
messageLabel="<em>xs:NCName</em>"? >
|
|
<documentation />*
|
|
</<strong>input</strong>>
|
|
<<strong>output</strong>
|
|
messageLabel="<em>xs:NCName</em>"? >
|
|
<documentation />*
|
|
</<strong>output</strong>>
|
|
</operation>
|
|
</binding>
|
|
</description>
|
|
</pre></div>
|
|
<p>The XML representation for a <a href=
|
|
"#component-BindingMessageReference">Binding Message Reference</a>
|
|
component is an <em>element information item</em> with the
|
|
following Infoset properties:</p>
|
|
<ul>
|
|
<li>
|
|
<p>A [local name] of <code>input</code> or <code>output</code>.</p>
|
|
</li>
|
|
<li>
|
|
<p>A [namespace name] of "http://www.w3.org/ns/wsdl".</p>
|
|
</li>
|
|
<li>
|
|
<p>Zero or more <em>attribute information item</em>s amongst its
|
|
[attributes] as follows:</p>
|
|
<ul>
|
|
<li>
|
|
<p>An OPTIONAL <code>messageLabel</code> <em>attribute information
|
|
item</em> as described below in <a href=
|
|
"#Binding_Message_Reference_name_attribute"><strong>2.10.2.1
|
|
messageLabel attribute information item with input or output [owner
|
|
element]</strong></a>.</p>
|
|
</li>
|
|
<li>
|
|
<p>Zero or more namespace qualified <em>attribute information
|
|
item</em>s whose [namespace name] is NOT
|
|
"http://www.w3.org/ns/wsdl".</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 (see <a href="#eii-documentation"><strong>5.
|
|
Documentation</strong></a>).</p>
|
|
</li>
|
|
<li>
|
|
<p>Zero or more namespace-qualified <em>element information
|
|
item</em>s whose [namespace name] is NOT
|
|
"http://www.w3.org/ns/wsdl". Such <em>element information
|
|
item</em>s are considered to be binding message reference extension
|
|
elements as described below (see <a href=
|
|
"#Binding_Message_Reference_extension_elements"><strong>2.10.2.2
|
|
Binding Message Reference extension elements</strong></a>).</p>
|
|
</li>
|
|
</ol>
|
|
</li>
|
|
</ul>
|
|
<div class="div4">
|
|
<h5><a name="Binding_Message_Reference_name_attribute" id=
|
|
"Binding_Message_Reference_name_attribute"></a>2.10.2.1
|
|
<code>messageLabel</code> <em>attribute information item</em> with
|
|
<code>input</code> or <code>output</code> [owner element]</h5>
|
|
<p>The <code>messageLabel</code> <em>attribute information
|
|
item</em> has the following Infoset properties:</p>
|
|
<ul>
|
|
<li>
|
|
<p>A [local name] of <code>messageLabel</code>.</p>
|
|
</li>
|
|
<li>
|
|
<p>A [namespace name] which has no value.</p>
|
|
</li>
|
|
</ul>
|
|
<p>The type of the <code>messageLabel</code> <em>attribute
|
|
information item</em> is <em>xs:NCName</em>.</p>
|
|
</div>
|
|
<div class="div4">
|
|
<h5><a name="Binding_Message_Reference_extension_elements" id=
|
|
"Binding_Message_Reference_extension_elements"></a>2.10.2.2 Binding
|
|
Message Reference extension elements</h5>
|
|
<p>Binding Message Reference extension elements are used to provide
|
|
information specific to a particular message in an operation. The
|
|
semantics of such <em>element information item</em>s are defined by
|
|
the specification for those <em>element information item</em>s.
|
|
Such specifications are expected to annotate the <a href=
|
|
"#component-BindingMessageReference">Binding Message Reference</a>
|
|
component with additional properties and specify the mapping from
|
|
the XML representation to those properties.</p>
|
|
</div>
|
|
</div>
|
|
<div class="div3">
|
|
<h4><a name="Binding_Message_Reference_Mapping" id=
|
|
"Binding_Message_Reference_Mapping"></a>2.10.3 Mapping Binding
|
|
Message Reference's XML Representation to Component Properties</h4>
|
|
<p>The mapping from the XML Representation of the
|
|
<code>binding</code> <em>element information item</em> (see
|
|
<a href="#Binding_Message_Reference_XMLRep"><strong>2.10.2 XML
|
|
Representation of Binding Message Reference Component</strong></a>)
|
|
to the properties of the <a href=
|
|
"#component-BindingMessageReference">Binding Message Reference</a>
|
|
component is as described in <a href=
|
|
"#tab_Binding_Message_Reference_Mapping">Table 2-10</a> and uses
|
|
the definitions below.</p>
|
|
<p>Define the <em>message exchange pattern</em> of the <em>element
|
|
information item</em> to be the {<a href=
|
|
"#property-InterfaceOperation.messageexchangepattern">message
|
|
exchange pattern</a>} of the <a href=
|
|
"#component-InterfaceOperation">Interface Operation</a> component
|
|
being bound.</p>
|
|
<p>Define the <em>message direction</em> of the <em>element
|
|
information item</em> to be <em>in</em> if its local name is
|
|
<code>input</code> and <em>out</em> if its local name is
|
|
<code>output</code>.</p>
|
|
<p>Note that the <code>messageLabel</code> <em>attribute
|
|
information item</em> of a binding message reference <em>element
|
|
information item</em> must be present if the message exchange
|
|
pattern has more than one placeholder message with {<a href=
|
|
"#property-InterfaceMessageReference.direction">direction</a>}
|
|
equal to the message direction.</p>
|
|
<p><span id="MessageLabel-1053" class="test-assertion-tr">If the
|
|
<code>messageLabel</code> <em>attribute information item</em> of a
|
|
binding message reference <em>element information item</em> is
|
|
present then its actual value MUST match the {<a href=
|
|
"#property-InterfaceMessageReference.messagelabel">message
|
|
label</a>} of some placeholder message with {<a href=
|
|
"#property-InterfaceMessageReference.direction">direction</a>}
|
|
equal to the message direction. <sup><a href=
|
|
"#MessageLabel-1053-summary" title=
|
|
"Link to assertion MessageLabel-1053 summary">†</a></sup></span></p>
|
|
<p><span id="MessageLabel-1054" class="test-assertion-tr">If the
|
|
<code>messageLabel</code> <em>attribute information item</em> of a
|
|
binding message reference <em>element information item</em> is
|
|
absent then there MUST be a unique placeholder message with
|
|
{<a href=
|
|
"#property-InterfaceMessageReference.direction">direction</a>}
|
|
equal to the message direction. <sup><a href=
|
|
"#MessageLabel-1054-summary" title=
|
|
"Link to assertion MessageLabel-1054 summary">†</a></sup></span></p>
|
|
<p>Define the <em>effective message label</em> of a binding message
|
|
reference <em>element information item</em> to be either the actual
|
|
value of the <code>messageLabel</code> <em>attribute information
|
|
item</em> if it is present, or the {<a href=
|
|
"#property-InterfaceMessageReference.messagelabel">message
|
|
label</a>} of the unique placeholder message with {<a href=
|
|
"#property-InterfaceMessageReference.direction">direction</a>}
|
|
equal to the message direction if the <em>attribute information
|
|
item</em> is absent.</p>
|
|
<a name="tab_Binding_Message_Reference_Mapping" id=
|
|
"tab_Binding_Message_Reference_Mapping"></a>
|
|
<table border="1">
|
|
<caption>Table 2-10. Mapping from XML Representation to Binding
|
|
Message Reference 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-BindingMessageReference.interfacemessagereference">interface
|
|
message reference</a>}</td>
|
|
<td rowspan="1" colspan="1">The <a href=
|
|
"#component-InterfaceMessageReference">Interface Message
|
|
Reference</a> component in the {<a href=
|
|
"#property-InterfaceOperation.interfacemessagereferences">interface
|
|
message references</a>} of the <a href=
|
|
"#component-InterfaceOperation">Interface Operation</a> component
|
|
being bound with {<a href=
|
|
"#property-InterfaceMessageReference.messagelabel">message
|
|
label</a>} equal to the effective message label.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">{parent}</td>
|
|
<td rowspan="1" colspan="1">The <a href=
|
|
"#component-BindingOperation">Binding Operation</a> component
|
|
corresponding to the <code>operation</code> <em>element information
|
|
item</em> in [parent].</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
<br /></div>
|
|
</div>
|
|
<div class="div2">
|
|
<h3><a name="Binding_Fault_Reference" id=
|
|
"Binding_Fault_Reference"></a>2.11 Binding Fault Reference</h3>
|
|
<div class="div3">
|
|
<h4><a name="Binding_Fault_Reference_details" id=
|
|
"Binding_Fault_Reference_details"></a>2.11.1 The Binding Fault
|
|
Reference Component</h4>
|
|
<p>A <a href="#component-BindingFaultReference">Binding Fault
|
|
Reference</a> component describes a concrete binding of a
|
|
particular fault participating in an operation to a particular
|
|
concrete message format.</p>
|
|
<p>The properties of the <a name="component-BindingFaultReference"
|
|
id="component-BindingFaultReference">Binding Fault Reference</a>
|
|
component are as follows:</p>
|
|
<ul>
|
|
<li>
|
|
<p>{<a name=
|
|
"property-BindingFaultReference.interfacefaultreference" id=
|
|
"property-BindingFaultReference.interfacefaultreference">interface
|
|
fault reference</a>} REQUIRED. An <a href=
|
|
"#component-InterfaceFaultReference">Interface Fault Reference</a>
|
|
component among those in the {<a href=
|
|
"#property-InterfaceOperation.interfacefaultreferences">interface
|
|
fault references</a>} property of the <a href=
|
|
"#component-InterfaceOperation">Interface Operation</a> component
|
|
being bound by the parent <a href=
|
|
"#component-BindingOperation">Binding Operation</a> component.</p>
|
|
</li>
|
|
<li>
|
|
<p>{<a name="property-BindingFaultReference.parent" id=
|
|
"property-BindingFaultReference.parent">parent</a>} REQUIRED. The
|
|
<a href="#component-BindingOperation">Binding Operation</a>
|
|
component that contains this component in its {<a href=
|
|
"#property-BindingOperation.bindingfaultreferences">binding fault
|
|
references</a>} property.</p>
|
|
</li>
|
|
</ul>
|
|
<a name="zed-BindingFaultReference" id=
|
|
"zed-BindingFaultReference"></a><a name=
|
|
"zed-BindingFaultReferenceRI" id="zed-BindingFaultReferenceRI"></a>
|
|
<p><span id="BindingFaultReference-1055" class=
|
|
"test-assertion-tr">For each <a href=
|
|
"#component-BindingFaultReference">Binding Fault Reference</a>
|
|
component in the {<a href=
|
|
"#property-BindingOperation.bindingfaultreferences">binding fault
|
|
references</a>} property of a <a href=
|
|
"#component-BindingOperation">Binding Operation</a> component, the
|
|
{<a href=
|
|
"#property-BindingFaultReference.interfacefaultreference">interface
|
|
fault reference</a>} property MUST be unique.<sup><a href=
|
|
"#BindingFaultReference-1055-summary" title=
|
|
"Link to assertion BindingFaultReference-1055 summary">†</a></sup></span>
|
|
That is, the same fault cannot be bound twice within the same
|
|
operation.</p>
|
|
<a name="zed-BindingFaultReferenceKey" id=
|
|
"zed-BindingFaultReferenceKey"></a><a name=
|
|
"zed-BindingFaultReferenceConsistent" id=
|
|
"zed-BindingFaultReferenceConsistent"></a><a name=
|
|
"zed-BindingFaultReferenceCM" id=
|
|
"zed-BindingFaultReferenceCM"></a></div>
|
|
<div class="div3">
|
|
<h4><a name="Binding_Fault_Reference_XMLRep" id=
|
|
"Binding_Fault_Reference_XMLRep"></a>2.11.2 XML Representation of
|
|
Binding Fault Reference Component</h4>
|
|
<div class="exampleInner">
|
|
<pre xml:space="preserve">
|
|
<description>
|
|
<binding>
|
|
<operation>
|
|
<<strong>infault</strong>
|
|
ref="<em>xs:QName</em>"
|
|
messageLabel="<em>xs:NCName</em>"?>
|
|
<documentation />*
|
|
</<strong>infault</strong>>
|
|
<<strong>outfault</strong>
|
|
ref="<em>xs:QName</em>"
|
|
messageLabel="<em>xs:NCName</em>"?>
|
|
<documentation />*
|
|
</<strong>outfault</strong>>
|
|
</operation>
|
|
</binding>
|
|
</description>
|
|
</pre></div>
|
|
<p>The XML representation for a <a href=
|
|
"#component-BindingFaultReference">Binding Fault Reference</a>
|
|
component is an <em>element information item</em> with the
|
|
following Infoset properties:</p>
|
|
<ul>
|
|
<li>
|
|
<p>A [local name] of <code>infault</code> or
|
|
<code>outfault</code>.</p>
|
|
</li>
|
|
<li>
|
|
<p>A [namespace name] of "http://www.w3.org/ns/wsdl".</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>
|
|
as described below in <a href=
|
|
"#Binding_Fault_Reference_ref_attribute"><strong>2.11.2.1 ref
|
|
attribute information item with infault or outfault [owner
|
|
element]</strong></a>.</p>
|
|
<p>An OPTIONAL <code>messageLabel</code> <em>attribute information
|
|
item</em> as described below in <a href=
|
|
"#Binding_Fault_Reference_messageLabel_attribute"><strong>2.11.2.2
|
|
messageLabel attribute information item with infault or outfault
|
|
[owner element]</strong></a>.</p>
|
|
</li>
|
|
<li>
|
|
<p>Zero or more namespace qualified <em>attribute information
|
|
item</em>s whose [namespace name] is NOT
|
|
"http://www.w3.org/ns/wsdl".</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 (see <a href="#eii-documentation"><strong>5.
|
|
Documentation</strong></a>).</p>
|
|
</li>
|
|
<li>
|
|
<p>Zero or more namespace-qualified <em>element information
|
|
item</em>s whose [namespace name] is NOT
|
|
"http://www.w3.org/ns/wsdl". Such <em>element information
|
|
item</em>s are considered to be binding fault reference extension
|
|
elements as described below (see <a href=
|
|
"#Binding_Fault_Reference_extension_elements"><strong>2.11.2.3
|
|
Binding Fault Reference extension elements</strong></a>).</p>
|
|
</li>
|
|
</ol>
|
|
</li>
|
|
</ul>
|
|
<div class="div4">
|
|
<h5><a name="Binding_Fault_Reference_ref_attribute" id=
|
|
"Binding_Fault_Reference_ref_attribute"></a>2.11.2.1
|
|
<code>ref</code> <em>attribute information item</em> with
|
|
<code>infault</code> or <code>outfault</code> [owner element]</h5>
|
|
<p>The <code>ref</code> <em>attribute information item</em> has 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>
|
|
</ul>
|
|
<p>The type of the <code>ref</code> <em>attribute information
|
|
item</em> is <em>xs:QName</em>.</p>
|
|
</div>
|
|
<div class="div4">
|
|
<h5><a name="Binding_Fault_Reference_messageLabel_attribute" id=
|
|
"Binding_Fault_Reference_messageLabel_attribute"></a>2.11.2.2
|
|
<code>messageLabel</code> <em>attribute information item</em> with
|
|
<code>infault</code> or <code>outfault</code> [owner element]</h5>
|
|
<p>The <code>messageLabel</code> <em>attribute information
|
|
item</em> has the following Infoset properties:</p>
|
|
<ul>
|
|
<li>
|
|
<p>A [local name] of <code>messageLabel</code>.</p>
|
|
</li>
|
|
<li>
|
|
<p>A [namespace name] which has no value.</p>
|
|
</li>
|
|
</ul>
|
|
<p>The type of the <code>messageLabel</code> <em>attribute
|
|
information item</em> is <em>xs:NCName</em>.</p>
|
|
</div>
|
|
<div class="div4">
|
|
<h5><a name="Binding_Fault_Reference_extension_elements" id=
|
|
"Binding_Fault_Reference_extension_elements"></a>2.11.2.3 Binding
|
|
Fault Reference extension elements</h5>
|
|
<p>Binding Fault Reference extension elements are used to provide
|
|
information specific to a particular fault in an operation. The
|
|
semantics of such <em>element information item</em>s are defined by
|
|
the specification for those <em>element information item</em>s.
|
|
Such specifications are expected to annotate the <a href=
|
|
"#component-BindingFaultReference">Binding Fault Reference</a>
|
|
component with additional properties and specify the mapping from
|
|
the XML representation to those properties.</p>
|
|
</div>
|
|
</div>
|
|
<div class="div3">
|
|
<h4><a name="Binding_Fault_Reference_Mapping" id=
|
|
"Binding_Fault_Reference_Mapping"></a>2.11.3 Mapping Binding Fault
|
|
Reference's XML Representation to Component Properties</h4>
|
|
<p>The mapping from the XML Representation of the
|
|
<code>binding</code> <em>element information item</em> (see
|
|
<a href="#Binding_Fault_Reference_XMLRep"><strong>2.11.2 XML
|
|
Representation of Binding Fault Reference Component</strong></a>)
|
|
to the properties of the <a href=
|
|
"#component-BindingFaultReference">Binding Fault Reference</a>
|
|
component is as described in <a href=
|
|
"#tab_Binding_Fault_Reference_Mapping">Table 2-11</a> and uses the
|
|
definitions below.</p>
|
|
<p>Define the <em>message exchange pattern</em> of the <em>element
|
|
information item</em> to be the {<a href=
|
|
"#property-InterfaceOperation.messageexchangepattern">message
|
|
exchange pattern</a>} of the <a href=
|
|
"#component-InterfaceOperation">Interface Operation</a> component
|
|
being bound.</p>
|
|
<p>Define the <em>fault direction</em> of the <em>element
|
|
information item</em> to be <em>in</em> if its local name is
|
|
<code>infault</code> and <em>out</em> if its local name is
|
|
<code>outfault</code>.</p>
|
|
<p>Define the <em>message direction</em> of the <em>element
|
|
information item</em> to be the {<a href=
|
|
"#property-InterfaceMessageReference.direction">direction</a>} of
|
|
the placeholder message associated with the fault as specified by
|
|
the fault propagation ruleset of the message exchange pattern.</p>
|
|
<p><span id="MessageLabel-1056" class="test-assertion-tr">The
|
|
<code>messageLabel</code> <em>attribute information item</em> of a
|
|
binding fault reference <em>element information item</em> MUST be
|
|
present if the message exchange pattern has more than one
|
|
placeholder message with {<a href=
|
|
"#property-InterfaceMessageReference.direction">direction</a>}
|
|
equal to the message direction. <sup><a href=
|
|
"#MessageLabel-1056-summary" title=
|
|
"Link to assertion MessageLabel-1056 summary">†</a></sup></span></p>
|
|
<p><span id="MessageLabel-1057" class="test-assertion-tr">If the
|
|
<code>messageLabel</code> <em>attribute information item</em> of a
|
|
binding fault reference <em>element information item</em> is
|
|
present then its actual value MUST match the {<a href=
|
|
"#property-InterfaceMessageReference.messagelabel">message
|
|
label</a>} of some placeholder message with {<a href=
|
|
"#property-InterfaceMessageReference.direction">direction</a>}
|
|
equal to the message direction. <sup><a href=
|
|
"#MessageLabel-1057-summary" title=
|
|
"Link to assertion MessageLabel-1057 summary">†</a></sup></span></p>
|
|
<p><span id="MessageLabel-1058" class="test-assertion-tr">If the
|
|
<code>messageLabel</code> <em>attribute information item</em> of a
|
|
binding fault reference <em>element information item</em> is absent
|
|
then there MUST be a unique placeholder message with {<a href=
|
|
"#property-InterfaceMessageReference.direction">direction</a>}
|
|
equal to the message direction. <sup><a href=
|
|
"#MessageLabel-1058-summary" title=
|
|
"Link to assertion MessageLabel-1058 summary">†</a></sup></span></p>
|
|
<p>Define the <em>effective message label</em> of a binding fault
|
|
reference <em>element information item</em> to be either the actual
|
|
value of the <code>messageLabel</code> <em>attribute information
|
|
item</em> if it is present, or the {<a href=
|
|
"#property-InterfaceMessageReference.messagelabel">message
|
|
label</a>} of the unique placeholder message with {<a href=
|
|
"#property-InterfaceMessageReference.direction">direction</a>}
|
|
equal to the message direction if the <em>attribute information
|
|
item</em> is absent.</p>
|
|
<p><span id="BindingFaultReference-1059" class=
|
|
"test-assertion-tr">There MUST be an <a href=
|
|
"#component-InterfaceFaultReference">Interface Fault Reference</a>
|
|
component in the {<a href=
|
|
"#property-InterfaceOperation.interfacefaultreferences">interface
|
|
fault references</a>} of the <a href=
|
|
"#component-InterfaceOperation">Interface Operation</a> being bound
|
|
with {<a href=
|
|
"#property-InterfaceFaultReference.messagelabel">message label</a>}
|
|
equal to the effective message label and with {<a href=
|
|
"#property-InterfaceFaultReference.interfacefault">interface
|
|
fault</a>} equal to an <a href=
|
|
"#component-InterfaceFault">Interface Fault</a> component with
|
|
{<a href="#property-InterfaceFault.name">name</a>} equal to the
|
|
actual value of the <code>ref</code> <em>attribute information
|
|
item</em>.<sup><a href="#BindingFaultReference-1059-summary" title=
|
|
"Link to assertion BindingFaultReference-1059 summary">†</a></sup></span></p>
|
|
<a name="tab_Binding_Fault_Reference_Mapping" id=
|
|
"tab_Binding_Fault_Reference_Mapping"></a>
|
|
<table border="1">
|
|
<caption>Table 2-11. Mapping from XML Representation to Binding
|
|
Fault Reference 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-BindingFaultReference.interfacefaultreference">interface
|
|
fault reference</a>}</td>
|
|
<td rowspan="1" colspan="1">The <a href=
|
|
"#component-InterfaceFaultReference">Interface Fault Reference</a>
|
|
component in the {<a href=
|
|
"#property-InterfaceOperation.interfacefaultreferences">interface
|
|
fault references</a>} of the <a href=
|
|
"#component-InterfaceOperation">Interface Operation</a> being bound
|
|
with {<a href=
|
|
"#property-InterfaceFaultReference.messagelabel">message label</a>}
|
|
equal to the effective message label, and with {<a href=
|
|
"#property-InterfaceFaultReference.interfacefault">interface
|
|
fault</a>} equal to an <a href=
|
|
"#component-InterfaceFault">Interface Fault</a> component with
|
|
{<a href="#property-InterfaceFault.name">name</a>} equal to the
|
|
actual value of the <code>ref</code> <em>attribute information
|
|
item</em>.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">{parent}</td>
|
|
<td rowspan="1" colspan="1">The <a href=
|
|
"#component-BindingOperation">Binding Operation</a> component
|
|
corresponding to the <code>operation</code> <em>element information
|
|
item</em> in [parent].</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
<br /></div>
|
|
</div>
|
|
<div class="div2">
|
|
<h3><a name="Service" id="Service"></a>2.12 Service</h3>
|
|
<div class="div3">
|
|
<h4><a name="Service_details" id="Service_details"></a>2.12.1 The
|
|
Service Component</h4>
|
|
<p>A <a href="#component-Service">Service</a> component describes a
|
|
set of endpoints (see <a href="#Endpoint"><strong>2.13
|
|
Endpoint</strong></a>) at which a particular deployed
|
|
implementation of the service is provided. The endpoints thus are
|
|
in effect alternate places at which the service is provided.</p>
|
|
<p>Services are named constructs and can be referred to by QName
|
|
(see <a href="#qnameres"><strong>2.17 QName
|
|
resolution</strong></a>).</p>
|
|
<p>The properties of the <a name="component-Service" id=
|
|
"component-Service">Service</a> component are as follows:</p>
|
|
<ul>
|
|
<li>
|
|
<p>{<a name="property-Service.name" id=
|
|
"property-Service.name">name</a>} REQUIRED. An
|
|
<em>xs:QName</em>.</p>
|
|
</li>
|
|
<li>
|
|
<p>{<a name="property-Service.interface" id=
|
|
"property-Service.interface">interface</a>} REQUIRED. An <a href=
|
|
"#component-Interface">Interface</a> component.</p>
|
|
</li>
|
|
<li>
|
|
<p>{<a name="property-Service.endpoints" id=
|
|
"property-Service.endpoints">endpoints</a>} REQUIRED. A non-empty
|
|
set of <a href="#component-Endpoint">Endpoint</a> components.</p>
|
|
</li>
|
|
</ul>
|
|
<a name="zed-Service" id="zed-Service"></a><a name="zed-ServiceRI"
|
|
id="zed-ServiceRI"></a>
|
|
<p><span id="Service-1060" class="test-assertion-tr">For each
|
|
<a href="#component-Service">Service</a> component in the {<a href=
|
|
"#property-Description.services">services</a>} property of a
|
|
<a href="#component-Description">Description</a> component, the
|
|
{<a href="#property-Service.name">name</a>} property MUST be
|
|
unique.<sup><a href="#Service-1060-summary" title=
|
|
"Link to assertion Service-1060 summary">†</a></sup></span></p>
|
|
<a name="zed-ServiceKey" id="zed-ServiceKey"></a><a name=
|
|
"zed-ServiceParent" id="zed-ServiceParent"></a><a name=
|
|
"zed-ServiceCM" id="zed-ServiceCM"></a></div>
|
|
<div class="div3">
|
|
<h4><a name="Service_XMLRep" id="Service_XMLRep"></a>2.12.2 XML
|
|
Representation of Service Component</h4>
|
|
<div class="exampleInner">
|
|
<pre xml:space="preserve">
|
|
<description>
|
|
<<strong>service</strong>
|
|
name="<em>xs:NCName</em>"
|
|
interface="<em>xs:QName</em>" >
|
|
<documentation />*
|
|
<endpoint />+
|
|
</<strong>service</strong>>
|
|
</description>
|
|
</pre></div>
|
|
<p>The XML representation for a <a href=
|
|
"#component-Service">Service</a> component is an <em>element
|
|
information item</em> with the following Infoset properties:</p>
|
|
<ul>
|
|
<li>
|
|
<p>A [local name] of <code>service</code></p>
|
|
</li>
|
|
<li>
|
|
<p>A [namespace name] of "http://www.w3.org/ns/wsdl"</p>
|
|
</li>
|
|
<li>
|
|
<p>Two 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>
|
|
as described below in <a href=
|
|
"#Service_name_attribute"><strong>2.12.2.1 name attribute
|
|
information item with service [owner element]</strong></a>.</p>
|
|
</li>
|
|
<li>
|
|
<p>A REQUIRED <code>interface</code> <em>attribute information
|
|
item</em> as described below in <a href=
|
|
"#Service_interface_attribute"><strong>2.12.2.2 interface attribute
|
|
information item with service [owner element]</strong></a>.</p>
|
|
</li>
|
|
<li>
|
|
<p>Zero or more namespace qualified <em>attribute information
|
|
item</em>s whose [namespace name] is NOT
|
|
"http://www.w3.org/ns/wsdl".</p>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
<li>
|
|
<p>One 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 (see <a href="#eii-documentation"><strong>5.
|
|
Documentation</strong></a>).</p>
|
|
</li>
|
|
<li>
|
|
<p>One or more <em>element information item</em>s from among the
|
|
following, in any order:</p>
|
|
<ul>
|
|
<li>
|
|
<p>One or more <code>endpoint</code> <em>element information
|
|
item</em>s (see <a href="#Endpoint_XMLRep"><strong>2.13.2 XML
|
|
Representation of Endpoint Component</strong></a></p>
|
|
</li>
|
|
<li>
|
|
<p>Zero or more namespace-qualified <em>element information
|
|
item</em>s whose [namespace name] is NOT
|
|
"http://www.w3.org/ns/wsdl".</p>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
</ol>
|
|
</li>
|
|
</ul>
|
|
<div class="div4">
|
|
<h5><a name="Service_name_attribute" id=
|
|
"Service_name_attribute"></a>2.12.2.1 <code>name</code>
|
|
<em>attribute information item</em> with <code>service</code>
|
|
[owner element]</h5>
|
|
<p>The <code>name</code> <em>attribute information item</em>
|
|
together with the <code>targetNamespace</code> <em>attribute
|
|
information item</em> of the <code>description</code> <em>element
|
|
information item</em> forms the QName of the service.</p>
|
|
<p>The <code>name</code> <em>attribute information item</em> has
|
|
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>
|
|
</ul>
|
|
<p>The type of the <code>name</code> <em>attribute information
|
|
item</em> is <em>xs:NCName</em>.</p>
|
|
</div>
|
|
<div class="div4">
|
|
<h5><a name="Service_interface_attribute" id=
|
|
"Service_interface_attribute"></a>2.12.2.2 <code>interface</code>
|
|
<em>attribute information item</em> with <code>service</code>
|
|
[owner element]</h5>
|
|
<p>The <code>interface</code> <em>attribute information item</em>
|
|
identifies the interface that the service is an instance of.</p>
|
|
<p>The <code>interface</code> <em>attribute information item</em>
|
|
has the following Infoset properties:</p>
|
|
<ul>
|
|
<li>
|
|
<p>A [local name] of <code>interface</code></p>
|
|
</li>
|
|
<li>
|
|
<p>A [namespace name] which has no value</p>
|
|
</li>
|
|
</ul>
|
|
<p>The type of the <code>interface</code> <em>attribute information
|
|
item</em> is <em>xs:QName.</em>.</p>
|
|
</div>
|
|
</div>
|
|
<div class="div3">
|
|
<h4><a name="Service_Mapping" id="Service_Mapping"></a>2.12.3
|
|
Mapping Service's XML Representation to Component Properties</h4>
|
|
<p>The mapping from the XML Representation of the
|
|
<code>service</code> <em>element information item</em> (see
|
|
<a href="#Service_XMLRep"><strong>2.12.2 XML Representation of
|
|
Service Component</strong></a>) to the properties of the <a href=
|
|
"#component-Service">Service</a> component is as described in
|
|
<a href="#tab_Service_Mapping">Table 2-12</a>.</p>
|
|
<a name="tab_Service_Mapping" id="tab_Service_Mapping"></a>
|
|
<table border="1">
|
|
<caption>Table 2-12. Mapping from XML Representation to Service
|
|
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-Service.name">name</a>}</td>
|
|
<td rowspan="1" colspan="1">The QName whose local name is the
|
|
actual value of the <code>name</code> <em>attribute information
|
|
item</em>, and whose namespace name is the actual value of the
|
|
<code>targetNamespace</code> <em>attribute information item</em> of
|
|
the [parent] <code>description</code> <em>element information
|
|
item</em>.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">{<a href=
|
|
"#property-Service.interface">interface</a>}</td>
|
|
<td rowspan="1" colspan="1"><span>The <a href=
|
|
"#component-Interface">Interface</a> component resolved to by the
|
|
actual value of the <code>interface</code> <em>attribute
|
|
information item</em> (see <a href="#qnameres"><strong>2.17 QName
|
|
resolution</strong></a>).</span></td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">{<a href=
|
|
"#property-Service.endpoints">endpoints</a>}</td>
|
|
<td rowspan="1" colspan="1">The <a href=
|
|
"#component-Endpoint">Endpoint</a> components corresponding to the
|
|
<code>endpoint</code> <em>element information item</em>s in
|
|
[children].</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
<br /></div>
|
|
</div>
|
|
<div class="div2">
|
|
<h3><a name="Endpoint" id="Endpoint"></a>2.13 Endpoint</h3>
|
|
<div class="div3">
|
|
<h4><a name="Endpoint_details" id="Endpoint_details"></a>2.13.1 The
|
|
Endpoint Component</h4>
|
|
<p>An <a href="#component-Endpoint">Endpoint</a> component defines
|
|
the particulars of a specific endpoint at which a given service is
|
|
available.</p>
|
|
<p><a href="#component-Endpoint">Endpoint</a> components are local
|
|
to a given <a href="#component-Service">Service</a> component (see
|
|
<a href="#frag-ids"><strong>A.2 Fragment
|
|
Identifiers</strong></a>).</p>
|
|
<p>The <a href="#component-Binding">Binding</a> component specified
|
|
by the {<a href="#property-Endpoint.binding">binding</a>} property
|
|
of an <a href="#component-Endpoint">Endpoint</a> component is said
|
|
to be <em>applied</em> to the <a href=
|
|
"#component-Interface">Interface</a> component which is the value
|
|
of the {<a href="#property-Service.interface">interface</a>}
|
|
property of the parent <a href="#component-Service">Service</a>
|
|
component of the <a href="#component-Endpoint">Endpoint</a>.
|
|
According to the constraints given below, if this <a href=
|
|
"#component-Binding">Binding</a> component has an {<a href=
|
|
"#property-Binding.interface">interface</a>} property, its value
|
|
must be the <a href="#component-Interface">Interface</a> component
|
|
the <a href="#component-Binding">Binding</a> component is applied
|
|
to.</p>
|
|
<p>The {<a href="#property-Endpoint.address">address</a>} property
|
|
is optional to allow for means other than IRIs to be used, e.g. a
|
|
WS-Addressing Endpoint Reference [<cite><a href="#WSA-Core">WSA 1.0
|
|
Core</a></cite>]. It is also possible that, in certain scenarios,
|
|
an address will not be required, in which case this property may be
|
|
absent.</p>
|
|
<p>The properties of the <a name="component-Endpoint" id=
|
|
"component-Endpoint">Endpoint</a> component are as follows:</p>
|
|
<ul>
|
|
<li>
|
|
<p>{<a name="property-Endpoint.name" id=
|
|
"property-Endpoint.name">name</a>} REQUIRED. An
|
|
<em>xs:NCName</em>.</p>
|
|
</li>
|
|
<li>
|
|
<p>{<a name="property-Endpoint.binding" id=
|
|
"property-Endpoint.binding">binding</a>} REQUIRED. A <a href=
|
|
"#component-Binding">Binding</a> component.</p>
|
|
</li>
|
|
<li>
|
|
<p>{<a name="property-Endpoint.address" id=
|
|
"property-Endpoint.address">address</a>} OPTIONAL. An
|
|
<em>xs:anyURI</em>. <span id="Endpoint-1061" class=
|
|
"test-assertion-tr">This <em>xs:anyURI</em> MUST be an absolute IRI
|
|
as defined by [<cite><a href="#RFC3987">IETF RFC
|
|
3987</a></cite>].<sup><a href="#Endpoint-1061-summary" title=
|
|
"Link to assertion Endpoint-1061 summary">†</a></sup></span> If
|
|
present, the value of this attribute represents the network address
|
|
at which the service indicated by the parent <a href=
|
|
"#component-Service">Service</a> component's {<a href=
|
|
"#property-Service.interface">interface</a>} property is offered
|
|
via the binding referred to by the {<a href=
|
|
"#property-Endpoint.binding">binding</a>} property.
|
|
<strong>Note</strong> that the presence in this property of the
|
|
characters "?" and "#" can conflict with those potentially added by
|
|
the query string serialization mechanism, as defined in <a href=
|
|
"http://www.w3.org/TR/2007/REC-wsdl20-adjuncts-20070626/#_http_x-www-form-urlencoded">
|
|
Serialization as "application/x-www-form-urlencoded"</a>
|
|
([<cite><a href="#WSDL-PART2">WSDL 2.0 Adjuncts</a></cite>],
|
|
section 6.8.2).</p>
|
|
</li>
|
|
<li>
|
|
<p>{<a name="property-Endpoint.parent" id=
|
|
"property-Endpoint.parent">parent</a>} REQUIRED. The <a href=
|
|
"#component-Service">Service</a> component that contains this
|
|
component in its {<a href=
|
|
"#property-Service.endpoints">endpoints</a>} property.</p>
|
|
</li>
|
|
</ul>
|
|
<a name="zed-Endpoint" id="zed-Endpoint"></a><a name=
|
|
"zed-EndpointRI" id="zed-EndpointRI"></a>
|
|
<p>For each <a href="#component-Endpoint">Endpoint</a> component in
|
|
the {<a href="#property-Service.endpoints">endpoints</a>} property
|
|
of a <a href="#component-Service">Service</a> component, the
|
|
{<a href="#property-Endpoint.name">name</a>} property MUST be
|
|
unique. Note that this constraint is enforced by the normative WSDL
|
|
2.0 XML schema.</p>
|
|
<a name="zed-EndpointKey" id="zed-EndpointKey"></a>
|
|
<p><span id="Endpoint-1062" class="test-assertion-tr">For each
|
|
<a href="#component-Endpoint">Endpoint</a> component in the
|
|
{<a href="#property-Service.endpoints">endpoints</a>} property of a
|
|
<a href="#component-Service">Service</a> component, the {<a href=
|
|
"#property-Endpoint.binding">binding</a>} property MUST either be a
|
|
<a href="#component-Binding">Binding</a> component with an
|
|
unspecified {<a href="#property-Binding.interface">interface</a>}
|
|
property or a <a href="#component-Binding">Binding</a> component
|
|
with an {<a href="#property-Binding.interface">interface</a>}
|
|
property equal to the {<a href=
|
|
"#property-Service.interface">interface</a>} property of the
|
|
<a href="#component-Service">Service</a> component.<sup><a href=
|
|
"#Endpoint-1062-summary" title=
|
|
"Link to assertion Endpoint-1062 summary">†</a></sup></span></p>
|
|
<a name="zed-EndpointConsistent" id=
|
|
"zed-EndpointConsistent"></a><a name="zed-EndpointCM" id=
|
|
"zed-EndpointCM"></a></div>
|
|
<div class="div3">
|
|
<h4><a name="Endpoint_XMLRep" id="Endpoint_XMLRep"></a>2.13.2 XML
|
|
Representation of Endpoint Component</h4>
|
|
<div class="exampleInner">
|
|
<pre xml:space="preserve">
|
|
<description>
|
|
<service>
|
|
<<strong>endpoint</strong>
|
|
name="<em>xs:NCName</em>"
|
|
binding="<em>xs:QName</em>"
|
|
address="<em>xs:anyURI</em>"? >
|
|
<documentation />*
|
|
</<strong>endpoint</strong>>+
|
|
</service>
|
|
</description>
|
|
</pre></div>
|
|
<p>The XML representation for a <a href=
|
|
"#component-Endpoint">Endpoint</a> component is an <em>element
|
|
information item</em> with the following Infoset properties:</p>
|
|
<ul>
|
|
<li>
|
|
<p>A [local name] of <code>endpoint</code>.</p>
|
|
</li>
|
|
<li>
|
|
<p>A [namespace name] of "http://www.w3.org/ns/wsdl".</p>
|
|
</li>
|
|
<li>
|
|
<p>Two 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>
|
|
as described below in <a href=
|
|
"#Endpoint_name_attribute"><strong>2.13.2.1 name attribute
|
|
information item with endpoint [owner element]</strong></a>.</p>
|
|
</li>
|
|
<li>
|
|
<p>A REQUIRED <code>binding</code> <em>attribute information
|
|
item</em> as described below in <a href=
|
|
"#Endpoint_binding_attribute"><strong>2.13.2.2 binding attribute
|
|
information item with endpoint [owner element]</strong></a>.</p>
|
|
</li>
|
|
<li>
|
|
<p>An OPTIONAL <code>address</code> <em>attribute information
|
|
item</em> as described below in <a href=
|
|
"#Endpoint_address_attribute"><strong>2.13.2.3 address attribute
|
|
information item with endpoint [owner element]</strong></a>.</p>
|
|
</li>
|
|
<li>
|
|
<p>Zero or more namespace qualified <em>attribute information
|
|
item</em>s whose [namespace name] is NOT
|
|
"http://www.w3.org/ns/wsdl".</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 (see <a href="#eii-documentation"><strong>5.
|
|
Documentation</strong></a>).</p>
|
|
</li>
|
|
<li>
|
|
<p>Zero or more namespace-qualified <em>element information
|
|
item</em>s whose [namespace name] is NOT
|
|
"http://www.w3.org/ns/wsdl". Such <em>element information
|
|
item</em>s are considered to be endpoint extension elements as
|
|
described below (see <a href=
|
|
"#Endpoint_extension_elements"><strong>2.13.2.4 Endpoint extension
|
|
elements</strong></a>).</p>
|
|
</li>
|
|
</ol>
|
|
</li>
|
|
</ul>
|
|
<div class="div4">
|
|
<h5><a name="Endpoint_name_attribute" id=
|
|
"Endpoint_name_attribute"></a>2.13.2.1 <code>name</code>
|
|
<em>attribute information item</em> with <code>endpoint</code>
|
|
[owner element]</h5>
|
|
<p>The <code>name</code> <em>attribute information item</em>
|
|
together with the <code>targetNamespace</code> <em>attribute
|
|
information item</em> of the <code>description</code> <em>element
|
|
information item</em> forms the QName of the endpoint.</p>
|
|
<p>The <code>name</code> <em>attribute information item</em> has
|
|
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>
|
|
</ul>
|
|
<p>The type of the <code>name</code> <em>attribute information
|
|
item</em> is <em>xs:NCName</em>.</p>
|
|
</div>
|
|
<div class="div4">
|
|
<h5><a name="Endpoint_binding_attribute" id=
|
|
"Endpoint_binding_attribute"></a>2.13.2.2 <code>binding</code>
|
|
<em>attribute information item</em> with <code>endpoint</code>
|
|
[owner element]</h5>
|
|
<p>The <code>binding</code> <em>attribute information item</em>
|
|
refers, by QName, to a <a href="#component-Binding">Binding</a>
|
|
component</p>
|
|
<p>The <code>binding</code> <em>attribute information item</em> has
|
|
the following Infoset properties:</p>
|
|
<ul>
|
|
<li>
|
|
<p>A [local name] of <code>binding</code></p>
|
|
</li>
|
|
<li>
|
|
<p>A [namespace name] which has no value</p>
|
|
</li>
|
|
</ul>
|
|
<p>The type of the <code>binding</code> <em>attribute information
|
|
item</em> is <em>xs:QName</em>.</p>
|
|
</div>
|
|
<div class="div4">
|
|
<h5><a name="Endpoint_address_attribute" id=
|
|
"Endpoint_address_attribute"></a>2.13.2.3 <code>address</code>
|
|
<em>attribute information item</em> with <code>endpoint</code>
|
|
[owner element]</h5>
|
|
<p>The <code>address</code> <em>attribute information item</em>
|
|
specifies the address of the endpoint.</p>
|
|
<p>The <code>address</code> <em>attribute information item</em> has
|
|
the following Infoset properties:</p>
|
|
<ul>
|
|
<li>
|
|
<p>A [local name] of <code>address</code></p>
|
|
</li>
|
|
<li>
|
|
<p>A [namespace name] which has no value</p>
|
|
</li>
|
|
</ul>
|
|
<p>The type of the <code>address</code> <em>attribute information
|
|
item</em> is <em>xs:anyURI</em>.</p>
|
|
</div>
|
|
<div class="div4">
|
|
<h5><a name="Endpoint_extension_elements" id=
|
|
"Endpoint_extension_elements"></a>2.13.2.4 Endpoint extension
|
|
elements</h5>
|
|
<p>Endpoint extension elements are used to provide information
|
|
specific to a particular endpoint in a server. The semantics of
|
|
such <em>element information item</em>s are defined by the
|
|
specification for those <em>element information item</em>s. Such
|
|
specifications are expected to annotate the <a href=
|
|
"#component-Endpoint">Endpoint</a> component with additional
|
|
properties and specify the mapping from the XML representation to
|
|
those properties.</p>
|
|
</div>
|
|
</div>
|
|
<div class="div3">
|
|
<h4><a name="Endpoint_Mapping" id="Endpoint_Mapping"></a>2.13.3
|
|
Mapping Endpoint's XML Representation to Component Properties</h4>
|
|
<p>The mapping from the XML Representation of the
|
|
<code>endpoint</code> <em>element information item</em> (see
|
|
<a href="#Endpoint_XMLRep"><strong>2.13.2 XML Representation of
|
|
Endpoint Component</strong></a>) to the properties of the <a href=
|
|
"#component-Endpoint">Endpoint</a> component is as described in
|
|
<a href="#tab_Endpoint_Mapping">Table 2-13</a>.</p>
|
|
<a name="tab_Endpoint_Mapping" id="tab_Endpoint_Mapping"></a>
|
|
<table border="1">
|
|
<caption>Table 2-13. Mapping from XML Representation to Endpoint
|
|
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-Endpoint.name">name</a>}</td>
|
|
<td rowspan="1" colspan="1">The actual value of the
|
|
<code>name</code> <em>attribute information item</em>.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">{<a href=
|
|
"#property-Endpoint.binding">binding</a>}</td>
|
|
<td rowspan="1" colspan="1">The <a href=
|
|
"#component-Binding">Binding</a> component resolved to by the
|
|
actual value of the <code>binding</code> <em>attribute information
|
|
item</em> (see <a href="#qnameres"><strong>2.17 QName
|
|
resolution</strong></a> ).</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">{<a href=
|
|
"#property-Endpoint.address">address</a>}</td>
|
|
<td rowspan="1" colspan="1">The actual value of the
|
|
<code>address</code> <em>attribute information item</em> if
|
|
present; otherwise empty.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">{<a href=
|
|
"#property-Endpoint.parent">parent</a>}</td>
|
|
<td rowspan="1" colspan="1">The <a href=
|
|
"#component-Service">Service</a> component corresponding to the
|
|
<code>service</code> <em>element information item</em> in
|
|
[parent].</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
<br /></div>
|
|
</div>
|
|
<div class="div2">
|
|
<h3><a name="simpletypes" id="simpletypes"></a>2.14 XML Schema 1.0
|
|
Simple Types Used in the Component Model</h3>
|
|
<p>The XML Schema 1.0 simple types [<cite><a href=
|
|
"#XMLSchemaP2">XML Schema: Datatypes</a></cite>] used in this
|
|
specification are:</p>
|
|
<ul>
|
|
<li>
|
|
<p><em>xs:token</em></p>
|
|
</li>
|
|
<li>
|
|
<p><em>xs:NCName</em></p>
|
|
</li>
|
|
<li>
|
|
<p><em>xs:anyURI</em></p>
|
|
</li>
|
|
<li>
|
|
<p><em>xs:QName</em></p>
|
|
</li>
|
|
<li>
|
|
<p><em>xs:boolean</em></p>
|
|
</li>
|
|
</ul>
|
|
<a name="zed-NCName" id="zed-NCName"></a><a name="zed-URI" id=
|
|
"zed-URI"></a><a name="zed-AbsoluteURI" id=
|
|
"zed-AbsoluteURI"></a><a name="zed-QName" id=
|
|
"zed-QName"></a><a name="zed-Boolean" id="zed-Boolean"></a></div>
|
|
<div class="div2">
|
|
<h3><a name="compequiv" id="compequiv"></a>2.15 Equivalence of
|
|
Components</h3>
|
|
<p>Two component instances of the same type are considered
|
|
equivalent if, for each property value of the first component,
|
|
there is a corresponding property with an equivalent value on the
|
|
second component, and vice versa.</p>
|
|
<ul>
|
|
<li>
|
|
<p>For values of a simple type (see <a href=
|
|
"#simpletypes"><strong>2.14 XML Schema 1.0 Simple Types Used in the
|
|
Component Model</strong></a>) this means that they contain the same
|
|
values. For instance, two string values are equivalent if they
|
|
contain the same sequence of Unicode characters, as described in
|
|
[<cite><a href="#CHARMOD">Character Model for the WWW</a></cite>],
|
|
or two boolean values are equivalent if they contain the same
|
|
canonical value (<code>true</code> or <code>false</code>).</p>
|
|
</li>
|
|
<li>
|
|
<p>Values which are references to other components are considered
|
|
equivalent when they refer to equivalent components (as determined
|
|
above).</p>
|
|
</li>
|
|
<li>
|
|
<p>List-based values are considered equivalent if they have the
|
|
same length and their elements at corresponding positions are
|
|
equivalent.</p>
|
|
</li>
|
|
<li>
|
|
<p>Finally, set-based values are considered equivalent if, for each
|
|
value in the first, there is an equivalent value in the second, and
|
|
vice versa.</p>
|
|
</li>
|
|
</ul>
|
|
<p><span id="Equivalence-1063" class="test-assertion-tr">Extension
|
|
properties which are not string values, sets of strings or
|
|
references MUST describe their values' equivalence
|
|
rules.<sup><a href="#Equivalence-1063-summary" title=
|
|
"Link to assertion Equivalence-1063 summary">†</a></sup></span></p>
|
|
<p>Because different top-level components (e.g., <a href=
|
|
"#component-Interface">Interface</a>, <a href=
|
|
"#component-Binding">Binding</a>, and <a href=
|
|
"#component-Service">Service</a>) are required to have different
|
|
names, it is possible to determine whether two top-level components
|
|
of a given type are equivalent by simply examining their {name}
|
|
property.</p>
|
|
<p>The <a href="#component-Binding">Binding</a> component specified
|
|
by the {<a href="#property-Endpoint.binding">binding</a>} property
|
|
of an <a href="#component-Endpoint">Endpoint</a> is said to be
|
|
applied to the <a href="#component-Interface">Interface</a>
|
|
component which is the value of the {<a href=
|
|
"#property-Service.interface">interface</a>} property of the
|
|
{<a href="#property-Endpoint.parent">parent</a>} <a href=
|
|
"#component-Service">Service</a> component for the <a href=
|
|
"#component-Endpoint">Endpoint</a>. Note that, if this <a href=
|
|
"#component-Binding">Binding</a> component has an {<a href=
|
|
"#property-Binding.interface">interface</a>} property, then its
|
|
value MUST be the <a href="#component-Interface">Interface</a>
|
|
component that the <a href="#component-Binding">Binding</a>
|
|
component is applied to.</p>
|
|
</div>
|
|
<div class="div2">
|
|
<h3><a name="symbolspaces" id="symbolspaces"></a>2.16 Symbol
|
|
Spaces</h3>
|
|
<p>This specification defines three symbol spaces, one for each
|
|
top-level component type (<a href=
|
|
"#component-Interface">Interface</a>, <a href=
|
|
"#component-Binding">Binding</a> and <a href=
|
|
"#component-Service">Service</a>).</p>
|
|
<p>Within a symbol space, all qualified names (that is, the
|
|
{<a name="property-.name" id="property-.name">name</a>} property)
|
|
are unique. Between symbol spaces, the names need not be unique.
|
|
Thus it is perfectly coherent to have, for example, a binding and
|
|
an interface that have the same name.</p>
|
|
<p>When XML Schema is being used as one of the type systems for a
|
|
WSDL 2.0 description, then six other symbol spaces also exist, one
|
|
for each of: global element declarations, global attribute
|
|
declarations, named model groups, named attribute groups, type
|
|
definitions and key constraints, as defined by [<cite><a href=
|
|
"#XMLSchemaP1">XML Schema: Structures</a></cite>]. Other type
|
|
systems may define additional symbol spaces.</p>
|
|
</div>
|
|
<div class="div2">
|
|
<h3><a name="qnameres" id="qnameres"></a>2.17 QName resolution</h3>
|
|
<p>In its serialized form WSDL 2.0 makes significant use of
|
|
references between components. Such references are made using the
|
|
Qualified Name, or QName, of the component being referred to.
|
|
QNames are a tuple, consisting of two parts; a namespace name and a
|
|
local name. The namespace name for a component is represented by
|
|
the value of the <code>targetNamespace</code> <em>attribute
|
|
information item</em> of the [parent] <code>description</code>
|
|
<em>element information item</em>. The local name is represented by
|
|
the {<a href="#property-.name">name</a>} property of the
|
|
component.</p>
|
|
<p>QName references are resolved by looking in the appropriate
|
|
property of the <a href="#component-Description">Description</a>
|
|
component. For example, to resolve a QName of an interface (as
|
|
referred to by the <code>interface</code> <em>attribute information
|
|
item</em> on a binding), the {<a href=
|
|
"#property-Description.interfaces">interfaces</a>} property of the
|
|
<a href="#component-Description">Description</a> component would be
|
|
inspected.</p>
|
|
<p>If the appropriate property of the <a href=
|
|
"#component-Description">Description</a> component does not contain
|
|
a component with the required QName, then the reference is a broken
|
|
reference. <span id="QName-resolution-1064" class=
|
|
"test-assertion-tr">A <a href=
|
|
"#component-Description">Description</a> component MUST NOT have
|
|
such broken references.<sup><a href=
|
|
"#QName-resolution-1064-summary" title=
|
|
"Link to assertion QName-resolution-1064 summary">†</a></sup></span></p>
|
|
</div>
|
|
<div class="div2">
|
|
<h3><a name="uricompare" id="uricompare"></a>2.18 Comparing URIs
|
|
and IRIs</h3>
|
|
<p>This specification uses absolute URIs and IRIs to identify
|
|
several components and components characteristics (for example,
|
|
operation message exchange patterns and styles). <span id=
|
|
"Compare-URI-IRI-1065" class="test-assertion-tr">When such absolute
|
|
URIs and IRIs are being compared to determine equivalence (see
|
|
<a href="#compequiv"><strong>2.15 Equivalence of
|
|
Components</strong></a>), they MUST be compared
|
|
character-by-character as indicated in [<cite><a href=
|
|
"#RFC3987">IETF RFC 3987</a></cite>].<sup><a href=
|
|
"#Compare-URI-IRI-1065-summary" title=
|
|
"Link to assertion Compare-URI-IRI-1065 summary">†</a></sup></span></p>
|
|
</div>
|
|
</div>
|
|
<div class="div1">
|
|
<h2><a name="eii-types" id="eii-types"></a>3. Types</h2>
|
|
<div class="exampleInner">
|
|
<pre xml:space="preserve">
|
|
<description>
|
|
<<strong>types</strong>>
|
|
<documentation />*
|
|
[ <xs:import namespace="<em>xs:anyURI</em>" schemaLocation="<em>xs:anyURI</em>"? /> |
|
|
<xs:schema targetNamespace="<em>xs:anyURI</em>"? /> |
|
|
<em>other extension elements</em> ]*
|
|
</<strong>types</strong>>
|
|
</description>
|
|
</pre></div>
|
|
<p>The content of messages and faults may be constrained using type
|
|
system components. These constraints are based upon a specific data
|
|
model, and expressed using a particular schema language.</p>
|
|
<p>Although a variety of data models can be accommodated (through
|
|
WSDL 2.0 extensions), this specification only defines a means of
|
|
expressing constraints based upon the XML Infoset [<cite><a href=
|
|
"#XMLInfoSet">XML Information Set</a></cite>]. Furthermore,
|
|
although a number of alternate schema languages can be used to
|
|
constrain the XML Infoset (as long as they support the semantics of
|
|
either inlining or importing schema), this specification only
|
|
defines the use of XML Schema [<cite><a href="#XMLSchemaP1">XML
|
|
Schema: Structures</a></cite>], [<cite><a href="#XMLSchemaP2">XML
|
|
Schema: Datatypes</a></cite>].</p>
|
|
<p>Specifically, the {<a href=
|
|
"#property-Description.elementdeclarations">element
|
|
declarations</a>} and {<a href=
|
|
"#property-Description.typedefinitions">type definitions</a>}
|
|
properties of the <a href="#component-Description">Description</a>
|
|
component are collections of imported and inlined schema components
|
|
that describe Infoset <em>element information item</em>s.</p>
|
|
<p>When extensions are used to enable the use of a non-Infoset data
|
|
model, or a non-Schema constraint language, the
|
|
<code>wsdl:required</code> attribute information item MAY be used
|
|
to require support for that extension.</p>
|
|
<div class="note">
|
|
<p class="prefix"><strong>Note:</strong></p>
|
|
<p>Support for the W3C XML Schema [<cite><a href="#XMLSchemaP1">XML
|
|
Schema: Structures</a></cite>], [<cite><a href="#XMLSchemaP2">XML
|
|
Schema: Datatypes</a></cite>] is included in the conformance
|
|
criteria for WSDL 2.0 documents (see <a href=
|
|
"#xsd-types"><strong>3.1 Using W3C XML Schema Definition
|
|
Language</strong></a> ).</p>
|
|
</div>
|
|
<p>The schema components contained in the {<a href=
|
|
"#property-Description.elementdeclarations">element
|
|
declarations</a>} property of the <a href=
|
|
"#component-Description">Description</a> component provide the type
|
|
system used for <a href=
|
|
"#component-InterfaceMessageReference">Interface Message
|
|
Reference</a> and <a href="#component-InterfaceFault">Interface
|
|
Fault</a> components. <a href=
|
|
"#component-InterfaceMessageReference">Interface Message
|
|
Reference</a> components indicate their structure and content by
|
|
using the standard <em>attribute information item</em>s
|
|
<code>element</code>, or for alternate schema languages in which
|
|
these concepts do not map well, by using alternative <em>attribute
|
|
information item</em> extensions. <a href=
|
|
"#component-InterfaceFault">Interface Fault</a> components behave
|
|
similarly. Such extensions should define how they reference type
|
|
system components. Such type system components MAY appear in
|
|
additional collection properties on the <a href=
|
|
"#component-Description">Description</a> component.</p>
|
|
<p>Extensions in the form of <em>attribute information item</em>s
|
|
can be used to refer to constraints (type definitions or analogous
|
|
constructs) described using other schema languages or type systems.
|
|
Such components MAY appear in additional collection properties on
|
|
the <a href="#component-Description">Description</a> component.</p>
|
|
<p>The <code>types</code> <em>element information item</em>
|
|
encloses data type definitions, based upon the XML Infoset, used to
|
|
define messages and has the following Infoset properties:</p>
|
|
<ul>
|
|
<li>
|
|
<p>A [local name] of <code>types</code>.</p>
|
|
</li>
|
|
<li>
|
|
<p>A [namespace name] of "http://www.w3.org/ns/wsdl".</p>
|
|
</li>
|
|
<li>
|
|
<p>Zero or more namespace qualified <em>attribute information
|
|
item</em>s whose [namespace name] is NOT
|
|
http://www.w3.org/ns/wsdl</p>
|
|
</li>
|
|
<li>
|
|
<p>Zero or more <em>element information item</em>s amongst its
|
|
[children] as follows:</p>
|
|
<ul>
|
|
<li>
|
|
<p>Zero or more <code>documentation</code> <em>element information
|
|
item</em>s (see <a href="#eii-documentation"><strong>5.
|
|
Documentation</strong></a>) in its [children] property.</p>
|
|
</li>
|
|
<li>
|
|
<p>Zero or more <em>element information item</em>s from among the
|
|
following, in any order:</p>
|
|
<ul>
|
|
<li>
|
|
<p><code>xs:import</code> <em>element information item</em>s</p>
|
|
</li>
|
|
<li>
|
|
<p><code>xs:schema</code> <em>element information item</em>s</p>
|
|
</li>
|
|
<li>
|
|
<p>Other namespace qualified <em>element information item</em>s
|
|
whose namespace is NOT http://www.w3.org/ns/wsdl</p>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
<div class="div2">
|
|
<h3><a name="xsd-types" id="xsd-types"></a>3.1 Using W3C XML Schema
|
|
Definition Language</h3>
|
|
<p>XML Schema MAY be used as the schema language via import or
|
|
inlining.</p>
|
|
<p><span id="Schema-1066" class="test-assertion-tr">A WSDL 2.0
|
|
document MUST NOT refer to XML Schema components in a given
|
|
namespace UNLESS an <code>xs:import</code> or
|
|
<code>xs:schema</code> <em>element information item</em> for that
|
|
namespace is present OR the namespace is the XML Schema namespace,
|
|
http://www.w3.org/2001/XMLSchema, which contains built-in types as
|
|
defined in XML Schema Part 2: Datatypes Second Edition
|
|
[<cite><a href="#XMLSchemaP2">XML Schema:
|
|
Datatypes</a></cite>].<sup><a href="#Schema-1066-summary" title=
|
|
"Link to assertion Schema-1066 summary">†</a></sup></span> That is,
|
|
using the <code>xs:import</code> or <code>xs:schema</code>
|
|
<em>element information item</em> is a necessary condition for
|
|
making XML Schema components, other than the built-in components,
|
|
referenceable within a WSDL 2.0 document. The built-in XML Schema
|
|
datatypes are built-in to the WSDL 2.0 component model and are
|
|
contained in the {<a href=
|
|
"#property-Description.typedefinitions">type definitions</a>}
|
|
property of the <a href="#component-Description">Description</a>
|
|
component. A WSDL 2.0 document that refers to any element
|
|
declaration or type definition component of the XML Schema
|
|
namespace, except the built-in primitive and derived types, MUST
|
|
import http://www.w3.org/2001/XMLSchema.</p>
|
|
<p><a href="#tab_SchemaVisibility">Table 3-1</a> summarizes the
|
|
referenceability of schema components.</p>
|
|
<a name="tab_SchemaVisibility" id="tab_SchemaVisibility"></a>
|
|
<table border="1">
|
|
<caption>Table 3-1. Referenceability of schema components</caption>
|
|
<col width="20%" span="1" />
|
|
<col width="40%" span="1" />
|
|
<col width="40%" span="1" />
|
|
<tbody>
|
|
<tr>
|
|
<th rowspan="1" colspan="1"></th>
|
|
<th rowspan="1" colspan="1">XML Representation</th>
|
|
<th rowspan="1" colspan="1">Referenceability of XML Schema
|
|
Components</th>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">Including description</td>
|
|
<td rowspan="1" colspan="1">description/include</td>
|
|
<td rowspan="1" colspan="1">XML Schema components in the included
|
|
<a href="#component-Description">Description</a> component's
|
|
{<a href="#property-Description.elementdeclarations">element
|
|
declarations</a>} and {<a href=
|
|
"#property-Description.typedefinitions">type definitions</a>}
|
|
properties are referenceable.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">Importing description</td>
|
|
<td rowspan="1" colspan="1">description/import</td>
|
|
<td rowspan="1" colspan="1">None of the XML Schema Components in
|
|
the imported <a href="#component-Description">Description</a>
|
|
component are referenceable.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">Importing XML Schema</td>
|
|
<td rowspan="1" colspan="1">description/types/xs:import</td>
|
|
<td rowspan="1" colspan="1"><a href=
|
|
"#component-ElementDeclaration">Element Declaration</a> and
|
|
<a href="#component-TypeDefinition">Type Definition</a> components
|
|
in the imported namespace are referenceable.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">Inlined XML Schema</td>
|
|
<td rowspan="1" colspan="1">description/types/xs:schema</td>
|
|
<td rowspan="1" colspan="1"><a href=
|
|
"#component-ElementDeclaration">Element Declaration</a> and
|
|
<a href="#component-TypeDefinition">Type Definition</a> components
|
|
in the inlined XML Schema are referenceable.</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
<br />
|
|
<div class="div3">
|
|
<h4><a name="import-xsd" id="import-xsd"></a>3.1.1 Importing XML
|
|
Schema</h4>
|
|
<p>Importing an XML Schema uses the syntax and semantics of the
|
|
<code>xs:import</code> mechanism defined by XML Schema
|
|
[<cite><a href="#XMLSchemaP1">XML Schema: Structures</a></cite>],
|
|
[<cite><a href="#XMLSchemaP2">XML Schema: Datatypes</a></cite>],
|
|
with the differences defined in this section and the following one.
|
|
The schema components defined in the imported namespace are
|
|
referenceable by QName (see <a href="#qnameres"><strong>2.17 QName
|
|
resolution</strong></a>). Only components in the imported namespace
|
|
are referenceable in the WSDL 2.0 document. <span id=
|
|
"Description-1067" class="test-assertion-tr">For each component in
|
|
the imported namespace, a corresponding <a href=
|
|
"#component-ElementDeclaration">Element Declaration</a> component
|
|
or <a href="#component-TypeDefinition">Type Definition</a>
|
|
component MUST appear in the {<a href=
|
|
"#property-Description.elementdeclarations">element
|
|
declarations</a>} or {<a href=
|
|
"#property-Description.typedefinitions">type definitions</a>}
|
|
property respectively of the <a href=
|
|
"#component-Description">Description</a> component corresponding to
|
|
the WSDL document that imports the schema, or that imports directly
|
|
or indirectly a WSDL document that imports the schema.<sup><a href=
|
|
"#Description-1067-summary" title=
|
|
"Link to assertion Description-1067 summary">†</a></sup></span>
|
|
<span id="Description-1068" class="test-assertion-tr">Schema
|
|
components not in an imported namespace MUST NOT appear in the
|
|
{<a href="#property-Description.elementdeclarations">element
|
|
declarations</a>} or {<a href=
|
|
"#property-Description.typedefinitions">type definitions</a>}
|
|
properties.<sup><a href="#Description-1068-summary" title=
|
|
"Link to assertion Description-1068 summary">†</a></sup></span></p>
|
|
<p>A child <em>element information item</em> of the
|
|
<code>types</code> <em>element information item</em> is defined
|
|
with the Infoset properties as follows:</p>
|
|
<ul>
|
|
<li>
|
|
<p>A [local name] of "import".</p>
|
|
</li>
|
|
<li>
|
|
<p>A [namespace name] of "http://www.w3.org/2001/XMLSchema".</p>
|
|
</li>
|
|
<li>
|
|
<p>One or two <em>attribute information item</em>s as follows:</p>
|
|
<ul>
|
|
<li>
|
|
<p>A REQUIRED <code>namespace</code> <em>attribute information
|
|
item</em> as described below.</p>
|
|
</li>
|
|
<li>
|
|
<p>An OPTIONAL <code>schemaLocation</code> <em>attribute
|
|
information item</em> as described below.</p>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
<div class="div4">
|
|
<h5><a name="namespace-attribute" id=
|
|
"namespace-attribute"></a>3.1.1.1 <code>namespace</code>
|
|
<em>attribute information item</em></h5>
|
|
<p>The <code>namespace</code> <em>attribute information item</em>
|
|
defines the namespace of the element declarations and type
|
|
definitions imported from the referenced schema. <span id=
|
|
"Schema-1069" class="test-assertion-tr">The referenced schema MUST
|
|
contain a <code>targetNamespace</code> <em>attribute information
|
|
item</em> on its <code>xs:schema</code> <em>element information
|
|
item</em>.<sup><a href="#Schema-1069-summary" title=
|
|
"Link to assertion Schema-1069 summary">†</a></sup></span>
|
|
<span id="Schema-1070" class="test-assertion-tr">The value of the
|
|
<code>targetNamespace</code> <em>attribute information item</em> of
|
|
the <code>xs:schema</code> <em>element information item</em> of an
|
|
imported schema MUST equal the value of the <code>namespace</code>
|
|
of the <code>import</code> <em>element information item</em> in the
|
|
importing WSDL 2.0 document.<sup><a href="#Schema-1070-summary"
|
|
title="Link to assertion Schema-1070 summary">†</a></sup></span>
|
|
Note that a WSDL 2.0 document must not import a schema that does
|
|
not have a <code>targetNamespace</code> <em>attribute information
|
|
item</em> on its <code>xs:schema</code> <em>element information
|
|
item</em>. Such schemas must first be included (using
|
|
<code>xs:include</code>) in a schema that contains a
|
|
<code>targetNamespace</code> <em>attribute information item</em> on
|
|
its <code>xs:schema</code> <em>element information item</em>, which
|
|
can then be either imported or inlined in the WSDL 2.0
|
|
document.</p>
|
|
<p>The <code>namespace</code> <em>attribute information item</em>
|
|
has the following Infoset properties:</p>
|
|
<ul>
|
|
<li>
|
|
<p>A [local name] of namespace</p>
|
|
</li>
|
|
<li>
|
|
<p>A [namespace name] which has no value.</p>
|
|
</li>
|
|
</ul>
|
|
<p>The type of the <code>namespace</code> <em>attribute information
|
|
item</em> is <em>xs:anyURI</em>.</p>
|
|
</div>
|
|
<div class="div4">
|
|
<h5><a name="schemaLocation-attribute" id=
|
|
"schemaLocation-attribute"></a>3.1.1.2 <code>schemaLocation</code>
|
|
<em>attribute information item</em></h5>
|
|
<p>The <code>schemaLocation</code> <em>attribute information
|
|
item</em>, if present, provides a hint to the XML Schema processor
|
|
as to where the schema may be located. Caching and cataloging
|
|
technologies may provide better information than this hint. The
|
|
<code>schemaLocation</code> <em>attribute information item</em> has
|
|
the following Infoset properties:</p>
|
|
<ul>
|
|
<li>
|
|
<p>A [local name] of schemaLocation.</p>
|
|
</li>
|
|
<li>
|
|
<p>A [namespace name] which has no value.</p>
|
|
</li>
|
|
</ul>
|
|
<p>The type of the <code>schemaLocation</code> <em>attribute
|
|
information item</em> is <em>xs:anyURI.</em></p>
|
|
<p>Every QName reference must resolve (see <a href=
|
|
"#qnameres"><strong>2.17 QName resolution</strong></a>). Note that,
|
|
when resolving QNames references for schema definitions, the
|
|
namespace must be imported by the referring WSDL 2.0 document (see
|
|
<a href="#xsd-types"><strong>3.1 Using W3C XML Schema Definition
|
|
Language</strong></a>).</p>
|
|
</div>
|
|
</div>
|
|
<div class="div3">
|
|
<h4><a name="inlining-xsd" id="inlining-xsd"></a>3.1.2 Inlining XML
|
|
Schema</h4>
|
|
<p>Inlining an XML schema uses the existing top-level
|
|
<code>xs:schema</code> <em>element information item</em> defined by
|
|
XML Schema [<cite><a href="#XMLSchemaP1">XML Schema:
|
|
Structures</a></cite>]. Conceptually, inlining can be viewed as
|
|
simply cutting and pasting an existing schema document to a
|
|
location inside the types <em>element information item</em>.</p>
|
|
<p>The schema components defined and declared in the inlined schema
|
|
document are referenceable by QName (see <a href=
|
|
"#qnameres"><strong>2.17 QName resolution</strong></a>). Only
|
|
components defined and declared in the schema itself and components
|
|
included by it via <code>xs:include</code> are referenceable.
|
|
<span id="Description-1071" class="test-assertion-tr">For each
|
|
component defined and declared in the inlined schema document or
|
|
included by <code>xs:include</code>, a corresponding <a href=
|
|
"#component-ElementDeclaration">Element Declaration</a> component
|
|
or <a href="#component-TypeDefinition">Type Definition</a>
|
|
component MUST appear in the {<a href=
|
|
"#property-Description.elementdeclarations">element
|
|
declarations</a>} property or {<a href=
|
|
"#property-Description.typedefinitions">type definitions</a>}
|
|
property respectively of the <a href=
|
|
"#component-Description">Description</a> component corresponding to
|
|
the WSDL document that contains the schema, or that imports
|
|
directly or indirectly a WSDL document that contains the
|
|
schema.<sup><a href="#Description-1071-summary" title=
|
|
"Link to assertion Description-1071 summary">†</a></sup></span><span id="Description-1072"
|
|
class="test-assertion-tr">Schema components not defined or declared
|
|
in the inlined schema document or included by
|
|
<code>xs:include</code> MUST NOT appear in the {<a href=
|
|
"#property-Description.elementdeclarations">element
|
|
declarations</a>} or {<a href=
|
|
"#property-Description.typedefinitions">type definitions</a>}
|
|
properties.<sup><a href="#Description-1072-summary" title=
|
|
"Link to assertion Description-1072 summary">†</a></sup></span></p>
|
|
<p>Note that components in the namespace that the inline schema
|
|
imports via <code>xs:import</code> are not automatically
|
|
referenceable from the WSDL 2.0 document that contains the inline
|
|
schema. If the namespace referenced in a QName is contained in an
|
|
inline schema, it MAY be imported without a
|
|
<code>schemaLocation</code> attribute, so long as the inline schema
|
|
has been resolved in the current component model.</p>
|
|
<p>Note that components defined in an inlined XML schema are not
|
|
automatically referenceable within the WSDL 2.0 document that
|
|
imported (using <code>wsdl:import</code>) the WSDL 2.0 document
|
|
that inlines the schema (see <a href="#imports"><strong>4.2
|
|
Importing Descriptions</strong></a> for more details). For this
|
|
reason, it is recommended that XML schema documents intended to be
|
|
shared across several WSDL 2.0 documents be placed in separate XML
|
|
schema documents and imported using <code>xs:import</code>, rather
|
|
than inlined inside a WSDL 2.0 document.</p>
|
|
<p>Inside an inlined XML schema, the <code>xs:import</code> and
|
|
<code>xs:include</code> <em>element information item</em>s MAY be
|
|
used to refer to other XML schemas inlined in the same or other
|
|
WSDL 2.0 document, provided that an appropriate value, such as a
|
|
fragment identifier (see [<cite><a href="#XMLSchemaP1">XML Schema:
|
|
Structures</a></cite>] 4.3.1) is specified for their
|
|
<code>schemaLocation</code> <em>attribute information item</em>s.
|
|
For <code>xs:import</code>, the <code>schemaLocation</code>
|
|
attribute is not required so long as the namespace has been
|
|
resolved in the current component model. The semantics of such
|
|
<em>element information item</em>s are governed solely by the XML
|
|
Schema specification [<cite><a href="#XMLSchemaP1">XML Schema:
|
|
Structures</a></cite>].</p>
|
|
<p>A WSDL 2.0 document MAY inline two or more schemas from the same
|
|
<code>targetNamespace</code>. For example, two or more inlined
|
|
schemas can have the same <code>targetNamespace</code> provided
|
|
that they do not define the same elements or types. <span id=
|
|
"Schema-1073" class="test-assertion-tr">A WSDL 2.0 document MUST
|
|
NOT define the same element or type in more than one inlined
|
|
schema.<sup><a href="#Schema-1073-summary" title=
|
|
"Link to assertion Schema-1073 summary">†</a></sup></span> Note
|
|
that it is the responsibility of the underlying XML Schema
|
|
processor to sort out a coherent set of schema components.</p>
|
|
<p>The <code>xs:schema</code> <em>element information item</em> has
|
|
the following Infoset properties:</p>
|
|
<ul>
|
|
<li>
|
|
<p>A [local name] of schema.</p>
|
|
</li>
|
|
<li>
|
|
<p>A [namespace name] of "http://www.w3.org/2001/XMLSchema".</p>
|
|
</li>
|
|
<li>
|
|
<p>Additional OPTIONAL <em>attribute information item</em>s as
|
|
specified for the <code>xs:schema</code> <em>element information
|
|
item</em> by the XML Schema specification.</p>
|
|
</li>
|
|
<li>
|
|
<p>Zero or more child <em>element information item</em>s as
|
|
specified for the <code>xs:schema</code> <em>element information
|
|
item</em> by the XML Schema specification.</p>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<div class="div3">
|
|
<h4><a name="references-definitions" id=
|
|
"references-definitions"></a>3.1.3 References to Element
|
|
Declarations and Type Definitions</h4>
|
|
<p>Whether inlined or imported, the global element declarations
|
|
present in a schema are referenceable from an <a href=
|
|
"#component-InterfaceMessageReference">Interface Message
|
|
Reference</a> or <a href="#component-InterfaceFault">Interface
|
|
Fault</a> component. Similarly, regardless of whether they are
|
|
inlined or imported, the global type definitions present in a
|
|
schema are referenceable from other components.</p>
|
|
<p>A named, global <code>xs:element</code> declaration is
|
|
referenceable from the <code>element</code> <em>attribute
|
|
information item</em> of an <code>input</code>, <code>output</code>
|
|
(see <a href="#InterfaceMessageReference_XMLRep"><strong>2.5.2 XML
|
|
Representation of Interface Message Reference
|
|
Component</strong></a>) or <code>fault</code> <em>element
|
|
information item</em> (see <a href=
|
|
"#InterfaceFault_XMLRep"><strong>2.3.2 XML Representation of
|
|
Interface Fault Component</strong></a>). The QName of the element
|
|
declaration is constructed from the <code>targetNamespace</code> of
|
|
the schema and the value of the <code>name</code> <em>attribute
|
|
information item</em> of the <code>xs:element</code> <em>element
|
|
information item</em>. Note that the <code>element</code>
|
|
<em>attribute information item</em> cannot refer to a global
|
|
<code>xs:simpleType</code> or <code>xs:complexType</code>
|
|
definition, since these are in a different symbol space than global
|
|
element declarations. If the <code>element</code> <em>attribute
|
|
information item</em> erroneously contains the QName of a type
|
|
definition then this would result in a failure to resolve the
|
|
element declaration.</p>
|
|
</div>
|
|
</div>
|
|
<div class="div2">
|
|
<h3><a name="other-types" id="other-types"></a>3.2 Using Other
|
|
Schema Languages</h3>
|
|
<p>Since it is unreasonable to expect that a single schema language
|
|
can be used to describe all possible <a href=
|
|
"#component-InterfaceMessageReference">Interface Message
|
|
Reference</a> and <a href="#component-InterfaceFault">Interface
|
|
Fault</a> component contents and their constraints, WSDL 2.0 allows
|
|
alternate schema languages to be specified via extension elements.
|
|
An extension <em>element information item</em> MAY appear under the
|
|
<code>types</code> <em>element information item</em> to identify
|
|
the schema language employed, and to locate the schema instance
|
|
defining the grammar for <a href=
|
|
"#component-InterfaceMessageReference">Interface Message
|
|
Reference</a> and <a href="#component-InterfaceFault">Interface
|
|
Fault</a> components. Depending upon the schema language used, an
|
|
<em>element information item</em> MAY be defined to allow inlining,
|
|
if and only if the schema language can be expressed in XML.</p>
|
|
<p><span id="Types-1074" class="test-assertion-tr">A specification
|
|
of extension syntax for an alternative schema language MUST include
|
|
the declaration of an <em>element information item</em>, intended
|
|
to appear as a child of the <code>wsdl:types</code> <em>element
|
|
information item</em>, which references, names, and locates the
|
|
schema instance (an <code>import</code> <em>element information
|
|
item</em>).<sup><a href="#Types-1074-summary" title=
|
|
"Link to assertion Types-1074 summary">†</a></sup></span> The
|
|
extension specification SHOULD, if necessary, define additional
|
|
properties of the <a href="#component-Description">Description</a>
|
|
component (and extension attributes) to hold the components of the
|
|
referenced type system. It is expected that additional extension
|
|
attributes for <a href=
|
|
"#component-InterfaceMessageReference">Interface Message
|
|
Reference</a> and <a href="#component-InterfaceFault">Interface
|
|
Fault</a> components will also be defined, along with a mechanism
|
|
for resolving the values of those attributes to a particular
|
|
imported type system component.</p>
|
|
<p><span id="Schema-1075" class="test-assertion-tr">A specification
|
|
of extension syntax for an alternative schema language MUST use a
|
|
namespace that is different than the namespace of XML
|
|
Schema.<sup><a href="#Schema-1075-summary" title=
|
|
"Link to assertion Schema-1075 summary">†</a></sup></span> The
|
|
namespace of the alternative schema language is used for
|
|
<em>element information item</em>s that are children of the
|
|
<code>wsdl:types</code> <em>element information item</em> and for
|
|
any extension <em>attribute information item</em>s that appear on
|
|
other components. <span id="Schema-1076" class=
|
|
"test-assertion-tr">The namespace used for an alternate schema
|
|
language MUST be an absolute IRI.<sup><a href=
|
|
"#Schema-1076-summary" title=
|
|
"Link to assertion Schema-1076 summary">†</a></sup></span></p>
|
|
<p>See [<cite><a href="#WSDL2-OTHER-SCHEMA">WSDL 2.0 Alternative
|
|
Schema Languages Support</a></cite>] for examples of using other
|
|
schema languages. These examples reuse the {<a href=
|
|
"#property-Description.elementdeclarations">element
|
|
declarations</a>} property of the <a href=
|
|
"#component-Description">Description</a> component and the
|
|
<code>element</code> <em>attribute information item</em>s of the
|
|
<code>wsdl:input</code>, <code>wsdl:output</code> and
|
|
<code>wsdl:fault</code> <em>element information item</em>s.</p>
|
|
<div class="note">
|
|
<p class="prefix"><strong>Note:</strong></p>
|
|
<p>This specification does not define the behavior of a WSDL 2.0
|
|
document that uses multiple schema languages for describing type
|
|
system components simultaneously.</p>
|
|
</div>
|
|
</div>
|
|
<div class="div2">
|
|
<h3><a name="wsdlx-references" id="wsdlx-references"></a>3.3
|
|
Describing Messages that Refer to Services and Endpoints</h3>
|
|
<p>Web services can exchange messages that refer to other Web
|
|
services or Web service endpoints. If the interface or binding of
|
|
these referenced services or endpoints are known at description
|
|
time, then it may be useful to include this information in the WSDL
|
|
2.0 document that describes the Web service. WSDL 2.0 provides two
|
|
global <em>attribute information item</em>s,
|
|
<code>wsdlx:interface</code> and <code>wsdlx:binding</code> that
|
|
may be used to annotate XML Schema components or components from
|
|
other type description languages.</p>
|
|
<p>WSDL 2.0 defines the use of these global <em>attribute
|
|
information item</em>s to annotate XML Schema components that use
|
|
the <code>xs:anyURI</code> simple type in an <em>element
|
|
information item</em> or <em>attribute information item</em> for
|
|
endpoint addresses that correspond to the {<a href=
|
|
"#property-Endpoint.address">address</a>} property of the <a href=
|
|
"#component-Endpoint">Endpoint</a> component. However, the use of
|
|
these global <em>attribute information item</em>s is not limited to
|
|
simple types based on <code>xs:anyURI</code>. They may be used for
|
|
any other types that are used to refer to Web services or Web
|
|
service endpoints, e.g. a WS-Addressing Endpoint Reference
|
|
[<cite><a href="#WSA-Core">WSA 1.0 Core</a></cite>]. See the primer
|
|
[<cite><a href="#WSDL-PART0">WSDL 2.0 Primer</a></cite>] for more
|
|
information and examples.</p>
|
|
<div class="div3">
|
|
<h4><a name="wsdlx-interface-aii" id=
|
|
"wsdlx-interface-aii"></a>3.3.1 <code>wsdlx:interface</code>
|
|
<em>attribute information item</em></h4>
|
|
<p>WSDL 2.0 provides a global <em>attribute information item</em>
|
|
with the following Infoset properties:</p>
|
|
<ul>
|
|
<li>
|
|
<p>A [local name] of <code>interface</code>.</p>
|
|
</li>
|
|
<li>
|
|
<p>A [namespace name] of " http://www.w3.org/ns/wsdl-extensions
|
|
".</p>
|
|
</li>
|
|
</ul>
|
|
<p><span id="Types-1077" class="test-assertion-tr">The type of the
|
|
<code>wsdlx:interface</code> <em>attribute information item</em> is
|
|
an <em>xs:QName</em> that specifies the {<a href=
|
|
"#property-Interface.name">name</a>} property of an <a href=
|
|
"#component-Interface">Interface</a> component.<sup><a href=
|
|
"#Types-1077-summary" title=
|
|
"Link to assertion Types-1077 summary">†</a></sup></span></p>
|
|
</div>
|
|
<div class="div3">
|
|
<h4><a name="wsdlx-binding-aii" id="wsdlx-binding-aii"></a>3.3.2
|
|
<code>wsdlx:binding</code> <em>attribute information item</em></h4>
|
|
<p>WSDL 2.0 provides a global <em>attribute information item</em>
|
|
with the following Infoset properties:</p>
|
|
<ul>
|
|
<li>
|
|
<p>A [local name] of <code>binding</code>.</p>
|
|
</li>
|
|
<li>
|
|
<p>A [namespace name] of " http://www.w3.org/ns/wsdl-extensions
|
|
".</p>
|
|
</li>
|
|
</ul>
|
|
<p><span id="Types-1078" class="test-assertion-tr">The type of the
|
|
<code>wsdlx:binding</code> <em>attribute information item</em> is
|
|
an <em>xs:QName</em> that specifies the {<a href=
|
|
"#property-Binding.name">name</a>} property of a <a href=
|
|
"#component-Binding">Binding</a> component.<sup><a href=
|
|
"#Types-1078-summary" title=
|
|
"Link to assertion Types-1078 summary">†</a></sup></span></p>
|
|
</div>
|
|
<div class="div3">
|
|
<h4><a name="wsdlx-consistency" id="wsdlx-consistency"></a>3.3.3
|
|
<code>wsdlx:interface</code> and <code>wsdlx:binding</code>
|
|
Consistency</h4>
|
|
<p>The <code>wsdlx:interface</code> and <code>wsdlx:binding</code>
|
|
attributes may be used either independently or together. <span id=
|
|
"Schema-1079" class="test-assertion-tr">If
|
|
<code>wsdlx:interface</code> and <code>wsdlx:binding</code> are
|
|
used together then they MUST satisfy the same consistency rules
|
|
that apply to the {<a href=
|
|
"#property-Service.interface">interface</a>} property of a <a href=
|
|
"#component-Service">Service</a> component and the {<a href=
|
|
"#property-Endpoint.binding">binding</a>} property of a nested
|
|
<a href="#component-Endpoint">Endpoint</a> component, that is
|
|
either the binding refers the interface of the service or the
|
|
binding refers to no interface.<sup><a href="#Schema-1079-summary"
|
|
title=
|
|
"Link to assertion Schema-1079 summary">†</a></sup></span></p>
|
|
</div>
|
|
<div class="div3">
|
|
<h4><a name="wsdlx-xsanyuri" id="wsdlx-xsanyuri"></a>3.3.4 Use of
|
|
<code>wsdlx:interface</code> and <code>wsdlx:binding</code> with
|
|
<code>xs:anyURI</code></h4>
|
|
<p><code>wsdlx:interface</code> and <code>wsdlx:binding</code> are
|
|
used to describe <em>element information item</em>s and
|
|
<em>attribute information item</em>s whose type is
|
|
<code>xs:anyURI</code> or a restriction of it, as well messages
|
|
that contain the {<a href="#property-Endpoint.address">address</a>}
|
|
property of an <a href="#component-Endpoint">Endpoint</a>. This is
|
|
accomplished by including the <code>wsdlx:interface</code> and/or
|
|
<code>wsdlx:binding</code> <em>attribute information item</em> in
|
|
the <code>xs:element</code>, <code>xs:simpleType</code>, or
|
|
<code>xs:attribute</code> <em>element information item</em> of the
|
|
corresponding XML Schema component.</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="div1">
|
|
<h2><a name="modularize" id="modularize"></a>4. Modularizing WSDL
|
|
2.0 descriptions</h2>
|
|
<p>WSDL 2.0 provides two mechanisms for modularizing WSDL 2.0
|
|
descriptions. These mechanisms help to make Web service
|
|
descriptions clearer by allowing separation of the various
|
|
components of a description. Such separation can be performed
|
|
according to the level of abstraction of a given set of components,
|
|
or according to the namespace affiliation required of a given set
|
|
of components or even according to some other grouping such as
|
|
application applicability.</p>
|
|
<p>Both mechanisms work at the level of WSDL 2.0 components and NOT
|
|
at the level of XML Information Sets or XML 1.0 serializations.</p>
|
|
<div class="div2">
|
|
<h3><a name="includes" id="includes"></a>4.1 Including
|
|
Descriptions</h3>
|
|
<div class="exampleInner">
|
|
<pre xml:space="preserve">
|
|
<description>
|
|
<<strong>include</strong>
|
|
location="<em>xs:anyURI</em>" >
|
|
<documentation />*
|
|
</<strong>include</strong>>
|
|
</description>
|
|
</pre></div>
|
|
<p>The WSDL 2.0 <code>include</code> <em>element information
|
|
item</em> allows separating the different components of a service
|
|
definition, belonging to the same target namespace, into
|
|
independent WSDL 2.0 documents.</p>
|
|
<p>The WSDL 2.0 <code>include</code> <em>element information
|
|
item</em> is modeled after the XML Schema <code>include</code>
|
|
<em>element information item</em> (see [<cite><a href=
|
|
"#XMLSchemaP1">XML Schema: Structures</a></cite>], section 4.2.3
|
|
"References to schema components in the same namespace").
|
|
Specifically, it can be used to include components from WSDL 2.0
|
|
descriptions that share a target namespace with the including
|
|
description. Components in the transitive closure of the included
|
|
WSDL 2.0 documents become part of the <a href=
|
|
"#component-Description">Description</a> component of the including
|
|
WSDL 2.0 document. The included components can be referenced by
|
|
QName. Note that because all WSDL 2.0 descriptions have a target
|
|
namespace, no-namespace includes (sometimes known as “chameleon
|
|
includes”) never occur in WSDL 2.0.</p>
|
|
<p>A mutual include is the direct inclusion by one WSDL 2.0
|
|
document of another WSDL 2.0 document which includes the first
|
|
document. A circular include achieves the same effect with greater
|
|
indirection (for example, A includes B, B includes C, and C
|
|
includes A). Multiple inclusion of a single WSDL 2.0 document
|
|
resolves to a single set of components, as if the document was
|
|
included only once. Mutual, multiple, and circular includes are
|
|
explicitly permitted, and do not represent multiple redefinitions
|
|
of the same components.</p>
|
|
<p>The <code>include</code> <em>element information item</em>
|
|
has:</p>
|
|
<ul>
|
|
<li>
|
|
<p>A [local name] of <code>include</code>.</p>
|
|
</li>
|
|
<li>
|
|
<p>A [namespace name] of "http://www.w3.org/ns/wsdl".</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>location</code> <em>attribute information
|
|
item</em> as described below in <a href=
|
|
"#include_location_attribute"><strong>4.1.1 location attribute
|
|
information item with include [owner element]</strong></a>.</p>
|
|
</li>
|
|
<li>
|
|
<p>Zero or more namespace qualified <em>attribute information
|
|
item</em>s whose [namespace name] is NOT
|
|
"http://www.w3.org/ns/wsdl".</p>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
<li>
|
|
<p>Zero or more <em>element information item</em> amongst its
|
|
[children], as follows:</p>
|
|
<ul>
|
|
<li>
|
|
<p>Zero or more <code>documentation</code> <em>element information
|
|
item</em>s (see <a href="#eii-documentation"><strong>5.
|
|
Documentation</strong></a>).</p>
|
|
</li>
|
|
<li>
|
|
<p>Zero or more namespace-qualified <em>element information
|
|
item</em>s whose [namespace name] is NOT
|
|
"http://www.w3.org/ns/wsdl".</p>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
<div class="div3">
|
|
<h4><a name="include_location_attribute" id=
|
|
"include_location_attribute"></a>4.1.1 <code>location</code>
|
|
<em>attribute information item</em> with <code>include</code>
|
|
[owner element]</h4>
|
|
<p>The <code>location</code> <em>attribute information item</em>
|
|
has the following Infoset properties:</p>
|
|
<ul>
|
|
<li>
|
|
<p>A [local name] of <code>location</code>.</p>
|
|
</li>
|
|
<li>
|
|
<p>A [namespace name] which has no value.</p>
|
|
</li>
|
|
</ul>
|
|
<p>A <code>location</code> <em>attribute information item</em> is
|
|
of type <code>xs:anyURI</code>. Its actual value is the location of
|
|
some information about the namespace identified by the
|
|
<code>targetNamespace</code> <em>attribute information item</em> of
|
|
the containing <code>description</code> <em>element information
|
|
item</em>.</p>
|
|
<p><span id="Include-1080" class="test-assertion-tr">The IRI
|
|
indicated by <code>location</code> MUST resolve to a WSDL 2.0
|
|
document.<sup><a href="#Include-1080-summary" title=
|
|
"Link to assertion Include-1080 summary">†</a></sup></span> (see
|
|
<a href="#wsdllocation"><strong>7. Locating WSDL 2.0
|
|
Documents</strong></a>)</p>
|
|
<p><span id="Include-1081" class="test-assertion-tr">The actual
|
|
value of the <code>targetNamespace</code> <em>attribute information
|
|
item</em> of the included WSDL 2.0 document MUST match the actual
|
|
value of the <code>targetNamespace</code> <em>attribute information
|
|
item</em> of the <code>description</code> <em>element information
|
|
item</em> which is the [parent] of the <code>include</code>
|
|
<em>element information item</em>.<sup><a href=
|
|
"#Include-1081-summary" title=
|
|
"Link to assertion Include-1081 summary">†</a></sup></span></p>
|
|
</div>
|
|
</div>
|
|
<div class="div2">
|
|
<h3><a name="imports" id="imports"></a>4.2 Importing
|
|
Descriptions</h3>
|
|
<div class="exampleInner">
|
|
<pre xml:space="preserve">
|
|
<description>
|
|
<<strong>import</strong>
|
|
namespace="<em>xs:anyURI</em>" location="<em>xs:anyURI</em>"? >
|
|
<documentation />*
|
|
</<strong>import</strong>>
|
|
</description>
|
|
</pre></div>
|
|
<p>Every top-level WSDL 2.0 component is associated with a
|
|
namespace. Every WSDL 2.0 document carries a
|
|
<code>targetNamespace</code> <em>attribute information item</em> on
|
|
its <code>wsdl:description</code> <em>element information
|
|
item</em>. This attribute associates the document with a target
|
|
namespace, which consequently also becomes the namespace of each
|
|
top-level WSDL 2.0 component defined in that document. Any
|
|
namespace other than the document's target namespace is referred to
|
|
as a <em>foreign namespace</em>. Any component associated with a
|
|
foreign namespace is referred to as a <em>foreign component</em>.
|
|
This section describes the syntax and mechanisms by which
|
|
references may be made from within a WSDL 2.0 document to foreign
|
|
components. In addition to this syntax, there is an optional
|
|
facility for suggesting the IRI of a WSDL 2.0 document that
|
|
contains definitions of foreign components.</p>
|
|
<p>The WSDL 2.0 <code>import</code> <em>element information
|
|
item</em> is modeled after the XML Schema <code>import</code>
|
|
<em>element information item</em> (see [<cite><a href=
|
|
"#XMLSchemaP1">XML Schema: Structures</a></cite>], section 4.2.3
|
|
"References to schema components across namespaces"). Specifically,
|
|
it can be used to import WSDL 2.0 components from a foreign
|
|
namespace. The WSDL 2.0 <code>import</code> <em>element information
|
|
item</em> identifies a foreign namespace. The presence of a WSDL
|
|
2.0 <code>import</code> <em>element information item</em> signals
|
|
that the WSDL 2.0 document may contain references to foreign
|
|
components. The <code>wsdl:import</code> <em>element information
|
|
item</em> is therefore like a forward declaration for foreign
|
|
namespaces.</p>
|
|
<p><span id="Import-1082" class="test-assertion-tr">As with XML
|
|
schema, any WSDL 2.0 document that references a foreign component
|
|
MUST have a <code>wsdl:import</code> <em>element information
|
|
item</em> for the associated foreign namespace (but which does not
|
|
necessarily provide a <code>location</code> <em>attribute
|
|
information item</em> that identifies the WSDL 2.0 document in
|
|
which the referenced component is defined).<sup><a href=
|
|
"#Import-1082-summary" title=
|
|
"Link to assertion Import-1082 summary">†</a></sup></span> In other
|
|
respects, the visibility of components is pervasive: if two WSDL
|
|
2.0 documents import the same namespace, then they will have access
|
|
to the same components from the imported namespace (i.e. regardless
|
|
of which, if any, <code>location</code> <em>attribute information
|
|
item</em> values are provided on the respective
|
|
<code>wsdl:import</code> <em>element information item</em>s.)</p>
|
|
<p>Using the <code>wsdl:import</code> <em>element information
|
|
item</em> is a necessary condition for making foreign components
|
|
available to a WSDL 2.0 document. That is, a WSDL 2.0 document can
|
|
only refer to foreign components, if it contains an
|
|
<code>wsdl:import</code> <em>element information item</em> for the
|
|
associated foreign namespace.</p>
|
|
<p><span id="Import-1083" class="test-assertion-tr">If a WSDL 2.0
|
|
document contains more than one <code>wsdl:import</code>
|
|
<em>element information item</em> for a given value of the
|
|
<code>namespace</code> <em>attribute information item</em>, then
|
|
they MUST provide different values for the <code>location</code>
|
|
<em>attribute information item</em>.<sup><a href=
|
|
"#Import-1083-summary" title=
|
|
"Link to assertion Import-1083 summary">†</a></sup></span>
|
|
Repeating the <code>wsdl:import</code> <em>element information
|
|
item</em> for the same <code>namespace</code> value MAY be used as
|
|
a way to provide alternate locations to find information about a
|
|
given namespace.</p>
|
|
<p>Furthermore, this specification DOES NOT require the
|
|
<code>location</code> <em>attribute information item</em> to be
|
|
dereferencable. When it is not dereferencable, no information about
|
|
the imported namespace is provided by that <code>wsdl:import</code>
|
|
<em>element information item</em>. It is possible that such lack of
|
|
information can cause QNames in other parts of a WSDL 2.0 <a href=
|
|
"#component-Description">Description</a> component to become broken
|
|
references (see <a href="#qnameres"><strong>2.17 QName
|
|
resolution</strong></a>). Such broken references are not ascribed
|
|
to the <code>wsdl:import</code> <em>element information item</em>,
|
|
but rather are failures of the QName resolution requirements which
|
|
must be detected as described in <a href="#qnameres"><strong>2.17
|
|
QName resolution</strong></a>.</p>
|
|
<p>The <code>import</code> <em>element information item</em> has
|
|
the following Infoset properties:</p>
|
|
<ul>
|
|
<li>
|
|
<p>A [local name] of <code>import</code>.</p>
|
|
</li>
|
|
<li>
|
|
<p>A [namespace name] of "http://www.w3.org/ns/wsdl".</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>namespace</code> <em>attribute information
|
|
item</em> as described below in <a href=
|
|
"#import_namespace_attribute"><strong>4.2.1 namespace attribute
|
|
information item</strong></a>.</p>
|
|
</li>
|
|
<li>
|
|
<p>An OPTIONAL <code>location</code> <em>attribute information
|
|
item</em> as described below in <a href=
|
|
"#import_location_attribute"><strong>4.2.2 location attribute
|
|
information item with import [owner element]</strong></a>.</p>
|
|
</li>
|
|
<li>
|
|
<p>Zero or more namespace qualified <em>attribute information
|
|
item</em>s whose [namespace name] is NOT
|
|
"http://www.w3.org/ns/wsdl".</p>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
<li>
|
|
<p>Zero or more <em>element information item</em>s amongst its
|
|
[children], as follows:</p>
|
|
<ul>
|
|
<li>
|
|
<p>Zero or more <code>documentation</code> <em>element information
|
|
item</em>s (see <a href="#eii-documentation"><strong>5.
|
|
Documentation</strong></a>).</p>
|
|
</li>
|
|
<li>
|
|
<p>Zero or more namespace-qualified <em>element information
|
|
item</em>s whose [namespace name] is NOT
|
|
"http://www.w3.org/ns/wsdl".</p>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
<div class="div3">
|
|
<h4><a name="import_namespace_attribute" id=
|
|
"import_namespace_attribute"></a>4.2.1 <code>namespace</code>
|
|
<em>attribute information item</em></h4>
|
|
<p>The <code>namespace</code> <em>attribute information item</em>
|
|
has the following Infoset properties:</p>
|
|
<ul>
|
|
<li>
|
|
<p>A [local name] of <code>namespace</code>.</p>
|
|
</li>
|
|
<li>
|
|
<p>A [namespace name] which has no value.</p>
|
|
</li>
|
|
</ul>
|
|
<p>The <code>namespace</code> <em>attribute information item</em>
|
|
is of type <code>xs:anyURI</code>. Its actual value indicates that
|
|
the containing WSDL 2.0 document MAY contain qualified references
|
|
to WSDL 2.0 components in that namespace (via one or more prefixes
|
|
declared with namespace declarations in the normal way). <span id=
|
|
"Import-1084" class="test-assertion-tr">This value MUST NOT match
|
|
the actual value of <code>targetNamespace</code> <em>attribute
|
|
information item</em> in the enclosing WSDL 2.0
|
|
document.<sup><a href="#Import-1084-summary" title=
|
|
"Link to assertion Import-1084 summary">†</a></sup></span> 
|
|
<span id="Import-1085" class="test-assertion-tr">If the location
|
|
attribute in the <code>import</code> <em>element information
|
|
item</em> is dereferencable, then it MUST reference a WSDL 2.0
|
|
document.<sup><a href="#Import-1085-summary" title=
|
|
"Link to assertion Import-1085 summary">†</a></sup></span>
|
|
<span id="Import-1086" class="test-assertion-tr">If the
|
|
<code>location</code> <em>attribute information item</em> of the
|
|
<code>import</code> <em>element information item</em> is
|
|
dereferencable, then the actual value of the <code>namespace</code>
|
|
<em>attribute information item</em> MUST be identical to the actual
|
|
value of the <code>targetNamespace</code> <em>attribute information
|
|
item</em> of the referenced WSDL 2.0 document (see <a href=
|
|
"#wsdllocation"><strong>7. Locating WSDL 2.0
|
|
Documents</strong></a>).<sup><a href="#Import-1086-summary" title=
|
|
"Link to assertion Import-1086 summary">†</a></sup></span></p>
|
|
</div>
|
|
<div class="div3">
|
|
<h4><a name="import_location_attribute" id=
|
|
"import_location_attribute"></a>4.2.2 <code>location</code>
|
|
<em>attribute information item</em> with <code>import</code> [owner
|
|
element]</h4>
|
|
<p>The <code>location</code> <em>attribute information item</em>
|
|
has the following Infoset properties:</p>
|
|
<ul>
|
|
<li>
|
|
<p>A [local name] of <code>location</code>.</p>
|
|
</li>
|
|
<li>
|
|
<p>A [namespace name] which has no value.</p>
|
|
</li>
|
|
</ul>
|
|
<p>The <code>location</code> <em>attribute information item</em> is
|
|
of type <code>xs:anyURI</code>. Its actual value, if present, gives
|
|
a hint as to where a serialization of a WSDL 2.0 document with
|
|
definitions for the imported namespace can be found.</p>
|
|
<p>The <code>location</code> <em>attribute information item</em> is
|
|
optional. This allows WSDL 2.0 components to be constructed from
|
|
information other than an XML 1.0 serialization of a WSDL 2.0
|
|
document. It also allows the development of WSDL 2.0 processors
|
|
that have <em>a prior</em> (i.e., built-in) knowledge of certain
|
|
namespaces.</p>
|
|
</div>
|
|
</div>
|
|
<div class="div2">
|
|
<h3><a name="extensions-and-modules" id=
|
|
"extensions-and-modules"></a>4.3 Extensions</h3>
|
|
<p><span id="ImportInclude-1087" class="test-assertion-tr">The
|
|
semantics of an extension MUST NOT depend on how components are
|
|
brought into a component model instance via <import> or
|
|
<include>. <sup><a href="#ImportInclude-1087-summary" title=
|
|
"Link to assertion ImportInclude-1087 summary">†</a></sup></span>
|
|
That is, the components that are defined by a WSDL 2.0 document are
|
|
determined by the contents of the document, EXCEPT for the
|
|
resolution of references to other components that may be defined in
|
|
other documents, AND any further processing, as mandated by the
|
|
extension specification, that depends on such references having
|
|
been resolved to the actual components.</p>
|
|
<p>This restriction on the behavior of extensions permits WSDL 2.0
|
|
documents to be flexibly modularized and efficiently processed. In
|
|
contrast, note that the so-called chameleon include mechanism of
|
|
XML Schema, which allows a no-namespace schema to be included in a
|
|
schema document that has a namespace, violates this restriction
|
|
since the namespace of the included XML Schema components is
|
|
determined by the including XML Schema document (see 4.2.1
|
|
Assembling a schema for a single target namespace from multiple
|
|
schema definition documents in [<cite><a href="#XMLSchemaP1">XML
|
|
Schema: Structures</a></cite>]).</p>
|
|
</div>
|
|
</div>
|
|
<div class="div1">
|
|
<h2><a name="eii-documentation" id="eii-documentation"></a>5.
|
|
Documentation</h2>
|
|
<div class="exampleInner">
|
|
<pre xml:space="preserve">
|
|
<<strong>documentation</strong>>
|
|
[<em>extension elements</em>]*
|
|
</<strong>documentation</strong>>
|
|
</pre></div>
|
|
<p>WSDL 2.0 uses the optional <code>documentation</code>
|
|
<em>element information item</em> as a container for human readable
|
|
or machine processable documentation. The content of the
|
|
<em>element information item</em> is arbitrary <em>character
|
|
information items</em> and <em>element information item</em>s
|
|
("mixed" content in XML Schema [<cite><a href="#XMLSchemaP1">XML
|
|
Schema: Structures</a></cite>]). The <code>documentation</code>
|
|
<em>element information item</em> is allowed inside any WSDL 2.0
|
|
<em>element information item</em>.</p>
|
|
<p>Like other <em>element information item</em>s in the
|
|
"http://www.w3.org/ns/wsdl" namespace, the
|
|
<code>documentation</code> <em>element information item</em> allows
|
|
qualified <em>attribute information item</em>s whose [namespace
|
|
name] is not "http://www.w3.org/ns/wsdl". The <code>xml:lang</code>
|
|
attribute (see [<cite><a href="#XML10">XML 1.0</a></cite>]) MAY be
|
|
used to indicate the language used in the contents of the
|
|
<code>documentation</code> <em>element information item</em>.</p>
|
|
<p>The <code>documentation</code> <em>element information item</em>
|
|
has:</p>
|
|
<ul>
|
|
<li>
|
|
<p>A [local name] of <code>documentation</code>.</p>
|
|
</li>
|
|
<li>
|
|
<p>A [namespace name] of "http://www.w3.org/ns/wsdl".</p>
|
|
</li>
|
|
<li>
|
|
<p>Zero or more <em>attribute information item</em>s in its
|
|
[attributes] property.</p>
|
|
</li>
|
|
<li>
|
|
<p>Zero or more child <em>element information item</em>s in its
|
|
[children] property.</p>
|
|
</li>
|
|
<li>
|
|
<p>Zero or more <em>character information item</em>s in its
|
|
[children] property.</p>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<div class="div1">
|
|
<h2><a name="language-extensibility" id=
|
|
"language-extensibility"></a>6. Language Extensibility</h2>
|
|
<p>The schema for WSDL 2.0 has a two-part extensibility model based
|
|
on namespace-qualified elements and attributes. An extension is
|
|
identified by the QName consisting of its namespace IRI and its
|
|
element or attribute name. <span id="Extension-1088" class=
|
|
"test-assertion-tr">The meaning of an extension SHOULD be defined
|
|
(directly or indirectly) in a document that is available at its
|
|
namespace IRI.<sup><a href="#Extension-1088-summary" title=
|
|
"Link to assertion Extension-1088 summary">†</a></sup></span></p>
|
|
<div class="div2">
|
|
<h3><a name="eii-extensibility" id="eii-extensibility"></a>6.1
|
|
Element-based Extensibility</h3>
|
|
<p>WSDL 2.0 allows extensions to be defined in terms of <em>element
|
|
information item</em>s. Where indicated herein, WSDL 2.0 allows
|
|
namespace-qualified <em>element information item</em>s whose
|
|
[namespace name] is NOT "http://www.w3.org/ns/wsdl" to appear among
|
|
the [children] of specific <em>element information item</em>s whose
|
|
[namespace name] is "http://www.w3.org/ns/wsdl". Such <em>element
|
|
information item</em>s MAY be used to annotate WSDL 2.0 constructs
|
|
such as interface, operation, etc.</p>
|
|
<p>It is expected that extensions will add to the existing
|
|
properties of components in the component model. The specification
|
|
for an extension <em>element information item</em> should include
|
|
definitions of any such properties and the mapping from the XML
|
|
representation of the extension to the properties in the component
|
|
model.</p>
|
|
<p>The WSDL 2.0 schema defines a base type for use by extension
|
|
elements. <a href="#exttype">Example 6-1</a> shows the type
|
|
definition. The use of this type as a base type is optional.</p>
|
|
<div class="exampleOuter">
|
|
<p style="text-align: left" class="exampleHead"><a name="exttype"
|
|
id="exttype"></a><em><span>Example 6-1.</span> Base type for
|
|
extension elements</em></p>
|
|
<div class="exampleInner">
|
|
<pre xml:space="preserve">
|
|
<xs:complexType name='ExtensionElement' abstract='true' >
|
|
<xs:attribute ref='wsdl:required' use='optional' />
|
|
</xs:complexType>
|
|
|
|
|
|
</pre></div>
|
|
</div>
|
|
<p>Extension elements are commonly used to specify some
|
|
technology-specific binding. They allow innovation in the area of
|
|
network and message protocols without having to revise the base
|
|
WSDL 2.0 specification. WSDL 2.0 recommends that specifications
|
|
defining such protocols also define any necessary WSDL 2.0
|
|
extensions used to describe those protocols or formats.</p>
|
|
<div class="div3">
|
|
<h4><a name="mandatoryext" id="mandatoryext"></a>6.1.1 Mandatory
|
|
extensions</h4>
|
|
<p>Extension elements can be marked as mandatory by annotating them
|
|
with a <code>wsdl:required</code> <em>attribute information
|
|
item</em> (see <a href="#required-aii"><strong>6.1.2 required
|
|
attribute information item</strong></a>) with a value of "true". A
|
|
mandatory extension is an extension that MAY change the meaning of
|
|
the element to which it is attached, such that the meaning of that
|
|
element is no longer governed by this specification. Instead, the
|
|
meaning of an element containing a mandatory extension is governed
|
|
by the meaning of that extension. Thus, the definition of the
|
|
element's meaning is <em>delegated</em> to the specification that
|
|
defines the extension.</p>
|
|
<p><span id="Extensibility-1089" class="test-assertion-tr">An
|
|
extension that is NOT marked as mandatory MUST NOT invalidate the
|
|
meaning of any part of a WSDL 2.0 document.<sup><a href=
|
|
"#Extensibility-1089-summary" title=
|
|
"Link to assertion Extensibility-1089 summary">†</a></sup></span>
|
|
Thus, a NON-mandatory extension merely provides additional
|
|
description of capabilities of the service. This specification does
|
|
not provide a mechanism to mark extension attributes as being
|
|
required. Therefore, all extension attributes are
|
|
NON-mandatory.</p>
|
|
<div class="note">
|
|
<p class="prefix"><strong>Note:</strong></p>
|
|
<p>A mandatory extension is considered mandatory because it has the
|
|
ability to change the meaning of the element to which it is
|
|
attached. Thus, the meaning of the element may not be fully
|
|
understood without understanding the attached extension. A
|
|
NON-mandatory extension, on the other hand, can be safely ignored
|
|
without danger of misunderstanding the rest of the WSDL 2.0
|
|
document.</p>
|
|
</div>
|
|
<p><span id="Extensibility-1090" class="test-assertion-tr">If a
|
|
WSDL 2.0 document declares an extension as optional (i.e.,
|
|
NON-mandatory), then the Web service MUST NOT assume that the
|
|
client supports that extension <em>unless</em> the Web service
|
|
knows (through some other means) that the client has in fact
|
|
elected to engage and support that extension.<sup><a href=
|
|
"#Extensibility-1090-summary" title=
|
|
"Link to assertion Extensibility-1090 summary">†</a></sup></span></p>
|
|
<div class="note">
|
|
<p class="prefix"><strong>Note:</strong></p>
|
|
<p>A key purpose of an extension is to formally indicate (i.e., in
|
|
a machine-processable way) that a particular feature or convention
|
|
is supported or required. This enables toolkits that understand the
|
|
extension to engage it automatically, while toolkits that do not
|
|
yet understand a required extension can possibly bring it to the
|
|
attention of an operator for manual support.</p>
|
|
<p>If a Web service requires a client to follow a particular
|
|
convention that is likely to be automatable in WSDL 2.0 toolkits,
|
|
then that convention SHOULD be indicated in the WSDL 2.0 document
|
|
as a <code>wsdl:required</code> extension, rather than just being
|
|
conveyed out of band, even if that convention is not currently
|
|
implemented in WSDL 2.0 toolkits.</p>
|
|
<p>This practice will help prevent interoperability problems that
|
|
could arise if one toolkit requires a particular convention that is
|
|
not indicated in the WSDL 2.0 document, while another toolkit does
|
|
not realize that that convention is required. It will also help
|
|
facilitate future automatic processing by WSDL 2.0 toolkits.</p>
|
|
</div>
|
|
<p>On the other hand, a client MAY engage an extension that is
|
|
declared as optional in the WSDL 2.0 document. <span id=
|
|
"Extensibility-1091" class="test-assertion-tr">Therefore, the Web
|
|
service MUST support every extension that is declared as optional
|
|
in the WSDL 2.0 document, in addition to supporting every extension
|
|
that is declared as mandatory.<sup><a href=
|
|
"#Extensibility-1091-summary" title=
|
|
"Link to assertion Extensibility-1091 summary">†</a></sup></span></p>
|
|
<div class="note">
|
|
<p class="prefix"><strong>Note:</strong></p>
|
|
<p>If finer-grain, direction-sensitive control of extensions is
|
|
desired, then such extensions may be designed in a
|
|
direction-sensitive manner (from the client or from the Web
|
|
service) so that either direction may be separately marked required
|
|
or optional. For example, instead of defining a single extension
|
|
that governs both directions, two extensions could be defined -one
|
|
for each direction.</p>
|
|
</div>
|
|
<p>Validity of a WSDL 2.0 document can only be assessed within the
|
|
context of a set of supported extensions. A WSDL 2.0 document that
|
|
contains a required but unsupported extension is invalid with
|
|
respect to that set of supported extensions.</p>
|
|
</div>
|
|
<div class="div3">
|
|
<h4><a name="required-aii" id="required-aii"></a>6.1.2
|
|
<code>required</code> <em>attribute information item</em></h4>
|
|
<p>WSDL 2.0 provides a global <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] of "http://www.w3.org/ns/wsdl".</p>
|
|
</li>
|
|
</ul>
|
|
<p>The type of the <code>required</code> <em>attribute information
|
|
item</em> is <em>xs:boolean</em>. Its default value is "false"
|
|
(hence extensions are NOT required by default).</p>
|
|
</div>
|
|
</div>
|
|
<div class="div2">
|
|
<h3><a name="aii-extensibility" id="aii-extensibility"></a>6.2
|
|
Attribute-based Extensibility</h3>
|
|
<p>WSDL 2.0 allows qualified <em>attribute information item</em>s
|
|
whose [namespace name] is NOT "http://www.w3.org/ns/wsdl" to appear
|
|
on any <em>element information item</em> whose namespace name IS
|
|
"http://www.w3.org/ns/wsdl". Such <em>attribute information
|
|
item</em>s can be used to annotate WSDL 2.0 constructs such as
|
|
interfaces, bindings, etc.</p>
|
|
<p>WSDL 2.0 does not provide a mechanism for marking extension
|
|
<em>attribute information item</em>s as mandatory.</p>
|
|
</div>
|
|
<div class="div2">
|
|
<h3><a name="extensibility-semantics" id=
|
|
"extensibility-semantics"></a>6.3 Extensibility Semantics</h3>
|
|
<p>As indicated above, it is expected that the presence of
|
|
extension elements and attributes will result in additional
|
|
properties appearing in the component model.</p>
|
|
<p>The presence of an optional extension element or attribute MAY
|
|
therefore augment the semantics of a WSDL 2.0 document in ways that
|
|
do not invalidate the existing semantics. However, the presence of
|
|
a mandatory extension element MAY alter the semantics of a WSDL 2.0
|
|
document in ways that invalidate the existing semantics.</p>
|
|
<p>Extension elements SHOULD NOT alter the existing semantics in
|
|
ways that are likely to confuse users.</p>
|
|
<div class="note">
|
|
<p class="prefix"><strong>Note:</strong></p>
|
|
<p>Note that, however, once the client and service both know that
|
|
an optional extension has been engaged (because the service has
|
|
received a message explicitly engaging that extension, for
|
|
example), then the semantics of that extension supersede what the
|
|
WSDL 2.0 document indicated. For example, the WSDL 2.0 document may
|
|
have specified an XML message schema to be used, but also indicated
|
|
an optional security extension that encrypts the messages. If the
|
|
security extension is engaged, then the encrypted messages will no
|
|
longer conform to the specified message schema (until they are
|
|
decrypted).</p>
|
|
</div>
|
|
<div class="note">
|
|
<p class="prefix"><strong>Note:</strong></p>
|
|
<p>Authors of extension elements should make sure to include in the
|
|
specification of these elements a clear statement of the
|
|
requirements for document conformance (see <a href=
|
|
"#markup"><strong>1.3 Document Conformance</strong></a>).</p>
|
|
</div>
|
|
<div class="note">
|
|
<p class="prefix"><strong>Note:</strong></p>
|
|
<p>Authors of extension elements that may manifest as properties of
|
|
the <a href="#component-Description">Description</a> component
|
|
should be aware of the impact of imports on their extensions, or of
|
|
their extensions on imports. It is not possible, within the
|
|
component model, to define extensions that have an effective scope
|
|
equal to the scope of a containing file. Extensions that modify the
|
|
behavior of the components contained in a description may therefore
|
|
unexpectedly modify the behavior of components in imported
|
|
descriptions as well, unless proper care is taken.</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="div1">
|
|
<h2><a name="wsdllocation" id="wsdllocation"></a>7. Locating WSDL
|
|
2.0 Documents</h2>
|
|
<p>A <em>WSDL 2.0 document</em> is a <code>description</code>
|
|
<em>element information item</em> that is either the document root
|
|
of an XML document or an element within an XML document. The
|
|
<em>location</em> of a WSDL 2.0 MAY therefore be specified by an
|
|
IRI for an XML resource whose document root is a
|
|
<code>description</code> <em>element information item</em> or an
|
|
IRI-reference for a <code>description</code> <em>element
|
|
information item</em> within an XML resource.</p>
|
|
<p>As an XML vocabulary, WSDL 2.0 documents, WSDL2.0 document
|
|
fragments or QName references to WSDL 2.0 components MAY appear
|
|
within other XML documents. This specification defines a global
|
|
attribute, <code>wsdlLocation</code>, to help with QName resolution
|
|
(see <a href="#qnameres"><strong>2.17 QName
|
|
resolution</strong></a>). This attribute allows an element that
|
|
contains such references to be annotated to indicate where the WSDL
|
|
2.0 documents for one or more namespaces can be found. In
|
|
particular, this attribute is expected to be useful when using
|
|
service references in message exchanges.</p>
|
|
<p>The <code>wsdlLocation</code> global attribute is defined in the
|
|
namespace "http://www.w3.org/ns/wsdl-instance" (hereafter referred
|
|
to as "wsdli:wsdlLocation", for brevity). This attribute MAY appear
|
|
on any XML element which allows attributes from other namespaces to
|
|
occur. <span id="Location-1092" class="test-assertion-tr">It MUST
|
|
NOT appear on a <code>wsdl:description</code> element or any of its
|
|
children/descendants.<sup><a href="#Location-1092-summary" title=
|
|
"Link to assertion Location-1092 summary">†</a></sup></span></p>
|
|
<p>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-instance" namespace can be found at
|
|
<a href=
|
|
"http://www.w3.org/ns/wsdl-instance">http://www.w3.org/ns/wsdl-instance</a>.</p>
|
|
<div class="div2">
|
|
<h3><a name="wsdlLocation-aii" id="wsdlLocation-aii"></a>7.1
|
|
<code>wsdli:wsdlLocation</code> <em>attribute information
|
|
item</em></h3>
|
|
<p>WSDL 2.0 provides a global <em>attribute information item</em>
|
|
with the following Infoset properties:</p>
|
|
<ul>
|
|
<li>
|
|
<p>A [local name] of <code>wsdlLocation</code>.</p>
|
|
</li>
|
|
<li>
|
|
<p>A [namespace name] of "http://www.w3.org/ns/wsdl-instance".</p>
|
|
</li>
|
|
</ul>
|
|
<p>The type of the <code>wsdlLocation</code> <em>attribute
|
|
information item</em> is a list <em>xs:anyURI</em>. <span id=
|
|
"Location-1093" class="test-assertion-tr">Its actual value MUST be
|
|
a list of pairs of IRIs; where the first IRI of a pair, which MUST
|
|
be an absolute IRI as defined in [<cite><a href="#RFC3987">IETF RFC
|
|
3987</a></cite>], indicates a WSDL 2.0 (or 1.1) namespace name,
|
|
and, the second a hint as to the location of a WSDL 2.0 document
|
|
defining WSDL 2.0 components (or WSDL 1.1 elements [<cite><a href=
|
|
"#WSDL11">WSDL 1.1</a></cite>]) for that namespace
|
|
name.<sup><a href="#Location-1093-summary" title=
|
|
"Link to assertion Location-1093 summary">†</a></sup></span> The
|
|
second IRI of a pair MAY be absolute or relative. <span id=
|
|
"Location-1094" class="test-assertion-tr">For each pair of IRIs, if
|
|
the location IRI of the pair is dereferencable, then it MUST
|
|
reference a WSDL 2.0 (or 1.1) document whose target namespace is
|
|
the namespace IRI of the pair.<sup><a href="#Location-1094-summary"
|
|
title=
|
|
"Link to assertion Location-1094 summary">†</a></sup></span></p>
|
|
</div>
|
|
</div>
|
|
<div class="div1">
|
|
<h2><a name="conformance" id="conformance"></a>8. Conformance</h2>
|
|
<p>This section describes how this specification conforms to other
|
|
specifications. This is limited, at present, to the XML Information
|
|
Set specification. Refer to <a href="#markup"><strong>1.3 Document
|
|
Conformance</strong></a> for a description of the criteria that Web
|
|
service description documents must satisfy in order to conform to
|
|
this specification.</p>
|
|
<div class="div2">
|
|
<h3><a name="infoset" id="infoset"></a>8.1 XML Information Set
|
|
Conformance</h3>
|
|
<p>This specification conforms to the [<cite><a href=
|
|
"#XMLInfoSet">XML Information Set</a></cite>]. The following
|
|
information items MUST be present in the input Infosets to enable
|
|
correct processing of WSDL 2.0 documents:</p>
|
|
<ul>
|
|
<li>
|
|
<p><em>Document Information Items</em> with [<em>children</em>] and
|
|
[<em>base URI</em>] properties.</p>
|
|
</li>
|
|
<li>
|
|
<p><em>Element Information Items</em> with [<em>namespace
|
|
name</em>], [<em>local name</em>], [<em>children</em>],
|
|
[<em>attributes</em>], [<em>base URI</em>] and [<em>parent</em>]
|
|
properties.</p>
|
|
</li>
|
|
<li>
|
|
<p><em>Attribute Information Items</em> with [<em>namespace
|
|
name</em>], [<em>local name</em>] and [<em>normalized value</em>]
|
|
properties.</p>
|
|
</li>
|
|
<li>
|
|
<p><em>Character Information Items</em> with [<em>character
|
|
code</em>], [<em>element content whitespace</em>] and
|
|
[<em>parent</em>] properties.</p>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
<div class="div1">
|
|
<h2><a name="Syntax-Summary" id="Syntax-Summary"></a>9. XML Syntax
|
|
Summary (Non-Normative)</h2>
|
|
<div class="exampleInner">
|
|
<pre xml:space="preserve">
|
|
<description targetNamespace="<em>xs:anyURI</em>" >
|
|
<documentation />*
|
|
|
|
<import namespace="<em>xs:anyURI</em>" location="<em>xs:anyURI</em>"? >
|
|
<documentation />*
|
|
</import>*
|
|
|
|
<include location="<em>xs:anyURI</em>" >
|
|
<documentation />*
|
|
</include>*
|
|
|
|
<types>
|
|
<documentation />*
|
|
|
|
[ <xs:import namespace="<em>xs:anyURI</em>" schemaLocation="<em>xs:anyURI</em>"? /> |
|
|
<xs:schema targetNamespace="<em>xs:anyURI</em>"? /> |
|
|
<em>other extension elements</em> ]*
|
|
</types>
|
|
|
|
<interface name="<em>xs:NCName</em>" extends="<em>list of xs:QName</em>"? styleDefault="<em>list of xs:anyURI</em>"? >
|
|
<documentation />*
|
|
|
|
<fault name="<em>xs:NCName</em>" element="<em>union of xs:QName, xs:token</em>"? >
|
|
<documentation />*
|
|
</fault>*
|
|
|
|
<operation name="<em>xs:NCName</em>" pattern="<em>xs:anyURI</em>"? style="<em>list of xs:anyURI</em>"? >
|
|
<documentation />*
|
|
|
|
<input messageLabel="<em>xs:NCName</em>"? element="<em>union of xs:QName, xs:token</em>"? >
|
|
<documentation />*
|
|
</input>*
|
|
|
|
<output messageLabel="<em>xs:NCName</em>"? element="<em>union of xs:QName, xs:token</em>"? >
|
|
<documentation />*
|
|
|
|
</output>*
|
|
|
|
<infault ref="<em>xs:QName</em>" messageLabel="<em>xs:NCName</em>"? >
|
|
<documentation />*
|
|
</infault>*
|
|
|
|
<outfault ref="<em>xs:QName</em>" messageLabel="<em>xs:NCName</em>"? >
|
|
<documentation />*
|
|
</outfault>*
|
|
|
|
</operation>*
|
|
|
|
</interface>*
|
|
|
|
<binding name="<em>xs:NCName</em>" interface="<em>xs:QName</em>"? type="<em>xs:anyURI</em>" >
|
|
<documentation />*
|
|
|
|
<fault ref="<em>xs:QName</em>" >
|
|
<documentation />*
|
|
</fault>*
|
|
|
|
<operation ref="<em>xs:QName</em>" >
|
|
<documentation />*
|
|
|
|
<input messageLabel="<em>xs:NCName</em>"? >
|
|
<documentation />*
|
|
</input>*
|
|
|
|
<output messageLabel="<em>xs:NCName</em>"? >
|
|
<documentation />*
|
|
</output>*
|
|
|
|
<infault ref="<em>xs:QName</em>" messageLabel="<em>xs:NCName</em>"? >
|
|
<documentation />*
|
|
</infault>*
|
|
|
|
<outfault ref="<em>xs:QName</em>" messageLabel="<em>xs:NCName</em>"? >
|
|
<documentation />*
|
|
</outfault>*
|
|
|
|
</operation>*
|
|
|
|
</binding>*
|
|
|
|
<service name="<em>xs:NCName</em>" interface="<em>xs:QName</em>" >
|
|
<documentation />*
|
|
|
|
<endpoint name="<em>xs:NCName</em>" binding="<em>xs:QName</em>" address="<em>xs:anyURI</em>"? >
|
|
<documentation />*
|
|
</endpoint>+
|
|
|
|
</service>*
|
|
</description>
|
|
</pre></div>
|
|
</div>
|
|
<div class="div1">
|
|
<h2><a name="References" id="References"></a>10. References</h2>
|
|
<div class="div2">
|
|
<h3><a name="Normative-References" id=
|
|
"Normative-References"></a>10.1 Normative References</h3>
|
|
<dl>
|
|
<dt class="label"><a name="CHARMOD" id="CHARMOD"></a>[Character
|
|
Model for the WWW]</dt>
|
|
<dd><cite><a href=
|
|
"http://www.w3.org/TR/2005/REC-charmod-20050215/">Character Model
|
|
for the World Wide Web 1.0: Fundamentals</a></cite>, M. Dürst, F.
|
|
Yergeau, R. Ishida, M. Wolf, T. Texin, Editors. W3C Recommendation,
|
|
15 February 2005. Latest version available at
|
|
http://www.w3.org/TR/charmod/.</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="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="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="XLink" id="XLink"></a>[XLink 1.0]</dt>
|
|
<dd><cite><a href=
|
|
"http://www.w3.org/TR/2001/REC-xlink-20010627/">XML Linking
|
|
Language (XLink) Version 1.0</a></cite>, Steve DeRose, Eve Maler,
|
|
David Orchard, Editors. World Wide Web Consortium, 27 June 2001.
|
|
This version of the XLink Recommendation is
|
|
http://www.w3.org/TR/2001/REC-xlink-20010627/ The <a href=
|
|
"http://www.w3.org/TR/xlink/">latest version of XLink</a> is
|
|
available at http://www.w3.org/TR/xlink/.</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="XMLNS" id="XMLNS"></a>[XML
|
|
Namespaces]</dt>
|
|
<dd><cite><a href=
|
|
"http://www.w3.org/TR/2006/REC-xml-names-20060816">Namespaces in
|
|
XML (Second Edition)</a></cite>, T. Bray, D. Hollander, A. Layman,
|
|
and R. Tobin, Editors. World Wide Web Consortium, 16 August 2006.
|
|
This version of the XML Information Set Recommendation is
|
|
http://www.w3.org/TR/2006/REC-xml-names-20060816. The <a href=
|
|
"http://www.w3.org/TR/REC-xml-names">latest version of Namespaces
|
|
in XML</a> is available at http://www.w3.org/TR/REC-xml-names.</dd>
|
|
<dt class="label"><a name="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="WSDL-PART2" id="WSDL-PART2"></a>[WSDL
|
|
2.0 Adjuncts]</dt>
|
|
<dd><cite><a href=
|
|
"http://www.w3.org/TR/2007/REC-wsdl20-adjuncts-20070626">Web
|
|
Services Description Language (WSDL) Version 2.0 Part 2:
|
|
Adjuncts</a></cite> , R. Chinnici, H. Haas, A. Lewis, J-J. Moreau,
|
|
D. Orchard, S. Weerawarana, Editors. World Wide Web Consortium, 26
|
|
June 2007. This version of the "Web Services Description Language
|
|
(WSDL) Version 2.0 Part 2: Adjuncts" Recommendation is available at
|
|
http://www.w3.org/TR/2007/REC-wsdl20-adjuncts-20070626. The
|
|
<a href="http://www.w3.org/TR/wsdl20-adjuncts">latest version of
|
|
"Web Services Description Language (WSDL) Version 2.0 Part 2:
|
|
Adjuncts"</a> is available at
|
|
http://www.w3.org/TR/wsdl20-adjuncts.</dd>
|
|
</dl>
|
|
</div>
|
|
<div class="div2">
|
|
<h3><a name="Informative-References" id=
|
|
"Informative-References"></a>10.2 Informative References</h3>
|
|
<dl>
|
|
<dt class="label"><a name="RFC2045" id="RFC2045"></a>[IETF RFC
|
|
2045]</dt>
|
|
<dd><cite><a href=
|
|
"http://www.ietf.org/rfc/rfc2045.txt">Multipurpose Internet Mail
|
|
Extensions (MIME) Part One: Format of Internet Message
|
|
Bodies</a></cite>, N. Freed, N. Borenstein, Authors. Internet
|
|
Engineering Task Force, November 1996. Available at
|
|
http://www.ietf.org/rfc/rfc2045.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="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="WSDL11" id="WSDL11"></a>[WSDL 1.1]</dt>
|
|
<dd><cite><a href=
|
|
"http://www.w3.org/TR/2001/NOTE-wsdl-20010315">Web Services
|
|
Description Language (WSDL) 1.1</a></cite>, E. Christensen, F.
|
|
Curbera, G. Meredith, and S. Weerawarana, Authors. World Wide Web
|
|
Consortium, 15 March 2002. This version of the Web Services
|
|
Description Language 1.1 Note is
|
|
http://www.w3.org/TR/2001/NOTE-wsdl-20010315. The <a href=
|
|
"http://www.w3.org/TR/wsdl">latest version of Web Services
|
|
Description Language 1.1</a> is available at
|
|
http://www.w3.org/TR/wsdl.</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="WSDReqs" id="WSDReqs"></a>[WSDL 2.0
|
|
Requirements]</dt>
|
|
<dd><cite><a href=
|
|
"http://www.w3.org/TR/2002/WD-ws-desc-reqs-20021028">Web Services
|
|
Description Requirements</a></cite>, J. Schlimmer, Editor. World
|
|
Wide Web Consortium, 28 October 2002. This version of the Web
|
|
Services Description Requirements document is
|
|
http://www.w3.org/TR/2002/WD-ws-desc-reqs-20021028. The <a href=
|
|
"http://www.w3.org/TR/ws-desc-reqs/">latest version of Web Services
|
|
Description Requirements</a> is available at
|
|
http://www.w3.org/TR/ws-desc-reqs.</dd>
|
|
<dt class="label"><a name="WSDL2-OTHER-SCHEMA" id=
|
|
"WSDL2-OTHER-SCHEMA"></a>[WSDL 2.0 Alternative Schema Languages
|
|
Support]</dt>
|
|
<dd><cite><a href=
|
|
"http://www.w3.org/TR/2005/NOTE-wsdl20-altschemalangs-20050817/">Discussion
|
|
of Alternative Schema Languages and Type System Support in WSDL
|
|
2.0</a></cite>, A. Lewis, B. Parsia, Editors. World Wide Web
|
|
Consortium, 17 August 2005. This version of the "Discussion of
|
|
Alternative Schema Languages and Type System Support in WSDL 2.0"
|
|
Working Group Note is
|
|
http://www.w3.org/TR/2005/NOTE-wsdl20-altschemalangs-20050817/. The
|
|
<a href="http://www.w3.org/TR/wsdl20-altschemalangs">latest version
|
|
of "Discussion of Alternative Schema Languages and Type System
|
|
Support in WSDL 2.0"</a> is available at
|
|
http://www.w3.org/TR/wsdl20-altschemalangs.</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="XPTR" id="XPTR"></a>[XPointer]</dt>
|
|
<dd><cite><a href=
|
|
"http://www.w3.org/TR/2003/REC-xptr-framework-20030325/">XPointer
|
|
Framework</a></cite>, P. Grosso, E. Maler, J. Marsh, N. Walsh,
|
|
Editors. World Wide Web Consortium, 25 March 2003. This version of
|
|
the XPointer Framework 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>
|
|
<dt class="label"><a name="ZNotationReferenceManual" id=
|
|
"ZNotationReferenceManual"></a>[Z Notation Reference Manual]</dt>
|
|
<dd><cite><a href=
|
|
"http://spivey.oriel.ox.ac.uk/mike/zrm/index.html">The Z Notation:
|
|
A Reference Manual, Second Edition</a></cite>, J. M. Spivey,
|
|
Prentice Hall, 1992.</dd>
|
|
<dt class="label"><a name="Fuzz2000" id="Fuzz2000"></a>[Fuzz
|
|
2000]</dt>
|
|
<dd><cite><a href="http://spivey.oriel.ox.ac.uk/mike/fuzz/">Release
|
|
Notes For Fuzz 2000</a></cite>, J. M. Spivey.</dd>
|
|
</dl>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="back">
|
|
<div class="div1">
|
|
<h2><a name="ietf-draft" id="ietf-draft"></a>A. The
|
|
application/wsdl+xml Media Type</h2>
|
|
<p>This appendix defines the "application/wsdl+xml" media type
|
|
which can be used to describe WSDL 2.0 documents serialized as
|
|
XML.</p>
|
|
<div class="div2">
|
|
<h3><a name="ietf-reg" id="ietf-reg"></a>A.1 Registration</h3>
|
|
<dl>
|
|
<dt class="label">MIME media type name:</dt>
|
|
<dd>
|
|
<p>application</p>
|
|
</dd>
|
|
<dt class="label">MIME subtype name:</dt>
|
|
<dd>
|
|
<p>wsdl+xml</p>
|
|
</dd>
|
|
<dt class="label">Required parameters:</dt>
|
|
<dd>
|
|
<p>none</p>
|
|
</dd>
|
|
<dt class="label">Optional parameters:</dt>
|
|
<dd>
|
|
<dl>
|
|
<dt class="label">charset</dt>
|
|
<dd>
|
|
<p>This parameter has identical semantics to the charset parameter
|
|
of the "application/xml" media type as specified in [<cite><a href=
|
|
"#RFC3023">IETF RFC 3023</a></cite>].</p>
|
|
</dd>
|
|
</dl>
|
|
</dd>
|
|
<dt class="label">Encoding considerations:</dt>
|
|
<dd>
|
|
<p>Identical to those of "application/xml" as described in
|
|
[<cite><a href="#RFC3023">IETF RFC 3023</a></cite>], section 3.2,
|
|
as applied to the WSDL document Infoset.</p>
|
|
</dd>
|
|
<dt class="label">Security considerations:</dt>
|
|
<dd>
|
|
<p>See section <a href="#ietf-sec"><strong>A.3 Security
|
|
considerations</strong></a>.</p>
|
|
</dd>
|
|
<dt class="label">Interoperability considerations:</dt>
|
|
<dd>
|
|
<p>There are no known interoperability issues.</p>
|
|
</dd>
|
|
<dt class="label">Published specifications:</dt>
|
|
<dd>
|
|
<p>This document and [<cite><a href="#WSDL-PART2">WSDL 2.0
|
|
Adjuncts</a></cite>].</p>
|
|
</dd>
|
|
<dt class="label">Applications which use this media type:</dt>
|
|
<dd>
|
|
<p>No known applications currently use this media type.</p>
|
|
</dd>
|
|
<dt class="label">Additional information:</dt>
|
|
<dd>
|
|
<dl>
|
|
<dt class="label">File extension:</dt>
|
|
<dd>
|
|
<p>wsdl</p>
|
|
</dd>
|
|
<dt class="label">Fragment identifiers:</dt>
|
|
<dd>
|
|
<p>Either a syntax identical to that of "application/xml" as
|
|
described in [<cite><a href="#RFC3023">IETF RFC 3023</a></cite>],
|
|
section 5 or the syntax defined in <a href="#frag-ids"><strong>A.2
|
|
Fragment Identifiers</strong></a>.</p>
|
|
</dd>
|
|
<dt class="label">Base URI:</dt>
|
|
<dd>
|
|
<p>As specified in [<cite><a href="#RFC3023">IETF RFC
|
|
3023</a></cite>], section 6.</p>
|
|
</dd>
|
|
<dt class="label">Macintosh File Type code:</dt>
|
|
<dd>
|
|
<p>WSDL</p>
|
|
</dd>
|
|
</dl>
|
|
</dd>
|
|
<dt class="label">Person and email address to contact for further
|
|
information:</dt>
|
|
<dd>
|
|
<p>World Wide Web Consortium <web-human@w3.org></p>
|
|
</dd>
|
|
<dt class="label">Intended usage:</dt>
|
|
<dd>
|
|
<p>COMMON</p>
|
|
</dd>
|
|
<dt class="label">Author/Change controller:</dt>
|
|
<dd>
|
|
<p>The WSDL 2.0 specification set is a work product of the World
|
|
Wide Web Consortium's <a href="http://www.w3.org/2002/ws/desc/">Web
|
|
Service Description Working Group</a>. The W3C has change control
|
|
over these specifications.</p>
|
|
</dd>
|
|
</dl>
|
|
</div>
|
|
<div class="div2">
|
|
<h3><a name="frag-ids" id="frag-ids"></a>A.2 Fragment
|
|
Identifiers</h3>
|
|
<p>This section defines a fragment identifier syntax for
|
|
identifying components of a WSDL 2.0 document. This fragment
|
|
identifier syntax is compliant with the [<cite><a href=
|
|
"#XPTR">XPointer</a></cite>].</p>
|
|
<p>A WSDL 2.0 fragment identifier is an XPointer [<cite><a href=
|
|
"#XPTR">XPointer</a></cite>], augmented with WSDL 2.0 pointer parts
|
|
as defined below. Note that many of these parts require the
|
|
pre-appearance of one or more <code>xmlns</code> pointer parts (see
|
|
<em>3.4 Namespace Binding Context</em> in [<cite><a href=
|
|
"#XPTR">XPointer</a></cite>]). The pointer parts have a scheme name
|
|
that corresponds to one of the standard WSDL 2.0 component types,
|
|
and scheme data that is a path composed of names that identify the
|
|
components. The scheme names all begin with the prefix "wsdl." to
|
|
avoid name conflicts with other schemes. The names in the path are
|
|
of type either QName, NCName, IRI, URI, or Pointer Part depending
|
|
on the context. The scheme data for WSDL 2.0 extension components
|
|
is defined by the corresponding extension specification.</p>
|
|
<p><span id="FragId-1095" class="test-assertion-tr">For QNames, any
|
|
prefix MUST be defined by a preceding xmlns pointer
|
|
part.<sup><a href="#FragId-1095-summary" title=
|
|
"Link to assertion FragId-1095 summary">†</a></sup></span> If a
|
|
QName does not have a prefix then its namespace name is the target
|
|
namespace of the WSDL 2.0 document.</p>
|
|
<p>The fragment identifier is typically constructed from the
|
|
{<a href="#property-.name">name</a>} property of the component and
|
|
the {<a href="#property-.name">name</a>} properties of its
|
|
ancestors as a path according to <a href="#frag-ids-table">Table
|
|
A-1</a>. The first column of this table gives the name of the WSDL
|
|
2.0 component. Columns labeled 1 through 4 specify the identifiers
|
|
that uniquely identify the component within its context.
|
|
Identifiers are typically formed from the {<a href=
|
|
"#property-.name">name</a>} property, although in several cases
|
|
references to other components are used. These identifiers are then
|
|
used to construct the pointer part in the last column. <span id=
|
|
"FragId-1096" class="test-assertion-tr">The fragment identifier in
|
|
a WSDL 2.0 component IRI-reference MUST resolve to some component
|
|
as defined by the construction rules in <a href=
|
|
"#frag-ids-table">Table A-1</a>.<sup><a href="#FragId-1096-summary"
|
|
title=
|
|
"Link to assertion FragId-1096 summary">†</a></sup></span></p>
|
|
<a name="frag-ids-table" id="frag-ids-table"></a>
|
|
<table border="1">
|
|
<caption>Table A-1. Rules for determining pointer parts for WSDL
|
|
2.0 components</caption>
|
|
<col width="15%" span="1" />
|
|
<col width="10%" span="1" />
|
|
<col width="10%" span="1" />
|
|
<col width="10%" span="1" />
|
|
<col width="10%" span="1" />
|
|
<col width="45%" span="1" />
|
|
<tbody>
|
|
<tr>
|
|
<th rowspan="1" colspan="1">Component</th>
|
|
<th rowspan="1" colspan="1">1</th>
|
|
<th rowspan="1" colspan="1">2</th>
|
|
<th rowspan="1" colspan="1">3</th>
|
|
<th rowspan="1" colspan="1">4</th>
|
|
<th rowspan="1" colspan="1">Pointer Part</th>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a href=
|
|
"#component-Description">Description</a></td>
|
|
<td rowspan="1" colspan="1">n/a</td>
|
|
<td rowspan="1" colspan="1">n/a</td>
|
|
<td rowspan="1" colspan="1">n/a</td>
|
|
<td rowspan="1" colspan="1">n/a</td>
|
|
<td rowspan="1" colspan="1"><code><a href=
|
|
"#wsdl.description">wsdl.description</a>()</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a href=
|
|
"#component-ElementDeclaration">Element Declaration</a></td>
|
|
<td rowspan="1" colspan="1"><code><em>element</em></code>
|
|
QName</td>
|
|
<td rowspan="1" colspan="1">n/a</td>
|
|
<td rowspan="1" colspan="1">n/a</td>
|
|
<td rowspan="1" colspan="1">n/a</td>
|
|
<td rowspan="1" colspan="1"><code><a href=
|
|
"#wsdl.elementDeclaration">wsdl.elementDeclaration</a>(<em>element</em>)</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a href=
|
|
"#component-ElementDeclaration">Element Declaration</a></td>
|
|
<td rowspan="1" colspan="1"><code><em>element</em></code>
|
|
QName</td>
|
|
<td rowspan="1" colspan="1"><code><em>system</em></code> IRI</td>
|
|
<td rowspan="1" colspan="1">n/a</td>
|
|
<td rowspan="1" colspan="1">n/a</td>
|
|
<td rowspan="1" colspan="1"><code><a href=
|
|
"#wsdl.elementDeclaration">wsdl.elementDeclaration</a>(<em>element</em>,<em>system</em>)</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a href=
|
|
"#component-TypeDefinition">Type Definition</a></td>
|
|
<td rowspan="1" colspan="1"><code><em>type</em></code> QName</td>
|
|
<td rowspan="1" colspan="1">n/a</td>
|
|
<td rowspan="1" colspan="1">n/a</td>
|
|
<td rowspan="1" colspan="1">n/a</td>
|
|
<td rowspan="1" colspan="1"><code><a href=
|
|
"#wsdl.typeDefinition">wsdl.typeDefinition</a>(<em>type</em>)</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a href=
|
|
"#component-TypeDefinition">Type Definition</a></td>
|
|
<td rowspan="1" colspan="1"><code><em>type</em></code> QName</td>
|
|
<td rowspan="1" colspan="1"><code><em>system</em></code> IRI</td>
|
|
<td rowspan="1" colspan="1">n/a</td>
|
|
<td rowspan="1" colspan="1">n/a</td>
|
|
<td rowspan="1" colspan="1"><code><a href=
|
|
"#wsdl.typeDefinition">wsdl.typeDefinition</a>(<em>type</em>,<em>system</em>)</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a href=
|
|
"#component-Interface">Interface</a></td>
|
|
<td rowspan="1" colspan="1"><code><em>interface</em></code>
|
|
NCName</td>
|
|
<td rowspan="1" colspan="1">n/a</td>
|
|
<td rowspan="1" colspan="1">n/a</td>
|
|
<td rowspan="1" colspan="1">n/a</td>
|
|
<td rowspan="1" colspan="1"><code><a href=
|
|
"#wsdl.interface">wsdl.interface</a>(<em>interface</em>)</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a href=
|
|
"#component-InterfaceFault">Interface Fault</a></td>
|
|
<td rowspan="1" colspan="1"><code><em>interface</em></code>
|
|
NCName</td>
|
|
<td rowspan="1" colspan="1"><code><em>fault</em></code> NCName</td>
|
|
<td rowspan="1" colspan="1">n/a</td>
|
|
<td rowspan="1" colspan="1">n/a</td>
|
|
<td rowspan="1" colspan="1"><code><a href=
|
|
"#wsdl.interfaceFault">wsdl.interfaceFault</a>(<em>interface</em>/<em>fault</em>)</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a href=
|
|
"#component-InterfaceOperation">Interface Operation</a></td>
|
|
<td rowspan="1" colspan="1"><code><em>interface</em></code>
|
|
NCName</td>
|
|
<td rowspan="1" colspan="1"><code><em>operation</em></code>
|
|
NCName</td>
|
|
<td rowspan="1" colspan="1">n/a</td>
|
|
<td rowspan="1" colspan="1">n/a</td>
|
|
<td rowspan="1" colspan="1"><code><a href=
|
|
"#wsdl.interfaceOperation">wsdl.interfaceOperation</a>(<em>interface</em>/<em>operation</em>)</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a href=
|
|
"#component-InterfaceMessageReference">Interface Message
|
|
Reference</a></td>
|
|
<td rowspan="1" colspan="1"><code><em>interface</em></code>
|
|
NCName</td>
|
|
<td rowspan="1" colspan="1"><code><em>operation</em></code>
|
|
NCName</td>
|
|
<td rowspan="1" colspan="1"><code><em>message</em></code>
|
|
NCName</td>
|
|
<td rowspan="1" colspan="1">n/a</td>
|
|
<td rowspan="1" colspan="1"><code><a href=
|
|
"#wsdl.interfaceMessageReference">wsdl.interfaceMessageReference</a>(<em>interface</em>/<em>operation</em>/<em>message</em>)</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a href=
|
|
"#component-InterfaceFaultReference">Interface Fault
|
|
Reference</a></td>
|
|
<td rowspan="1" colspan="1"><code><em>interface</em></code>
|
|
NCName</td>
|
|
<td rowspan="1" colspan="1"><code><em>operation</em></code>
|
|
NCName</td>
|
|
<td rowspan="1" colspan="1"><code><em>message</em></code>
|
|
NCName</td>
|
|
<td rowspan="1" colspan="1"><code><em>fault</em></code> QName</td>
|
|
<td rowspan="1" colspan="1"><code><a href=
|
|
"#wsdl.interfaceFaultReference">wsdl.interfaceFaultReference</a>(<em>interface</em>/<em>operation</em>/<em>message</em>/<em>fault</em>)</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a href=
|
|
"#component-Binding">Binding</a></td>
|
|
<td rowspan="1" colspan="1"><code><em>binding</em></code>
|
|
NCName</td>
|
|
<td rowspan="1" colspan="1">n/a</td>
|
|
<td rowspan="1" colspan="1">n/a</td>
|
|
<td rowspan="1" colspan="1">n/a</td>
|
|
<td rowspan="1" colspan="1"><code><a href=
|
|
"#wsdl.binding">wsdl.binding</a>(<em>binding</em>)</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a href=
|
|
"#component-BindingFault">Binding Fault</a></td>
|
|
<td rowspan="1" colspan="1"><code><em>binding</em></code>
|
|
NCName</td>
|
|
<td rowspan="1" colspan="1"><code><em>fault</em></code> QName</td>
|
|
<td rowspan="1" colspan="1">n/a</td>
|
|
<td rowspan="1" colspan="1">n/a</td>
|
|
<td rowspan="1" colspan="1"><code><a href=
|
|
"#wsdl.bindingFault">wsdl.bindingFault</a>(<em>binding</em>/<em>fault</em>)</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a href=
|
|
"#component-BindingOperation">Binding Operation</a></td>
|
|
<td rowspan="1" colspan="1"><code><em>binding</em></code>
|
|
NCName</td>
|
|
<td rowspan="1" colspan="1"><code><em>operation</em></code>
|
|
QName</td>
|
|
<td rowspan="1" colspan="1">n/a</td>
|
|
<td rowspan="1" colspan="1">n/a</td>
|
|
<td rowspan="1" colspan="1"><code><a href=
|
|
"#wsdl.bindingOperation">wsdl.bindingOperation</a>(<em>binding</em>/<em>operation</em>)</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a href=
|
|
"#component-BindingMessageReference">Binding Message
|
|
Reference</a></td>
|
|
<td rowspan="1" colspan="1"><code><em>binding</em></code>
|
|
NCName</td>
|
|
<td rowspan="1" colspan="1"><code><em>operation</em></code>
|
|
QName</td>
|
|
<td rowspan="1" colspan="1"><code><em>message</em></code>
|
|
NCName</td>
|
|
<td rowspan="1" colspan="1">n/a</td>
|
|
<td rowspan="1" colspan="1"><code><a href=
|
|
"#wsdl.bindingMessageReference">wsdl.bindingMessageReference</a>(<em>binding</em>/<em>operation</em>/<em>message</em>)</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a href=
|
|
"#component-BindingFaultReference">Binding Fault Reference</a></td>
|
|
<td rowspan="1" colspan="1"><code><em>binding</em></code>
|
|
NCName</td>
|
|
<td rowspan="1" colspan="1"><code><em>operation</em></code>
|
|
QName</td>
|
|
<td rowspan="1" colspan="1"><code><em>message</em></code>
|
|
NCName</td>
|
|
<td rowspan="1" colspan="1"><code><em>fault</em></code> QName</td>
|
|
<td rowspan="1" colspan="1"><code><a href=
|
|
"#wsdl.bindingFaultReference">wsdl.bindingFaultReference</a>(<em>binding</em>/<em>operation</em>/<em>message</em>/<em>fault</em>)</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a href=
|
|
"#component-Service">Service</a></td>
|
|
<td rowspan="1" colspan="1"><code><em>service</em></code>
|
|
NCName</td>
|
|
<td rowspan="1" colspan="1">n/a</td>
|
|
<td rowspan="1" colspan="1">n/a</td>
|
|
<td rowspan="1" colspan="1">n/a</td>
|
|
<td rowspan="1" colspan="1"><code><a href=
|
|
"#wsdl.service">wsdl.service</a>(<em>service</em>)</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a href=
|
|
"#component-Endpoint">Endpoint</a></td>
|
|
<td rowspan="1" colspan="1"><code><em>service</em></code>
|
|
NCName</td>
|
|
<td rowspan="1" colspan="1"><code><em>endpoint</em></code>
|
|
NCName</td>
|
|
<td rowspan="1" colspan="1">n/a</td>
|
|
<td rowspan="1" colspan="1">n/a</td>
|
|
<td rowspan="1" colspan="1"><code><a href=
|
|
"#wsdl.endpoint">wsdl.endpoint</a>(<em>service</em>/<em>endpoint</em>)</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a href=
|
|
"#Description">Extensions</a></td>
|
|
<td rowspan="1" colspan="1"><code><em>namespace</em></code>
|
|
URI</td>
|
|
<td rowspan="1" colspan="1"><code><em>identifier</em></code>
|
|
extension-specific-syntax</td>
|
|
<td rowspan="1" colspan="1">n/a</td>
|
|
<td rowspan="1" colspan="1">n/a</td>
|
|
<td rowspan="1" colspan="1"><code><a href=
|
|
"#wsdl.extension">wsdl.extension</a>(<em>namespace</em>,<em>identifier</em>)</code></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
<br />
|
|
<p>Note that the above rules are defined in terms of component
|
|
properties rather than the XML Infoset representation of the
|
|
component model. The following sections specify in detail how the
|
|
pointer parts are constructed from the component model.</p>
|
|
<a name="zed-ComponentID" id="zed-ComponentID"></a><a name=
|
|
"zed-ComponentDesignator" id="zed-ComponentDesignator"></a><a name=
|
|
"zed-ComponentContext" id="zed-ComponentContext"></a><a name=
|
|
"zed-componentNamespace" id="zed-componentNamespace"></a><a name=
|
|
"zed-ExtensionIdentifier" id="zed-ExtensionIdentifier"></a><a name=
|
|
"zed-wsdlPointerPart" id="zed-wsdlPointerPart"></a><a name=
|
|
"zed-pointerPart" id="zed-pointerPart"></a><a name=
|
|
"zed-ComponentToDesignator" id="zed-ComponentToDesignator"></a>
|
|
<div class="div3">
|
|
<h4><a name="wsdl.description" id="wsdl.description"></a>A.2.1 The
|
|
Description Component</h4>
|
|
<p><code>wsdl.description()</code></p>
|
|
<a name="zed-wsdlDescription" id="zed-wsdlDescription"></a></div>
|
|
<div class="div3">
|
|
<h4><a name="wsdl.elementDeclaration" id=
|
|
"wsdl.elementDeclaration"></a>A.2.2 The Element Declaration
|
|
Component</h4>
|
|
<p><code>wsdl.elementDeclaration(<em>element</em>)</code></p>
|
|
<p>
|
|
<code>wsdl.elementDeclaration(<em>element</em>,<em>system</em>)</code></p>
|
|
<ol class="enumar">
|
|
<li>
|
|
<p><code><em>element</em></code> is the {<a href=
|
|
"#property-ElementDeclaration.name">name</a>} property of the
|
|
<a href="#component-ElementDeclaration">Element Declaration</a>
|
|
component.</p>
|
|
</li>
|
|
<li>
|
|
<p><code><em>system</em></code> is the namespace absolute IRI of
|
|
the extension type system used for the <a href=
|
|
"#component-ElementDeclaration">Element Declaration</a> component
|
|
(see <a href="#other-types"><strong>3.2 Using Other Schema
|
|
Languages</strong></a>). This parameter is absent if XML Schema is
|
|
the type system.</p>
|
|
</li>
|
|
</ol>
|
|
<a name="zed-xmlSchemaNamespaceURI" id=
|
|
"zed-xmlSchemaNamespaceURI"></a><a name="zed-ElementDeclArgs" id=
|
|
"zed-ElementDeclArgs"></a><a name="zed-ElementDeclDesignator" id=
|
|
"zed-ElementDeclDesignator"></a><a name=
|
|
"zed-wsdlElementDeclaration" id=
|
|
"zed-wsdlElementDeclaration"></a></div>
|
|
<div class="div3">
|
|
<h4><a name="wsdl.typeDefinition" id=
|
|
"wsdl.typeDefinition"></a>A.2.3 The Type Definition Component</h4>
|
|
<p><code>wsdl.typeDefinition(<em>type</em>)</code></p>
|
|
<p>
|
|
<code>wsdl.typeDefinition(<em>type</em>,<em>system</em>)</code></p>
|
|
<ol class="enumar">
|
|
<li>
|
|
<p><code><em>type</em></code> is the {<a href=
|
|
"#property-TypeDefinition.name">name</a>} property of the <a href=
|
|
"#component-TypeDefinition">Type Definition</a> component.</p>
|
|
</li>
|
|
<li>
|
|
<p><code><em>system</em></code> is the namespace absolute IRI of
|
|
the extension type system used for the <a href=
|
|
"#component-TypeDefinition">Type Definition</a> component (see
|
|
<a href="#other-types"><strong>3.2 Using Other Schema
|
|
Languages</strong></a>). This parameter is absent if XML Schema is
|
|
the type system.</p>
|
|
</li>
|
|
</ol>
|
|
<a name="zed-TypeDefArgs" id="zed-TypeDefArgs"></a><a name=
|
|
"zed-TypeDefDesignator" id="zed-TypeDefDesignator"></a><a name=
|
|
"zed-wsdlTypeDefinition" id="zed-wsdlTypeDefinition"></a></div>
|
|
<div class="div3">
|
|
<h4><a name="wsdl.interface" id="wsdl.interface"></a>A.2.4 The
|
|
Interface Component</h4>
|
|
<p><code>wsdl.interface(<em>interface</em>)</code></p>
|
|
<ol class="enumar">
|
|
<li>
|
|
<p><code><em>interface</em></code> is the local name of the
|
|
{<a href="#property-Interface.name">name</a>} property of the
|
|
<a href="#component-Interface">Interface</a> component.</p>
|
|
</li>
|
|
</ol>
|
|
<a name="zed-InterfaceArgs" id="zed-InterfaceArgs"></a><a name=
|
|
"zed-InterfaceDesignator" id="zed-InterfaceDesignator"></a><a name=
|
|
"zed-wsdlInterface" id="zed-wsdlInterface"></a></div>
|
|
<div class="div3">
|
|
<h4><a name="wsdl.interfaceFault" id=
|
|
"wsdl.interfaceFault"></a>A.2.5 The Interface Fault Component</h4>
|
|
<p>
|
|
<code>wsdl.interfaceFault(<em>interface</em>/<em>fault</em>)</code></p>
|
|
<ol class="enumar">
|
|
<li>
|
|
<p><code><em>interface</em></code> is the local name of the
|
|
{<a href="#property-Interface.name">name</a>} property of the
|
|
parent <a href="#component-Interface">Interface</a> component.</p>
|
|
</li>
|
|
<li>
|
|
<p><code><em>fault</em></code> is the local name of the {<a href=
|
|
"#property-InterfaceFault.name">name</a>} property of the <a href=
|
|
"#component-InterfaceFault">Interface Fault</a> component.</p>
|
|
</li>
|
|
</ol>
|
|
<a name="zed-InterfaceFaultArgs" id=
|
|
"zed-InterfaceFaultArgs"></a><a name="zed-InterfaceFaultDesignator"
|
|
id="zed-InterfaceFaultDesignator"></a><a name=
|
|
"zed-wsdlInterfaceFault" id="zed-wsdlInterfaceFault"></a></div>
|
|
<div class="div3">
|
|
<h4><a name="wsdl.interfaceOperation" id=
|
|
"wsdl.interfaceOperation"></a>A.2.6 The Interface Operation
|
|
Component</h4>
|
|
<p>
|
|
<code>wsdl.interfaceOperation(<em>interface</em>/<em>operation</em>)</code></p>
|
|
<ol class="enumar">
|
|
<li>
|
|
<p><code><em>interface</em></code> is the local name of the
|
|
{<a href="#property-Interface.name">name</a>} property of the
|
|
parent <a href="#component-Interface">Interface</a> component.</p>
|
|
</li>
|
|
<li>
|
|
<p><code><em>operation</em></code> is the local name of the
|
|
{<a href="#property-InterfaceOperation.name">name</a>} property of
|
|
the <a href="#component-InterfaceOperation">Interface Operation</a>
|
|
component.</p>
|
|
</li>
|
|
</ol>
|
|
<a name="zed-InterfaceOpArgs" id="zed-InterfaceOpArgs"></a><a name=
|
|
"zed-InterfaceOpDesignator" id=
|
|
"zed-InterfaceOpDesignator"></a><a name=
|
|
"zed-wsdlInterfaceOperation" id=
|
|
"zed-wsdlInterfaceOperation"></a></div>
|
|
<div class="div3">
|
|
<h4><a name="wsdl.interfaceMessageReference" id=
|
|
"wsdl.interfaceMessageReference"></a>A.2.7 The Interface Message
|
|
Reference Component</h4>
|
|
<p>
|
|
<code>wsdl.interfaceMessageReference(<em>interface</em>/<em>operation</em>/<em>message</em>)</code></p>
|
|
<ol class="enumar">
|
|
<li>
|
|
<p><code><em>interface</em></code> is the local name of the
|
|
{<a href="#property-Interface.name">name</a>} property of the
|
|
grandparent <a href="#component-Interface">Interface</a>
|
|
component.</p>
|
|
</li>
|
|
<li>
|
|
<p><code><em>operation</em></code> is the local name of the
|
|
{<a href="#property-InterfaceOperation.name">name</a>} property of
|
|
the parent <a href="#component-InterfaceOperation">Interface
|
|
Operation</a> component.</p>
|
|
</li>
|
|
<li>
|
|
<p><code><em>message</em></code> is the {<a href=
|
|
"#property-InterfaceMessageReference.messagelabel">message
|
|
label</a>} property of the <a href=
|
|
"#component-InterfaceMessageReference">Interface Message
|
|
Reference</a> component.</p>
|
|
</li>
|
|
</ol>
|
|
<a name="zed-InterfaceMessageRefArgs" id=
|
|
"zed-InterfaceMessageRefArgs"></a><a name=
|
|
"zed-InterfaceMessageRefDesignator" id=
|
|
"zed-InterfaceMessageRefDesignator"></a><a name=
|
|
"zed-wsdlInterfaceMessageReference" id=
|
|
"zed-wsdlInterfaceMessageReference"></a></div>
|
|
<div class="div3">
|
|
<h4><a name="wsdl.interfaceFaultReference" id=
|
|
"wsdl.interfaceFaultReference"></a>A.2.8 The Interface Fault
|
|
Reference Component</h4>
|
|
<p>
|
|
<code>wsdl.interfaceFaultReference(<em>interface</em>/<em>operation</em>/<em>message</em>/<em>fault</em>)</code></p>
|
|
<ol class="enumar">
|
|
<li>
|
|
<p><code><em>interface</em></code> is the local name of the
|
|
{<a href="#property-Interface.name">name</a>} property of the
|
|
grandparent <a href="#component-Interface">Interface</a>
|
|
component.</p>
|
|
</li>
|
|
<li>
|
|
<p><code><em>operation</em></code> is the local name of the
|
|
{<a href="#property-InterfaceOperation.name">name</a>} property of
|
|
the parent <a href="#component-InterfaceOperation">Interface
|
|
Operation</a> component.</p>
|
|
</li>
|
|
<li>
|
|
<p><code><em>message</em></code> is the {<a href=
|
|
"#property-InterfaceFaultReference.messagelabel">message label</a>}
|
|
property of the <a href=
|
|
"#component-InterfaceFaultReference">Interface Fault Reference</a>
|
|
component.</p>
|
|
</li>
|
|
<li>
|
|
<p><code><em>fault</em></code> is the {<a href=
|
|
"#property-InterfaceFault.name">name</a>} property of the <a href=
|
|
"#component-InterfaceFault">Interface Fault</a> component referred
|
|
to by the {<a href=
|
|
"#property-InterfaceFaultReference.interfacefault">interface
|
|
fault</a>} property of the <a href=
|
|
"#component-InterfaceFaultReference">Interface Fault Reference</a>
|
|
component.</p>
|
|
</li>
|
|
</ol>
|
|
<a name="zed-InterfaceFaultRefArgs" id=
|
|
"zed-InterfaceFaultRefArgs"></a><a name=
|
|
"zed-InterfaceFaultRefDesignator" id=
|
|
"zed-InterfaceFaultRefDesignator"></a><a name=
|
|
"zed-wsdlInterfaceFaultReference" id=
|
|
"zed-wsdlInterfaceFaultReference"></a></div>
|
|
<div class="div3">
|
|
<h4><a name="wsdl.binding" id="wsdl.binding"></a>A.2.9 The Binding
|
|
Component</h4>
|
|
<p><code>wsdl.binding(<em>binding</em>)</code></p>
|
|
<ol class="enumar">
|
|
<li>
|
|
<p><code><em>binding</em></code> is the local name of the {<a href=
|
|
"#property-Binding.name">name</a>} property of the <a href=
|
|
"#component-Binding">Binding</a> component.</p>
|
|
</li>
|
|
</ol>
|
|
<a name="zed-BindingArgs" id="zed-BindingArgs"></a><a name=
|
|
"zed-BindingDesignator" id="zed-BindingDesignator"></a><a name=
|
|
"zed-wsdlBinding" id="zed-wsdlBinding"></a><a name=
|
|
"zed-BindingInterfaceDesignator" id=
|
|
"zed-BindingInterfaceDesignator"></a></div>
|
|
<div class="div3">
|
|
<h4><a name="wsdl.bindingFault" id="wsdl.bindingFault"></a>A.2.10
|
|
The Binding Fault Component</h4>
|
|
<p>
|
|
<code>wsdl.bindingFault(<em>binding</em>/<em>fault</em>)</code></p>
|
|
<ol class="enumar">
|
|
<li>
|
|
<p><code><em>binding</em></code> is the local name of the {<a href=
|
|
"#property-Binding.name">name</a>} property of the parent <a href=
|
|
"#component-Binding">Binding</a> component.</p>
|
|
</li>
|
|
<li>
|
|
<p><code><em>fault</em></code> is the {<a href=
|
|
"#property-InterfaceFault.name">name</a>} property of the <a href=
|
|
"#component-InterfaceFault">Interface Fault</a> component referred
|
|
to by the {<a href=
|
|
"#property-BindingFault.interfacefault">interface fault</a>}
|
|
property of the <a href="#component-BindingFault">Binding Fault</a>
|
|
component.</p>
|
|
</li>
|
|
</ol>
|
|
<a name="zed-BindingFaultArgs" id=
|
|
"zed-BindingFaultArgs"></a><a name="zed-BindingFaultDesignator" id=
|
|
"zed-BindingFaultDesignator"></a><a name="zed-wsdlBindingFault" id=
|
|
"zed-wsdlBindingFault"></a></div>
|
|
<div class="div3">
|
|
<h4><a name="wsdl.bindingOperation" id=
|
|
"wsdl.bindingOperation"></a>A.2.11 The Binding Operation
|
|
Component</h4>
|
|
<p>
|
|
<code>wsdl.bindingOperation(<em>binding</em>/<em>operation</em>)</code></p>
|
|
<ol class="enumar">
|
|
<li>
|
|
<p><code><em>binding</em></code> is the local name of the {<a href=
|
|
"#property-Binding.name">name</a>} property of the parent <a href=
|
|
"#component-Binding">Binding</a> component.</p>
|
|
</li>
|
|
<li>
|
|
<p><code><em>operation</em></code> is the {<a href=
|
|
"#property-InterfaceOperation.name">name</a>} property of the
|
|
<a href="#component-InterfaceOperation">Interface Operation</a>
|
|
component referred to by the {<a href=
|
|
"#property-BindingOperation.interfaceoperation">interface
|
|
operation</a>} property of the <a href=
|
|
"#component-BindingOperation">Binding Operation</a> component.</p>
|
|
</li>
|
|
</ol>
|
|
<a name="zed-BindingOpArgs" id="zed-BindingOpArgs"></a><a name=
|
|
"zed-BindingOpDesignator" id="zed-BindingOpDesignator"></a><a name=
|
|
"zed-wsdlBindingOperation" id="zed-wsdlBindingOperation"></a></div>
|
|
<div class="div3">
|
|
<h4><a name="wsdl.bindingMessageReference" id=
|
|
"wsdl.bindingMessageReference"></a>A.2.12 The Binding Message
|
|
Reference Component</h4>
|
|
<p>
|
|
<code>wsdl.bindingMessageReference(<em>binding</em>/<em>operation</em>/<em>message</em>)</code></p>
|
|
<ol class="enumar">
|
|
<li>
|
|
<p><code><em>binding</em></code> is the local name of the {<a href=
|
|
"#property-Binding.name">name</a>} property of the grandparent
|
|
<a href="#component-Binding">Binding</a> component.</p>
|
|
</li>
|
|
<li>
|
|
<p><code><em>operation</em></code> is the {<a href=
|
|
"#property-InterfaceOperation.name">name</a>} property of the
|
|
<a href="#component-InterfaceOperation">Interface Operation</a>
|
|
component referred to by the {<a href=
|
|
"#property-BindingOperation.interfaceoperation">interface
|
|
operation</a>} property of the parent <a href=
|
|
"#component-BindingOperation">Binding Operation</a> component.</p>
|
|
</li>
|
|
<li>
|
|
<p><code><em>message</em></code> is the {<a href=
|
|
"#property-InterfaceMessageReference.messagelabel">message
|
|
label</a>} property of the <a href=
|
|
"#component-InterfaceMessageReference">Interface Message
|
|
Reference</a> component referred to by the {<a href=
|
|
"#property-BindingMessageReference.interfacemessagereference">interface
|
|
message reference</a>} property of the <a href=
|
|
"#component-BindingMessageReference">Binding Message Reference</a>
|
|
component.</p>
|
|
</li>
|
|
</ol>
|
|
<a name="zed-BindingMessageRefArgs" id=
|
|
"zed-BindingMessageRefArgs"></a><a name=
|
|
"zed-BindingMessageRefDesignator" id=
|
|
"zed-BindingMessageRefDesignator"></a><a name=
|
|
"zed-wsdlBindingMessageReference" id=
|
|
"zed-wsdlBindingMessageReference"></a></div>
|
|
<div class="div3">
|
|
<h4><a name="wsdl.bindingFaultReference" id=
|
|
"wsdl.bindingFaultReference"></a>A.2.13 The Binding Fault Reference
|
|
Component</h4>
|
|
<p>
|
|
<code>wsdl.bindingFaultReference(<em>binding</em>/<em>operation</em>/<em>message</em>/<em>fault</em>)</code></p>
|
|
<ol class="enumar">
|
|
<li>
|
|
<p><code><em>binding</em></code> is the local name of the {<a href=
|
|
"#property-Binding.name">name</a>} property of the grandparent
|
|
<a href="#component-Binding">Binding</a> component.</p>
|
|
</li>
|
|
<li>
|
|
<p><code><em>operation</em></code> is the {<a href=
|
|
"#property-InterfaceOperation.name">name</a>} property of the
|
|
<a href="#component-InterfaceOperation">Interface Operation</a>
|
|
component referred to by the {<a href=
|
|
"#property-BindingOperation.interfaceoperation">interface
|
|
operation</a>} property of the parent <a href=
|
|
"#component-BindingOperation">Binding Operation</a> component.</p>
|
|
</li>
|
|
<li>
|
|
<p><code><em>message</em></code> is the {<a href=
|
|
"#property-InterfaceFaultReference.messagelabel">message label</a>}
|
|
property of the <a href=
|
|
"#component-InterfaceFaultReference">Interface Fault Reference</a>
|
|
component referred to by the {<a href=
|
|
"#property-BindingFaultReference.interfacefaultreference">interface
|
|
fault reference</a>} property of the <a href=
|
|
"#component-BindingFaultReference">Binding Fault Reference</a>
|
|
component.</p>
|
|
</li>
|
|
<li>
|
|
<p><code><em>fault</em></code> is the {<a href=
|
|
"#property-InterfaceFault.name">name</a>} property of the <a href=
|
|
"#component-InterfaceFault">Interface Fault</a> component referred
|
|
to by the {<a href=
|
|
"#property-InterfaceFaultReference.interfacefault">interface
|
|
fault</a>} property of the <a href=
|
|
"#component-InterfaceFaultReference">Interface Fault Reference</a>
|
|
component referred to by the {<a href=
|
|
"#property-BindingFaultReference.interfacefaultreference">interface
|
|
fault reference</a>} property of the <a href=
|
|
"#component-BindingFaultReference">Binding Fault Reference</a>
|
|
component.</p>
|
|
</li>
|
|
</ol>
|
|
<a name="zed-BindingFaultRefArgs" id=
|
|
"zed-BindingFaultRefArgs"></a><a name=
|
|
"zed-BindingFaultRefDesignator" id=
|
|
"zed-BindingFaultRefDesignator"></a><a name=
|
|
"zed-wsdlBindingFaultReference" id=
|
|
"zed-wsdlBindingFaultReference"></a></div>
|
|
<div class="div3">
|
|
<h4><a name="wsdl.service" id="wsdl.service"></a>A.2.14 The Service
|
|
Component</h4>
|
|
<p><code>wsdl.service(<em>service</em>)</code></p>
|
|
<ol class="enumar">
|
|
<li>
|
|
<p><code><em>service</em></code> is the local name of the {<a href=
|
|
"#property-Service.name">name</a>} property of the <a href=
|
|
"#component-Service">Service</a> component.</p>
|
|
</li>
|
|
</ol>
|
|
<a name="zed-ServiceArgs" id="zed-ServiceArgs"></a><a name=
|
|
"zed-ServiceDesignator" id="zed-ServiceDesignator"></a><a name=
|
|
"zed-wsdlService" id="zed-wsdlService"></a></div>
|
|
<div class="div3">
|
|
<h4><a name="wsdl.endpoint" id="wsdl.endpoint"></a>A.2.15 The
|
|
Endpoint Component</h4>
|
|
<p>
|
|
<code>wsdl.endpoint(<em>service</em>/<em>endpoint</em>)</code></p>
|
|
<ol class="enumar">
|
|
<li>
|
|
<p><code><em>service</em></code> is the local name of the {<a href=
|
|
"#property-Service.name">name</a>} property of the parent <a href=
|
|
"#component-Service">Service</a> component.</p>
|
|
</li>
|
|
<li>
|
|
<p><code><em>endpoint</em></code> is the {<a href=
|
|
"#property-Endpoint.name">name</a>} property of the <a href=
|
|
"#component-Endpoint">Endpoint</a> component.</p>
|
|
</li>
|
|
</ol>
|
|
<a name="zed-EndpointArgs" id="zed-EndpointArgs"></a><a name=
|
|
"zed-EndpointDesignator" id="zed-EndpointDesignator"></a><a name=
|
|
"zed-wsdlEndpoint" id="zed-wsdlEndpoint"></a></div>
|
|
<div class="div3">
|
|
<h4><a name="wsdl.extension" id="wsdl.extension"></a>A.2.16
|
|
Extension Components</h4>
|
|
<p>WSDL 2.0 is extensible and it is possible for an extension to
|
|
define new components types. The XPointer Framework scheme for
|
|
extension components is:</p>
|
|
<p><code>wsdl.extension(<em>namespace</em>,
|
|
<em>identifier</em>)</code></p>
|
|
<ol class="enumar">
|
|
<li>
|
|
<p><code><em>namespace</em></code> is the namespace URI that
|
|
identifies the extension, e.g. for the WSDL 2.0 SOAP 1.2 Binding
|
|
the namespace is http://www.w3.org/ns/wsdl/soap.</p>
|
|
</li>
|
|
<li>
|
|
<p><code><em>identifier</em></code> is defined by the extension
|
|
using a syntax specific to the extension. The owner of the
|
|
extension must define any components contributed by the extension
|
|
and a syntax for identifying them.</p>
|
|
</li>
|
|
</ol>
|
|
<a name="zed-ExtensionArgs" id="zed-ExtensionArgs"></a><a name=
|
|
"zed-ExtensionDesignator" id="zed-ExtensionDesignator"></a><a name=
|
|
"zed-wsdlExtension" id="zed-wsdlExtension"></a></div>
|
|
</div>
|
|
<div class="div2">
|
|
<h3><a name="ietf-sec" id="ietf-sec"></a>A.3 Security
|
|
considerations</h3>
|
|
<p>This media type uses the "+xml" convention, it shares the same
|
|
security considerations as described in [<cite><a href=
|
|
"#RFC3023">IETF RFC 3023</a></cite>], section 10.</p>
|
|
</div>
|
|
</div>
|
|
<div class="div1">
|
|
<h2><a name="acknowledgments" id="acknowledgments"></a>B.
|
|
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&T), Steve Lind (AT&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
|
|
& 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="wsdl-iri-references" id="wsdl-iri-references"></a>C.
|
|
IRI-References for WSDL 2.0 Components (Non-Normative)</h2>
|
|
<p>This appendix provides a syntax for IRI-references for all
|
|
components found in a WSDL 2.0 document. The IRI-references are
|
|
easy to understand and compare, while imposing no burden on the
|
|
WSDL 2.0 author.</p>
|
|
<div class="div2">
|
|
<h3><a name="wsdl-iris" id="wsdl-iris"></a>C.1 WSDL 2.0 IRIs</h3>
|
|
<p>There are two main cases for WSDL 2.0 IRIs:</p>
|
|
<ul>
|
|
<li>
|
|
<p>the IRI of a WSDL 2.0 document</p>
|
|
</li>
|
|
<li>
|
|
<p>the IRI of a WSDL 2.0 namespace</p>
|
|
</li>
|
|
</ul>
|
|
<p>The IRI of a WSDL 2.0 document can be dereferenced to give a
|
|
resource representation that contributes component definitions to a
|
|
single WSDL 2.0 namespace. If the media type is set to the WSDL 2.0
|
|
media type, then the fragment identifiers can be used to identify
|
|
the main components that are defined in the document.</p>
|
|
<p>However, in keeping with the recommendation in <a href=
|
|
"#Description_details"><strong>2.1.1 The Description
|
|
Component</strong></a> that the namespace URI be dereferencable to
|
|
a WSDL 2.0 document, this appendix specifies the use of the
|
|
namespace IRI with the WSDL 2.0 fragment identifiers to form an
|
|
IRI-reference.</p>
|
|
<p>The IRI in an IRI-reference for a WSDL 2.0 component is the
|
|
namespace name of the {<a href="#property-.name">name</a>} property
|
|
of either the component itself, in the case of <a href=
|
|
"#component-Interface">Interface</a> , <a href=
|
|
"#component-Binding">Binding</a> , and <a href=
|
|
"#component-Service">Service</a> components, or the {<a href=
|
|
"#property-.name">name</a>} property of the ancestor top-level
|
|
component. The IRI provided by the namespace name of the {<a href=
|
|
"#property-.name">name</a>} property is combined with a zero or
|
|
more <code>xmlns</code> pointer parts (see <em>3.4 Namespace
|
|
Binding Context</em> in [<cite><a href="#XPTR">XPointer</a></cite>]
|
|
) followed by a single WSDL 2.0 pointer part as defined in <a href=
|
|
"#frag-ids"><strong>A.2 Fragment Identifiers</strong></a> .</p>
|
|
</div>
|
|
<div class="div2">
|
|
<h3><a name="component-designator-canonical-form" id=
|
|
"component-designator-canonical-form"></a>C.2 Canonical Form for
|
|
WSDL 2.0 Component Designators</h3>
|
|
<p>The IRI-references described above MAY be used as WSDL 2.0
|
|
component designators. For ease of comparison, the fragment
|
|
identifier of WSDL 2.0 component designators SHOULD conform to the
|
|
following canonicalization rules:</p>
|
|
<ul>
|
|
<li>
|
|
<p><span id="CanonFragId-1097" class="test-assertion-tr">The
|
|
fragment identifier consists of a sequence zero or more
|
|
<code>xmlns()</code> pointer parts followed by exactly one
|
|
<code>wsdl.*()</code> pointer part. <sup><a href=
|
|
"#CanonFragId-1097-summary" title=
|
|
"Link to assertion CanonFragId-1097 summary">†</a></sup></span></p>
|
|
</li>
|
|
<li>
|
|
<p><span id="CanonFragId-1098" class="test-assertion-tr">Each
|
|
<code>xmlns()</code> pointer part that appears in the fragment
|
|
identifier defines a namespace that is referenced by the
|
|
<code>wsdl.*()</code> pointer part. <sup><a href=
|
|
"#CanonFragId-1098-summary" title=
|
|
"Link to assertion CanonFragId-1098 summary">†</a></sup></span></p>
|
|
</li>
|
|
<li>
|
|
<p><span id="CanonFragId-1099" class="test-assertion-tr">Each
|
|
<code>xmlns()</code> pointer part defines a unique namespace.
|
|
<sup><a href="#CanonFragId-1099-summary" title=
|
|
"Link to assertion CanonFragId-1099 summary">†</a></sup></span></p>
|
|
</li>
|
|
<li>
|
|
<p><span id="CanonFragId-1100" class="test-assertion-tr">The
|
|
<code>xmlns()</code> pointer parts define namespaces in the same
|
|
order as they are referenced in the <code>wsdl.*()</code> pointer
|
|
part. <sup><a href="#CanonFragId-1100-summary" title=
|
|
"Link to assertion CanonFragId-1100 summary">†</a></sup></span></p>
|
|
</li>
|
|
<li>
|
|
<p><span id="CanonFragId-1101" class="test-assertion-tr">The
|
|
namespace prefixes defined by the <code>xmlns()</code> pointer
|
|
parts are named <code>ns1</code> , <code>ns2</code> , etc., in the
|
|
order of their appearance. <sup><a href="#CanonFragId-1101-summary"
|
|
title=
|
|
"Link to assertion CanonFragId-1101 summary">†</a></sup></span></p>
|
|
</li>
|
|
<li>
|
|
<p><span id="CanonFragId-1102" class="test-assertion-tr">The
|
|
fragment identifier contains no optional whitespace. <sup><a href=
|
|
"#CanonFragId-1102-summary" title=
|
|
"Link to assertion CanonFragId-1102 summary">†</a></sup></span></p>
|
|
</li>
|
|
<li>
|
|
<p><span id="CanonFragId-1103" class="test-assertion-tr">No
|
|
<code>xmlns()</code> pointer part defines a namespace for the
|
|
targetNamespace of the WSDL 2.0 document. <sup><a href=
|
|
"#CanonFragId-1103-summary" title=
|
|
"Link to assertion CanonFragId-1103 summary">†</a></sup></span></p>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<div class="div2">
|
|
<h3><a name="Iri-ref-ex" id="Iri-ref-ex"></a>C.3 Example</h3>
|
|
<p>Consider the following WSDL 2.0 document located at
|
|
http://example.org/TicketAgent.wsdl:</p>
|
|
<div class="exampleOuter">
|
|
<p style="text-align: left" class="exampleHead"><a name=
|
|
"iri-ref-example-wsdl" id=
|
|
"iri-ref-example-wsdl"></a><em><span>Example C-1.</span>
|
|
IRI-References - Example WSDL 2.0 Document</em></p>
|
|
<div class="exampleInner">
|
|
<pre xml:space="preserve">
|
|
|
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
<wsdl:description
|
|
targetNamespace="http://example.org/TicketAgent.wsdl20"
|
|
xmlns:xsTicketAgent="http://example.org/TicketAgent.xsd"
|
|
xmlns:wsdl="http://www.w3.org/ns/wsdl"
|
|
xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
xsi:schemaLocation="http://www.w3.org/ns/wsdl http://www.w3.org/2007/06/wsdl/wsdl20.xsd">
|
|
|
|
<wsdl:types>
|
|
<xs:import schemaLocation="TicketAgent.xsd"
|
|
namespace="http://example.org/TicketAgent.xsd" />
|
|
</wsdl:types>
|
|
|
|
<wsdl:interface name="TicketAgent">
|
|
<wsdl:operation name="listFlights"
|
|
pattern="http://www.w3.org/ns/wsdl/in-out">
|
|
<wsdl:input element="xsTicketAgent:listFlightsRequest"/>
|
|
<wsdl:output element="xsTicketAgent:listFlightsResponse"/>
|
|
</wsdl:operation>
|
|
|
|
<wsdl:operation name="reserveFlight"
|
|
pattern="http://www.w3.org/ns/wsdl/in-out">
|
|
<wsdl:input element="xsTicketAgent:reserveFlightRequest"/>
|
|
<wsdl:output element="xsTicketAgent:reserveFlightResponse"/>
|
|
</wsdl:operation>
|
|
</wsdl:interface>
|
|
</wsdl:description>
|
|
|
|
</pre></div>
|
|
</div>
|
|
<p>Its components have the following IRI-references which follow
|
|
the above canonicalization rules except for the presence of
|
|
optional whitespace that has been added in order to improve the
|
|
formatting:</p>
|
|
<div class="exampleOuter">
|
|
<p style="text-align: left" class="exampleHead"><a name=
|
|
"iri-ref-example-iris" id=
|
|
"iri-ref-example-iris"></a><em><span>Example C-2.</span>
|
|
IRI-References - Example IRIs</em></p>
|
|
<div class="exampleInner">
|
|
<pre xml:space="preserve">
|
|
http://example.org/TicketAgent.wsdl20#
|
|
wsdl.description()
|
|
|
|
http://example.org/TicketAgent.wsdl20#
|
|
xmlns(ns1=http://example.org/TicketAgent.xsd)
|
|
wsdl.elementDeclaration(ns1:listFlightsRequest)
|
|
|
|
http://example.org/TicketAgent.wsdl20#
|
|
xmlns(ns1=http://example.org/TicketAgent.xsd)
|
|
wsdl.elementDeclaration(ns1:listFlightsResponse)
|
|
|
|
http://example.org/TicketAgent.wsdl20#
|
|
xmlns(ns1=http://example.org/TicketAgent.xsd)
|
|
wsdl.elementDeclaration(ns1:reserveFlightRequest)
|
|
|
|
http://example.org/TicketAgent.wsdl20#
|
|
xmlns(ns1=http://example.org/TicketAgent.xsd)
|
|
wsdl.elementDeclaration(ns1:reserveFlightResponse)
|
|
|
|
http://example.org/TicketAgent.wsdl20#
|
|
wsdl.interface(TicketAgent)
|
|
|
|
http://example.org/TicketAgent.wsdl20#
|
|
wsdl.interfaceOperation(TicketAgent/listFlights)
|
|
|
|
http://example.org/TicketAgent.wsdl20#
|
|
wsdl.interfaceMessageReference(TicketAgent/listFlights/In)
|
|
|
|
http://example.org/TicketAgent.wsdl20#
|
|
wsdl.interfaceMessageReference(TicketAgent/listFlights/Out)
|
|
|
|
http://example.org/TicketAgent.wsdl20#
|
|
wsdl.interfaceOperation(TicketAgent/reserveFlight)
|
|
|
|
http://example.org/TicketAgent.wsdl20#
|
|
wsdl.interfaceMessageReference(TicketAgent/reserveFlight/In)
|
|
|
|
http://example.org/TicketAgent.wsdl20#
|
|
wsdl.interfaceMessageReference(TicketAgent/reserveFlight/Out)
|
|
</pre></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="div1">
|
|
<h2><a name="componentsummary" id="componentsummary"></a>D.
|
|
Component Summary (Non-Normative)</h2>
|
|
<p><a href="#component-summary">Table D-1</a> lists all the
|
|
components in the WSDL 2.0 abstract Component Model, and all their
|
|
properties. Note some properties have a generic definition that is
|
|
used in more than one component. In this case, the Component column
|
|
contains a "-" to indicate this generic definition of the
|
|
property.</p>
|
|
<a name="component-summary" id="component-summary"></a>
|
|
<table width="100%" border="1">
|
|
<caption>Table D-1. Summary of WSDL 2.0 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">-</td>
|
|
<td rowspan="1" colspan="1">{<a href="#property-.name">name</a>},
|
|
{<a href="#property-.parent">parent</a>}</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a href=
|
|
"#component-Binding">Binding</a></td>
|
|
<td rowspan="1" colspan="1">{<a href=
|
|
"#property-Binding.bindingfaults">binding faults</a>}, {<a href=
|
|
"#property-Binding.bindingoperations">binding operations</a>},
|
|
{<a href="#property-Binding.interface">interface</a>}, {<a href=
|
|
"#property-Binding.name">name</a>}, {<a href=
|
|
"#property-Binding.type">type</a>}</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a href=
|
|
"#component-BindingFault">Binding Fault</a></td>
|
|
<td rowspan="1" colspan="1">{<a href=
|
|
"#property-BindingFault.interfacefault">interface fault</a>},
|
|
{<a href="#property-BindingFault.parent">parent</a>}</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a href=
|
|
"#component-BindingFaultReference">Binding Fault Reference</a></td>
|
|
<td rowspan="1" colspan="1">{<a href=
|
|
"#property-BindingFaultReference.interfacefaultreference">interface
|
|
fault reference</a>}, {<a href=
|
|
"#property-BindingFaultReference.parent">parent</a>}</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a href=
|
|
"#component-BindingMessageReference">Binding Message
|
|
Reference</a></td>
|
|
<td rowspan="1" colspan="1">{<a href=
|
|
"#property-BindingMessageReference.interfacemessagereference">interface
|
|
message reference</a>}, {<a href=
|
|
"#property-BindingMessageReference.parent">parent</a>}</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a href=
|
|
"#component-BindingOperation">Binding Operation</a></td>
|
|
<td rowspan="1" colspan="1">{<a href=
|
|
"#property-BindingOperation.bindingfaultreferences">binding fault
|
|
references</a>}, {<a href=
|
|
"#property-BindingOperation.bindingmessagereferences">binding
|
|
message references</a>}, {<a href=
|
|
"#property-BindingOperation.interfaceoperation">interface
|
|
operation</a>}, {<a href=
|
|
"#property-BindingOperation.parent">parent</a>}</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a href=
|
|
"#component-Description">Description</a></td>
|
|
<td rowspan="1" colspan="1">{<a href=
|
|
"#property-Description.bindings">bindings</a>}, {<a href=
|
|
"#property-Description.elementdeclarations">element
|
|
declarations</a>}, {<a href=
|
|
"#property-Description.interfaces">interfaces</a>}, {<a href=
|
|
"#property-Description.services">services</a>}, {<a href=
|
|
"#property-Description.typedefinitions">type definitions</a>}</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a href=
|
|
"#component-ElementDeclaration">Element Declaration</a></td>
|
|
<td rowspan="1" colspan="1">{<a href=
|
|
"#property-ElementDeclaration.name">name</a>}, {<a href=
|
|
"#property-ElementDeclaration.system">system</a>}</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a href=
|
|
"#component-Endpoint">Endpoint</a></td>
|
|
<td rowspan="1" colspan="1">{<a href=
|
|
"#property-Endpoint.address">address</a>}, {<a href=
|
|
"#property-Endpoint.binding">binding</a>}, {<a href=
|
|
"#property-Endpoint.name">name</a>}, {<a href=
|
|
"#property-Endpoint.parent">parent</a>}</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a href=
|
|
"#component-Interface">Interface</a></td>
|
|
<td rowspan="1" colspan="1">{<a href=
|
|
"#property-Interface.extendedinterfaces">extended interfaces</a>},
|
|
{<a href="#property-Interface.interfacefaults">interface
|
|
faults</a>}, {<a href=
|
|
"#property-Interface.interfaceoperations">interface
|
|
operations</a>}, {<a href="#property-Interface.name">name</a>}</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a href=
|
|
"#component-InterfaceFault">Interface Fault</a></td>
|
|
<td rowspan="1" colspan="1">{<a href=
|
|
"#property-InterfaceFault.elementdeclaration">element
|
|
declaration</a>}, {<a href=
|
|
"#property-InterfaceFault.messagecontentmodel">message content
|
|
model</a>}, {<a href="#property-InterfaceFault.name">name</a>},
|
|
{<a href="#property-InterfaceFault.parent">parent</a>}</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a href=
|
|
"#component-InterfaceFaultReference">Interface Fault
|
|
Reference</a></td>
|
|
<td rowspan="1" colspan="1">{<a href=
|
|
"#property-InterfaceFaultReference.direction">direction</a>},
|
|
{<a href=
|
|
"#property-InterfaceFaultReference.interfacefault">interface
|
|
fault</a>}, {<a href=
|
|
"#property-InterfaceFaultReference.messagelabel">message
|
|
label</a>}, {<a href=
|
|
"#property-InterfaceFaultReference.parent">parent</a>}</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a href=
|
|
"#component-InterfaceMessageReference">Interface Message
|
|
Reference</a></td>
|
|
<td rowspan="1" colspan="1">{<a href=
|
|
"#property-InterfaceMessageReference.direction">direction</a>},
|
|
{<a href=
|
|
"#property-InterfaceMessageReference.elementdeclaration">element
|
|
declaration</a>}, {<a href=
|
|
"#property-InterfaceMessageReference.messagecontentmodel">message
|
|
content model</a>}, {<a href=
|
|
"#property-InterfaceMessageReference.messagelabel">message
|
|
label</a>}, {<a href=
|
|
"#property-InterfaceMessageReference.parent">parent</a>}</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a href=
|
|
"#component-InterfaceOperation">Interface Operation</a></td>
|
|
<td rowspan="1" colspan="1">{<a href=
|
|
"#property-InterfaceOperation.interfacefaultreferences">interface
|
|
fault references</a>}, {<a href=
|
|
"#property-InterfaceOperation.interfacemessagereferences">interface
|
|
message references</a>}, {<a href=
|
|
"#property-InterfaceOperation.messageexchangepattern">message
|
|
exchange pattern</a>}, {<a href=
|
|
"#property-InterfaceOperation.name">name</a>}, {<a href=
|
|
"#property-InterfaceOperation.parent">parent</a>}, {<a href=
|
|
"#property-InterfaceOperation.style">style</a>}</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a href=
|
|
"#component-Service">Service</a></td>
|
|
<td rowspan="1" colspan="1">{<a href=
|
|
"#property-Service.endpoints">endpoints</a>}, {<a href=
|
|
"#property-Service.interface">interface</a>}, {<a href=
|
|
"#property-Service.name">name</a>}</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a href=
|
|
"#component-TypeDefinition">Type Definition</a></td>
|
|
<td rowspan="1" colspan="1">{<a href=
|
|
"#property-TypeDefinition.name">name</a>}, {<a href=
|
|
"#property-TypeDefinition.system">system</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">address</td>
|
|
<td rowspan="1" colspan="1">Endpoint.{<a href=
|
|
"#property-Endpoint.address">address</a>}</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">binding</td>
|
|
<td rowspan="1" colspan="1">Endpoint.{<a href=
|
|
"#property-Endpoint.binding">binding</a>}</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">binding fault references</td>
|
|
<td rowspan="1" colspan="1">Binding Operation.{<a href=
|
|
"#property-BindingOperation.bindingfaultreferences">binding fault
|
|
references</a>}</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">binding faults</td>
|
|
<td rowspan="1" colspan="1">Binding.{<a href=
|
|
"#property-Binding.bindingfaults">binding faults</a>}</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">binding message references</td>
|
|
<td rowspan="1" colspan="1">Binding Operation.{<a href=
|
|
"#property-BindingOperation.bindingmessagereferences">binding
|
|
message references</a>}</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">binding operations</td>
|
|
<td rowspan="1" colspan="1">Binding.{<a href=
|
|
"#property-Binding.bindingoperations">binding operations</a>}</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">bindings</td>
|
|
<td rowspan="1" colspan="1">Description.{<a href=
|
|
"#property-Description.bindings">bindings</a>}</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">direction</td>
|
|
<td rowspan="1" colspan="1">Interface Fault Reference.{<a href=
|
|
"#property-InterfaceFaultReference.direction">direction</a>},
|
|
Interface Message Reference.{<a href=
|
|
"#property-InterfaceMessageReference.direction">direction</a>}</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">element declaration</td>
|
|
<td rowspan="1" colspan="1">Interface Fault.{<a href=
|
|
"#property-InterfaceFault.elementdeclaration">element
|
|
declaration</a>}, Interface Message Reference.{<a href=
|
|
"#property-InterfaceMessageReference.elementdeclaration">element
|
|
declaration</a>}</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">element declarations</td>
|
|
<td rowspan="1" colspan="1">Description.{<a href=
|
|
"#property-Description.elementdeclarations">element
|
|
declarations</a>}</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">endpoints</td>
|
|
<td rowspan="1" colspan="1">Service.{<a href=
|
|
"#property-Service.endpoints">endpoints</a>}</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">extended interfaces</td>
|
|
<td rowspan="1" colspan="1">Interface.{<a href=
|
|
"#property-Interface.extendedinterfaces">extended
|
|
interfaces</a>}</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">interface</td>
|
|
<td rowspan="1" colspan="1">Binding.{<a href=
|
|
"#property-Binding.interface">interface</a>}, Service.{<a href=
|
|
"#property-Service.interface">interface</a>}</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">interface fault</td>
|
|
<td rowspan="1" colspan="1">Binding Fault.{<a href=
|
|
"#property-BindingFault.interfacefault">interface fault</a>},
|
|
Interface Fault Reference.{<a href=
|
|
"#property-InterfaceFaultReference.interfacefault">interface
|
|
fault</a>}</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">interface fault reference</td>
|
|
<td rowspan="1" colspan="1">Binding Fault Reference.{<a href=
|
|
"#property-BindingFaultReference.interfacefaultreference">interface
|
|
fault reference</a>}</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">interface fault references</td>
|
|
<td rowspan="1" colspan="1">Interface Operation.{<a href=
|
|
"#property-InterfaceOperation.interfacefaultreferences">interface
|
|
fault references</a>}</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">interface faults</td>
|
|
<td rowspan="1" colspan="1">Interface.{<a href=
|
|
"#property-Interface.interfacefaults">interface faults</a>}</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">interface message reference</td>
|
|
<td rowspan="1" colspan="1">Binding Message Reference.{<a href=
|
|
"#property-BindingMessageReference.interfacemessagereference">interface
|
|
message reference</a>}</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">interface message references</td>
|
|
<td rowspan="1" colspan="1">Interface Operation.{<a href=
|
|
"#property-InterfaceOperation.interfacemessagereferences">interface
|
|
message references</a>}</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">interface operation</td>
|
|
<td rowspan="1" colspan="1">Binding Operation.{<a href=
|
|
"#property-BindingOperation.interfaceoperation">interface
|
|
operation</a>}</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">interface operations</td>
|
|
<td rowspan="1" colspan="1">Interface.{<a href=
|
|
"#property-Interface.interfaceoperations">interface
|
|
operations</a>}</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">interfaces</td>
|
|
<td rowspan="1" colspan="1">Description.{<a href=
|
|
"#property-Description.interfaces">interfaces</a>}</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">message content model</td>
|
|
<td rowspan="1" colspan="1">Interface Fault.{<a href=
|
|
"#property-InterfaceFault.messagecontentmodel">message content
|
|
model</a>}, Interface Message Reference.{<a href=
|
|
"#property-InterfaceMessageReference.messagecontentmodel">message
|
|
content model</a>}</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">message exchange pattern</td>
|
|
<td rowspan="1" colspan="1">Interface Operation.{<a href=
|
|
"#property-InterfaceOperation.messageexchangepattern">message
|
|
exchange pattern</a>}</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">message label</td>
|
|
<td rowspan="1" colspan="1">Interface Fault Reference.{<a href=
|
|
"#property-InterfaceFaultReference.messagelabel">message
|
|
label</a>}, Interface Message Reference.{<a href=
|
|
"#property-InterfaceMessageReference.messagelabel">message
|
|
label</a>}</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">name</td>
|
|
<td rowspan="1" colspan="1">.{<a href="#property-.name">name</a>},
|
|
Binding.{<a href="#property-Binding.name">name</a>}, Element
|
|
Declaration.{<a href="#property-ElementDeclaration.name">name</a>},
|
|
Endpoint.{<a href="#property-Endpoint.name">name</a>},
|
|
Interface.{<a href="#property-Interface.name">name</a>}, Interface
|
|
Fault.{<a href="#property-InterfaceFault.name">name</a>}, Interface
|
|
Operation.{<a href="#property-InterfaceOperation.name">name</a>},
|
|
Service.{<a href="#property-Service.name">name</a>}, Type
|
|
Definition.{<a href="#property-TypeDefinition.name">name</a>}</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">parent</td>
|
|
<td rowspan="1" colspan="1">.{<a href=
|
|
"#property-.parent">parent</a>}, Binding Fault.{<a href=
|
|
"#property-BindingFault.parent">parent</a>}, Binding Fault
|
|
Reference.{<a href=
|
|
"#property-BindingFaultReference.parent">parent</a>}, Binding
|
|
Message Reference.{<a href=
|
|
"#property-BindingMessageReference.parent">parent</a>}, Binding
|
|
Operation.{<a href="#property-BindingOperation.parent">parent</a>},
|
|
Endpoint.{<a href="#property-Endpoint.parent">parent</a>},
|
|
Interface Fault.{<a href=
|
|
"#property-InterfaceFault.parent">parent</a>}, Interface Fault
|
|
Reference.{<a href=
|
|
"#property-InterfaceFaultReference.parent">parent</a>}, Interface
|
|
Message Reference.{<a href=
|
|
"#property-InterfaceMessageReference.parent">parent</a>}, Interface
|
|
Operation.{<a href=
|
|
"#property-InterfaceOperation.parent">parent</a>}</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">services</td>
|
|
<td rowspan="1" colspan="1">Description.{<a href=
|
|
"#property-Description.services">services</a>}</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">style</td>
|
|
<td rowspan="1" colspan="1">Interface Operation.{<a href=
|
|
"#property-InterfaceOperation.style">style</a>}</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">system</td>
|
|
<td rowspan="1" colspan="1">Element Declaration.{<a href=
|
|
"#property-ElementDeclaration.system">system</a>}, Type
|
|
Definition.{<a href=
|
|
"#property-TypeDefinition.system">system</a>}</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">type</td>
|
|
<td rowspan="1" colspan="1">Binding.{<a href=
|
|
"#property-Binding.type">type</a>}</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">type definitions</td>
|
|
<td rowspan="1" colspan="1">Description.{<a href=
|
|
"#property-Description.typedefinitions">type definitions</a>}</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
<br /></div>
|
|
<h2><a name="assertionsummary" id="assertionsummary"></a>E.
|
|
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 E-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="Description-1004-summary"
|
|
href="#Description-1004" id=
|
|
"Description-1004-summary">Description-1004</a></td>
|
|
<td rowspan="1" colspan="1">If a WSDL 2.0 document is split into
|
|
multiple WSDL 2.0 documents (which may be combined as needed via
|
|
<a href="#includes"><strong>4.1 Including
|
|
Descriptions</strong></a>), then the <code>targetNamespace</code>
|
|
<em>attribute information item</em> SHOULD resolve to a master WSDL
|
|
2.0 document that includes all the WSDL 2.0 documents needed for
|
|
that service description.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a name="Description-1005-summary"
|
|
href="#Description-1005" id=
|
|
"Description-1005-summary">Description-1005</a></td>
|
|
<td rowspan="1" colspan="1">Zero or more <em>element information
|
|
item</em>s amongst its [children], in order as follows:</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a name="Description-1006-summary"
|
|
href="#Description-1006" id=
|
|
"Description-1006-summary">Description-1006</a></td>
|
|
<td rowspan="1" colspan="1">Its value MUST be an absolute IRI (see
|
|
[<cite><a href="#RFC3987">IETF RFC 3987</a></cite>]) and should be
|
|
dereferencable.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a name="Import-1082-summary" href=
|
|
"#Import-1082" id="Import-1082-summary">Import-1082</a></td>
|
|
<td rowspan="1" colspan="1">As with XML schema, any WSDL 2.0
|
|
document that references a foreign component MUST have a
|
|
<code>wsdl:import</code> <em>element information item</em> for the
|
|
associated foreign namespace (but which does not necessarily
|
|
provide a <code>location</code> <em>attribute information item</em>
|
|
that identifies the WSDL 2.0 document in which the referenced
|
|
component is defined).</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a name="Import-1083-summary" href=
|
|
"#Import-1083" id="Import-1083-summary">Import-1083</a></td>
|
|
<td rowspan="1" colspan="1">If a WSDL 2.0 document contains more
|
|
than one <code>wsdl:import</code> <em>element information item</em>
|
|
for a given value of the <code>namespace</code> <em>attribute
|
|
information item</em>, then they MUST provide different values for
|
|
the <code>location</code> <em>attribute information item</em>.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a name="Import-1084-summary" href=
|
|
"#Import-1084" id="Import-1084-summary">Import-1084</a></td>
|
|
<td rowspan="1" colspan="1">This value MUST NOT match the actual
|
|
value of <code>targetNamespace</code> <em>attribute information
|
|
item</em> in the enclosing WSDL 2.0 document.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a name="Import-1085-summary" href=
|
|
"#Import-1085" id="Import-1085-summary">Import-1085</a></td>
|
|
<td rowspan="1" colspan="1">If the location attribute in the
|
|
<code>import</code> <em>element information item</em> is
|
|
dereferencable, then it MUST reference a WSDL 2.0 document.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a name="Import-1086-summary" href=
|
|
"#Import-1086" id="Import-1086-summary">Import-1086</a></td>
|
|
<td rowspan="1" colspan="1">If the <code>location</code>
|
|
<em>attribute information item</em> of the <code>import</code>
|
|
<em>element information item</em> is dereferencable, then the
|
|
actual value of the <code>namespace</code> <em>attribute
|
|
information item</em> MUST be identical to the actual value of the
|
|
<code>targetNamespace</code> <em>attribute information item</em> of
|
|
the referenced WSDL 2.0 document (see <a href=
|
|
"#wsdllocation"><strong>7. Locating WSDL 2.0
|
|
Documents</strong></a>).</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a name="Include-1080-summary" href=
|
|
"#Include-1080" id="Include-1080-summary">Include-1080</a></td>
|
|
<td rowspan="1" colspan="1">The IRI indicated by
|
|
<code>location</code> MUST resolve to a WSDL 2.0 document.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a name="Include-1081-summary" href=
|
|
"#Include-1081" id="Include-1081-summary">Include-1081</a></td>
|
|
<td rowspan="1" colspan="1">The actual value of the
|
|
<code>targetNamespace</code> <em>attribute information item</em> of
|
|
the included WSDL 2.0 document MUST match the actual value of the
|
|
<code>targetNamespace</code> <em>attribute information item</em> of
|
|
the <code>description</code> <em>element information item</em>
|
|
which is the [parent] of the <code>include</code> <em>element
|
|
information item</em>.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a name="Interface-1012-summary" href=
|
|
"#Interface-1012" id=
|
|
"Interface-1012-summary">Interface-1012</a></td>
|
|
<td rowspan="1" colspan="1">Its value, if present, MUST contain
|
|
absolute IRIs (see [<cite><a href="#RFC3987">IETF RFC
|
|
3987</a></cite>]).</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a name="InterfaceFault-1017-summary"
|
|
href="#InterfaceFault-1017" id=
|
|
"InterfaceFault-1017-summary">InterfaceFault-1017</a></td>
|
|
<td rowspan="1" colspan="1">If the <code>element</code>
|
|
<em>attribute information item</em> has a value, then it MUST
|
|
resolve to an <a href="#component-ElementDeclaration">Element
|
|
Declaration</a> component from the {<a href=
|
|
"#property-Description.elementdeclarations">element
|
|
declarations</a>} property of the <a href=
|
|
"#component-Description">Description</a> component.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a name=
|
|
"InterfaceFaultReference-1040-summary" href=
|
|
"#InterfaceFaultReference-1040" id=
|
|
"InterfaceFaultReference-1040-summary">InterfaceFaultReference-1040</a></td>
|
|
<td rowspan="1" colspan="1">The <code>messageLabel</code>
|
|
<em>attribute information item</em> MUST be present in the XML
|
|
representation of an <a href=
|
|
"#component-InterfaceFaultReference">Interface Fault Reference</a>
|
|
component with a given {<a href=
|
|
"#property-InterfaceFaultReference.direction">direction</a>}, if
|
|
the {<a href=
|
|
"#property-InterfaceOperation.messageexchangepattern">message
|
|
exchange pattern</a>} of the parent <a href=
|
|
"#component-InterfaceOperation">Interface Operation</a> component
|
|
has more than one fault with that direction.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a name=
|
|
"InterfaceMessageReference-1036-summary" href=
|
|
"#InterfaceMessageReference-1036" id=
|
|
"InterfaceMessageReference-1036-summary">InterfaceMessageReference-1036</a></td>
|
|
<td rowspan="1" colspan="1">If the <code>element</code>
|
|
<em>attribute information item</em> has a value, then it MUST
|
|
resolve to an <a href="#component-ElementDeclaration">Element
|
|
Declaration</a> component from the {<a href=
|
|
"#property-Description.elementdeclarations">element
|
|
declarations</a>} property of the <a href=
|
|
"#component-Description">Description</a> component.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a name="Location-1092-summary" href=
|
|
"#Location-1092" id="Location-1092-summary">Location-1092</a></td>
|
|
<td rowspan="1" colspan="1">It MUST NOT appear on a
|
|
<code>wsdl:description</code> element or any of its
|
|
children/descendants.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a name="Location-1094-summary" href=
|
|
"#Location-1094" id="Location-1094-summary">Location-1094</a></td>
|
|
<td rowspan="1" colspan="1">For each pair of IRIs, if the location
|
|
IRI of the pair is dereferencable, then it MUST reference a WSDL
|
|
2.0 (or 1.1) document whose target namespace is the namespace IRI
|
|
of the pair.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a name="MessageLabel-1030-summary"
|
|
href="#MessageLabel-1030" id=
|
|
"MessageLabel-1030-summary">MessageLabel-1030</a></td>
|
|
<td rowspan="1" colspan="1">If the <code>messageLabel</code>
|
|
<em>attribute information item</em> of an interface message
|
|
reference <em>element information item</em> is present, then its
|
|
actual value MUST match the {<a href=
|
|
"#property-InterfaceMessageReference.messagelabel">message
|
|
label</a>} of some placeholder message with {<a href=
|
|
"#property-InterfaceMessageReference.direction">direction</a>}
|
|
equal to the message direction.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a name="MessageLabel-1031-summary"
|
|
href="#MessageLabel-1031" id=
|
|
"MessageLabel-1031-summary">MessageLabel-1031</a></td>
|
|
<td rowspan="1" colspan="1">If the <code>messageLabel</code>
|
|
<em>attribute information item</em> of an interface message
|
|
reference <em>element information item</em> is absent then there
|
|
MUST be a unique placeholder message with {<a href=
|
|
"#property-InterfaceMessageReference.direction">direction</a>}
|
|
equal to the message direction.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a name="MessageLabel-1032-summary"
|
|
href="#MessageLabel-1032" id=
|
|
"MessageLabel-1032-summary">MessageLabel-1032</a></td>
|
|
<td rowspan="1" colspan="1">If the local name is <code>input</code>
|
|
then the message exchange pattern MUST have at least one
|
|
placeholder message with direction "In".</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a name="MessageLabel-1033-summary"
|
|
href="#MessageLabel-1033" id=
|
|
"MessageLabel-1033-summary">MessageLabel-1033</a></td>
|
|
<td rowspan="1" colspan="1">If the local name is
|
|
<code>output</code> then the message exchange pattern MUST have at
|
|
least one placeholder message with direction "Out".</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a name="MessageLabel-1034-summary"
|
|
href="#MessageLabel-1034" id=
|
|
"MessageLabel-1034-summary">MessageLabel-1034</a></td>
|
|
<td rowspan="1" colspan="1">If the local name is
|
|
<code>infault</code> then the message exchange pattern MUST support
|
|
at least one fault in the "In" direction.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a name="MessageLabel-1035-summary"
|
|
href="#MessageLabel-1035" id=
|
|
"MessageLabel-1035-summary">MessageLabel-1035</a></td>
|
|
<td rowspan="1" colspan="1">If the local name is
|
|
<code>outfault</code> then the message exchange pattern MUST
|
|
support at least one fault in the "Out" direction.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a name="MessageLabel-1041-summary"
|
|
href="#MessageLabel-1041" id=
|
|
"MessageLabel-1041-summary">MessageLabel-1041</a></td>
|
|
<td rowspan="1" colspan="1">The <code>messageLabel</code>
|
|
<em>attribute information item</em> of an interface fault reference
|
|
<em>element information item</em> MUST be present if the message
|
|
exchange pattern has more than one placeholder message with
|
|
{<a href=
|
|
"#property-InterfaceMessageReference.direction">direction</a>}
|
|
equal to the message direction.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a name="MessageLabel-1042-summary"
|
|
href="#MessageLabel-1042" id=
|
|
"MessageLabel-1042-summary">MessageLabel-1042</a></td>
|
|
<td rowspan="1" colspan="1">If the <code>messageLabel</code>
|
|
<em>attribute information item</em> of an interface fault reference
|
|
<em>element information item</em> is present then its actual value
|
|
MUST match the {<a href=
|
|
"#property-InterfaceMessageReference.messagelabel">message
|
|
label</a>} of some placeholder message with {<a href=
|
|
"#property-InterfaceMessageReference.direction">direction</a>}
|
|
equal to the message direction.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a name="MessageLabel-1043-summary"
|
|
href="#MessageLabel-1043" id=
|
|
"MessageLabel-1043-summary">MessageLabel-1043</a></td>
|
|
<td rowspan="1" colspan="1">If the <code>messageLabel</code>
|
|
<em>attribute information item</em> of an interface fault reference
|
|
<em>element information item</em> is absent then there MUST be a
|
|
unique placeholder message with {<a href=
|
|
"#property-InterfaceMessageReference.direction">direction</a>}
|
|
equal to the message direction.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a name="MessageLabel-1053-summary"
|
|
href="#MessageLabel-1053" id=
|
|
"MessageLabel-1053-summary">MessageLabel-1053</a></td>
|
|
<td rowspan="1" colspan="1">If the <code>messageLabel</code>
|
|
<em>attribute information item</em> of a binding message reference
|
|
<em>element information item</em> is present then its actual value
|
|
MUST match the {<a href=
|
|
"#property-InterfaceMessageReference.messagelabel">message
|
|
label</a>} of some placeholder message with {<a href=
|
|
"#property-InterfaceMessageReference.direction">direction</a>}
|
|
equal to the message direction.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a name="MessageLabel-1054-summary"
|
|
href="#MessageLabel-1054" id=
|
|
"MessageLabel-1054-summary">MessageLabel-1054</a></td>
|
|
<td rowspan="1" colspan="1">If the <code>messageLabel</code>
|
|
<em>attribute information item</em> of a binding message reference
|
|
<em>element information item</em> is absent then there MUST be a
|
|
unique placeholder message with {<a href=
|
|
"#property-InterfaceMessageReference.direction">direction</a>}
|
|
equal to the message direction.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a name="MessageLabel-1056-summary"
|
|
href="#MessageLabel-1056" id=
|
|
"MessageLabel-1056-summary">MessageLabel-1056</a></td>
|
|
<td rowspan="1" colspan="1">The <code>messageLabel</code>
|
|
<em>attribute information item</em> of a binding fault reference
|
|
<em>element information item</em> MUST be present if the message
|
|
exchange pattern has more than one placeholder message with
|
|
{<a href=
|
|
"#property-InterfaceMessageReference.direction">direction</a>}
|
|
equal to the message direction.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a name="MessageLabel-1057-summary"
|
|
href="#MessageLabel-1057" id=
|
|
"MessageLabel-1057-summary">MessageLabel-1057</a></td>
|
|
<td rowspan="1" colspan="1">If the <code>messageLabel</code>
|
|
<em>attribute information item</em> of a binding fault reference
|
|
<em>element information item</em> is present then its actual value
|
|
MUST match the {<a href=
|
|
"#property-InterfaceMessageReference.messagelabel">message
|
|
label</a>} of some placeholder message with {<a href=
|
|
"#property-InterfaceMessageReference.direction">direction</a>}
|
|
equal to the message direction.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a name="MessageLabel-1058-summary"
|
|
href="#MessageLabel-1058" id=
|
|
"MessageLabel-1058-summary">MessageLabel-1058</a></td>
|
|
<td rowspan="1" colspan="1">If the <code>messageLabel</code>
|
|
<em>attribute information item</em> of a binding fault reference
|
|
<em>element information item</em> is absent then there MUST be a
|
|
unique placeholder message with {<a href=
|
|
"#property-InterfaceMessageReference.direction">direction</a>}
|
|
equal to the message direction.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a name="QName-resolution-1064-summary"
|
|
href="#QName-resolution-1064" id=
|
|
"QName-resolution-1064-summary">QName-resolution-1064</a></td>
|
|
<td rowspan="1" colspan="1">A <a href=
|
|
"#component-Description">Description</a> component MUST NOT have
|
|
such broken references.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a name="Schema-1066-summary" href=
|
|
"#Schema-1066" id="Schema-1066-summary">Schema-1066</a></td>
|
|
<td rowspan="1" colspan="1">A WSDL 2.0 document MUST NOT refer to
|
|
XML Schema components in a given namespace UNLESS an
|
|
<code>xs:import</code> or <code>xs:schema</code> <em>element
|
|
information item</em> for that namespace is present OR the
|
|
namespace is the XML Schema namespace,
|
|
http://www.w3.org/2001/XMLSchema, which contains built-in types as
|
|
defined in XML Schema Part 2: Datatypes Second Edition
|
|
[<cite><a href="#XMLSchemaP2">XML Schema:
|
|
Datatypes</a></cite>].</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a name="Schema-1069-summary" href=
|
|
"#Schema-1069" id="Schema-1069-summary">Schema-1069</a></td>
|
|
<td rowspan="1" colspan="1">The referenced schema MUST contain a
|
|
<code>targetNamespace</code> <em>attribute information item</em> on
|
|
its <code>xs:schema</code> <em>element information item</em>.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a name="Schema-1070-summary" href=
|
|
"#Schema-1070" id="Schema-1070-summary">Schema-1070</a></td>
|
|
<td rowspan="1" colspan="1">The value of the
|
|
<code>targetNamespace</code> <em>attribute information item</em> of
|
|
the <code>xs:schema</code> <em>element information item</em> of an
|
|
imported schema MUST equal the value of the <code>namespace</code>
|
|
of the <code>import</code> <em>element information item</em> in the
|
|
importing WSDL 2.0 document.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a name="Schema-1073-summary" href=
|
|
"#Schema-1073" id="Schema-1073-summary">Schema-1073</a></td>
|
|
<td rowspan="1" colspan="1">A WSDL 2.0 document MUST NOT define the
|
|
same element or type in more than one inlined schema.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a name="Schema-1075-summary" href=
|
|
"#Schema-1075" id="Schema-1075-summary">Schema-1075</a></td>
|
|
<td rowspan="1" colspan="1">A specification of extension syntax for
|
|
an alternative schema language MUST use a namespace that is
|
|
different than the namespace of XML Schema.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a name="Schema-1076-summary" href=
|
|
"#Schema-1076" id="Schema-1076-summary">Schema-1076</a></td>
|
|
<td rowspan="1" colspan="1">The namespace used for an alternate
|
|
schema language MUST be an absolute IRI.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a name="Schema-1079-summary" href=
|
|
"#Schema-1079" id="Schema-1079-summary">Schema-1079</a></td>
|
|
<td rowspan="1" colspan="1">If <code>wsdlx:interface</code> and
|
|
<code>wsdlx:binding</code> are used together then they MUST satisfy
|
|
the same consistency rules that apply to the {<a href=
|
|
"#property-Service.interface">interface</a>} property of a <a href=
|
|
"#component-Service">Service</a> component and the {<a href=
|
|
"#property-Endpoint.binding">binding</a>} property of a nested
|
|
<a href="#component-Endpoint">Endpoint</a> component, that is
|
|
either the binding refers the interface of the service or the
|
|
binding refers to no interface.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a name="Types-1074-summary" href=
|
|
"#Types-1074" id="Types-1074-summary">Types-1074</a></td>
|
|
<td rowspan="1" colspan="1">A specification of extension syntax for
|
|
an alternative schema language MUST include the declaration of an
|
|
<em>element information item</em>, intended to appear as a child of
|
|
the <code>wsdl:types</code> <em>element information item</em>,
|
|
which references, names, and locates the schema instance (an
|
|
<code>import</code> <em>element information item</em>).</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a name="Types-1077-summary" href=
|
|
"#Types-1077" id="Types-1077-summary">Types-1077</a></td>
|
|
<td rowspan="1" colspan="1">The type of the
|
|
<code>wsdlx:interface</code> <em>attribute information item</em> is
|
|
an <em>xs:QName</em> that specifies the {<a href=
|
|
"#property-Interface.name">name</a>} property of an <a href=
|
|
"#component-Interface">Interface</a> component.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a name="Types-1078-summary" href=
|
|
"#Types-1078" id="Types-1078-summary">Types-1078</a></td>
|
|
<td rowspan="1" colspan="1">The type of the
|
|
<code>wsdlx:binding</code> <em>attribute information item</em> is
|
|
an <em>xs:QName</em> that specifies the {<a href=
|
|
"#property-Binding.name">name</a>} property of a <a href=
|
|
"#component-Binding">Binding</a> component.</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
<br />
|
|
<a name="component-assertion-summary" id=
|
|
"component-assertion-summary"></a>
|
|
<table width="100%" border="1">
|
|
<caption>Table E-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="Binding-1044-summary" href=
|
|
"#Binding-1044" id="Binding-1044-summary">Binding-1044</a></td>
|
|
<td rowspan="1" colspan="1">If a <a href=
|
|
"#component-Binding">Binding</a> component specifies any
|
|
operation-specific binding details (by including <a href=
|
|
"#component-BindingOperation">Binding Operation</a> components) or
|
|
any fault binding details (by including <a href=
|
|
"#component-BindingFault">Binding Fault</a> components), then it
|
|
MUST specify an interface the <a href=
|
|
"#component-Binding">Binding</a> component applies to, so as to
|
|
indicate which interface the operations come from.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a name="Binding-1045-summary" href=
|
|
"#Binding-1045" id="Binding-1045-summary">Binding-1045</a></td>
|
|
<td rowspan="1" colspan="1">A <a href=
|
|
"#component-Binding">Binding</a> component that defines bindings
|
|
for an <a href="#component-Interface">Interface</a> component MUST
|
|
define bindings for all the operations of that <a href=
|
|
"#component-Interface">Interface</a> component.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a name="Binding-1046-summary" href=
|
|
"#Binding-1046" id="Binding-1046-summary">Binding-1046</a></td>
|
|
<td rowspan="1" colspan="1">Similarly, whenever a reusable <a href=
|
|
"#component-Binding">Binding</a> component (i.e. one that does not
|
|
specify an <a href="#component-Interface">Interface</a> component)
|
|
is applied to a specific <a href=
|
|
"#component-Interface">Interface</a> component in the context of an
|
|
<a href="#component-Endpoint">Endpoint</a> component (see <a href=
|
|
"#Endpoint_details"><strong>2.13.1 The Endpoint
|
|
Component</strong></a>), the <a href=
|
|
"#component-Binding">Binding</a> component MUST define bindings for
|
|
each <a href="#component-InterfaceOperation">Interface
|
|
Operation</a> and <a href="#component-InterfaceFault">Interface
|
|
Fault</a> component of the <a href=
|
|
"#component-Interface">Interface</a> component, via a combination
|
|
of properties defined on the <a href=
|
|
"#component-Binding">Binding</a> component itself and default
|
|
binding rules specific to its binding type.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a name="Binding-1047-summary" href=
|
|
"#Binding-1047" id="Binding-1047-summary">Binding-1047</a></td>
|
|
<td rowspan="1" colspan="1">A <a href=
|
|
"#component-Binding">Binding</a> component that defines bindings
|
|
for an <a href="#component-Interface">Interface</a> component MUST
|
|
define bindings for all the faults of that <a href=
|
|
"#component-Interface">Interface</a> component that are referenced
|
|
from any of the operations in that <a href=
|
|
"#component-Interface">Interface</a> component.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a name="Binding-1048-summary" href=
|
|
"#Binding-1048" id="Binding-1048-summary">Binding-1048</a></td>
|
|
<td rowspan="1" colspan="1">This <em>xs:anyURI</em> MUST be 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="Binding-1049-summary" href=
|
|
"#Binding-1049" id="Binding-1049-summary">Binding-1049</a></td>
|
|
<td rowspan="1" colspan="1">For each <a href=
|
|
"#component-Binding">Binding</a> component in the {<a href=
|
|
"#property-Description.bindings">bindings</a>} property of a
|
|
<a href="#component-Description">Description</a> component, the
|
|
{<a href="#property-Binding.name">name</a>} property MUST be
|
|
unique.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a name="BindingFault-1050-summary"
|
|
href="#BindingFault-1050" id=
|
|
"BindingFault-1050-summary">BindingFault-1050</a></td>
|
|
<td rowspan="1" colspan="1">For each <a href=
|
|
"#component-BindingFault">Binding Fault</a> component in the
|
|
{<a href="#property-Binding.bindingfaults">binding faults</a>}
|
|
property of a <a href="#component-Binding">Binding</a> component,
|
|
the {<a href="#property-BindingFault.interfacefault">interface
|
|
fault</a>} property MUST be unique.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a name=
|
|
"BindingFaultReference-1055-summary" href=
|
|
"#BindingFaultReference-1055" id=
|
|
"BindingFaultReference-1055-summary">BindingFaultReference-1055</a></td>
|
|
<td rowspan="1" colspan="1">For each <a href=
|
|
"#component-BindingFaultReference">Binding Fault Reference</a>
|
|
component in the {<a href=
|
|
"#property-BindingOperation.bindingfaultreferences">binding fault
|
|
references</a>} property of a <a href=
|
|
"#component-BindingOperation">Binding Operation</a> component, the
|
|
{<a href=
|
|
"#property-BindingFaultReference.interfacefaultreference">interface
|
|
fault reference</a>} property MUST be unique.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a name=
|
|
"BindingFaultReference-1059-summary" href=
|
|
"#BindingFaultReference-1059" id=
|
|
"BindingFaultReference-1059-summary">BindingFaultReference-1059</a></td>
|
|
<td rowspan="1" colspan="1">There MUST be an <a href=
|
|
"#component-InterfaceFaultReference">Interface Fault Reference</a>
|
|
component in the {<a href=
|
|
"#property-InterfaceOperation.interfacefaultreferences">interface
|
|
fault references</a>} of the <a href=
|
|
"#component-InterfaceOperation">Interface Operation</a> being bound
|
|
with {<a href=
|
|
"#property-InterfaceFaultReference.messagelabel">message label</a>}
|
|
equal to the effective message label and with {<a href=
|
|
"#property-InterfaceFaultReference.interfacefault">interface
|
|
fault</a>} equal to an <a href=
|
|
"#component-InterfaceFault">Interface Fault</a> component with
|
|
{<a href="#property-InterfaceFault.name">name</a>} equal to the
|
|
actual value of the <code>ref</code> <em>attribute information
|
|
item</em>.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a name=
|
|
"BindingMessageReference-1052-summary" href=
|
|
"#BindingMessageReference-1052" id=
|
|
"BindingMessageReference-1052-summary">BindingMessageReference-1052</a></td>
|
|
<td rowspan="1" colspan="1">For each <a href=
|
|
"#component-BindingMessageReference">Binding Message Reference</a>
|
|
component in the {<a href=
|
|
"#property-BindingOperation.bindingmessagereferences">binding
|
|
message references</a>} property of a <a href=
|
|
"#component-BindingOperation">Binding Operation</a> component, the
|
|
{<a href=
|
|
"#property-BindingMessageReference.interfacemessagereference">interface
|
|
message reference</a>} property MUST be unique.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a name="BindingOperation-1051-summary"
|
|
href="#BindingOperation-1051" id=
|
|
"BindingOperation-1051-summary">BindingOperation-1051</a></td>
|
|
<td rowspan="1" colspan="1">For each <a href=
|
|
"#component-BindingOperation">Binding Operation</a> component in
|
|
the {<a href="#property-Binding.bindingoperations">binding
|
|
operations</a>} property of a <a href=
|
|
"#component-Binding">Binding</a> component, the {<a href=
|
|
"#property-BindingOperation.interfaceoperation">interface
|
|
operation</a>} property MUST be unique.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a name="CanonFragId-1097-summary"
|
|
href="#CanonFragId-1097" id=
|
|
"CanonFragId-1097-summary">CanonFragId-1097</a></td>
|
|
<td rowspan="1" colspan="1">The fragment identifier consists of a
|
|
sequence zero or more <code>xmlns()</code> pointer parts followed
|
|
by exactly one <code>wsdl.*()</code> pointer part.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a name="CanonFragId-1098-summary"
|
|
href="#CanonFragId-1098" id=
|
|
"CanonFragId-1098-summary">CanonFragId-1098</a></td>
|
|
<td rowspan="1" colspan="1">Each <code>xmlns()</code> pointer part
|
|
that appears in the fragment identifier defines a namespace that is
|
|
referenced by the <code>wsdl.*()</code> pointer part.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a name="CanonFragId-1099-summary"
|
|
href="#CanonFragId-1099" id=
|
|
"CanonFragId-1099-summary">CanonFragId-1099</a></td>
|
|
<td rowspan="1" colspan="1">Each <code>xmlns()</code> pointer part
|
|
defines a unique namespace.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a name="CanonFragId-1100-summary"
|
|
href="#CanonFragId-1100" id=
|
|
"CanonFragId-1100-summary">CanonFragId-1100</a></td>
|
|
<td rowspan="1" colspan="1">The <code>xmlns()</code> pointer parts
|
|
define namespaces in the same order as they are referenced in the
|
|
<code>wsdl.*()</code> pointer part.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a name="CanonFragId-1101-summary"
|
|
href="#CanonFragId-1101" id=
|
|
"CanonFragId-1101-summary">CanonFragId-1101</a></td>
|
|
<td rowspan="1" colspan="1">The namespace prefixes defined by the
|
|
<code>xmlns()</code> pointer parts are named <code>ns1</code> ,
|
|
<code>ns2</code> , etc., in the order of their appearance.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a name="CanonFragId-1102-summary"
|
|
href="#CanonFragId-1102" id=
|
|
"CanonFragId-1102-summary">CanonFragId-1102</a></td>
|
|
<td rowspan="1" colspan="1">The fragment identifier contains no
|
|
optional whitespace.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a name="CanonFragId-1103-summary"
|
|
href="#CanonFragId-1103" id=
|
|
"CanonFragId-1103-summary">CanonFragId-1103</a></td>
|
|
<td rowspan="1" colspan="1">No <code>xmlns()</code> pointer part
|
|
defines a namespace for the targetNamespace of the WSDL 2.0
|
|
document.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a name="Compare-URI-IRI-1065-summary"
|
|
href="#Compare-URI-IRI-1065" id=
|
|
"Compare-URI-IRI-1065-summary">Compare-URI-IRI-1065</a></td>
|
|
<td rowspan="1" colspan="1">When such absolute URIs and IRIs are
|
|
being compared to determine equivalence (see <a href=
|
|
"#compequiv"><strong>2.15 Equivalence of Components</strong></a>),
|
|
they MUST be compared character-by-character as indicated in
|
|
[<cite><a href="#RFC3987">IETF RFC 3987</a></cite>].</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a name="Description-1001-summary"
|
|
href="#Description-1001" id=
|
|
"Description-1001-summary">Description-1001</a></td>
|
|
<td rowspan="1" colspan="1">The value of the
|
|
<code>targetNamespace</code> <em>attribute information item</em>
|
|
SHOULD be dereferencable.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a name="Description-1002-summary"
|
|
href="#Description-1002" id=
|
|
"Description-1002-summary">Description-1002</a></td>
|
|
<td rowspan="1" colspan="1">It SHOULD resolve to a human or machine
|
|
processable document that directly or indirectly defines the
|
|
intended semantics of those components.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a name="Description-1003-summary"
|
|
href="#Description-1003" id=
|
|
"Description-1003-summary">Description-1003</a></td>
|
|
<td rowspan="1" colspan="1">It MAY resolve to a WSDL 2.0 document
|
|
that provides service description information for that
|
|
namespace.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a name="Description-1067-summary"
|
|
href="#Description-1067" id=
|
|
"Description-1067-summary">Description-1067</a></td>
|
|
<td rowspan="1" colspan="1">For each component in the imported
|
|
namespace, a corresponding <a href=
|
|
"#component-ElementDeclaration">Element Declaration</a> component
|
|
or <a href="#component-TypeDefinition">Type Definition</a>
|
|
component MUST appear in the {<a href=
|
|
"#property-Description.elementdeclarations">element
|
|
declarations</a>} or {<a href=
|
|
"#property-Description.typedefinitions">type definitions</a>}
|
|
property respectively of the <a href=
|
|
"#component-Description">Description</a> component corresponding to
|
|
the WSDL document that imports the schema, or that imports directly
|
|
or indirectly a WSDL document that imports the schema.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a name="Description-1068-summary"
|
|
href="#Description-1068" id=
|
|
"Description-1068-summary">Description-1068</a></td>
|
|
<td rowspan="1" colspan="1">Schema components not in an imported
|
|
namespace MUST NOT appear in the {<a href=
|
|
"#property-Description.elementdeclarations">element
|
|
declarations</a>} or {<a href=
|
|
"#property-Description.typedefinitions">type definitions</a>}
|
|
properties.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a name="Description-1071-summary"
|
|
href="#Description-1071" id=
|
|
"Description-1071-summary">Description-1071</a></td>
|
|
<td rowspan="1" colspan="1">For each component defined and declared
|
|
in the inlined schema document or included by
|
|
<code>xs:include</code>, a corresponding <a href=
|
|
"#component-ElementDeclaration">Element Declaration</a> component
|
|
or <a href="#component-TypeDefinition">Type Definition</a>
|
|
component MUST appear in the {<a href=
|
|
"#property-Description.elementdeclarations">element
|
|
declarations</a>} property or {<a href=
|
|
"#property-Description.typedefinitions">type definitions</a>}
|
|
property respectively of the <a href=
|
|
"#component-Description">Description</a> component corresponding to
|
|
the WSDL document that contains the schema, or that imports
|
|
directly or indirectly a WSDL document that contains the
|
|
schema.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a name="Description-1072-summary"
|
|
href="#Description-1072" id=
|
|
"Description-1072-summary">Description-1072</a></td>
|
|
<td rowspan="1" colspan="1">Schema components not defined or
|
|
declared in the inlined schema document or included by
|
|
<code>xs:include</code> MUST NOT appear in the {<a href=
|
|
"#property-Description.elementdeclarations">element
|
|
declarations</a>} or {<a href=
|
|
"#property-Description.typedefinitions">type definitions</a>}
|
|
properties.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a name="Endpoint-1061-summary" href=
|
|
"#Endpoint-1061" id="Endpoint-1061-summary">Endpoint-1061</a></td>
|
|
<td rowspan="1" colspan="1">This <em>xs:anyURI</em> MUST be 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="Endpoint-1062-summary" href=
|
|
"#Endpoint-1062" id="Endpoint-1062-summary">Endpoint-1062</a></td>
|
|
<td rowspan="1" colspan="1">For each <a href=
|
|
"#component-Endpoint">Endpoint</a> component in the {<a href=
|
|
"#property-Service.endpoints">endpoints</a>} property of a <a href=
|
|
"#component-Service">Service</a> component, the {<a href=
|
|
"#property-Endpoint.binding">binding</a>} property MUST either be a
|
|
<a href="#component-Binding">Binding</a> component with an
|
|
unspecified {<a href="#property-Binding.interface">interface</a>}
|
|
property or a <a href="#component-Binding">Binding</a> component
|
|
with an {<a href="#property-Binding.interface">interface</a>}
|
|
property equal to the {<a href=
|
|
"#property-Service.interface">interface</a>} property of the
|
|
<a href="#component-Service">Service</a> component.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a name="Equivalence-1063-summary"
|
|
href="#Equivalence-1063" id=
|
|
"Equivalence-1063-summary">Equivalence-1063</a></td>
|
|
<td rowspan="1" colspan="1">Extension properties which are not
|
|
string values, sets of strings or references MUST describe their
|
|
values' equivalence rules.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a name="Extensibility-1089-summary"
|
|
href="#Extensibility-1089" id=
|
|
"Extensibility-1089-summary">Extensibility-1089</a></td>
|
|
<td rowspan="1" colspan="1">An extension that is NOT marked as
|
|
mandatory MUST NOT invalidate the meaning of any part of a WSDL 2.0
|
|
document.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a name="Extensibility-1090-summary"
|
|
href="#Extensibility-1090" id=
|
|
"Extensibility-1090-summary">Extensibility-1090</a></td>
|
|
<td rowspan="1" colspan="1">If a WSDL 2.0 document declares an
|
|
extension as optional (i.e., NON-mandatory), then the Web service
|
|
MUST NOT assume that the client supports that extension
|
|
<em>unless</em> the Web service knows (through some other means)
|
|
that the client has in fact elected to engage and support that
|
|
extension.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a name="Extensibility-1091-summary"
|
|
href="#Extensibility-1091" id=
|
|
"Extensibility-1091-summary">Extensibility-1091</a></td>
|
|
<td rowspan="1" colspan="1">Therefore, the Web service MUST support
|
|
every extension that is declared as optional in the WSDL 2.0
|
|
document, in addition to supporting every extension that is
|
|
declared as mandatory.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a name="Extension-1088-summary" href=
|
|
"#Extension-1088" id=
|
|
"Extension-1088-summary">Extension-1088</a></td>
|
|
<td rowspan="1" colspan="1">The meaning of an extension SHOULD be
|
|
defined (directly or indirectly) in a document that is available at
|
|
its namespace IRI.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a name="FragId-1095-summary" href=
|
|
"#FragId-1095" id="FragId-1095-summary">FragId-1095</a></td>
|
|
<td rowspan="1" colspan="1">For QNames, any prefix MUST be defined
|
|
by a preceding xmlns pointer part.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a name="FragId-1096-summary" href=
|
|
"#FragId-1096" id="FragId-1096-summary">FragId-1096</a></td>
|
|
<td rowspan="1" colspan="1">The fragment identifier in a WSDL 2.0
|
|
component IRI-reference MUST resolve to some component as defined
|
|
by the construction rules in <a href="#frag-ids-table">Table
|
|
A-1</a>.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a name="ImportInclude-1087-summary"
|
|
href="#ImportInclude-1087" id=
|
|
"ImportInclude-1087-summary">ImportInclude-1087</a></td>
|
|
<td rowspan="1" colspan="1">The semantics of an extension MUST NOT
|
|
depend on how components are brought into a component model
|
|
instance via <import> or <include>.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a name="Interface-1009-summary" href=
|
|
"#Interface-1009" id=
|
|
"Interface-1009-summary">Interface-1009</a></td>
|
|
<td rowspan="1" colspan="1">To avoid circular definitions, an
|
|
interface MUST NOT appear in the set of interfaces it extends,
|
|
either directly or indirectly.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a name="Interface-1010-summary" href=
|
|
"#Interface-1010" id=
|
|
"Interface-1010-summary">Interface-1010</a></td>
|
|
<td rowspan="1" colspan="1">For each <a href=
|
|
"#component-Interface">Interface</a> component in the {<a href=
|
|
"#property-Description.interfaces">interfaces</a>} property of a
|
|
<a href="#component-Description">Description</a> component, the
|
|
{<a href="#property-Interface.name">name</a>} property MUST be
|
|
unique.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a name="Interface-1011-summary" href=
|
|
"#Interface-1011" id=
|
|
"Interface-1011-summary">Interface-1011</a></td>
|
|
<td rowspan="1" colspan="1">The list of <em>xs:QName</em> in an
|
|
<code>extends</code> <em>attribute information item</em> MUST NOT
|
|
contain duplicates.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a name="InterfaceFault-1013-summary"
|
|
href="#InterfaceFault-1013" id=
|
|
"InterfaceFault-1013-summary">InterfaceFault-1013</a></td>
|
|
<td rowspan="1" colspan="1">An <em>xs:token</em> with one of the
|
|
values <em>#any</em>, <em>#none</em>, <em>#other</em>, or
|
|
<em>#element</em>.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a name="InterfaceFault-1014-summary"
|
|
href="#InterfaceFault-1014" id=
|
|
"InterfaceFault-1014-summary">InterfaceFault-1014</a></td>
|
|
<td rowspan="1" colspan="1">When the {<a href=
|
|
"#property-InterfaceFault.messagecontentmodel">message content
|
|
model</a>} property has the value <em>#any</em> or <em>#none</em>
|
|
the {<a href="#property-InterfaceFault.elementdeclaration">element
|
|
declaration</a>} property MUST be empty.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a name="InterfaceFault-1015-summary"
|
|
href="#InterfaceFault-1015" id=
|
|
"InterfaceFault-1015-summary">InterfaceFault-1015</a></td>
|
|
<td rowspan="1" colspan="1">In cases where, due to an interface
|
|
extending one or more other interfaces, two or more <a href=
|
|
"#component-InterfaceFault">Interface Fault</a> components have the
|
|
same value for their {<a href=
|
|
"#property-InterfaceFault.name">name</a>} property, then the
|
|
component models of those <a href=
|
|
"#component-InterfaceFault">Interface Fault</a> components MUST be
|
|
equivalent (see <a href="#compequiv"><strong>2.15 Equivalence of
|
|
Components</strong></a>).</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a name="InterfaceFault-1016-summary"
|
|
href="#InterfaceFault-1016" id=
|
|
"InterfaceFault-1016-summary">InterfaceFault-1016</a></td>
|
|
<td rowspan="1" colspan="1">For the above reason, it is considered
|
|
good practice to ensure, where necessary, that the local name of
|
|
the {<a href="#property-InterfaceFault.name">name</a>} property of
|
|
<a href="#component-InterfaceFault">Interface Fault</a> components
|
|
within a namespace SHOULD be unique, thus allowing such derivation
|
|
to occur without inadvertent error.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a name=
|
|
"InterfaceFaultReference-1037-summary" href=
|
|
"#InterfaceFaultReference-1037" id=
|
|
"InterfaceFaultReference-1037-summary">InterfaceFaultReference-1037</a></td>
|
|
<td rowspan="1" colspan="1">The value of this property MUST match
|
|
the name of a placeholder message defined by the message exchange
|
|
pattern.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a name=
|
|
"InterfaceFaultReference-1038-summary" href=
|
|
"#InterfaceFaultReference-1038" id=
|
|
"InterfaceFaultReference-1038-summary">InterfaceFaultReference-1038</a></td>
|
|
<td rowspan="1" colspan="1">The direction MUST be consistent with
|
|
the direction implied by the fault propagation ruleset used in the
|
|
message exchange pattern of the operation.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a name=
|
|
"InterfaceFaultReference-1039-summary" href=
|
|
"#InterfaceFaultReference-1039" id=
|
|
"InterfaceFaultReference-1039-summary">InterfaceFaultReference-1039</a></td>
|
|
<td rowspan="1" colspan="1">For each <a href=
|
|
"#component-InterfaceFaultReference">Interface Fault Reference</a>
|
|
component in the {<a href=
|
|
"#property-InterfaceOperation.interfacefaultreferences">interface
|
|
fault references</a>} property of an <a href=
|
|
"#component-InterfaceOperation">Interface Operation</a> component,
|
|
the combination of its {<a href=
|
|
"#property-InterfaceFaultReference.interfacefault">interface
|
|
fault</a>} and {<a href=
|
|
"#property-InterfaceFaultReference.messagelabel">message label</a>}
|
|
properties MUST be unique.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a name=
|
|
"InterfaceMessageReference-1025-summary" href=
|
|
"#InterfaceMessageReference-1025" id=
|
|
"InterfaceMessageReference-1025-summary">InterfaceMessageReference-1025</a></td>
|
|
<td rowspan="1" colspan="1">An <em>xs:token</em> with one of the
|
|
values <em>in</em> or <em>out</em>, indicating whether the message
|
|
is coming to the service or going from the service,
|
|
respectively.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a name=
|
|
"InterfaceMessageReference-1026-summary" href=
|
|
"#InterfaceMessageReference-1026" id=
|
|
"InterfaceMessageReference-1026-summary">InterfaceMessageReference-1026</a></td>
|
|
<td rowspan="1" colspan="1">The direction MUST be the same as the
|
|
direction of the message identified by the {<a href=
|
|
"#property-InterfaceMessageReference.messagelabel">message
|
|
label</a>} property in the {<a href=
|
|
"#property-InterfaceOperation.messageexchangepattern">message
|
|
exchange pattern</a>} of the <a href=
|
|
"#component-InterfaceOperation">Interface Operation</a> component
|
|
this is contained within.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a name=
|
|
"InterfaceMessageReference-1027-summary" href=
|
|
"#InterfaceMessageReference-1027" id=
|
|
"InterfaceMessageReference-1027-summary">InterfaceMessageReference-1027</a></td>
|
|
<td rowspan="1" colspan="1">An <em>xs:token</em> with one of the
|
|
values <em>#any</em>, <em>#none</em>, <em>#other</em>, or
|
|
<em>#element</em>.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a name=
|
|
"InterfaceMessageReference-1028-summary" href=
|
|
"#InterfaceMessageReference-1028" id=
|
|
"InterfaceMessageReference-1028-summary">InterfaceMessageReference-1028</a></td>
|
|
<td rowspan="1" colspan="1">When the {<a href=
|
|
"#property-InterfaceMessageReference.messagecontentmodel">message
|
|
content model</a>} property has the value <em>#any</em> or
|
|
<em>#none</em>, the {<a href=
|
|
"#property-InterfaceMessageReference.elementdeclaration">element
|
|
declaration</a>} property MUST be empty.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a name=
|
|
"InterfaceMessageReference-1029-summary" href=
|
|
"#InterfaceMessageReference-1029" id=
|
|
"InterfaceMessageReference-1029-summary">InterfaceMessageReference-1029</a></td>
|
|
<td rowspan="1" colspan="1">For each <a href=
|
|
"#component-InterfaceMessageReference">Interface Message
|
|
Reference</a> component in the {<a href=
|
|
"#property-InterfaceOperation.interfacemessagereferences">interface
|
|
message references</a>} property of an <a href=
|
|
"#component-InterfaceOperation">Interface Operation</a> component,
|
|
its {<a href=
|
|
"#property-InterfaceMessageReference.messagelabel">message
|
|
label</a>} property MUST be unique.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a name=
|
|
"InterfaceOperation-1018-summary" href="#InterfaceOperation-1018"
|
|
id=
|
|
"InterfaceOperation-1018-summary">InterfaceOperation-1018</a></td>
|
|
<td rowspan="1" colspan="1">This <em>xs:anyURI</em> MUST be an
|
|
absolute IRI (see [<cite><a href="#RFC3987">IETF RFC
|
|
3987</a></cite>]).</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a name=
|
|
"InterfaceOperation-1019-summary" href="#InterfaceOperation-1019"
|
|
id=
|
|
"InterfaceOperation-1019-summary">InterfaceOperation-1019</a></td>
|
|
<td rowspan="1" colspan="1">These <em>xs:anyURI</em>s MUST be
|
|
absolute IRIs (see [<cite><a href="#RFC3986">IETF RFC
|
|
3986</a></cite>]).</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a name=
|
|
"InterfaceOperation-1020-summary" href="#InterfaceOperation-1020"
|
|
id=
|
|
"InterfaceOperation-1020-summary">InterfaceOperation-1020</a></td>
|
|
<td rowspan="1" colspan="1">In cases where, due to an interface
|
|
extending one or more other interfaces, two or more <a href=
|
|
"#component-InterfaceOperation">Interface Operation</a> components
|
|
have the same value for their {<a href=
|
|
"#property-InterfaceOperation.name">name</a>} property, then the
|
|
component models of those Interface Operation components MUST be
|
|
equivalent (see <a href="#compequiv"><strong>2.15 Equivalence of
|
|
Components</strong></a>).</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a name=
|
|
"InterfaceOperation-1021-summary" href="#InterfaceOperation-1021"
|
|
id=
|
|
"InterfaceOperation-1021-summary">InterfaceOperation-1021</a></td>
|
|
<td rowspan="1" colspan="1">For the above reason, it is considered
|
|
good practice to ensure, where necessary, that the {<a href=
|
|
"#property-InterfaceOperation.name">name</a>} property of <a href=
|
|
"#component-InterfaceOperation">Interface Operation</a> components
|
|
within a namespace SHOULD be unique, thus allowing such derivation
|
|
to occur without inadvertent error.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a name=
|
|
"InterfaceOperation-1023-summary" href="#InterfaceOperation-1023"
|
|
id=
|
|
"InterfaceOperation-1023-summary">InterfaceOperation-1023</a></td>
|
|
<td rowspan="1" colspan="1">An <a href=
|
|
"#component-InterfaceOperation">Interface Operation</a> component
|
|
MUST satisfy the specification defined by each operation style
|
|
identified by its {<a href=
|
|
"#property-InterfaceOperation.style">style</a>} property.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a name="Location-1093-summary" href=
|
|
"#Location-1093" id="Location-1093-summary">Location-1093</a></td>
|
|
<td rowspan="1" colspan="1">Its actual value MUST be a list of
|
|
pairs of IRIs; where the first IRI of a pair, which MUST be an
|
|
absolute IRI as defined in [<cite><a href="#RFC3987">IETF RFC
|
|
3987</a></cite>], indicates a WSDL 2.0 (or 1.1) namespace name,
|
|
and, the second a hint as to the location of a WSDL 2.0 document
|
|
defining WSDL 2.0 components (or WSDL 1.1 elements [<cite><a href=
|
|
"#WSDL11">WSDL 1.1</a></cite>]) for that namespace name.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a name="MEP-1022-summary" href=
|
|
"#MEP-1022" id="MEP-1022-summary">MEP-1022</a></td>
|
|
<td rowspan="1" colspan="1">A message exchange pattern is itself
|
|
uniquely identified by an absolute IRI, which is used as the value
|
|
of the {<a href=
|
|
"#property-InterfaceOperation.messageexchangepattern">message
|
|
exchange pattern</a>} property of the <a href=
|
|
"#component-InterfaceOperation">Interface Operation</a> component,
|
|
and which specifies the fault propagation ruleset that its faults
|
|
obey.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a name="MessageLabel-1024-summary"
|
|
href="#MessageLabel-1024" id=
|
|
"MessageLabel-1024-summary">MessageLabel-1024</a></td>
|
|
<td rowspan="1" colspan="1">The value of this property MUST match
|
|
the name of a placeholder message defined by the message exchange
|
|
pattern.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a name="Service-1060-summary" href=
|
|
"#Service-1060" id="Service-1060-summary">Service-1060</a></td>
|
|
<td rowspan="1" colspan="1">For each <a href=
|
|
"#component-Service">Service</a> component in the {<a href=
|
|
"#property-Description.services">services</a>} property of a
|
|
<a href="#component-Description">Description</a> component, the
|
|
{<a href="#property-Service.name">name</a>} property MUST be
|
|
unique.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a name="Types-1007-summary" href=
|
|
"#Types-1007" id="Types-1007-summary">Types-1007</a></td>
|
|
<td rowspan="1" colspan="1">Each XML Schema element declaration
|
|
MUST have a unique QName.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a name="Types-1008-summary" href=
|
|
"#Types-1008" id="Types-1008-summary">Types-1008</a></td>
|
|
<td rowspan="1" colspan="1">Each XML Schema type definition MUST
|
|
have a unique QName.</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
<br /></div>
|
|
</body>
|
|
</html>
|