W3C home > Mailing lists > Public > public-xmlsec-maintwg@w3.org > August 2007

Re: FW: Clarification sought re C14N11

From: Sean Mullan <Sean.Mullan@Sun.COM>
Date: Wed, 22 Aug 2007 10:45:45 -0400
To: Konrad Lanz <Konrad.Lanz@iaik.tugraz.at>
Cc: Thomas Roessler <tlr@w3.org>, XMLSec <public-xmlsec-maintwg@w3.org>, public-xml-core-wg <public-xml-core-wg@w3.org>
Message-id: <46CC4C19.4000903@sun.com>

Hi Konrad,

Very good example, but I'm not sure I understand the rationale behind 
fixing it:

 > Now, please consider the following example.
 >
 > <e1 xml:lang="de" xml:base="http://www.example.org">
 >   <e2>
 >     <e3>
 >       <e4/>
 >     </e3>
 >   </e2>
 > </e1>
 >
 > With <e2> being omitted this would result in
 >
 > <e1 xml:lang="de" xml:base="http://www.example.org">
 >   <e3 xml:lang="de" (xml:base="http://www.example.org")>
 >       <e4/>
 >     </e3>
 > </e1>

I agree that it would be much better if xml:lang was not inherited in 
the e3 element, but I don't understand how this is related to xml:base 
fixup.

I would suggest that simple inheritable attributes should be handled 
like namespace attributes; that is there should be an additional 
condition that says something like the following:

"A simple inheritable attribute in the xml namespace is ignored if the 
nearest ancestor element of E's parent element that is in the node-set 
has an attribute in the node-set with the same name."

Maybe this text needs to be in section 2.3 in the Attribute Nodes section.

Even with the suggested fix to section 2.4:

 >> The processing of an element node E MUST be modified slightly when an
 >> XPath node-set is given as input and the element's parent is omitted
 >> from the node-set.


... I think you can still end up with redundant redeclarations when 
there is more than one element in the node-set with an omitted parent 
and some common ancestor contains a simple inheritable attribute.

What do you think?

--Sean

Konrad Lanz wrote:
> Dear all,
> 
> I searched the list archive, and found the first draft for section 2.4
> in June 2006 [4]. Unfortunately I cannot exactly recall the intention of
> that change. Nonetheless, looking at it today and todays wording of the
> xml:base fix up, it makes perfect sense to revert this change.
> 
>> The relevant change is in section 2.4, where the language was changed
>> from:
>>
>> The processing of an element node E MUST be modified slightly when an
>> XPath node-set is given as input and the element's parent is omitted
>> from the node-set.
>>
>> to:
>>
>> The processing of an element node E MUST be modified slightly when an
>> XPath node-set is given as input and some of the element's ancestors
>> are omitted from the node-set.
> 
> Thus, may I propose to do this fix together with the feedback from CR
> Testing ?
> 
> Looking at the current text of c14n 1.1 the reverting should not harm
> the processing of xml:base. It says
> 
> "... ancestor axis contains successive elements E1...En that are omitted
> and E=En+1 is included"
> 
> implying that the parent (En) has been omitted.
> 
> 
> There is however a second point I'd like to discuss here, which needs
> some introduction and an example:
> 
> [4] was focused on the xml:base fix-up and hence lacked an update to the
> ancestor axis examination step for simple inheritable attributes
> 
> cf.: "This examination is performed until the first rendered occurrence
> exclusive ..."
> 
> As far as I recall intended to fix the idiosyncrasy of unnecessary
> copying of inheritable xml:base attributes in c14n.
> 
> Now, please consider the following example.
> 
> <e1 xml:lang="de" xml:base="http://www.example.org">
>   <e2>
>     <e3>
>       <e4/>
>     </e3>
>   </e2>
> </e1>
> 
> With <e2> being omitted this would result in
> 
> <e1 xml:lang="de" xml:base="http://www.example.org">
>   <e3 xml:lang="de" (xml:base="http://www.example.org")>
>       <e4/>
>     </e3>
> </e1>
> 
> (xml:base="http://www.example.org") is written in parenthesis to show
> that it wouldn't appear in c14n 1.1 .
> Without (xml:base="http://www.example.org") it should be the result
> according to the text in c14n 1.0 .
> 
> The following however would be more natural and may be an option for
> future versions of c14n.
> 
> <e1 xml:lang="de" xml:base="http://www.example.org">
>   <e3>
>       <e4/>
>     </e3>
> </e1>
> 
> The XML Security Maintenance Group might want to change this
> idiosyncrasy in a version post c14n 1.1 .
> 
> Keeping this idiosyncrasy in both versions C14n 1.0 and 1.1 however
> remains compatibility for documents not using xml:base or xml:id.
> 
> But then a question of consistency arises and we may want to have
> xml:base also being copied into an orphan. Just to be consistent with
> the other attributes in the xml namespace although it is not really
> necessary.
> 
> This may result in the following sentence being removed from the
> current c14n 1.1 text.
> 
>> Then fix-up is only performed if at least one of E1 ... En has an
>> xml:base attribute.
> 
> Assuming others also feel it's worth to achieve consistency here, may I
> propose to consider such a change also as a result from CR-Testing ?
> 
> Any Thoughts?
> 
> Konrad
> 
> Grosso, Paul schrieb:
>> Forwarding to XML Core with permission.
>>
>> paul
>>
>> -----Original Message----- From: Thomas Roessler [mailto:tlr@w3.org]
>>  Sent: Tuesday, 2007 August 21 10:55 To: Grosso, Paul;
>> Norman.Walsh@Sun.COM Cc: w3c-xml-cg@w3.org; Sean.Mullan@Sun.COM 
>> Subject: Clarification sought re C14N11
>>
>> Paul, Norm,
>>
>> Sean Mullan (CCed) noticed [3] that the C14N 1.1 CR [1] can be read 
>> in a way that would copy inheritable attributes to all children of an
>> element if that element's parent have been removed. That behavior 
>> would be different from the one in C14N 1.0 [2].
>>
>> The relevant change is in section 2.4, where the language was changed
>> from:
>>
>> The processing of an element node E MUST be modified slightly when an
>> XPath node-set is given as input and the element's parent is omitted
>> from the node-set.
>>
>> to:
>>
>> The processing of an element node E MUST be modified slightly when an
>> XPath node-set is given as input and some of the element's ancestors
>> are omitted from the node-set.
>>
>> We are wondering whether this is an intentional change, and the 
>> behavior sketched at [3] is desired, or whether this was an 
>> inadvertent change, and the text is meant to describe the behavior 
>> known from C14N 1.0.  Preliminary discussion seems to suggest that 
>> people are leaning toward the latter interpretation; in that case, it
>> might be worth cleaning up the text while considering CR feed-back.
>>
>> Your guidance would be most welcome, to ensure that the right kind of
>> guidance is provided to implementors in preparation for the interop
>> event.
>>
>> 1. http://www.w3.org/TR/2007/CR-xml-c14n11-20070621/ 2.
>> http://www.w3.org/TR/xml-c14n 3. 
>> http://lists.w3.org/Archives/Public/public-xmlsec-maintwg/2007Aug/0049.h
>>  tml
>>
>> Regards,
> 
> 
Received on Wednesday, 22 August 2007 14:46:16 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 19:58:42 UTC