xsl-list
[Top] [All Lists]

RE: generating namespace attributes in result

2005-04-07 08:20:29
In the XPath data model, namespaces are represented by namespace nodes, not
by attribute nodes. So you can't create them using xsl:attribute.

XSLT 2.0 has an instruction xsl:namespace for creating namespace nodes, but
there is no direct equivalent in XSLT 1.0. There's a workaround, which
involves creating a dummy element in the relevant namespace in a temporary
tree, and then copying its namespace nodes using xsl:copy-of.

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

-----Original Message-----
From: omprakash(_dot_)v(_at_)polaris(_dot_)co(_dot_)in 
[mailto:omprakash(_dot_)v(_at_)polaris(_dot_)co(_dot_)in] 
Sent: 07 April 2005 15:20
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] generating namespace attributes in result


Hi,
        Iam using <xsl:for-each select="namespace:*"> to 
iterate over all
namespace attributes on the input element and write them to 
the result.
using <xsl:value-of select=name(.)"/> and <xsl:value-of select=."/>.

If my input xml elements are in the default namespace, then the
<xsl:value-of select=name(.)"/>  returns an empty string.

Now when I try to do an inverse transform and try to create 
an attribute as
follows:

<xsl:attribute name="$attrname">
<xsl:value-of select=$attrval"/>
</xsl:attribute>

where attrname and attrval contain the namespace originally 
written to the
result, I get an error

An attribute whose value must be a QName had the value ''.

What I would like to do is
replace the empty string I get for the namespace name with 
'xmlns' ( This
doesn't agree with the processor which gives above error just 
says 'xmlns'
instead of the '') and regenerate the namespace just like it 
was in the
original xml in my inverse transform.

Hope this is clear.

Cheers,
Omprakash.V









This e-Mail may contain proprietary and confidential 
information and is sent for the intended recipient(s) only. 
If by an addressing or transmission error this mail has been 
misdirected to you, you are requested to delete this mail immediately.
You are also hereby notified that any use, any form of 
reproduction, dissemination, copying, disclosure, modification,
distribution and/or publication of this e-mail message, 
contents or its attachment other than by its intended 
recipient/s is strictly prohibited.

Visit Us at http://www.polaris.co.in

--~------------------------------------------------------------------
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>
--~--





--~------------------------------------------------------------------
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>