W3C home > Mailing lists > Public > w3c-ietf-xmldsig@w3.org > April to June 2002

Re: exc c14n bugs

From: merlin <merlin@baltimore.ie>
Date: Tue, 04 Jun 2002 17:42:56 +0100
To: "John Boyer" <JBoyer@pureedge.com>
Cc: w3c-ietf-xmldsig@w3.org
Message-Id: <20020604164256.992374432D@yog-sothoth.ie.baltimore.com>

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.


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

>Hi Merlin,
>Not to be obtuse, but could you please explain exactly why the default
>namespace declaration in element C disappears:
>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>
>John Boyer
Received on Tuesday, 4 June 2002 12:43:28 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 21:21:38 UTC