- From: Burdett, David <david.burdett@commerceone.com>
- Date: Fri, 9 May 2003 15:39:38 -0700
- To: "'noah_mendelsohn@us.ibm.com'" <noah_mendelsohn@us.ibm.com>, Elliotte Rusty Harold <elharo@metalab.unc.edu>
- Cc: xml-dev@lists.xml.org, xml-dist-app@w3.org
Noah
The SOAP PR spec [1] states a SOAP message must not contain: document type
declarations, processing instructions or comments before the main document
element.
A question. What should you do if the XML that you want to transport in the
SOAP Body contains this type of information and you want this information to
reach the ultimate destination so that it can be used?
Was this discussed by the group?
Regards
David
[1] http://www.w3.org/TR/soap12-part1/#soapenv
-----Original Message-----
From: noah_mendelsohn@us.ibm.com [mailto:noah_mendelsohn@us.ibm.com]
Sent: Friday, May 09, 2003 11:13 AM
To: Elliotte Rusty Harold
Cc: xml-dev@lists.xml.org; xml-dist-app@w3.org
Subject: Re: New subset in latest SOAP draft
(I've left off xmlp-comments on the distribution, as it's generally not
for discussion)
Elliotte Rusty Harold writes:
> The recently posted proposed recommendation of SOAP
> Version 1.2 Messaging Framework
> <http://www.w3.org/TR/soap12-part1/#soapinterminfoset>
> further restricts the legal content of SOAP messages
> that what is generally known:
>
> Comment information items MAY appear as children and/or
> descendants of the [document element] element
> information item but not before or after that element
> information item.
>
> In other words, SOAP messages cannot contain comments
> in either the prolog or epilog of a document. This was
> inferrable from the previous December 2002 working
> draft, but was stated in much less obvious language.
(speaking for myself and not officially for the WG)
By definition, SOAP messages come into existence as Infosets (typically
synthetic infosets [1]) at the original sender, and must be formulated
according to the rules of the SOAP recommendation. As you observe, the PR
draft makes it allegal to include comments except as descendents of the
[document element]. An Infoset that has a comment elsewhere is by
definition not a SOAP envelope. Also, the Infoset Recommendation does not
define concepts of prolog and epilog (though it refers in passing to the
XML 1.0 prolog and epilog constructs) It's thus probably a little more
precise to rephrase the first sentence of your paragraph above as: "if
serialialized as XML 1.x documents, SOAP envelopes will not contain
comments in either the prolog or the epilogue", and this is true.
> If I had to guess, I'd say this is an attempt to allow
> multiple SOAP messages to be stuffed into a single file
> or stream with clear boundaries between them.
Speaking only for my personal understanding of the group's motives, I
don't think so. I suppose you could build MEPs and/or bindings to do such
"stuffing", but I don't think we discussed that at all, or that it had
anything to do with the comment decision.
I think the feeling was: lots of people will build lots of software to
create, store, relay, and manipulate SOAP messages. Some of those
implementations will use XML 1.0 serializations (as the HTTP binding
does), but others will use in-memory data structures, alternate
serializations, special-purpose XML databases etc. Allowing comments
outside the document element is just one more complication for such
implementations, and it's not clear that it adds much value. We expect
comments to be used primarily for debugging and readability information
(since the vast majority of SOAP messages will be automatically
generated), or in cases where existing XML fragments are "clipped into" a
body or header (and our rules do allow comments there, and even call for
them to be preserved when relayed, if I recall.) I think we felt that
any debugging or explanatory information applying to the whole message
could as well be carried within the root element. This gives us a nice
invariant that the envelope itself is always the single information item,
which is a very convenient abstraction for software such as durable
message queueing systems that may wish to use XML databases as an
implementation technology
I think that's a fair summary of at least the sorts of things we
considered. As I've said several times, my view is that SOAP is an
application of XML, not a redefinition of it. Nothing in the XML spec
says that generators of XML documents or particular applications of XML
must use all the features of the language. Parsers claiming conformance
must support all features, but that's not the issue here. All SOAP
content is generated per the SOAP spec. If serialized in the obvious
manner to XML 1.0, it can invariably be parsed by any conforming XML 1.0
processor.
> Whether
> that's a good idea or not, I don't think such a major
> change should be tossed out without further analysis
> and debate. This could introduce problems for various
> tools such as editors that like to stick a "credit"
> comment in the prolog of a document. This spec should
> go back to last call WD.
It's not clear to me that the design point is for SOAP messages to be
generated by arbitrary applications (e.g. interactive editors) that stick
arbitary content into the messages. (I don't mean "arbitrary" to be taken
as pejorative.) If you use XML tools, then you must use tools that give
you enough control to generate the desired content. For some purposes,
extra comments are OK. For some purposes changing single to double quotes
on attribute values is OK, etc., etc., yet there are situations in which
none of these liberties is acceptable.
So, I don't think you can say "SOAP is broken because I want to use
editors that insert arbitrary comments to create it." There's nothing in
the XML Recommendation that says every application of XML must allow
comments (or PIs or whatever) at arbitrary points in the document, or that
the application must be unaffected by such comments (for example, one of
the DSIg canonicalizations considers comments significant to the
signature.)
Thus, I personally disagree that what we've done is a mistake, or that it
should take us back to WD, but I certainly think it's appropriate that you
raise the issue given your feelings. I'm sure that we and the others
involved in making a decision in moving beyond PR will consider the issue
seriously. Thank you.
[1] http://www.w3.org/TR/xml-infoset/#intro.synthetic
------------------------------------------------------------------
Noah Mendelsohn Voice: 1-617-693-4036
IBM Corporation Fax: 1-617-693-8676
One Rogers Street
Cambridge, MA 02142
------------------------------------------------------------------
Elliotte Rusty Harold <elharo@metalab.unc.edu>
Sent by: xml-dist-app-request@w3.org
05/08/03 07:45 AM
To: xml-dev@lists.xml.org
cc: xml-dist-app@w3.org, xmlp-comments@w3.org, (bcc: Noah
Mendelsohn/Cambridge/IBM)
Subject: New subset in latest SOAP draft
The recently posted proposed recommendation of SOAP Version 1.2
Messaging Framework
<http://www.w3.org/TR/soap12-part1/#soapinterminfoset> further
restricts the legal content of SOAP messages that what is generally
known:
Comment information items MAY appear as children and/or descendants
of the [document element] element information item but not before or
after that element information item.
In other words, SOAP messages cannot contain comments in either the
prolog or epilog of a document. This was inferrable from the previous
December 2002 working draft, but was stated in much less obvious
language.
If I had to guess, I'd say this is an attempt to allow multiple SOAP
messages to be stuffed into a single file or stream with clear
boundaries between them. Whether that's a good idea or not, I don't
think such a major change should be tossed out without further
analysis and debate. This could introduce problems for various tools
such as editors that like to stick a "credit" comment in the prolog
of a document. This spec should go back to last call WD.
--
Elliotte Rusty Harold
elharo@metalab.unc.edu
Processing XML with Java (Addison-Wesley, 2002)
http://www.cafeconleche.org/books/xmljava
http://www.amazon.com/exec/obidos/ISBN%3D0201771861/cafeaulaitA
Received on Friday, 9 May 2003 18:39:21 UTC