- From: Martin Gudgin <marting@develop.com>
- Date: Wed, 10 Apr 2002 17:40:51 +0100
- To: "XML Protocol Discussion" <xml-dist-app@w3.org>
At the last telcon I took an action item to summarize the two perspectives on issue 194[1]. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- The questions: Q1: Where in the envelope is the encodingStyle attribute allowed? Q2: Does the encodingStyle attribute apply to the element it appears on *AND* descendants or *JUST* descendants? -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- The status quo: A1: the encodingStyle is allowed on any element in the envelope. A2: The encodingStyle applies to the element it appears on and descendants. Note: The prose[2] and the schema[3] actually conflict. The schema does not allow encoding style on Envelope or Header elements. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- The proposals: P1: Retain the status quo P2: For Q1 - Disallow encodingStyle on Envelope and Header. For Q2 - keep status quo. P3: For Q1 - Disallow encodingStyle on Envelope, Header and Body. For Q2 - keep status quo. P4: For Q1 - Disallow encodingStyle on Envelope and Header. For Q2 - state that the encodingStyle attribute only applies to the descendants of the element it appears on. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- The pros and cons: P1: Pros: Requires little change to the spec ( schema changes to match prose ) Cons: encodingStyle does not make sense on the Envelope. Also doesn't make sense on Header ( Header itself is not encoded according to an encoding style, although the content may be ). Doesn't really make sense on Body ( Body itself is not encoded according to an encoding style, although the content may be ) P2: Pros: Requires little change to the spec ( prose changes to match schema ) Cons: encodingStyle doesn't really make sense on Body ( Body itself is not encoded according to an encoding style, although the content may be ) P3: Pros: Makes Envelope, Header and Body consistent. Cons: Requires change to both prose and schema. P4: Pros: encodingStyle would make sense on Body. Cons: Changes scope of encodingStyle attribute. Raises question of what the encoding style is for top-level element of a header block. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Examples: P1: <s:Envelope xmlns:s='http://www.w3.org/2001/12/soap-envelope' xmlns:m='http://example.org/headers' soap:encodingStyle='http://www.w3.org/2001/12/soap-encoding'> <s:Header > <m:First> I'm some data in a terminal node </m:First> <m:Second> <m:Data> Data </m:Data> <m:MoreData> More data </m:MoreData> </m:Second> <m:Third soap:encodingStyle='' > <m:Data value='data' /> <m:MoreData value='more data' /> </m:Third> </s:Header> <s:Body > <r:MyRequest xmlns:r='http://example.org/webservices/mystuff' > <r:Terminal> I'm data in a terminal </r:Terminal> <r:NonTerminal> <edge>Data</edge> <otheredge>More data</otheredge> </r:NonTerminal> <r:Blob soap:encodingStyle=''> <parent data='hello'> <child value='data' /> <child value='data' /> <child value='data' /> <child value='data' /> </parent> </r:Blob> </r:MyRequest> </s:Body> </s:Envelope> Observations: Implies that Envelope, Header and Body are structs. What does it mean to have an outbound edge ( Third or Blob ) marked with a different encodingStyle? P2: <s:Envelope xmlns:s='http://www.w3.org/2001/12/soap-envelope' xmlns:m='http://example.org/headers' > <s:Header> <m:First soap:encodingStyle='http://www.w3.org/2001/12/soap-encoding'> I'm some data in a terminal node </m:First> <m:Second soap:encodingStyle='http://www.w3.org/2001/12/soap-encoding' > <m:Data> Data </m:Data> <m:MoreData> More data </m:MoreData> </m:Second> <m:Third> <m:Data value='data' /> <m:MoreData value='more data' /> </m:Third> </s:Header> <s:Body soap:encodingStyle='http://www.w3.org/2001/12/soap-encoding'> <r:MyRequest xmlns:r='http://example.org/webservices/mystuff' > <r:Terminal> I'm data in a terminal </r:Terminal> <r:NonTerminal> <edge>Data</edge> <otheredge>More data</otheredge> </r:NonTerminal> <r:Blob soap:encodingStyle=''> <parent data='hello'> <child value='data' /> <child value='data' /> <child value='data' /> <child value='data' /> </parent> </r:Blob> </r:MyRequest> </s:Body> </s:Envelope> Observations: Implies Body is a struct. Could be solved by moving attribute down onto MyRequest. What does it mean to have an outbound edge ( Blob ) marked with a different encodingStyle? P3: <s:Envelope xmlns:s='http://www.w3.org/2001/12/soap-envelope' xmlns:m='http://example.org/headers' > <s:Header> <m:First soap:encodingStyle='http://www.w3.org/2001/12/soap-encoding' > I'm some data in a terminal node </m:First> <m:Second soap:encodingStyle='http://www.w3.org/2001/12/soap-encoding' > <m:Data> Data </m:Data> <m:MoreData> More data </m:MoreData> </m:Second> <m:Third > <m:Data value='data' /> <m:MoreData value='more data' /> </m:Third> </s:Header> <s:Body> <r:MyRequest xmlns:r='http://example.org/webservices/mystuff' soap:encodingStyle='http://www.w3.org/2001/12/soap-encoding'> <r:Terminal> I'm data in a terminal </r:Terminal> <r:NonTerminal> <edge>Data</edge> <otheredge>More data</otheredge> </r:NonTerminal> <r:Blob soap:encodingStyle=''> <data data='hello'> <child value='data' /> <child value='data' /> <child value='data' /> <child value='data' /> </data> </r:Blob> </r:MyRequest> </s:Body> </s:Envelope> Observations: What does it mean to have an outbound edge ( Blob ) marked with a different encodingStyle? Could move attribute down onto 'data' element but then if this element is being described using a schema that schema has to allow the encodingStyle attribute in order for validation to succeed. P4: <s:Envelope xmlns:s='http://www.w3.org/2001/12/soap-envelope' xmlns:m='http://example.org/headers' > <s:Header> <m:First soap:encodingStyle='http://www.w3.org/2001/12/soap-encoding'> I'm some data in a terminal node </m:First> <m:Second soap:encodingStyle='http://www.w3.org/2001/12/soap-encoding' > <m:Data> Data </m:Data> <m:MoreData> More data </m:MoreData> </m:Second> <m:Third > <m:Data value='data' /> <m:MoreData value='more data' /> </m:Third> </s:Header> <s:Body soap:encodingStyle='http://www.w3.org/2001/12/soap-encoding'> <r:MyRequest xmlns:r='http://example.org/webservices/mystuff' > <r:Terminal> I'm data in a terminal </r:Terminal> <r:NonTerminal> <edge>Data</edge> <otheredge>More data</otheredge> </r:NonTerminal> <r:Blob soap:encodingStyle=''> <parent data='hello'> <child value='data' /> <child value='data' /> <child value='data' /> <child value='data' /> </parent> </r:Blob> </r:MyRequest> </s:Body> </s:Envelope> Observations: This works for Body, MyRequest is the struct. Blob is an outbound edge ( encoding style is still soap-encoding ). Content of Blob has no encoding style. This doesn't work so well for header blocks. What is the encoding style of First and Second? -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Right now I'd prefer P3, but I know that Henrik and I have been back and forth over this several times and seem to go round in circles between P2 and P4 :-( Gudge [1] http://www.w3.org/2000/xp/Group/xmlp-issues.html#x194
Received on Wednesday, 10 April 2002 12:39:26 UTC