RE: [xsl] Adding an element of a specific type

Subject: RE: [xsl] Adding an element of a specific type
From: "Hofman, Peter" <peter.hofman@xxxxxxxxxxxxx>
Date: Thu, 19 Oct 2006 08:31:38 +0200
> > How do I add an element of a specific type to the output.
>
> Your real question is, how do I add:
>
> (a) an xsi:type attribute whose value is a QName, together with
> (b) a namespace node that binds the prefix used in that QName.
>
That's indeed what I meant.

> If the prefix used in the QName is the same as the prefix
> used in the containing element, which is the case in your
> example, then I would expect the namespace to be declared
> automatically, so you shouldn't need to do anything special.
> Perhaps you over-simplified the example? What was the actual
> XML output?
>
> If the namespace is different, then it's still quite easy so
> long as you know the namespace in advance. Just use a literal
> result element instead of xsl:element. That is, change
>
> <xsl:element name="ns1:Q">
>         <xsl:attribute name="xsi:type">ns2:Q_Type</xsl:attribute>
>         <xsl:apply-templates select="ns1:C" > </xsl:element>
>
> to
>
> <ns1:Q xsi:type="ns2:Q_Type" xmlns:ns2="some-namespace">
>   <xsl:apply-templates select="ns1:C" >
> </xs1:Q>

I didn't realise it was that simple. It does what I want. Thanks!
I do wonder however, why xsl:element does not have any means for doing
that.

>
> That's because literal result elements copy namespaces from
> the stylesheet, while xsl:element doesn't.
>
> > (sorry, but I am not sure which processor I have, since it
> is embedded
> > in an existing application)
>
> It's a good idea to find out. Use
>
> <xsl:comment>XSLT Processor: <xsl:value-of
> select="system-property('xsl:vendor')"/></xsl:comment>
>

That didn't give me a version, but it gave me 'Tibco, Inc', which is
quite
obvious, since I am working with Tibco BusinessWorks.

> > This e-mail and any attachment is for authorised use by the
> intended
> > recipient(s) only. It may contain proprietary material
>
> Please tell your lawyers to stop adding such daft nonsense to
> your emails, it brings their profession and your employers
> into disrepute.

I am sorry for that, but I don't think there is anything I can do about
it.

Regards,
Peter Hofman

>
> Michael Kay
> http://www.saxonica.com/
>
>


This e-mail and any attachment is for authorised use by the intended
recipient(s) only. It may contain proprietary material, confidential
information and/or be subject to legal privilege. It should not be copied,
disclosed to, retained or used by, any other party. If you are not an intended
recipient then please promptly delete this e-mail and any attachment and all
copies and inform the sender. Thank you.

Current Thread