Nick Leaton wrote:
I'm trying to output some xml from and XSLT 2.0 stylesheet.
The format is outside of my control - third party - and its picky.
The output is as follows.
<calypso:cashflow xsi:type="calypso:CashflowSimple">
...
</calypso:cashflow>
Header of the stylesheet is this
<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"
version="2.0"
exclude-result-prefixes="xs xsl"
>
xsl to output looks like this
<xsl:element name="calypso:cashflow">
<xsl:attribute
name="xsi:type"
namespace="http://www.calypso.com/xml"
select="'calypso:CashflowSimple'"
/>
...
</xsl:element>
The output produced is this
<calypso:cashflow xmlns:xsi="http://www.calypso.com/xml"
xsi:type="calypso:CashflowSimple">
The third party app doesn't accept the
xmlns:xsi="http://www.calypso.com/xml" as an attribute.
How can I supress this attribute for the element?
I would use literal result elements as much as possible e.g.
<calypso:cashflow xsi:type="calypso:CashflowSimple">
is possible in your stylesheet.
Then simply put
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
on your xsl:stylesheet or xsl:transform element and all should work fine.
If you really need to create/compute the attribute with xsl:attribute
then use
<xsl:attribute name="xsi:type"
namespace="http://www.w3.org/2001/XMLSchema-instance"
select="'calypso:CashflowSimpl'"/>
--
Martin Honnen
http://msmvps.com/blogs/martin_honnen/
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--