W3C home > Mailing lists > Public > xml-dist-app@w3.org > March 2002

Clarification on use of encodingStyle attribute

From: Henrik Frystyk Nielsen <henrikn@microsoft.com>
Date: Tue, 19 Mar 2002 11:17:40 -0800
Message-ID: <79107D208BA38C45A4E45F62673A434D06DED879@red-msg-07.redmond.corp.microsoft.com>
To: <xml-dist-app@w3.org>, <soap@zaks.demon.co.uk>, "Martin Gudgin" <marting@develop.com>

Simon,

In [2] you point out some discrepancy between the schema and the spec
text as to where the SOAP encodingStyle attribute can appear in a SOAP
message.

IMO, the purpose of the encodingStyle attribute is to enable to indicate
a *change* in any encoding used. If there is *no* encodingStyle
attribute then we say nothing, if there is, then it indicates a change
to that encoding. If there are multiple encodingStyle attributes then
they each represent a change of encodingStyle.

In order for this to work, it is important for the encodingStyle
attribute to be nestable - that is, one has to be able to change
encoding at any point. For example, if I have a struct with some data
that follows my own encoding in the middle of something that uses the
SOAP encoding, I would want to be able to say:

<env:Body encodingStyle="http://www.w3.org/2001/12/soap-encoding">
  <m:TradePrice xmlns:m="http://example.org/2001/06/quotes">
    <PriceAndVolume>
      <LastTradePrice>34.5</LastTradePrice>
      <DayVolume>10000</DayVolume>
    </PriceAndVolume>
    <p:Blob xmlns:p="http://example.org/blobs" env:encodingStyle="">
      <...> no encoding here </...>
    </p:Blob>
  </m:GetLastTradePriceResponse>
</env:Body>

This means that <TradePrice> is a struct, <Blob> is an outbound edge but
the *value* of the terminating node is *not* represented using SOAP
encoding but in this case by no encoding as indicated by the
encodingStyle attribute. In other words, the encodingStyle attribute
indicates a change with respect to the contents (value) of the node, not
the edge.

As a result, it makes sense to allow encodingStyle on Body - it doesn't
apply to the Body element information item but to its contents. On the
other hand, it doesn't make sense to put the attribute on the Envelope
and Header element information items as Header blocks don't follow any
particular encoding style and neither does Envelope contents.

Btw, I don't think some of our examples in [3] are quite right with
respect to the use of the encodingStyle attribute.

Makes sense?

Henrik Frystyk Nielsen
mailto:henrikn@microsoft.com

[1]
http://lists.w3.org/Archives/Member/w3c-xml-protocol-wg/2002Feb/0161.htm
l
[2] http://lists.w3.org/Archives/Public/xml-dist-app/2002Jan/0274.html
[3]
http://www.w3.org/2000/xp/Group/1/10/11/soap12-part2.html#httpexamples
Received on Tuesday, 19 March 2002 14:18:13 GMT

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