- From: FABLET Youenn <youenn.fablet@crf.canon.fr>
- Date: Wed, 10 Sep 2003 10:09:46 +0200
- To: www-ws-desc@w3.org
At last f2f, we do not really go deep in the discussion of the addition
of the @headers attribute (or did I miss some parts of the discussion).
I have some questions and comment regarding this particular attribute.
First, I am not sure to understand what type of data to put in the
@headers attribute. Because it is at the interface level, data pointed
via @headers should be application data (right?)
But then, why not define this @headers application data within the @body
data. Is it only for serialization matter ? In this case, the
abstract/concrete layering seems a little bit broken ? Or is there some
distinction between @headers (application) data and @body (application)
data ?
More generally, we get rid of the part construct and it seems to me that
now, we have a special (@body) part and other (@headers) parts. If it is
all application data, should not we just have a unique @body containing
all application data? If @headers is really needed, shouldn't we
refactor the whole @headers element lists in a unique type. This unique
type being then able to express multiplicity, optionality,
cooccurence... rules of headers (same pb as expressed with the part
construct) ?
In the case of the soap protocol, serialization seems obvious: @headers
map to soap header blocks. In the case of the http binding, however this
seems not that obvious. One could say that @headers can map to http
headers but then how would take place the real mapping ? The proposal
was if I remember correctly:
- Use the qname of each element pointed by @headers as the http
header key
- Use the value of each element pointed by @headers as the http
header value
Is this the correct proposal?
Personaly, I find this a little bit odd as we are serializing
xml/xsd-typed data in an unusual way.
Last comment, using the following example:
- a web service W has two binding: an http and a soap binding
- web service W wants to send a complex xml @body data and a complex
xml @header data with both bindings
- with the soap binding, it can describe the abstract operation
using a simple and cool way :-)
<output body="bodyData" headers="headerData">
- with the http binding, it cannot reuse (?) this abstract
description because it won't be able to serialize "headerData" as an
http header (it is complex xml data)
- the only solution (?) is then to have another operation
<output body="bodyData2"> bodyData2 being the aggregation of bodyData
and headerData.
=> we loose some reusability of the operation construct which
was possible before with the part construct :-(
To conclude:
- what are the difference between @headers data and @body data at
the application level ?
- is @headers really needed ?
- if @headers is needed, shouldn't this attribute point to a unique
aggregation type (today it is a list of types)?
- Do we really loose reusability of the abstract operation construct
having both a @body and @header attributes?
Bye,
Youenn
Received on Wednesday, 10 September 2003 04:10:02 UTC