just that I get this right: The namespace nodes of a node are not just the namespaces declared at that node, but all namespaces that are known at that node? Is that correct?
thanks for your help, Arne 2008/8/27 Aleksey Sanin <[EMAIL PROTECTED]> > Yes, namespace nodes are *nodes* and all the usual rules apply. > > Aleksey > > Arne Müller wrote: > >> Hi Aleksey, >> >> thanks for pointing me to those test-files. With them I also do not get >> xmlns="". >> So then I checked, where there were differences between my code and the >> one in testC14N.c. >> I realized, that the xmlns="" appears, because I use a nodeset. >> It seems, if I use a default namespace, I have to add for each descandant >> a copy of it into the NodeSet, else it will not find it and will not set, >> that it has found a default-namespace. >> (see line 623 in c14n.c) >> Is this the intended behavior? I thought it would be sufficient to add the >> namespace for the namespace-declaring node into the nodeset and not for all >> descendant nodes. >> >> Somehow the example code does this correctly (when given the XPath >> "/descendant::* | /descendant::*/attribute::* | >> /descendant::*/namespace::*"). >> >> So XPath seems to add namespace declarations everywhere and thus avoid the >> problem, while I have build the nodeset myself and not added as many >> namespace declarations (which I actually think create very much overhead). >> >> I think I could now avoid the problem by modifying my NodeSet-creation >> code, to make it add namespaces for all descendants into the nodeset. >> But maybe it would be better non the less to simply check if the nodeset >> contains a namespace-declaration for a parent node? Or am I missing >> something? >> >> Arne >> >> >> 2008/8/26 Aleksey Sanin <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED] >> >> >> >> >> Arne, >> >> Could you please give an exact example that shows the problem >> using the testC14N command? For example, for the xml snippet >> from your previous email I generated C14N and I see no xmlns="" >> definitions: >> >> $ testC14N --with-comments test.xml > test-c14n.xml >> >> Thanks >> Aleksey >> >> >> Arne Mueller wrote: >> >> Am Sonntag, den 24.08.2008, 21:21 -0700 schrieb Aleksey Sanin: >> >> Hi, Arne! >> >> Sorry, but as I have replied in xmlsec mailing list, I believe >> that libxml2 is doing the right thing here. >> >> Aleksey >> >> >> Hi Aleksey, >> you might be perfectly right with adding one empty namespace. >> >> But I think one thing is buggy non the less, in the >> c14n-specification >> it says: >> >> <quote> >> 4.6 Superfluous Namespace Declarations >> Unnecessary namespace declarations are not made in the canonical >> form. >> Whether for an empty default namespace, a non-empty default >> namespace, >> or a namespace prefix binding, the XML canonicalization method >> omits a >> declaration if it determines that the immediate parent element >> in the >> canonical form has an equivalent declaration in scope. The root >> document >> element is handled specially since it has no parent element. All >> namespace declarations in it are retained, except the >> declaration of an >> empty default namespace is automatically omitted. >> </quote> >> >> Thus, there should be at most one empty namespace declaration, >> because >> an parent element has already defined the empty namespace >> declaration. >> The same holds for the redefinition of "dsig" in the XPath element. >> >> Arne >> >> >>
_______________________________________________ xml mailing list, project page http://xmlsoft.org/ [email protected] http://mail.gnome.org/mailman/listinfo/xml
