Subject: Re: Controlling attributes and xsi:type
From: Nick Leaton <nickle@xxxxxxxxx>
Date: Tue, 8 Jun 2010 15:10:19 +0100
|
Thank you Michael and Martin.
I tried Martin's approach first and it works, so I'll stick with than.
Nick
On Tue, Jun 8, 2010 at 2:16 PM, Michael Kay <mike@xxxxxxxxxxxx> wrote:
> The xsi:type attribute should be in namespace
> http://www.w3.org/2001/XMLSchema-instance, not in namespace
> http://www.calypso.com/xml. Just change the namespace in the xsl:attribute
> instruction.
>
> In fact you don't need xsl:element and xsl:attribute here. You can just
> write:
>
> <calypso:cashflow
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xsi:type="calypso:CashflowSimple">
> ...
> </calypso:cashflow>
>
> Michael Kay
> Saxonica
>
>
>
> On 08/06/2010 13:58, 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?
>>
>> Thanks
>>
>> Nick
>
>
--
Nick
|