[Home] [By Thread] [By Date] [Recent Entries]

  • From: "Michael Kay" <mike@s...>
  • To: "'Anishek Agarwal'" <anishek@g...>,<xml-dev@l...>
  • Date: Wed, 6 Aug 2008 09:21:59 +0100

Firstly, when you say "parser", I suspect you mean "XSLT processor". (It's a common mistake, but in cases like this it's important to be precise).
 
Secondly, you say that the namespace is being removed from these elements, but I don't think that's true: they are still in the same namespace, only the prefix has changed. Correct me if I have misunderstood.
 
For better or worse, the digital signature mechanisms follow XML Canonicalization by deciding that namespace prefixes are significant: see
 
http://www.w3.org/TR/xml-c14n#NoNSPrefixRewriting
 
for discussion.
 
XSLT 2.0 gives you complete control over the prefixes that are used in your result tree. XSLT 1.0 gives the implementation a lot of discretion in theory, but in practice it is usually possible to persuade the processor to use the prefixes that you want.
 
Michael Kay
http://www.saxonica.com/


From: Anishek Agarwal [mailto:anishek@g...]
Sent: 06 August 2008 05:54
To: xml-dev@l...
Subject: XML Transformation

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




[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index]


Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member