Re: [xsl] Namespace problem

Subject: Re: [xsl] Namespace problem
From: David Carlisle <davidc@xxxxxxxxx>
Date: Mon, 08 Nov 2010 14:22:02 +0000
On 08/11/2010 14:09, Nick Leaton wrote:
I'm trying to output the following xml

             <calypso:secCode>
                 <calypso:name>ISIN</calypso:name>
                 <calypso:value xsi:type="ns3:string"
xmlns:ns3="http://www.w3.org/2001/XMLSchema";>XF0003195919</calypso:value>
             </calypso:secCode>

I have a style sheet with a header as follows

<xsl:stylesheet
     xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
     xmlns:xs="http://www.w3.org/2001/XMLSchema";
     xmlns:calypso="http://www.calypso.com/xml";
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
     xmlns:saxon="http://saxon.sf.net/";
     xmlns:ns3="http://www.w3.org/2001/XMLSchema";
     version="2.0"
     exclude-result-prefixes="xsl xs calypso xsi saxon"
     >

remove result prefixes xs means remove the namespace whose prefix is ns, and that is the same namespace as has the prefix ns3.

and output code as follows


                 <calypso:secCode>
                     <calypso:name>ISIN</calypso:name>
                     <calypso:value xsi:type="ns3:string"
xmlns:ns3="http://www.w3.org/2001/XMLSchema";>
having the namespace here makes no difference as it is already in scope.
                         <xsl:value-of select="$message/ISIN"/>
                     </calypso:value>
                 </calypso:secCode>

This gives this output

             <calypso:secCode>
                 <calypso:name>ISIN</calypso:name>
                 <calypso:value
xsi:type="ns3:string">XF0003195919</calypso:value>
             </calypso:secCode>

Missing is the xmlns:ns3 attribute.

The consumer is outside my control and finicky about what it accepts.

How can I get the xmlns:ns3="http://www.w3.org/2001/XMLSchema";
attribute into the output?


It should not be missing, it should be on the document element.


If you mean that you want it not on the document element but just want it on this calypso:value, probably the easiest is to just remove the
xmlns:ns3="http://www.w3.org/2001/XMLSchema"; and xmlns:xs"http://www.w3.org/2001/XMLSchema";
from xsl:stylesheet, unless you need it for some other reason.


David

________________________________________________________________________
The Numerical Algorithms Group Ltd is a company registered in England
and Wales with company number 1249803. The registered office is:
Wilkinson House, Jordan Hill Road, Oxford OX2 8DR, United Kingdom.

This e-mail has been scanned for all viruses by Star. The service is
powered by MessageLabs. ________________________________________________________________________


Current Thread