Hello,
I have a third party incoming XML at the transport layer which has a structure as below
<d:a xmlns:a="...." xmlns:dsig="http://www.w3.org/2000/09/xmldsig#">
.....
.....
<dsig:Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> (the dsig namespace is applied to all child elements as well)
......
.....
</dsig:Signature>
</d:a>
When my parser is parsing the xml this is what i am getting
<d:a xmlns:a="...." xmlns:dsig="http://www.w3.org/2000/09/xmldsig#">
.....
.....
<Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> (the dsig namespace is removed from all the child elements)
......
.....
</Signature>
</d:a>
Then when i try to validate the signature it fails. The partner is saying that i have wrongly parsed the xml. They calculated the digest with the "dsig" prefix in their xml where as i am calcuating it after removing "dsig" namespace as there is a default namespace and thus the parser overrides the parent namespace declaration.
Which one is correct, should my parser have retained the "dsig" namespace even though a default namespace is defined or i am doing the right thing?
We are using apache axis 1.3 for parsing the xml which is comming over SOAP.
thanks in advance for the help
Regards,
Anishek