[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
Re: [xsl] More on my problem with namespaces
Subject: Re: [xsl] More on my problem with namespaces From: Nick Leaton <nickle@xxxxxxxxx> Date: Tue, 9 Nov 2010 16:24:07 +0000 |
Using Saxon, I get this error message going the second route. [Saxon-PE 9.2.0.6] Element type "calypso:value" must be followed by either attribute definitions, ">" or "/>" @see http://www.saxonica.com/documentation/javadoc/net/sf/saxon/trans/SaxonErrorCo de.html#SXXP0003 xslt as follows =============== <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:calypso="http://www.calypso.com/xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns3="http://www.w3.org/2001/XMLSchema" version="2.0"> <xsl:output method="xml" indent="yes"/> <xsl:template match="/"> <bonds> <xsl:for-each select="//isin"> <bond> <calypso:secCode> <calypso:name>ISIN</calypso:name> <calypso:value xsi:type="ns3:string" xmlns:ns3="http://www.w3.org/2001/XMLSchema" <xsl:value-of select="."/> </calypso:value> </calypso:secCode> </bond> </xsl:for-each> </bonds> </xsl:template> </xsl:stylesheet> =============== Following the link, I'm still none the wiser. On 9 November 2010 16:10, Michael Kay <mike@xxxxxxxxxxxx> wrote: > Namespaces are not attributes in the XDM view of the world, so you can't > create them using the xsl:attribute instruction. Use the xsl:namespace > instruction instead. Alternatively, since you know statically what namespace > you want output, you can just add the declaration > xmlns:ns3="http://www.w3.org/2001/XMLSchema" to the xsl:stylesheet element. > > Or more simply, you could rewrite > > <xsl:element name="calypso:value"> > <xsl:attribute > name="xsi:type">ns3:string</xsl:attribute> > <xsl:attribute > name="ns3">http://www.w3.org/2001/XMLSchema</xsl:attribute> > <xsl:value-of select="."/> > </xsl:element> > > > as > > <calypso:value xsi:type="ns3:string" > xmlns:ns3="http://www.w3.org/2001/XMLSchema" >> > <xsl:value-of select="."/> > </calypso:value> > > Michael Kay > Saxonica > > On 09/11/2010 15:59, Nick Leaton wrote: >> >> I thought I had a solution to my namespace problem, but on >> investigation I haven't >> On further investigation, I haven't got it going, so I've produced a >> cut down version >> showing the problem >> >> here is a test xml file >> >> =================== >> <?xml version="1.0" encoding="UTF-8"?> >> <bonds> >> <isin>123</isin> >> <isin>456</isin> >> <isin>789</isin> >> </bonds> >> =================== >> >> >> Here is the xslt cut down >> =================== >> <?xml version="1.0" encoding="UTF-8"?> >> <xsl:stylesheet >> xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >> xmlns:calypso="http://www.calypso.com/xml" >> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >> version="2.0"> >> >> <xsl:output method="xml" indent="yes"/> >> >> <xsl:template match="/"> >> <bonds> >> <xsl:for-each select="//isin"> >> <bond> >> <calypso:secCode> >> <calypso:name>ISIN</calypso:name> >> <xsl:element name="calypso:value"> >> <xsl:attribute >> name="xsi:type">ns3:string</xsl:attribute> >> <xsl:attribute >> name="ns3">http://www.w3.org/2001/XMLSchema</xsl:attribute> >> <xsl:value-of select="."/> >> </xsl:element> >> </calypso:secCode> >> </bond> >> </xsl:for-each> >> </bonds> >> </xsl:template> >> </xsl:stylesheet> >> >> =================== >> >> Here is the output >> >> =================== >> <?xml version="1.0" encoding="UTF-8"?> >> <bonds xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >> xmlns:calypso="http://www.calypso.com/xml"> >> <bond> >> <calypso:secCode> >> <calypso:name>ISIN</calypso:name> >> <calypso:value xsi:type="ns3:string" >> ns3="http://www.w3.org/2001/XMLSchema">123</calypso:value> >> </calypso:secCode> >> </bond> >> <bond> >> <calypso:secCode> >> <calypso:name>ISIN</calypso:name> >> <calypso:value xsi:type="ns3:string" >> ns3="http://www.w3.org/2001/XMLSchema">456</calypso:value> >> </calypso:secCode> >> </bond> >> <bond> >> <calypso:secCode> >> <calypso:name>ISIN</calypso:name> >> <calypso:value xsi:type="ns3:string" >> ns3="http://www.w3.org/2001/XMLSchema">789</calypso:value> >> </calypso:secCode> >> </bond> >> </bonds> >> =================== >> >> Here is the desired output >> >> =================== >> <?xml version="1.0" encoding="UTF-8"?> >> <bonds xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >> xmlns:calypso="http://www.calypso.com/xml"> >> <bond> >> <calypso:secCode> >> <calypso:name>ISIN</calypso:name> >> <calypso:value xsi:type="ns3:string" >> xmlns:ns3="http://www.w3.org/2001/XMLSchema">123</calypso:value> >> </calypso:secCode> >> </bond> >> <bond> >> <calypso:secCode> >> <calypso:name>ISIN</calypso:name> >> <calypso:value xsi:type="ns3:string" >> xmlns:ns3="http://www.w3.org/2001/XMLSchema">456</calypso:value> >> </calypso:secCode> >> </bond> >> <bond> >> <calypso:secCode> >> <calypso:name>ISIN</calypso:name> >> <calypso:value xsi:type="ns3:string" >> xmlns:ns3="http://www.w3.org/2001/XMLSchema">789</calypso:value> >> </calypso:secCode> >> </bond> >> </bonds> >> =================== >> >> >> The difference is that I need >> >> ns3="http://www.w3.org/2001/XMLSchema" >> >> output as >> >> xmlns:ns3="http://www.w3.org/2001/XMLSchema" >> >> >> Any ideas? >> -- >> Nick > > -- Nick
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] More on my problem with n, Michael Kay | Thread | Re: [xsl] More on my problem with n, Martin Honnen |
Re: [xsl] More on my problem with n, Andriy Gerasika | Date | Re: [xsl] More on my problem with n, Martin Honnen |
Month |