- 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