xsl-list
[Top] [All Lists]

Re: [xsl] Controlling attributes and xsi:type

2010-06-08 08:15:45
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>
--~--

<Prev in Thread] Current Thread [Next in Thread>