- From: Andrew Layman <andrewl@microsoft.com>
- Date: Sat, 16 Feb 2002 20:09:24 -0800
- To: "Noah Mendelsohn" <noah_mendelsohn@us.ibm.com>, "rsalz" <rsalz@zolera.com>
- Cc: "Christopher Ferris <chris.ferris" <chris.ferris@Sun.COM>, "xml-dist-app" <xml-dist-app@w3.org>
I largely agree with Noah. Like XML, SOAP neither says that lexical order is significant nor insignificant. It might be in some cases and not in others. It should certainly be possible that, in some cases, lexical order is significant, and, like XML, it should also be possible that, for certain classes of messages and/or headers, lexical order is predetermined and/or insignificant. I believe it is premature to state more than this. -----Original Message----- From: Noah Mendelsohn [mailto:noah_mendelsohn@us.ibm.com] Sent: Friday, February 15, 2002 3:31 PM To: rsalz Cc: Christopher Ferris <chris.ferris; xml-dist-app Subject: Re: Soap Message Canonicalization (SM-C14N) Thank you for undertaking this. I must say, I'm nervous about some aspects of this. Some concerns: * While SOAP, in the absence of extensions, mandates no interpretation of header order, we have already made clear that extensions can be created to control processing order, and I think it's highly desireable that lexical order in the infoset be significant if the extension says so. Consider streaming of large documents; I think it should be possible to define control headers that will be known to appear early in the document. I know that in many cases it will be the body that will be streamed, but that doesn't work well if you want to intermix control with data in a stream. Bottom line: XML Infoset says lexical order is significant. We could say that it's insignificant in SOAP, but I would prefer not to go that way. * Related concern: you've suggested an ordering based on the entire contents of each header block, I think. That sounds extremely expensive to compute in the general case. It could involve sorting on almost the entire contents of evey header element. * Requiring alphabetical order clearly conflicts with streaming; you don't know the first header block until you've seen them all. * In general, I'm not sure we've motivated a single canonicalization for SOAP. What are the use cases. Allowing some freedom to intermediaries does establish equivalence classes for soap messages, but not necessarily one representation for each class that's considered canonical. Overall, my intuition is that the latitude given to intermediaries in rewriting a message should be relatively modest. My starting point would be that the message goes through intact, except for removed and inserted headers. I would, if necessary, loosen up the bare minimum needed to support efficient implementations. I'm not convinced that reordering the headers is going to do anything other than limit the scenarios in which SOAP can be used, and introduce interop headaches (because some intermediaries will reorder and some won't). ------------------------------------------------------------------ Noah Mendelsohn Voice: 1-617-693-4036 IBM Corporation Fax: 1-617-693-8676 One Rogers Street Cambridge, MA 02142 ------------------------------------------------------------------
Received on Saturday, 16 February 2002 23:10:27 UTC