Re: exc c14n bugs

Sure: exc-c14n[1] does not render a namespace node if the
nearest output ancestor of its parent element *that visibly
utilizes the namespace prefix* has a namespace node in the
node-set with the same namespace prefix and value as N.

The b:B element does not visibly use the default namespace
prefix, so the exc-c14n specification does not expect that it
will have rendered a value for it. Hence, when the spec
renders C, it looks to A, sees the same definition and
suppresses the namespace node.

This is only an issue because xmlns="" isn't in the node set,
so has special-case handling in c14n. We need corresponding
special-case handling in exc-c14n.

Merlin

[1] http://www.w3.org/Signature/Drafts/xml-exc-c14n.html

r/JBoyer@pureedge.com/2002.06.04/09:19:38
>
>
>Hi Merlin,
>
>Not to be obtuse, but could you please explain exactly why the default
>namespace declaration in element C disappears:
>
><merlin>
>Ref: http://www.w3.org/Signature/Drafts/xml-exc-c14n.html
>
>1) Bug in the Specification
>
>Consider the following document:
>  <A xmlns="http://example.org/">
>    <b:B xmlns:b="http://example.org/b" xmlns="">
>      <C xmlns="http://example.org/">
>    </b:B>
>  </A>
>
>Because we inherit xmlns="" behaviour from c14n, this
>will be rendered so:
>  <A xmlns="http://example.org/">
>    <b:B xmlns="" xmlns:b="http://example.org/b">
>      <C></C>
>    </b:B>
>  </A>
>
><snip/>
></merlin>
>
>Thanks,
>John Boyer
>

Received on Tuesday, 4 June 2002 12:43:28 UTC