- From: <noah_mendelsohn@us.ibm.com>
- Date: Wed, 2 Apr 2003 17:17:28 -0500
- To: xml-dist-app@w3.org
This note is in fulfillment of the action item I took on today's call regarding issue 421. Specifically, the purpose of this note is to outline our options for dealing with comments in SOAP envelopes and bindings. Status quo: as best I can tell the editors draft is currently inconsistent. It describes the insertion and removal of comments by SOAP intermediaries [1], but the chapter 5 definition of a SOAP envelope does not allow for comments at all [2]. On today's teleconference I believe we agreed to the following, at least informally: * The draft is indeed inconsistent, and therefore something must be done presumably before going to Proposed Recommendation. * Our general inclination is to allow comments in all or at least most of the places where the Infoset recommendation would allow them to appear in an envelope. Gudge has suggested that we not allow them outside of the envelope... I think I agree, but want to think about it a bit more. * There seemed to be consensus that the existing rules regarding intermediaries are probably OK [1]. * There was a suggestion (by Marc Hadley, I think) that instead of explicitly listing comments in each of the sections of chapter 5, we make a blanket statement that they are allowed everywhere within the envelope. This is basically an editorial suggestion. So, there are a few loose ends to be finalized in the list above, but none of them seem unduly problematic. E-mail is certainly solicited if anyone has strong feelings regarding any of the points above. The major area of uncertainty seems to be one that I brought up: specifically, what are the obligations of a binding with respect to transmission of comments? As best I can tell, the options are roughly: A. They're in the Infoset...all bindings must transmit them. I think that if we merely update chapter 5 to allow comments, this will be the resulting behavior as we already require bindings to transmit the infoset. Given that it is in some ways a subtle point and that many implementers will be tempted to cheat, I suggest we consider a clarifying note in the section on transport bindings and/or making sure that this is covered in our conformance work. Advantages of requiring bindings to transmit comments: (a) it seems to fit the existing model that bindings transmit the infoset (b) probably provides least astonishment for users (c) tends not to break signatures, regardless of the canonicalization selected. Disadvantages: rules out implementations in which either the binding or the node wishes to represent the message in a manner that eliminates comments. One can imagine many optimized forms of XML on the wire that would be complicated by the requirement to carry comments. Many programming systems deserialize SOAP messages into data structures that make it difficult to carry comments (maybe or maybe not such data structures break signatures, but signatures are only used some of the time) -or- B. Indicate that comments anywhere in the Infoset are at risk of disappearing during transmission. B1: Bindings SHOULD transmit comments B2: Bindings MAY transmit comments (the above are all variations on the same theme) I think the advantages and disadvantages are the inverse of those above. Many optimized representations both in memory (including message queue databases) and on the wire become possible, but the application is provided with a less useful contract, and signatures are more subject to breakage. Note that the W3C has recommendations for two canonicalization's of which is sensitive to the presence of comments, and one of which removes comments during canonicalization (the choice is modeled as a switch on an otherwise common canonicalization model) [3] . B3: We might have a rule that varies according to the location of comment. For example, we might require that comments be preserved within header entries and body child elements, but not otherwise. Not sure whether this is the best or the worst of both worlds. -or- C: I suppose we could change our minds and disallow comments entirely. This would make the model simpler, but would disallow many sorts of useful annotations within the SOAP message, including for purposes of debugging. -or- D. Another option we did not explicitly discuss on the phone would be to make all use of comments non-normative. We could make the relay rules for intermediaries non-normative guidelines, and just indicate that all bets are off. Your mileage may vary... this binding or that binding may transmit them, and you can do what you like with them. I >think< this is a bit different than the "B" options, but not by much in practice. I think that about covers the options. Thanks. Noah [1] http://www.w3.org/2000/xp/Group/2/06/LC/soap12-part1.html#soapinterminfoset [2] http://www.w3.org/2000/xp/Group/2/06/LC/soap12-part1.html#soapenvelope [3] http://www.w3.org/TR/xml-c14n ------------------------------------------------------------------ Noah Mendelsohn Voice: 1-617-693-4036 IBM Corporation Fax: 1-617-693-8676 One Rogers Street Cambridge, MA 02142 ------------------------------------------------------------------
Received on Wednesday, 2 April 2003 17:24:27 UTC