- From: Sanjiva Weerawarana <sweeraw@dev.w3.org>
- Date: Fri, 02 Jul 2004 07:02:25 +0000
- To: public-ws-desc-eds@w3.org
Update of /sources/public/2002/ws/desc/wsdl20
In directory hutz:/tmp/cvs-serv9590
Modified Files:
wsdl20-bindings.html wsdl20.html wsdl20.xml
Log Message:
made @style be a list
Index: wsdl20-bindings.html
===================================================================
RCS file: /sources/public/2002/ws/desc/wsdl20/wsdl20-bindings.html,v
retrieving revision 1.37
retrieving revision 1.38
diff -C2 -d -r1.37 -r1.38
*** wsdl20-bindings.html 2 Jul 2004 06:09:55 -0000 1.37
--- wsdl20-bindings.html 2 Jul 2004 07:02:22 -0000 1.38
***************
*** 1214,1218 ****
</div>
<div class="div3">
-
<h4><a name="http-binding-decl-mapping"></a>3.2.4 Mapping Between HTTP Binding's XML Representation to Component
--- 1214,1217 ----
Index: wsdl20.html
===================================================================
RCS file: /sources/public/2002/ws/desc/wsdl20/wsdl20.html,v
retrieving revision 1.85
retrieving revision 1.86
diff -C2 -d -r1.85 -r1.86
*** wsdl20.html 2 Jul 2004 06:09:55 -0000 1.85
--- wsdl20.html 2 Jul 2004 07:02:22 -0000 1.86
***************
*** 84,90 ****
<h2><a name="contents">Table of Contents</a></h2><p class="toc">1. <a href="#intro">Introduction</a><br> 1.1 <a href="#intro_ws">Web Service</a><br> 1.2 <a href="#notation">Notational Conventions</a><br>2. <a href="#component_model">Component Model</a><br> 2.1 <a href="#Definitions">Definitions</a><br> 2.1.1 <a href="#Definitions_details">The Definitions Component</a><br> 2.1.2 <a href="#Definitions_XMLRep">XML Representation of Definitions Component</a><br> 2.1.2.1 <a href="#Definitions_targetnamespace_attribute">targetNamespace attribute information item</a><br> 2.1.3 <a href="#Definitions_Mapping">Mapping Definitions' 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]</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> &nbs;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]</a><br> 2.3.2.2 <a href="#Interface_element_attribute">element attribute information item with fault [owner]</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="#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]</a><br> 2.4.2.2 <a href="#Interfaceoperation_pattern_attribute">pattern attribute information item with operation [owner]</a><br> 2.4.2.3 <a href="#InterfaceOpertion_style_attribute">style attribute information item with operation [owner]</a><br> 2.4.2.4 <a href="#InterfaceOperation_safe_attribute">safe attribute information item with operation [owner]</a><br> 2.4.3 <a href="#InterfaceOperation_Mapping">Mapping Interface Operation's XML Representation to
! Component Properties</a><br> 2.4.4 <a href="#RPCStyle">RPC Style</a><br> 2.4.4.1 <a href="#InterfaceOperation_RPC_Signature_Definition">wrpc:signature Extension</a><br> 2.4.4.2 <a href="#InterfaceOperation_RPC_Signature_XMLRep">XML Representation of the wrpc:signature Extension</a><br> 2.4.4.3 <a href="#InterfaceOperation_RPC_Signature_Mapping">wrpc:signature Extension Mapping To Properties of an
! Interface Operation Component</a><br> 2.5 <a href="#MessageReference">Message Reference</a><br> 2.5.1 <a href="#MessageReference_details">The Message Reference Component</a><br> 2.5.2 <a href="#MessageReference_XMLRep">XML Representation of Message Reference Component</a><br> 2.5.2.1 <a href="#MessageReference_messageReference_attribute">messageLabel attribute information item with input,
or output [owner]</a><br> 2.5.2.2 <a href="#MessageReference_element_attribute">element attribute information item with input,
or output [owner]</a><br> 2.5.3 <a href="#MessageReference_Mapping">Mapping Message Reference's XML Representation to Component Properties</a><br> 2.6 <a href="#FaultReference">Fault Reference</a><br> 2.6.1 <a href="#FaultReference_details">The Fault Reference Component</a><br> 2.6.2 <a href="#FaultReference_XMLRep">XML Representation of Fault Reference Component</a><br> 2.6.2.1 <a href="#FaultReference_ref_attribute">ref attribute information item with infault,
--- 84,90 ----
<h2><a name="contents">Table of Contents</a></h2><p class="toc">1. <a href="#intro">Introduction</a><br> 1.1 <a href="#intro_ws">Web Service</a><br> 1.2 <a href="#notation">Notational Conventions</a><br>2. <a href="#component_model">Component Model</a><br> 2.1 <a href="#Definitions">Definitions</a><br> 2.1.1 <a href="#Definitions_details">The Definitions Component</a><br> 2.1.2 <a href="#Definitions_XMLRep">XML Representation of Definitions Component</a><br> 2.1.2.1 <a href="#Definitions_targetnamespace_attribute">targetNamespace attribute information item</a><br> 2.1.3 <a href="#Definitions_Mapping">Mapping Definitions' 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]</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> &nbs;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]</a><br> 2.3.2.2 <a href="#Interface_element_attribute">element attribute information item with fault [owner]</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="#InterfaceOperationStyle">Operation Style</a><br> 2.4.2 <a href="#RPCStyle">RPC Style</a><br> 2.4.2.1 <a href="#InterfaceOperation_RPC_Signature_Definition">wrpc:signature Extension</a><br> 2.4.2.2 <a href="#InterfaceOperation_RPC_Signature_XMLRep">XML Representation of the wrpc:signature Extension</a><br> 2.4.2.3 <a href="#InterfaceOperation_RPC_Signature_Mapping">wrpc:signature Extension Mapping To Properties of an
! Interface Operation Component</a><br> 2.4.3 <a href="#InterfaceOperation_XMLRep">XML Representation of Interface Operation Component</a><br> 2.4.3.1 <a href="#Interfaceoperation_name_attribute">name attribute information item with operation [owner]</a><br> 2.4.3.2 <a href="#Interfaceoperation_pattern_attribute">pattern attribute information item with operation [owner]</a><br> 2.4.3.3 <a href="#InterfaceOperation_style_attribute">style attribute information item with operation [owner]</a><br> 2.4.3.4 <a href="#InterfaceOperation_safe_attribute">safe attribute information item with operation [owner]</a><br> 2.4.4 <a href="#InterfaceOeration_Mapping">Mapping Interface Operation's XML Representation to
! Component Properties</a><br> 2.5 <a href="#MessageReference">Message Reference</a><br> 2.5.1 <a href="#MessageReference_details">The Message Reference Component</a><br> 2.5.2 <a href="#MessageReference_XMLRep">XML Representation of Message Reference Component</a><br> 2.5.2.1 <a href="#MessageReference_messageReference_attribute">messageLabel attribute information item with input,
or output [owner]</a><br> 2.5.2.2 <a href="#MessageReference_element_attribute">element attribute information item with input,
or output [owner]</a><br> 2.5.3 <a href="#MessageReference_Mapping">Mapping Message Reference's XML Representation to Component Properties</a><br> 2.6 <a href="#FaultReference">Fault Reference</a><br> 2.6.1 <a href="#FaultReference_details">The Fault Reference Component</a><br> 2.6.2 <a href="#FaultReference_XMLRep">XML Representation of Fault Reference Component</a><br> 2.6.2.1 <a href="#FaultReference_ref_attribute">ref attribute information item with infault,
***************
*** 694,698 ****
<li>
<p>
! Zero or more <code>operation</code> <em>element information item</em>s <a href="#InterfaceOperation_XMLRep"><b>2.4.2 XML Representation of Interface Operation Component</b></a>.
</p>
</li>
--- 694,698 ----
<li>
<p>
! Zero or more <code>operation</code> <em>element information item</em>s <a href="#InterfaceOperation_XMLRep"><b>2.4.3 XML Representation of Interface Operation Component</b></a>.
</p>
</li>
***************
*** 783,789 ****
<p>
The type of the <code>styleDefault</code> <em>attribute information item</em> is
! <em>xs:anyURI</em>. Moreover, the value of the
! <code>styleDefault</code> <em>attribute information item</em>, if present, MUST be
! an absolute URI (see [<cite><a href="#RFC2396">IETF RFC 2396</a></cite>]).
</p>
--- 783,789 ----
<p>
The type of the <code>styleDefault</code> <em>attribute information item</em> is
! <em>list of xs:anyURI</em>. Moreover, the value of the
! <code>styleDefault</code> <em>attribute information item</em>, if present, MUST contain
! absolute URIs (see [<cite><a href="#RFC2396">IETF RFC 2396</a></cite>]).
</p>
***************
*** 1182,1189 ****
sends. (See <a href="#FaultReference"><b>2.6 Fault Reference</b></a>.)</p></li>
! <li><p> {style} A URI identifying the rules that were
! used to construct the {element} properties of {message
! references}. (See <a href="#InterfaceOperationStyle"><b>2.4.1.1 Operation Style</b></a>.) This URI MUST be an
! absolute URI (see [<cite><a href="#RFC2396">IETF RFC 2396</a></cite>]).</p></li>
<li><p>{safety} A boolean indicating whether the
--- 1182,1189 ----
sends. (See <a href="#FaultReference"><b>2.6 Fault Reference</b></a>.)</p></li>
! <li><p> {style} A list of URIs identifying the rules
! that were used to construct the {element} properties of
! {message references}. (See <a href="#InterfaceOperationStyle"><b>2.4.1.1 Operation Style</b></a>.) These URIs MUST be
! absolute URIs (see [<cite><a href="#RFC2396">IETF RFC 2396</a></cite>]).</p></li>
<li><p>{safety} A boolean indicating whether the
***************
*** 1253,1265 ****
<p>If the {style} property of an Interface Operation component
! has a value then that value (a URI) implies the rules that
were used to define the {element} properties (or other
property which defines the content of the message properties;
see <a href="#other-types"><b>3.2 Using Other Schema Languages</b></a>) of <em>all</em> the
Message Reference components which are members of the {message
! references} property of that component. Note that the property MAY
! not have any value. If this property has a given value, then
! the rules implied by that value (such as rules that govern the
! schemas) MUST be followed or it is an error.</p>
<p>This specification defines the following pre-defined
--- 1253,1270 ----
<p>If the {style} property of an Interface Operation component
! has a value then that value (a list of URIs) implies the rules that
were used to define the {element} properties (or other
property which defines the content of the message properties;
see <a href="#other-types"><b>3.2 Using Other Schema Languages</b></a>) of <em>all</em> the
Message Reference components which are members of the {message
! references} property of that component.</p>
!
! <p>Note that the property MAY not have any value. If this
! property has a given value, then the rules implied by that
! value (such as rules that govern the schemas) MUST be followed
! or it is an error. If list of QNames has more than one item in
! it, then the order of the URIs is NOT significant; the rules
! implied by ALL the URIs must be adhered to by the content
! definitions.</p>
<p>This specification defines the following pre-defined
***************
*** 1267,1271 ****
<ul>
! <li><p>RPC Style (see <a href="#RPCStyle"><b>2.4.4 RPC Style</b></a>)</p></li>
</ul>
--- 1272,1276 ----
<ul>
! <li><p>RPC Style (see <a href="#RPCStyle"><b>2.4.2 RPC Style</b></a>)</p></li>
</ul>
***************
*** 1277,1282 ****
<div class="div3">
! <h4><a name="InterfaceOperation_XMLRep"></a>2.4.2 XML Representation of Interface Operation Component</h4>
<div class="exampleInner"><pre><definitions>
--- 1282,1514 ----
<div class="div3">
+
+ <h4><a name="RPCStyle"></a>2.4.2 RPC Style</h4>
+
+ <p>The RPC style is selected by assigning to an Interface
+ Operation component's {style} property the value
+ <em>http://www.w3.org/@@@@/@@/wsdl/style/rpc</em>.</p>
+
+ <p>The RPC style MUST NOT be used for Interface Operation
+ components whose {message exchange pattern} property has a
+ value other than 'http://www.w3.org/@@@@/@@/wsdl/in-only' or 'http://www.w3.org/@@@@/@@/wsdl/in-out'.</p>
+
+ <p>Use of this value indicates that XML Schema [<cite><a href="#XMLSchemaP1">XML Schema: Structures</a></cite>] was used to define the schemas of the
+ {element} properties of all {message reference} components of
+ the Interface Operation component. Those schemas MUST adhere
+ to the rules below.</p>
+
+ <p>Note that if the Interface Operation component uses the
+ {message exchange pattern} 'http://www.w3.org/@@@@/@@/wsdl/in-only' then there is
+ no output element and hence the rules which refer to the
+ output element do not apply.</p>
+
+ <ul>
+
+ <li><p> The content model of input and output {element}
+ elements are defined using a complex type that contains a
+ sequence from XML Schema.</p></li>
+
+ <li><p> The sequence MUST only contain elements. It
+ MUST NOT contain other structures such as
+ xs:choice.</p></li>
+
+ <li><p>The sequence MUST contain only local element
+ children. Note that these child elements MAY contain the
+ following attributes: nillable, minOccurs and
+ maxOccurs.</p></li>
+
+ <li><p>The LocalPart of input element's QName MUST be
+ the same as the Interface operation component's
+ name.</p></li>
+
+ <li><p> The LocalPart of the output element's QName is
+ obtained by concatenating the name of the operation and
+ the string value "Response",
+ i.e. concat(operation/@name,"Response").</p></li>
+
+ <li><p>Input and output elements MUST both be in the
+ same namespace.</p></li>
+
+ <li><p> The complex type that defines the body of an
+ input or an output element MUST NOT contain any
+ attributes.</p></li>
+
+ <li><p> If elements with the same qualified name appear
+ as children of both the input and output elements, then
+ they MUST both be declared using the same type.</p></li>
+
+ <li><p>The input or output sequence MUST NOT contain
+ multiple children elements declared with the same
+ name.</p></li>
+
+ </ul>
+ <div class="div4">
! <h5><a name="InterfaceOperation_RPC_Signature_Definition"></a>2.4.2.1 <code>wrpc:signature</code> Extension</h5>
!
! <p>The <code>wrpc:signature</code> extension AII MAY be be used in conjunction with
! the RPC style to describe the exact signature of the function represented
! by an operation that uses the RPC style.</p>
!
! <p>When present, the <code>wrpc:signature</code> extension contributes the following
! property to the interface operation component it is applied to:</p>
! <ul>
! <li><p>{rpc-signature} A (possibly empty) list of pairs <em>(q, t)</em> whose
! first component is of type <em>xs:QName</em> (as defined by [<cite><a href="#XMLNS">XML Namespaces</a></cite>])
! and whose second component is of type <em>xs:Token</em>
! (as defined by [<cite><a href="#XMLNS">XML Namespaces</a></cite>]). Values for the second component MUST be
! chosen among the following four:
! "#in", "#out", "#inout" "#return".</p></li>
!
! </ul>
! <p>
! The value of the {rpc-signature} property MUST satisfy the following conditions:
! </p>
! <ul>
! <li><p>The value of the first component of each pair <em>(q, t)</em> MUST
! be unique within the list.</p></li>
! <li><p>For each child element of the input and output messages of the operation,
! a pair <em>(q, t)</em> whose first component <em>q</em> is equal to
! the qualified name of that element MUST be present in the list, with the caveat
! that elements that appear with cardinality greater than one MUST be treated as
! as a single element.</p></li>
! <li><p>For each pair <em>(q, #in)</em>, there MUST be a child element of the
! input element with a name of <em>q</em> and there MUST NOT be a child element
! of the output element with the same name.</p></li>
! <li><p>For each pair <em>(q, #out)</em>, there MUST be a child element of the
! output element with a name of <em>q</em> and there MUST NOT be a child element
! of the input element with the same name.</p></li>
! <li><p>For each pair <em>(q, #inout)</em>, there MUST be a child element of the
! input element with a name of <em>q</em> and there MUST be a child element
! of the output element with the same name. Furthermore, those two elements MUST
! have the same type.</p></li>
! <li><p>For each pair <em>(q, #return)</em>, there MUST be a child element of the
! output element with a name of <em>q</em> and there MUST NOT be a child element
! of the input element with the same name.</p></li>
! </ul>
! <p>
! The function signature defined by a <code>wrpc:signature</code> extension is
! determined as follows:
! <ol>
! <li><p>Start with the value of the {rpc-signature} property, a (possibly empty)
! list of pairs of this form:</p>
! <p> <em>[(q0, t0), (q1, t1), ...]</em></p></li>
! <li><p>Filter the elements of this list into two lists, the first one <em>(L1)</em>
! comprising pairs
! whose <em>t</em> component is one of <em>{#in, #out, #inout}</em>,
! the second <em>(L2)</em> pairs
! whose <em>t</em> component is <em>#return</em>.</p>
! <p>For ease of visualization, let's denote the two lists as</p>
! <p> (L1) <em>[(a0, u0), (a1, u1),...]</em></p>
! <p>and</p>
! <p> (L2) <em>[(r0, #return), (r1, #return),...]</em></p>
! <p>respectively.</p></li>
! <li><p>Then the formal signature of the function is</p>
! <p> <em>f([d0] a0, [d1] a1, ...) => (r0, r1, ...)</em></p>
! <p>i.e.</p>
! <p>
! <ul>
! <li><p>the list of formal arguments to the function is <em>[a0, a1, ...]</em>;
! </p></li>
! <li><p>the direction of each formal argument <em>a</em> is one of
! <em>[in]</em>, <em>[out]</em>, <em>[inout]</em>,
! determined according to the value of its corresponding <em>u</em> token;
! </p></li>
! <li><p>the list of formal return parameters of the function is
! <em>[r0, r1, ...]</em>;</p></li>
! <li><p>each formal argument and formal return parameter is typed
! according to the type of the child element identified by it
! (unique per the conditions given above).</p></li>
! </ul>
! </p>
! </li>
! </ol>
! </p>
! </div>
!
! <div class="div4">
!
! <h5><a name="InterfaceOperation_RPC_Signature_XMLRep"></a>2.4.2.2 XML Representation of the <code>wrpc:signature</code> Extension</h5>
! <p>
! The XML representation for the RPC signature extension is an
! <em>attribute information item</em> with the following Infoset properties:
! </p>
! <ul>
! <li><p>A [local name] of <code>signature</code> </p></li>
! <li><p>A [namespace name] of "http://www.w3.org/@@@@/@@/wsdl/rpc"</p></li>
! </ul>
! <p>
! The type of the <code>name</code> <em>attribute information item</em> is a list type whose item type is
! the union of the <em>xs:QName</em> type and the subtype of
! the <em>xs:Token</em> type restricted to the following
! four values: "#in", "#out", "#inout",
! "#return". See <a href="#rpc-signature-xsd">Example 2-1</a> for
! a definition of this type.
! </p>
! <p>Additionally, each even-numbered item (0, 2, 4, ...) in the list
! MUST be of type <em>xs:QName</em> and each odd-numbered item (1, 3, 5, ...)
! in the list MUST be of type <em>xs:Token</em>.
! </p>
! <p></p>
! <p>
! <div class="exampleOuter">
! <p class="exampleHead" style="text-align: left"><a name="rpc-signature-xsd"></a><i><span>Example 2-1. </span>Definition of the wrpc:signature extension</i></p>
! <div class="exampleInner"><pre>
! <xs:attribute name="signature" type="wrpc:signatureType"/>
!
! <xs:simpleType name="signatureType">
! <xs:list itemType="wrpc:signatureItemType"/>
! </xs:simpleType>
!
! <xs:simpleType name="signatureItemType">
! <xs:union memberTypes="wrpc:directionToken xsd:QName"/>
! </xs:simpleType>
!
! <xs:simpleType name="directionToken">
! <xs:restriction base="xs:token">
! <xs:enumeration value="#in"/>
! <xs:enumeration value="#out"/>
! <xs:enumeration value="#inout"/>
! <xs:enumeration value="#return"/>
! </xs:restriction>
! </xs:simpleType>
!
! </pre></div>
! </div>
! </p>
! </div>
!
! <div class="div4">
!
! <h5><a name="InterfaceOperation_RPC_Signature_Mapping"></a>2.4.2.3 <code>wrpc:signature </code> Extension Mapping To Properties of an
! Interface Operation Component</h5>
!
! <p>A <code>wrpc:signature</code> extension <em>attribute information item</em> is mapped to the following
! property of the Interface Operation component (see <a href="#InterfaceOperation_details"><b>2.4.1 The Interface Operation Component</b></a>) defined by its [owner].</p>
!
! <a name="tab_InterfaceOperation_RPC_Signature_Mapping"></a><br><table border="1">
! <caption>Table 2-4. Mapping of a <code>wrpc:signature</code> Extension to Interface Operation Component Properties</caption>
! <tbody>
! <tr>
! <th rowspan="1" colspan="1">Property</th>
! <th rowspan="1" colspan="1">Mapping</th>
! </tr>
! <tr>
! <td rowspan="1" colspan="1">{rpc-signature}</td>
! <td rowspan="1" colspan="1"> A list of <em>(xs:QName, xs:Token)</em> pairs formed
! by grouping the items present in the actual value of the
! <code>wrpc:signature</code> <em>attribute information item</em> in the order in which they appear
! there.</td>
! </tr>
! </tbody>
! </table><br>
!
! </div>
!
! </div>
!
! <div class="div3">
!
! <h4><a name="InterfaceOperation_XMLRep"></a>2.4.3 XML Representation of Interface Operation Component</h4>
<div class="exampleInner"><pre><definitions>
***************
*** 1285,1289 ****
name="<em>xs:NCName</em>"
pattern="<em>xs:anyURI</em>"
! style="<em>xs:anyURI</em>"?
safe="<em>xs:boolean</em>"? >
<documentation />?
--- 1517,1521 ----
name="<em>xs:NCName</em>"
pattern="<em>xs:anyURI</em>"
! style="<em>list of xs:anyURI</em>"?
safe="<em>xs:boolean</em>"? >
<documentation />?
***************
*** 1311,1315 ****
<p>
A REQUIRED <code>name</code> <em>attribute information item</em>
! as described below in <a href="#Interfaceoperation_name_attribute"><b>2.4.2.1 name attribute information item with operation [owner]</b></a>.
</p>
</li>
--- 1543,1547 ----
<p>
A REQUIRED <code>name</code> <em>attribute information item</em>
! as described below in <a href="#Interfaceoperation_name_attribute"><b>2.4.3.1 name attribute information item with operation [owner]</b></a>.
</p>
</li>
***************
*** 1317,1321 ****
<p>
A REQUIRED <code>pattern</code> <em>attribute information item</em>
! as described below in <a href="#Interfaceoperation_pattern_attribute"><b>2.4.2.2 pattern attribute information item with operation [owner]</b></a>.
</p>
</li>
--- 1549,1553 ----
<p>
A REQUIRED <code>pattern</code> <em>attribute information item</em>
! as described below in <a href="#Interfaceoperation_pattern_attribute"><b>2.4.3.2 pattern attribute information item with operation [owner]</b></a>.
</p>
</li>
***************
*** 1323,1327 ****
<p>
An OPTIONAL <code>style</code> <em>attribute information item</em> as
! described below in <a href="#InterfaceOperation_style_attribute"><b>2.4.2.3 style attribute information item with operation [owner]</b></a>.
</p>
</li>
--- 1555,1559 ----
<p>
An OPTIONAL <code>style</code> <em>attribute information item</em> as
! described below in <a href="#InterfaceOperation_style_attribute"><b>2.4.3.3 style attribute information item with operation [owner]</b></a>.
</p>
</li>
***************
*** 1329,1333 ****
<p>
An OPTIONAL <code>safe</code> <em>attribute information item</em> as
! described below in <a href="#InterfaceOperation_safe_attribute"><b>2.4.2.4 safe attribute information item with operation [owner]</b></a>.
</p>
</li>
--- 1561,1565 ----
<p>
An OPTIONAL <code>safe</code> <em>attribute information item</em> as
! described below in <a href="#InterfaceOperation_safe_attribute"><b>2.4.3.4 safe attribute information item with operation [owner]</b></a>.
</p>
</li>
***************
*** 1390,1394 ****
<div class="div4">
! <h5><a name="Interfaceoperation_name_attribute"></a>2.4.2.1 <code>name</code> <em>attribute information item</em> with <code>operation</code> [owner]</h5>
<p>
The <code>name</code> <em>attribute information item</em> identifies a given <code>operation</code>
--- 1622,1626 ----
<div class="div4">
! <h5><a name="Interfaceoperation_name_attribute"></a>2.4.3.1 <code>name</code> <em>attribute information item</em> with <code>operation</code> [owner]</h5>
<p>
The <code>name</code> <em>attribute information item</em> identifies a given <code>operation</code>
***************
*** 1410,1414 ****
<div class="div4">
! <h5><a name="Interfaceoperation_pattern_attribute"></a>2.4.2.2 <code>pattern</code> <em>attribute information item</em> with <code>operation</code> [owner]</h5>
<p>
The <code>pattern</code> <em>attribute information item</em> identifies the message
--- 1642,1646 ----
<div class="div4">
! <h5><a name="Interfaceoperation_pattern_attribute"></a>2.4.3.2 <code>pattern</code> <em>attribute information item</em> with <code>operation</code> [owner]</h5>
<p>
The <code>pattern</code> <em>attribute information item</em> identifies the message
***************
*** 1430,1434 ****
<div class="div4">
! <h5><a name="InterfaceOperation_style_attribute"></a>2.4.2.3 <code>style</code> <em>attribute information item</em> with <code>operation</code> [owner]</h5>
<p>The <code>style</code> <em>attribute information item</em> indicates the rules that
--- 1662,1666 ----
<div class="div4">
! <h5><a name="InterfaceOperation_style_attribute"></a>2.4.3.3 <code>style</code> <em>attribute information item</em> with <code>operation</code> [owner]</h5>
<p>The <code>style</code> <em>attribute information item</em> indicates the rules that
***************
*** 1446,1450 ****
<p> The type of the <code>style</code> <em>attribute information item</em> is
! <em>xs:anyURI</em>. </p>
</div>
--- 1678,1682 ----
<p> The type of the <code>style</code> <em>attribute information item</em> is
! <em>list of xs:anyURI</em>. </p>
</div>
***************
*** 1452,1456 ****
<div class="div4">
! <h5><a name="InterfaceOperation_safe_attribute"></a>2.4.2.4 <code>safe</code> <em>attribute information item</em> with <code>operation</code> [owner]</h5>
<p>The <code>safe</code> <em>attribute information item</em> indicates whether the operation
--- 1684,1688 ----
<div class="div4">
! <h5><a name="InterfaceOperation_safe_attribute"></a>2.4.3.4 <code>safe</code> <em>attribute information item</em> with <code>operation</code> [owner]</h5>
<p>The <code>safe</code> <em>attribute information item</em> indicates whether the operation
***************
*** 1474,1487 ****
<div class="div3">
! <h4><a name="InterfaceOperation_Mapping"></a>2.4.3 Mapping Interface Operation's XML Representation to
Component Properties</h4>
<p>The mapping between the properties of the Interface
Operation component (see <a href="#InterfaceOperation_details"><b>2.4.1 The Interface Operation Component</b></a>) and the XML
! Representation of the <code>operation</code> <em>element information item</em> (see <a href="#InterfaceOperation_XMLRep"><b>2.4.2 XML Representation of Interface Operation Component</b></a>) is as described in
! <a href="#tab_InterfaceOperation_Mapping">Table 2-4</a>. </p>
<a name="tab_InterfaceOperation_Mapping"></a><br><table border="1">
! <caption>Table 2-4. Mapping between Interface Operation Component Properties and XML Representation</caption>
<tbody>
<tr>
--- 1706,1719 ----
<div class="div3">
! <h4><a name="InterfaceOperation_Mapping"></a>2.4.4 Mapping Interface Operation's XML Representation to
Component Properties</h4>
<p>The mapping between the properties of the Interface
Operation component (see <a href="#InterfaceOperation_details"><b>2.4.1 The Interface Operation Component</b></a>) and the XML
! Representation of the <code>operation</code> <em>element information item</em> (see <a href="#InterfaceOperation_XMLRep"><b>2.4.3 XML Representation of Interface Operation Component</b></a>) is as described in
! <a href="#tab_InterfaceOperation_Mapping">Table 2-5</a>. </p>
<a name="tab_InterfaceOperation_Mapping"></a><br><table border="1">
! <caption>Table 2-5. Mapping between Interface Operation Component Properties and XML Representation</caption>
<tbody>
<tr>
***************
*** 1559,1788 ****
</div>
- <div class="div3">
-
- <h4><a name="RPCStyle"></a>2.4.4 RPC Style</h4>
-
- <p>The RPC style is selected by assigning to an Interface
- Operation component's {style} property the value
- <em>http://www.w3.org/@@@@/@@/wsdl/style/rpc</em>.</p>
-
- <p>The RPC style MUST NOT be used for Interface Operation
- components whose {message exchange pattern} property has a
- value other than 'http://www.w3.org/@@@@/@@/wsdl/in-only' or 'http://www.w3.org/@@@@/@@/wsdl/in-out'.</p>
-
- <p>Use of this value indicates that XML Schema [<cite><a href="#XMLSchemaP1">XML Schema: Structures</a></cite>] was used to define the schemas of the
- {element} properties of all {message reference} components of
- the Interface Operation component. Those schemas MUST adhere
- to the rules below.</p>
-
- <p>Note that if the Interface Operation component uses the
- {message exchange pattern} 'http://www.w3.org/@@@@/@@/wsdl/in-only' then there is
- no output element and hence the rules which refer to the
- output element do not apply.</p>
-
- <ul>
-
- <li><p> The content model of input and output {element}
- elements are defined using a complex type that contains a
- sequence from XML Schema.</p></li>
-
- <li><p> The sequence MUST only contain elements. It
- MUST NOT contain other structures such as
- xs:choice.</p></li>
-
- <li><p>The sequence MUST contain only local element
- children. Note that these child elements MAY contain the
- following attributes: nillable, minOccurs and
- maxOccurs.</p></li>
-
- <li><p>The LocalPart of input element's QName MUST be
- the same as the Interface operation component's
- name.</p></li>
-
- <li><p> The LocalPart of the output element's QName is
- obtained by concatenating the name of the operation and
- the string value "Response",
- i.e. concat(operation/@name,"Response").</p></li>
-
- <li><p>Input and output elements MUST both be in the
- same namespace.</p></li>
-
- <li><p> The complex type that defines the body of an
- input or an output element MUST NOT contain any
- attributes.</p></li>
-
- <li><p> If elements with the same qualified name appear
- as children of both the input and output elements, then
- they MUST both be declared using the same type.</p></li>
-
- <li><p>The input or output sequence MUST NOT contain
- multiple children elements declared with the same
- name.</p></li>
-
- </ul>
- <div class="div4">
-
- <h5><a name="InterfaceOperation_RPC_Signature_Definition"></a>2.4.4.1 <code>wrpc:signature</code> Extension</h5>
-
- <p>The <code>wrpc:signature</code> extension AII MAY be be used in conjunction with
- the RPC style to describe the exact signature of the function represented
- by an operation that uses the RPC style.</p>
-
- <p>When present, the <code>wrpc:signature</code> extension contributes the following
- property to the interface operation component it is applied to:</p>
- <ul>
- <li><p>{rpc-signature} A (possibly empty) list of pairs <em>(q, t)</em> whose
- first component is of type <em>xs:QName</em> (as defined by [<cite><a href="#XMLNS">XML Namespaces</a></cite>])
- and whose second component is of type <em>xs:Token</em>
- (as defined by [<cite><a href="#XMLNS">XML Namespaces</a></cite>]). Values for the second component MUST be
- chosen among the following four:
- "#in", "#out", "#inout" "#return".</p></li>
-
- </ul>
- <p>
- The value of the {rpc-signature} property MUST satisfy the following conditions:
- </p>
- <ul>
- <li><p>The value of the first component of each pair <em>(q, t)</em> MUST
- be unique within the list.</p></li>
- <li><p>For each child element of the input and output messages of the operation,
- a pair <em>(q, t)</em> whose first component <em>q</em> is equal to
- the qualified name of that element MUST be present in the list, with the caveat
- that elements that appear with cardinality greater than one MUST be treated as
- as a single element.</p></li>
- <li><p>For each pair <em>(q, #in)</em>, there MUST be a child element of the
- input element with a name of <em>q</em> and there MUST NOT be a child element
- of the output element with the same name.</p></li>
- <li><p>For each pair <em>(q, #out)</em>, there MUST be a child element of the
- output element with a name of <em>q</em> and there MUST NOT be a child element
- of the input element with the same name.</p></li>
- <li><p>For each pair <em>(q, #inout)</em>, there MUST be a child element of the
- input element with a name of <em>q</em> and there MUST be a child element
- of the output element with the same name. Furthermore, those two elements MUST
- have the same type.</p></li>
- <li><p>For each pair <em>(q, #return)</em>, there MUST be a child element of the
- output element with a name of <em>q</em> and there MUST NOT be a child element
- of the input element with the same name.</p></li>
- </ul>
- <p>
- The function signature defined by a <code>wrpc:signature</code> extension is
- determined as follows:
- <ol>
- <li><p>Start with the value of the {rpc-signature} property, a (possibly empty)
- list of pairs of this form:</p>
- <p> <em>[(q0, t0), (q1, t1), ...]</em></p></li>
- <li><p>Filter the elements of this list into two lists, the first one <em>(L1)</em>
- comprising pairs
- whose <em>t</em> component is one of <em>{#in, #out, #inout}</em>,
- the second <em>(L2)</em> pairs
- whose <em>t</em> component is <em>#return</em>.</p>
- <p>For ease of visualization, let's denote the two lists as</p>
- <p> (L1) <em>[(a0, u0), (a1, u1),...]</em></p>
- <p>and</p>
- <p> (L2) <em>[(r0, #return), (r1, #return),...]</em></p>
- <p>respectively.</p></li>
- <li><p>Then the formal signature of the function is</p>
- <p> <em>f([d0] a0, [d1] a1, ...) => (r0, r1, ...)</em></p>
- <p>i.e.</p>
- <p>
- <ul>
- <li><p>the list of formal arguments to the function is <em>[a0, a1, ...]</em>;
- </p></li>
- <li><p>the direction of each formal argument <em>a</em> is one of
- <em>[in]</em>, <em>[out]</em>, <em>[inout]</em>,
- determined according to the value of its corresponding <em>u</em> token;
- </p></li>
- <li><p>the list of formal return parameters of the function is
- <em>[r0, r1, ...]</em>;</p></li>
- <li><p>each formal argument and formal return parameter is typed
- according to the type of the child element identified by it
- (unique per the conditions given above).</p></li>
- </ul>
- </p>
- </li>
- </ol>
- </p>
- </div>
-
- <div class="div4">
-
- <h5><a name="InterfaceOperation_RPC_Signature_XMLRep"></a>2.4.4.2 XML Representation of the <code>wrpc:signature</code> Extension</h5>
- <p>
- The XML representation for the RPC signature extension is an
- <em>attribute information item</em> with the following Infoset properties:
- </p>
- <ul>
- <li><p>A [local name] of <code>signature</code> </p></li>
- <li><p>A [namespace name] of "http://www.w3.org/@@@@/@@/wsdl/rpc"</p></li>
- </ul>
- <p>
- The type of the <code>name</code> <em>attribute information item</em> is a list type whose item type is
- the union of the <em>xs:QName</em> type and the subtype of
- the <em>xs:Token</em> type restricted to the following
- four values: "#in", "#out", "#inout",
- "#return". See <a href="#rpc-signature-xsd">Example 2-1</a> for
- a definition of this type.
- </p>
- <p>Additionally, each even-numbered item (0, 2, 4, ...) in the list
- MUST be of type <em>xs:QName</em> and each odd-numbered item (1, 3, 5, ...)
- in the list MUST be of type <em>xs:Token</em>.
- </p>
- <p></p>
- <p>
- <div class="exampleOuter">
- <p class="exampleHead" style="text-align: left"><a name="rpc-signature-xsd"></a><i><span>Example 2-1. </span>Definition of the wrpc:signature extension</i></p>
- <div class="exampleInner"><pre>
- <xs:attribute name="signature" type="wrpc:signatureType"/>
-
- <xs:simpleType name="signatureType">
- <xs:list itemType="wrpc:signatureItemType"/>
- </xs:simpleType>
-
- <xs:simpleType name="signatureItemType">
- <xs:union memberTypes="wrpc:directionToken xsd:QName"/>
- </xs:simpleType>
-
- <xs:simpleType name="directionToken">
- <xs:restriction base="xs:token">
- <xs:enumeration value="#in"/>
- <xs:enumeration value="#out"/>
- <xs:enumeration value="#inout"/>
- <xs:enumeration value="#return"/>
- </xs:restriction>
- </xs:simpleType>
-
- </pre></div>
- </div>
- </p>
- </div>
-
- <div class="div4">
-
- <h5><a name="InterfaceOperation_RPC_Signature_Mapping"></a>2.4.4.3 <code>wrpc:signature </code> Extension Mapping To Properties of an
- Interface Operation Component</h5>
-
- <p>A <code>wrpc:signature</code> extension <em>attribute information item</em> is mapped to the following
- property of the Interface Operation component (see <a href="#InterfaceOperation_details"><b>2.4.1 The Interface Operation Component</b></a>) defined by its [owner].</p>
-
- <a name="tab_InterfaceOperation_RPC_Signature_Mapping"></a><br><table border="1">
- <caption>Table 2-5. Mapping of a <code>wrpc:signature</code> Extension to Interface Operation Component Properties</caption>
- <tbody>
- <tr>
- <th rowspan="1" colspan="1">Property</th>
- <th rowspan="1" colspan="1">Mapping</th>
- </tr>
- <tr>
- <td rowspan="1" colspan="1">{rpc-signature}</td>
- <td rowspan="1" colspan="1"> A list of <em>(xs:QName, xs:Token)</em> pairs formed
- by grouping the items present in the actual value of the
- <code>wrpc:signature</code> <em>attribute information item</em> in the order in which they appear
- there.</td>
- </tr>
- </tbody>
- </table><br>
-
- </div>
-
- </div>
</div>
--- 1791,1794 ----
***************
*** 2949,2953 ****
<th rowspan="1" colspan="1">Mapping</th>
</tr>
-
<tr>
<td rowspan="1" colspan="1">{name}</td>
--- 2955,2958 ----
***************
*** 5398,5402 ****
</types>
! <interface name="<em>xs:NCName</em>" extends="<em>list of xs:QName</em>"? styleDefault="<em>xs:anyURI</em>"? >
<documentation />?
--- 5403,5407 ----
</types>
! <interface name="<em>xs:NCName</em>" extends="<em>list of xs:QName</em>"? styleDefault="<em>list of xs:anyURI</em>"? >
<documentation />?
***************
*** 5405,5409 ****
</fault>*
! <operation name="<em>xs:NCName</em>" pattern="<em>xs:anyURI</em>" style="<em>xs:anyURI</em>"? safe="<em>xs:boolean</em>"? >
<documentation />?
--- 5410,5414 ----
</fault>*
! <operation name="<em>xs:NCName</em>" pattern="<em>xs:anyURI</em>" style="<em>list of xs:anyURI</em>"? safe="<em>xs:boolean</em>"? >
<documentation />?
***************
*** 6383,6386 ****
--- 6388,6396 ----
<td rowspan="1" colspan="1">20040702</td>
<td rowspan="1" colspan="1">SW</td>
+ <td rowspan="1" colspan="1">Made operation/@style be a list of URIs.</td>
+ </tr>
+ <tr>
+ <td rowspan="1" colspan="1">20040702</td>
+ <td rowspan="1" colspan="1">SW</td>
<td rowspan="1" colspan="1">Had forgotten to map to the {type} property of binding.</td>
</tr>
Index: wsdl20.xml
===================================================================
RCS file: /sources/public/2002/ws/desc/wsdl20/wsdl20.xml,v
retrieving revision 1.94
retrieving revision 1.95
diff -C2 -d -r1.94 -r1.95
*** wsdl20.xml 2 Jul 2004 06:09:55 -0000 1.94
--- wsdl20.xml 2 Jul 2004 07:02:22 -0000 1.95
***************
*** 783,789 ****
<p>
The type of the <att>styleDefault</att> &AII; is
! <emph>xs:anyURI</emph>. Moreover, the value of the
! <att>styleDefault</att> &AII;, if present, MUST be
! an absolute URI (see <bibref ref="RFC2396"/>).
</p>
--- 783,789 ----
<p>
The type of the <att>styleDefault</att> &AII; is
! <emph>list of xs:anyURI</emph>. Moreover, the value of the
! <att>styleDefault</att> &AII;, if present, MUST contain
! absolute URIs (see <bibref ref="RFC2396"/>).
</p>
***************
*** 1184,1192 ****
sends. (See <specref ref="FaultReference"/>.)</p></item>
! <item><p> {style} A URI identifying the rules that were
! used to construct the {element} properties of {message
! references}. (See <specref
! ref="InterfaceOperationStyle"/>.) This URI MUST be an
! absolute URI (see <bibref ref="RFC2396"/>).</p></item>
<item><p>{safety} A boolean indicating whether the
--- 1184,1192 ----
sends. (See <specref ref="FaultReference"/>.)</p></item>
! <item><p> {style} A list of URIs identifying the rules
! that were used to construct the {element} properties of
! {message references}. (See <specref
! ref="InterfaceOperationStyle"/>.) These URIs MUST be
! absolute URIs (see <bibref ref="RFC2396"/>).</p></item>
<item><p>{safety} A boolean indicating whether the
***************
*** 1256,1268 ****
<p>If the {style} property of an Interface Operation component
! has a value then that value (a URI) implies the rules that
were used to define the {element} properties (or other
property which defines the content of the message properties;
see <specref ref="other-types"/>) of <emph>all</emph> the
Message Reference components which are members of the {message
! references} property of that component. Note that the property MAY
! not have any value. If this property has a given value, then
! the rules implied by that value (such as rules that govern the
! schemas) MUST be followed or it is an error.</p>
<p>This specification defines the following pre-defined
--- 1256,1273 ----
<p>If the {style} property of an Interface Operation component
! has a value then that value (a list of URIs) implies the rules that
were used to define the {element} properties (or other
property which defines the content of the message properties;
see <specref ref="other-types"/>) of <emph>all</emph> the
Message Reference components which are members of the {message
! references} property of that component.</p>
!
! <p>Note that the property MAY not have any value. If this
! property has a given value, then the rules implied by that
! value (such as rules that govern the schemas) MUST be followed
! or it is an error. If list of QNames has more than one item in
! it, then the order of the URIs is NOT significant; the rules
! implied by ALL the URIs must be adhered to by the content
! definitions.</p>
<p>This specification defines the following pre-defined
***************
*** 1280,1283 ****
--- 1285,1513 ----
</div3>
+ <div3 id="RPCStyle">
+ <head>RPC Style</head>
+
+ <p>The RPC style is selected by assigning to an Interface
+ Operation component's {style} property the value
+ <emph>&RPC-STYLE;</emph>.</p>
+
+ <p>The RPC style MUST NOT be used for Interface Operation
+ components whose {message exchange pattern} property has a
+ value other than '&wsdl-ns;/in-only' or '&wsdl-ns;/in-out'.</p>
+
+ <p>Use of this value indicates that XML Schema <bibref
+ ref="XMLSchemaP1"/> was used to define the schemas of the
+ {element} properties of all {message reference} components of
+ the Interface Operation component. Those schemas MUST adhere
+ to the rules below.</p>
+
+ <p>Note that if the Interface Operation component uses the
+ {message exchange pattern} '&wsdl-ns;/in-only' then there is
+ no output element and hence the rules which refer to the
+ output element do not apply.</p>
+
+ <ulist>
+
+ <item><p> The content model of input and output {element}
+ elements are defined using a complex type that contains a
+ sequence from XML Schema.</p></item>
+
+ <item><p> The sequence MUST only contain elements. It
+ MUST NOT contain other structures such as
+ xs:choice.</p></item>
+
+ <item><p>The sequence MUST contain only local element
+ children. Note that these child elements MAY contain the
+ following attributes: nillable, minOccurs and
+ maxOccurs.</p></item>
+
+ <item><p>The LocalPart of input element's QName MUST be
+ the same as the Interface operation component's
+ name.</p></item>
+
+ <item><p> The LocalPart of the output element's QName is
+ obtained by concatenating the name of the operation and
+ the string value "Response",
+ i.e. concat(operation/@name,"Response").</p></item>
+
+ <item><p>Input and output elements MUST both be in the
+ same namespace.</p></item>
+
+ <item><p> The complex type that defines the body of an
+ input or an output element MUST NOT contain any
+ attributes.</p></item>
+
+ <item><p> If elements with the same qualified name appear
+ as children of both the input and output elements, then
+ they MUST both be declared using the same type.</p></item>
+
+ <item><p>The input or output sequence MUST NOT contain
+ multiple children elements declared with the same
+ name.</p></item>
+
+ </ulist>
+ <div4 id="InterfaceOperation_RPC_Signature_Definition">
+ <head><att>wrpc:signature</att> Extension</head>
+
+ <p>The <att>wrpc:signature</att> extension AII MAY be be used in conjunction with
+ the RPC style to describe the exact signature of the function represented
+ by an operation that uses the RPC style.</p>
+
+ <p>When present, the <att>wrpc:signature</att> extension contributes the following
+ property to the interface operation component it is applied to:</p>
+ <ulist>
+ <item><p>{rpc-signature} A (possibly empty) list of pairs <emph>(q, t)</emph> whose
+ first component is of type <emph>xs:QName</emph> (as defined by <bibref ref="XMLNS"/>)
+ and whose second component is of type <emph>xs:Token</emph>
+ (as defined by <bibref ref="XMLNS"/>). Values for the second component MUST be
+ chosen among the following four:
+ "#in", "#out", "#inout" "#return".</p></item>
+
+ </ulist>
+ <p>
+ The value of the {rpc-signature} property MUST satisfy the following conditions:
+ </p>
+ <ulist>
+ <item><p>The value of the first component of each pair <emph>(q, t)</emph> MUST
+ be unique within the list.</p></item>
+ <item><p>For each child element of the input and output messages of the operation,
+ a pair <emph>(q, t)</emph> whose first component <emph>q</emph> is equal to
+ the qualified name of that element MUST be present in the list, with the caveat
+ that elements that appear with cardinality greater than one MUST be treated as
+ as a single element.</p></item>
+ <item><p>For each pair <emph>(q, #in)</emph>, there MUST be a child element of the
+ input element with a name of <emph>q</emph> and there MUST NOT be a child element
+ of the output element with the same name.</p></item>
+ <item><p>For each pair <emph>(q, #out)</emph>, there MUST be a child element of the
+ output element with a name of <emph>q</emph> and there MUST NOT be a child element
+ of the input element with the same name.</p></item>
+ <item><p>For each pair <emph>(q, #inout)</emph>, there MUST be a child element of the
+ input element with a name of <emph>q</emph> and there MUST be a child element
+ of the output element with the same name. Furthermore, those two elements MUST
+ have the same type.</p></item>
+ <item><p>For each pair <emph>(q, #return)</emph>, there MUST be a child element of the
+ output element with a name of <emph>q</emph> and there MUST NOT be a child element
+ of the input element with the same name.</p></item>
+ </ulist>
+ <p>
+ The function signature defined by a <att>wrpc:signature</att> extension is
+ determined as follows:
+ <olist>
+ <item><p>Start with the value of the {rpc-signature} property, a (possibly empty)
+ list of pairs of this form:</p>
+ <p> <emph>[(q0, t0), (q1, t1), ...]</emph></p></item>
+ <item><p>Filter the elements of this list into two lists, the first one <emph>(L1)</emph>
+ comprising pairs
+ whose <emph>t</emph> component is one of <emph>{#in, #out, #inout}</emph>,
+ the second <emph>(L2)</emph> pairs
+ whose <emph>t</emph> component is <emph>#return</emph>.</p>
+ <p>For ease of visualization, let's denote the two lists as</p>
+ <p> (L1) <emph>[(a0, u0), (a1, u1),...]</emph></p>
+ <p>and</p>
+ <p> (L2) <emph>[(r0, #return), (r1, #return),...]</emph></p>
+ <p>respectively.</p></item>
+ <item><p>Then the formal signature of the function is</p>
+ <p> <emph>f([d0] a0, [d1] a1, ...) => (r0, r1, ...)</emph></p>
+ <p>i.e.</p>
+ <p>
+ <ulist>
+ <item><p>the list of formal arguments to the function is <emph>[a0, a1, ...]</emph>;
+ </p></item>
+ <item><p>the direction of each formal argument <emph>a</emph> is one of
+ <emph>[in]</emph>, <emph>[out]</emph>, <emph>[inout]</emph>,
+ determined according to the value of its corresponding <emph>u</emph> token;
+ </p></item>
+ <item><p>the list of formal return parameters of the function is
+ <emph>[r0, r1, ...]</emph>;</p></item>
+ <item><p>each formal argument and formal return parameter is typed
+ according to the type of the child element identified by it
+ (unique per the conditions given above).</p></item>
+ </ulist>
+ </p>
+ </item>
+ </olist>
+ </p>
+ </div4>
+
+ <div4 id="InterfaceOperation_RPC_Signature_XMLRep">
+ <head>XML Representation of the <att>wrpc:signature</att> Extension</head>
+ <p>
+ The XML representation for the RPC signature extension is an
+ &AII; with the following Infoset properties:
+ </p>
+ <ulist>
+ <item><p>A [local name] of <att>signature</att></p></item>
+ <item><p>A [namespace name] of "&wsdl-rpc-ns;"</p></item>
+ </ulist>
+ <p>
+ The type of the <att>name</att> &AII; is a list type whose item type is
+ the union of the <emph>xs:QName</emph> type and the subtype of
+ the <emph>xs:Token</emph> type restricted to the following
+ four values: "#in", "#out", "#inout",
+ "#return". See <specref ref='rpc-signature-xsd'/> for
+ a definition of this type.
+ </p>
+ <p>Additionally, each even-numbered item (0, 2, 4, ...) in the list
+ MUST be of type <emph>xs:QName</emph> and each odd-numbered item (1, 3, 5, ...)
+ in the list MUST be of type <emph>xs:Token</emph>.
+ </p>
+ <p></p>
+ <p>
+ <example id='rpc-signature-xsd'>
+ <head>Definition of the wrpc:signature extension</head>
+ <eg><![CDATA[
+ <xs:attribute name="signature" type="wrpc:signatureType"/>
+
+ <xs:simpleType name="signatureType">
+ <xs:list itemType="wrpc:signatureItemType"/>
+ </xs:simpleType>
+
+ <xs:simpleType name="signatureItemType">
+ <xs:union memberTypes="wrpc:directionToken xsd:QName"/>
+ </xs:simpleType>
+
+ <xs:simpleType name="directionToken">
+ <xs:restriction base="xs:token">
+ <xs:enumeration value="#in"/>
+ <xs:enumeration value="#out"/>
+ <xs:enumeration value="#inout"/>
+ <xs:enumeration value="#return"/>
+ </xs:restriction>
+ </xs:simpleType>
+ ]]>
+ </eg>
+ </example>
+ </p>
+ </div4>
+
+ <div4 id="InterfaceOperation_RPC_Signature_Mapping">
+ <head><att>wrpc:signature </att>Extension Mapping To Properties of an
+ Interface Operation Component</head>
+
+ <p>A <att>wrpc:signature</att> extension &AII; is mapped to the following
+ property of the Interface Operation component (see <specref
+ ref="InterfaceOperation_details"/>) defined by its [owner].</p>
+
+ <table border="1" id="tab_InterfaceOperation_RPC_Signature_Mapping">
+ <caption>Mapping of a <att>wrpc:signature</att> Extension to Interface Operation Component Properties</caption>
+ <tbody>
+ <tr>
+ <th>Property</th>
+ <th>Mapping</th>
+ </tr>
+ <tr>
+ <td>{rpc-signature}</td>
+ <td> A list of <emph>(xs:QName, xs:Token)</emph> pairs formed
+ by grouping the items present in the actual value of the
+ <att>wrpc:signature</att> &AII; in the order in which they appear
+ there.</td>
+ </tr>
+ </tbody>
+ </table>
+
+ </div4>
+
+ </div3>
+
<div3 id="InterfaceOperation_XMLRep">
<head>XML Representation of Interface Operation Component</head>
***************
*** 1288,1292 ****
name="<emph>xs:NCName</emph>"
pattern="<emph>xs:anyURI</emph>"
! style="<emph>xs:anyURI</emph>"?
safe="<emph>xs:boolean</emph>"? >
<documentation />?
--- 1518,1522 ----
name="<emph>xs:NCName</emph>"
pattern="<emph>xs:anyURI</emph>"
! style="<emph>list of xs:anyURI</emph>"?
safe="<emph>xs:boolean</emph>"? >
<documentation />?
***************
*** 1461,1465 ****
<p> The type of the <att>style</att> &AII; is
! <emph>xs:anyURI</emph>. </p>
</div4>
--- 1691,1695 ----
<p> The type of the <att>style</att> &AII; is
! <emph>list of xs:anyURI</emph>. </p>
</div4>
***************
*** 1574,1801 ****
</div3>
- <div3 id="RPCStyle">
- <head>RPC Style</head>
-
- <p>The RPC style is selected by assigning to an Interface
- Operation component's {style} property the value
- <emph>&RPC-STYLE;</emph>.</p>
-
- <p>The RPC style MUST NOT be used for Interface Operation
- components whose {message exchange pattern} property has a
- value other than '&wsdl-ns;/in-only' or '&wsdl-ns;/in-out'.</p>
-
- <p>Use of this value indicates that XML Schema <bibref
- ref="XMLSchemaP1"/> was used to define the schemas of the
- {element} properties of all {message reference} components of
- the Interface Operation component. Those schemas MUST adhere
- to the rules below.</p>
-
- <p>Note that if the Interface Operation component uses the
- {message exchange pattern} '&wsdl-ns;/in-only' then there is
- no output element and hence the rules which refer to the
- output element do not apply.</p>
-
- <ulist>
-
- <item><p> The content model of input and output {element}
- elements are defined using a complex type that contains a
- sequence from XML Schema.</p></item>
-
- <item><p> The sequence MUST only contain elements. It
- MUST NOT contain other structures such as
- xs:choice.</p></item>
-
- <item><p>The sequence MUST contain only local element
- children. Note that these child elements MAY contain the
- following attributes: nillable, minOccurs and
- maxOccurs.</p></item>
-
- <item><p>The LocalPart of input element's QName MUST be
- the same as the Interface operation component's
- name.</p></item>
-
- <item><p> The LocalPart of the output element's QName is
- obtained by concatenating the name of the operation and
- the string value "Response",
- i.e. concat(operation/@name,"Response").</p></item>
-
- <item><p>Input and output elements MUST both be in the
- same namespace.</p></item>
-
- <item><p> The complex type that defines the body of an
- input or an output element MUST NOT contain any
- attributes.</p></item>
-
- <item><p> If elements with the same qualified name appear
- as children of both the input and output elements, then
- they MUST both be declared using the same type.</p></item>
-
- <item><p>The input or output sequence MUST NOT contain
- multiple children elements declared with the same
- name.</p></item>
-
- </ulist>
- <div4 id="InterfaceOperation_RPC_Signature_Definition">
- <head><att>wrpc:signature</att> Extension</head>
-
- <p>The <att>wrpc:signature</att> extension AII MAY be be used in conjunction with
- the RPC style to describe the exact signature of the function represented
- by an operation that uses the RPC style.</p>
-
- <p>When present, the <att>wrpc:signature</att> extension contributes the following
- property to the interface operation component it is applied to:</p>
- <ulist>
- <item><p>{rpc-signature} A (possibly empty) list of pairs <emph>(q, t)</emph> whose
- first component is of type <emph>xs:QName</emph> (as defined by <bibref ref="XMLNS"/>)
- and whose second component is of type <emph>xs:Token</emph>
- (as defined by <bibref ref="XMLNS"/>). Values for the second component MUST be
- chosen among the following four:
- "#in", "#out", "#inout" "#return".</p></item>
-
- </ulist>
- <p>
- The value of the {rpc-signature} property MUST satisfy the following conditions:
- </p>
- <ulist>
- <item><p>The value of the first component of each pair <emph>(q, t)</emph> MUST
- be unique within the list.</p></item>
- <item><p>For each child element of the input and output messages of the operation,
- a pair <emph>(q, t)</emph> whose first component <emph>q</emph> is equal to
- the qualified name of that element MUST be present in the list, with the caveat
- that elements that appear with cardinality greater than one MUST be treated as
- as a single element.</p></item>
- <item><p>For each pair <emph>(q, #in)</emph>, there MUST be a child element of the
- input element with a name of <emph>q</emph> and there MUST NOT be a child element
- of the output element with the same name.</p></item>
- <item><p>For each pair <emph>(q, #out)</emph>, there MUST be a child element of the
- output element with a name of <emph>q</emph> and there MUST NOT be a child element
- of the input element with the same name.</p></item>
- <item><p>For each pair <emph>(q, #inout)</emph>, there MUST be a child element of the
- input element with a name of <emph>q</emph> and there MUST be a child element
- of the output element with the same name. Furthermore, those two elements MUST
- have the same type.</p></item>
- <item><p>For each pair <emph>(q, #return)</emph>, there MUST be a child element of the
- output element with a name of <emph>q</emph> and there MUST NOT be a child element
- of the input element with the same name.</p></item>
- </ulist>
- <p>
- The function signature defined by a <att>wrpc:signature</att> extension is
- determined as follows:
- <olist>
- <item><p>Start with the value of the {rpc-signature} property, a (possibly empty)
- list of pairs of this form:</p>
- <p> <emph>[(q0, t0), (q1, t1), ...]</emph></p></item>
- <item><p>Filter the elements of this list into two lists, the first one <emph>(L1)</emph>
- comprising pairs
- whose <emph>t</emph> component is one of <emph>{#in, #out, #inout}</emph>,
- the second <emph>(L2)</emph> pairs
- whose <emph>t</emph> component is <emph>#return</emph>.</p>
- <p>For ease of visualization, let's denote the two lists as</p>
- <p> (L1) <emph>[(a0, u0), (a1, u1),...]</emph></p>
- <p>and</p>
- <p> (L2) <emph>[(r0, #return), (r1, #return),...]</emph></p>
- <p>respectively.</p></item>
- <item><p>Then the formal signature of the function is</p>
- <p> <emph>f([d0] a0, [d1] a1, ...) => (r0, r1, ...)</emph></p>
- <p>i.e.</p>
- <p>
- <ulist>
- <item><p>the list of formal arguments to the function is <emph>[a0, a1, ...]</emph>;
- </p></item>
- <item><p>the direction of each formal argument <emph>a</emph> is one of
- <emph>[in]</emph>, <emph>[out]</emph>, <emph>[inout]</emph>,
- determined according to the value of its corresponding <emph>u</emph> token;
- </p></item>
- <item><p>the list of formal return parameters of the function is
- <emph>[r0, r1, ...]</emph>;</p></item>
- <item><p>each formal argument and formal return parameter is typed
- according to the type of the child element identified by it
- (unique per the conditions given above).</p></item>
- </ulist>
- </p>
- </item>
- </olist>
- </p>
- </div4>
-
- <div4 id="InterfaceOperation_RPC_Signature_XMLRep">
- <head>XML Representation of the <att>wrpc:signature</att> Extension</head>
- <p>
- The XML representation for the RPC signature extension is an
- &AII; with the following Infoset properties:
- </p>
- <ulist>
- <item><p>A [local name] of <att>signature</att></p></item>
- <item><p>A [namespace name] of "&wsdl-rpc-ns;"</p></item>
- </ulist>
- <p>
- The type of the <att>name</att> &AII; is a list type whose item type is
- the union of the <emph>xs:QName</emph> type and the subtype of
- the <emph>xs:Token</emph> type restricted to the following
- four values: "#in", "#out", "#inout",
- "#return". See <specref ref='rpc-signature-xsd'/> for
- a definition of this type.
- </p>
- <p>Additionally, each even-numbered item (0, 2, 4, ...) in the list
- MUST be of type <emph>xs:QName</emph> and each odd-numbered item (1, 3, 5, ...)
- in the list MUST be of type <emph>xs:Token</emph>.
- </p>
- <p></p>
- <p>
- <example id='rpc-signature-xsd'>
- <head>Definition of the wrpc:signature extension</head>
- <eg><![CDATA[
- <xs:attribute name="signature" type="wrpc:signatureType"/>
-
- <xs:simpleType name="signatureType">
- <xs:list itemType="wrpc:signatureItemType"/>
- </xs:simpleType>
-
- <xs:simpleType name="signatureItemType">
- <xs:union memberTypes="wrpc:directionToken xsd:QName"/>
- </xs:simpleType>
-
- <xs:simpleType name="directionToken">
- <xs:restriction base="xs:token">
- <xs:enumeration value="#in"/>
- <xs:enumeration value="#out"/>
- <xs:enumeration value="#inout"/>
- <xs:enumeration value="#return"/>
- </xs:restriction>
- </xs:simpleType>
- ]]>
- </eg>
- </example>
- </p>
- </div4>
-
- <div4 id="InterfaceOperation_RPC_Signature_Mapping">
- <head><att>wrpc:signature </att>Extension Mapping To Properties of an
- Interface Operation Component</head>
-
- <p>A <att>wrpc:signature</att> extension &AII; is mapped to the following
- property of the Interface Operation component (see <specref
- ref="InterfaceOperation_details"/>) defined by its [owner].</p>
-
- <table border="1" id="tab_InterfaceOperation_RPC_Signature_Mapping">
- <caption>Mapping of a <att>wrpc:signature</att> Extension to Interface Operation Component Properties</caption>
- <tbody>
- <tr>
- <th>Property</th>
- <th>Mapping</th>
- </tr>
- <tr>
- <td>{rpc-signature}</td>
- <td> A list of <emph>(xs:QName, xs:Token)</emph> pairs formed
- by grouping the items present in the actual value of the
- <att>wrpc:signature</att> &AII; in the order in which they appear
- there.</td>
- </tr>
- </tbody>
- </table>
-
- </div4>
-
- </div3>
</div2>
--- 1804,1807 ----
***************
*** 5388,5392 ****
</types>
! <interface name="<emph>xs:NCName</emph>" extends="<emph>list of xs:QName</emph>"? styleDefault="<emph>xs:anyURI</emph>"? >
<documentation />?
--- 5394,5398 ----
</types>
! <interface name="<emph>xs:NCName</emph>" extends="<emph>list of xs:QName</emph>"? styleDefault="<emph>list of xs:anyURI</emph>"? >
<documentation />?
***************
*** 5395,5399 ****
</fault>*
! <operation name="<emph>xs:NCName</emph>" pattern="<emph>xs:anyURI</emph>" style="<emph>xs:anyURI</emph>"? safe="<emph>xs:boolean</emph>"? >
<documentation />?
--- 5401,5405 ----
</fault>*
! <operation name="<emph>xs:NCName</emph>" pattern="<emph>xs:anyURI</emph>" style="<emph>list of xs:anyURI</emph>"? safe="<emph>xs:boolean</emph>"? >
<documentation />?
***************
*** 6387,6390 ****
--- 6393,6401 ----
<td>20040702</td>
<td>SW</td>
+ <td>Made operation/@style be a list of URIs.</td>
+ </tr>
+ <tr>
+ <td>20040702</td>
+ <td>SW</td>
<td>Had forgotten to map to the {type} property of binding.</td>
</tr>
Received on Friday, 2 July 2004 03:02:25 UTC