[fwd] [Moderator Action] Need clarification on C14N 1.1 xml:base fixup (from: pratik.datta@oracle.com)

----- Forwarded message from Pratik Datta <pratik.datta@oracle.com> -----

From: Pratik Datta <pratik.datta@oracle.com>
To: public-xmlsec-maintwg@w3.org
Cc: Gary Truong <gary.truong@oracle.com>,
	Lakshmi Kethana <lakshmi.kethana@oracle.com>,
	"VAMSI,MOTUKURU" <VAMSI.MOTUKURU@oracle.com>
Date: Thu, 20 Sep 2007 14:26:51 +0000
Subject: [Moderator Action] Need clarification on C14N 1.1 xml:base fixup
X-Spam-Level: 
Old-Date: Wed, 19 Sep 2007 16:15:08 -0700
X-Diagnostic: Not on the accept list
X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.1.5



I am trying to understand the xml:base fixup

Section 2.4 of the C14n 1.1 spec says
> The element nodes along */E/*'s ancestor axis are now examined for all occurrences of |xml:base|, that have been omitted 
(i.e. they are not in the node-set).

It is not clear to me what is omitted. Is the element omitted from the nodeset or is the element's xml:base attribute 
omitted?
----------------------------------

Section 2.4 also says
> Let */E/* be an element in the node set whose ancestor axis contains successive elements */En/*...*/E1/* (in reverse 
document order) that are omitted and */E/*=*/En+1/* is included.

What does "successive elements" means? Do we need to travel up the ancestor axis till the first non omitted element? Or do we 
need to go all the way to the root? "Successive" suggests the former, i.e. we stop at the first non omitted element.

------------------------------------
Is the example in section 3.8 correct?
Input Document
|<doc xmlns="http://www.ietf.org" xmlns:w3c="http://www.w3.org" xml:base="http://www.example.com/something/else">
  <e1>
     <e2 xmlns="" xml:id="abc" xml:base="../bar/">
        <e3 id="E3" xml:base="foo"/>
     </e2>
  </e1>
</doc>|


doc and e2 are not in the nodeset.
**Canonical Form**
|<e1 xmlns="http://www.ietf.org" xmlns:w3c="http://www.w3.org" xml:base="http://www.example.com/something/else"><e3 xmlns="" 
id="E3" xml:base="http://www.example.com/bar/foo" xml:space="preserve"></e3></e1>|


When we traverse the ancestor axis from e3, and we go up only till e2 (because e1 is not omitted) Then the resulting xml base 
should be
"../bar/foo". i.e. the Canonical Form should be
|<e1 xmlns="http://www.ietf.org" xmlns:w3c="http://www.w3.org" xml:base="http://www.example.com/something/else"><e3 xmlns="" 
id="E3" xml:base="../bar/foo" xml:space="preserve"></e3></e1>|

Shouldn't it?

----------------------------------------------

Pratik







----- End forwarded message -----

Received on Friday, 21 September 2007 08:12:19 UTC