I've started to generate test signatures for Juan Carlos' test cases
[1], and I have a question about C14N 1.1. For the first test case in
section 3.2.1, I believe the canonicalized result should be:
<ietf:e1 xmlns:ietf="http://www.ietf.org" xmlns:w3c="http://www.w3.org"
xml:lang="EN">
<ietf:e11 xml:lang="EN">
<ietf:e111 xml:lang="EN"></ietf:e111>
</ietf:e11>
<ietf:e12 at="2" xml:lang="EN">
<ietf:e121 xml:lang="EN"></ietf:e121>
</ietf:e12>
</ietf:e1>
Is this correct? Is the xml:lang attribute inherited and copied to all
children elements in the node-set? That seems to be what the 2nd and 3rd
paragraphs of section 2.4 of the draft [2] documents, but lack of
examples is making me question this. I'm also a little confused because
I found some old interop tests (although they were C14N 1.0) that
treated xml:space and xml:lang like namespace nodes (i.e. they are
ignored if nearest ancestor has same attribute with same value).
Furthermore, it seems to me that they should be treated like namespace
nodes, as it would eliminate the redundant redeclarations above ...
What am I missing here?
Thanks,
Sean
[1] http://www.w3.org/2007/xmlsec/interop/xmlsig-interop-doc/testcases.html
[2]
http://www.w3.org/TR/2007/CR-xml-c14n11-20070621/