- From: Hugo Haas via cvs-syncmail <cvsmail@w3.org>
- Date: Thu, 17 Mar 2005 17:19:09 +0000
- To: public-ws-desc-eds@w3.org
Update of /sources/public/2002/ws/desc/wsdl20
In directory homer:/tmp/cvs-serv6203
Modified Files:
wsdl20-adjuncts.xml wsdl20-adjuncts.html
Log Message:
Added RPC style
Index: wsdl20-adjuncts.html
===================================================================
RCS file: /sources/public/2002/ws/desc/wsdl20/wsdl20-adjuncts.html,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** wsdl20-adjuncts.html 16 Mar 2005 23:13:34 -0000 1.3
--- wsdl20-adjuncts.html 17 Mar 2005 17:19:06 -0000 1.4
***************
*** 1,4 ****
! <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
! <html lang="en"><head><META http-equiv="Content-Type" content="text/html; charset=utf-8"><title>Web Services Description Language (WSDL) Version 2.0 Part 2: Adjuncts</title><style type="text/css">
code { font-family: monospace; }
--- 1,15 ----
! <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
! "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
! <html lang="en" xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
! <head>
! <meta name="generator" content=
[...9247 lines suppressed...]
! to Part1 for a longer introduction</td>
! </tr>
! <tr>
! <td rowspan="1" colspan="1">20020221</td>
! <td rowspan="1" colspan="1">JJM</td>
! <td rowspan="1" colspan="1">Renamed to "Part 2: Bindings"</td>
! </tr>
! <tr>
! <td rowspan="1" colspan="1">20020221</td>
! <td rowspan="1" colspan="1">JJM</td>
! <td rowspan="1" colspan="1">Created from
! http://www.w3.org/TR/2001/NOTE-wsdl-20010315</td>
! </tr>
! </tbody>
! </table>
! <br /></div>
! </div>
! </div>
! </body>
! </html>
Index: wsdl20-adjuncts.xml
===================================================================
RCS file: /sources/public/2002/ws/desc/wsdl20/wsdl20-adjuncts.xml,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** wsdl20-adjuncts.xml 16 Mar 2005 17:40:56 -0000 1.3
--- wsdl20-adjuncts.xml 17 Mar 2005 17:19:06 -0000 1.4
***************
*** 578,581 ****
--- 578,810 ----
constraints on Interface Operations bound.
</p>
+
+ <div2 id="RPCStyle">
+ <head>RPC Style</head>
+
+ <p>The RPC style is selected by assigning to an Interface
+ Operation component's &interface_operation-style-p; property the value
+ <emph>&RPC-STYLE;</emph>.</p>
+
+ <p>The RPC style MUST NOT be used for Interface Operation
+ components whose &interface_operation-message_exchange_pattern-p; property has a
+ value other than '&wsdl-ns;/in-only' or '&wsdl-ns;/in-out'.</p>
+
+ <p>When this value is used, the associated messages MUST conform to
+ the rules below, described using XML Schema <bibref ref="XMLSchemaP1"/>.
+ Note that operations containing messages described by other type systems
+ may also indicate use of the RPC style, as long as they are constructed
+ in such a way as to follow these rules.</p>
+
+ <p>If the Interface Operation component uses a
+ &interface_operation-message_exchange_pattern-p; for which there is no output
+ element, such as '&wsdl-ns;/in-only', then the conditions
+ stated below that refer to output elements MUST be considered
+ to be implicitely satisfied.</p>
+
+ <ulist>
+
+ <item><p> The content model of input and output &message_reference-element-p;
+ elements MUST be 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”.</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>
+ <div3 id="InterfaceOperation_RPC_Signature_Definition">
+ <head><att>wrpc:signature</att> Extension</head>
+
+ <p>The <att>wrpc:signature</att> extension &AII; MAY be used in conjunction with
+ the RPC style to describe the exact signature of the function represented
+ by an operation that uses the RPC style.</p>
+
+ <p>When present, the <att>wrpc:signature</att> extension contributes the following
+ property to the interface operation component it is applied to:</p>
+ <ulist>
+ <item><p>{rpc-signature} REQUIRED. A list of pairs <emph>(q, t)</emph>
+ whose first component is of type <emph>xs:QName</emph> and whose second component is of type
+ <emph>xs:token</emph>.
+ 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:
+ </p>
+ <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 <emph>d</emph> 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>
+ </div3>
+
+ <div3 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 the subtype of <emph>xs:token</emph> described in the
+ previous paragraph.
+ </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>
+ </div3>
+
+ <div3 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 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>
+ <col width="20%" />
+ <col width="80%" />
+ <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>
+
+ </div3>
+
+ </div2>
+
+
+
<div2 id="_operation_uri_style">
<head>URI Style</head>
***************
*** 3455,3458 ****
--- 3684,3692 ----
-->
<tr>
+ <td>20050317</td>
+ <td>HH</td>
+ <td>Incorporated RPC style</td>
+ </tr>
+ <tr>
<td>20050316</td>
<td>HH</td>
Received on Thursday, 17 March 2005 17:19:10 UTC