W3C home > Mailing lists > Public > www-ws-desc@w3.org > June 2004

RE: Application Data Feature and related stuff

From: Glen Daniels <gdaniels@sonicsoftware.com>
Date: Sun, 27 Jun 2004 01:30:36 -0400
Message-ID: <80A43FC052CE3949A327527DCD5D6B274D8A44@MAIL01.bedford.progress.com>
To: <paul.downey@bt.com>, <asirv@webmethods.com>, <www-ws-desc@w3.org>


Our original thinking on this was that we would use SOAP 1.2 as a design
center, and then bindings could potentially interpret the
soap12:mustUnderstand attribute in the schema in their own ways -
thinking about it more, I think your suggestion is better.  We should
also do the same with wsdl:role if we see a need to set that.

--Glen 

> -----Original Message-----
> From: paul.downey@bt.com [mailto:paul.downey@bt.com] 
> Sent: Thursday, June 24, 2004 11:01 AM
> To: asirv@webmethods.com; Glen Daniels; www-ws-desc@w3.org
> Subject: RE: Application Data Feature and related stuff
> 
> This would be a problem for us too. 
> 
> I propose WSDL extends schema with a wsdl:mustUnderstand, 
> which the binding then populates with the appropriate 
> attribute and namespace,
> e.g.:
> 
>     <element name="isGoldClubMember" 
>             type="xs:boolean"
> 		wsdl:mustUnderstand="true"/>
> 
> Paul
> 
> 
> 
> -----Original Message-----
> From: www-ws-desc-request@w3.org [mailto:www-ws-desc-request@w3.org]On
> Behalf Of Asir Vedamuthu
> Sent: 24 June 2004 13:54
> To: 'Glen Daniels'; WS-Description WG
> Subject: RE: Application Data Feature and related stuff
> 
> 
> 
> Glen,
> 
> I have one comment:
> 
> > As a SOAP sender, if the property
> > http://www.w3.org/@@@@/@@/features/AD/data has a value then each of 
> > the top-level child element information items in the value 
> SHOULD [ed:
> > MUST?] be turned into a SOAP header.  The elements are serialized 
> > according to their schemas, which might include the SOAP 
> > "mustUnderstand" or "role"
> > attributes, which will have the usual meaning in the resultant 
> > headers.
> 
> > <attribute xmlns:soap="http://www.w3.org/2003/05/soap-envelope"
> >    ref="soap:mustUnderstand"
> >    fixed="true"/>
> 
> This is SOAP 12 binding specific information at the abstract 
> level, <types/>. I am wondering if we could avoid that. 
> Embedding binding specific info at the abstract level takes 
> away re-usability. In this specific case, I would like to 
> re-use it for SOAP 11 binding.
> 
> Asir
> 
> -----Original Message-----
> From: www-ws-desc-request@w3.org 
> [mailto:www-ws-desc-request@w3.org] On Behalf Of Glen Daniels
> Sent: Wednesday, June 23, 2004 1:05 PM
> To: WS-Description WG
> Subject: Application Data Feature and related stuff
> 
> 
> 
> 
> WSDL'ers:
> 
> The following is the latest version of the application data 
> feature, associated SOAP module, and HTTP binding feature 
> that Dave, Yaron and I have been working on.  We believe we 
> have come to substantial agreement about the structure and 
> mechanism here, but there are still a few loose ends we'd 
> like to sort out with the group (see the ed notes below).
> 
> Comments appreciated, and apologies for taking so long to get 
> this out.
> 
> Thanks,
> --Glen
> 
> 
> = Application Data (AD) Feature =
> 
> This feature is identified with the URI
> http://www.w3.org/@@@@/@@/features/AD
> 
> == Operation ==
> 
> This feature exists in order to enable the description of 
> application-defined additional data declarations outside of 
> the normal data channel (e.g. the SOAP body). The senders 
> takes the value of the property 
> http://www.w3.org/@@@@/@@/features/AD/data, which is defined 
> below, and passes it to the receiver in a manner to be 
> defined by the particular bindings/modules implementing this 
> specification.
> 
> = AD/data Property =
> 
> This property is identified with the URI 
> http://www.w3.org/@@@@/@@/features/AD/data.
> 
> == Description ==
> 
> The data property consists of a sequence of elements, each of 
> which represents an individual piece of application data.  
> Implementations of this feature must ensure that the runtime 
> value of this property is correctly transferred from the 
> sender to the receiver.
> 
> Here is an example of using the data property in a WSDL:
> 
> <types>
>  <schema targetNamespace="http://foo"
>          xmlns:xs="http://www.w3.org/2001/XMLSchema"
>          xmlns="http://www.w3.org/2001/XMLSchema">
>   <import namespace="http://www.w3.org/2003/05/soap-envelope"/>
>   <!-- Define the data type we'll use later -->
>   <complexType name="myDataType">
>    <sequence>
> 
>     <!-- These elements are our data -->
>     <element name="isGoldClubMember">
>      <complexType>
>       <simpleContent>
>        <extension base="xs:boolean"/>
>        <attribute xmlns:soap="http://www.w3.org/2003/05/soap-envelope"
>                   ref="soap:mustUnderstand"
>                   fixed="true"/>
>       </simpleContent>
>      </complexType>
>     </element>
> 
>     <element name="promotionalCode"
>              type="xs:string"
>              minOccurs="0"/>
> 
>    </sequence>
>   </complexType>
>  </schema>
> </types>
> <interface name="customerService">
>  <operation name="reserveCar">
>   <input element="myNS:reserveCarRequest">
>    <property uri="http://www.w3.org/@@@@/@@/features/AD/data">
>     <constraint xmlns:foo="http://foo">
>      foo:myDataType
>     </constraint>
>    </property>
>   </input>
>  </operation>
> </interface>
> 
> This example defines two pieces of application data, and 
> associates them with the input message of the "reserveCar" 
> operation.  Notice that the "promotionalCode" element is 
> optional (minOccurs="0"), and that the "isGoldClubMember" 
> element has fixed the value of the SOAP 1.2 "mustUnderstand" 
> element to "true".
> 
> 
> 
> = Application Data Module =
> 
> This module is identified with the URI
> http://www.w3.org/@@@@/@@/modules/AD
> 
> == Features Implemented ==
> 
> This module implements the feature
> http://www.w3.org/@@@@/@@/features/AD.
> 
> == Operation ==
> 
> This module specifies how to transmit "out of band" 
> application data, as defined in the Application Data feature, 
> as SOAP headers.
> 
> As a SOAP sender, if the property
> http://www.w3.org/@@@@/@@/features/AD/data has a value then 
> each of the top-level child element information items in the 
> value SHOULD [ed:
> MUST?] be turned into a SOAP header.  The elements are 
> serialized according to their schemas, which might include 
> the SOAP "mustUnderstand" or "role" attributes, which will 
> have the usual meaning in the resultant headers.  SOAP 
> senders SHOULD also add an additional header, with namespace 
> "http://www.w3.org/@@@@/@@/modules/AD" and local name 
> "dataHeaders" - this header contains a list of element 
> QNames, one for each application data header created in the 
> first step.
> 
> It is the responsibility of the receiving node to determine 
> which, if any, SOAP headers will populate the 
> http://www.w3.org/@@@@/@@/features/AD/data property.  
> Typically this will be accomplished via using some metadata, 
> such as an understanding of a <constraint> specified in WSDL, 
> or out-of-band agreements.  If the "dataHeaders" SOAP header 
> (described above) is present, the QNames inside that header 
> indicate which other headers are application data.
> The contents of each SOAP header identified as application 
> data will be placed in a child element of the data property 
> [ed: should we define a particular "wrapper" element here as 
> the top level one?].
> 
> 
> === The following gets added to the HTTP binding === 
> 
> == Features Implemented ==
> 
> The HTTP binding implements the feature
> http://www.w3.org/@@@@/@@/features/AD.
> 
> = Operation = 
> 
> This section specifies how to transmit "out of band" 
> application data, defined in the Application Data feature, as 
> HTTP headers.
> 
> As an HTTP sender, if the property
> http://www.w3.org/@@@@/@@/features/AD/data has a value then 
> each of the top-level child element information items 
> indicates a possible element information item that SHOULD [ed:
> MUST?] be turned into an HTTP header.  The http header name 
> is serialized from the element information item local name.  
> The http header content is serialized from the element 
> information item value.
> The data elements should only be "xs:string" type, including 
> xs:anyURI.
> Any attributes on data elements are ignored.
> Any complex data types are ignored.  Where the element 
> information item contains content that cannot be directly 
> encoded per the HTTP specification, it MUST be escaped.
> 
> It is the responsibility of the receiving node to determine 
> which, if any, HTTP headers will populate the 
> http://www.w3.org/@@@@/@@/features/AD/data property.  
> Typically this will be accomplished via using some metadata, 
> such as an understanding of a <constraint> specified in WSDL, 
> or out-of-band agreements.  The contents of each such HTTP 
> header will be placed in a child element of the data property 
> [should we define a particular "wrapper" element here as the 
> top level one?].  Each child element information item is 
> generated by using the http header name as the element 
> information item local name [ed: should we define a 
> particular namespace?] and the http header value as the 
> element information item value.  Where the HTTP header 
> contains content that cannot be directly encoded in the 
> element information item, it MUST be escaped.
> 
> [ed: any discussion about escaping rules?]
> 
> 
> 
Received on Sunday, 27 June 2004 01:30:46 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 7 December 2009 10:58:31 GMT