The answer is to copy the namespace node from the source document to the
result document.
<xsl:template name="part">
<xsl:copy-of select="@element"/>
<xsl:copy-of select="namespace::*[name() = substring-before(@element,
':')]"/>
Or you could simply copy ALL namespace nodes:
<xsl:copy-of select="namespace::*"/>
Michael Kay
Software AG
home: Michael(_dot_)H(_dot_)Kay(_at_)ntlworld(_dot_)com
work: Michael(_dot_)Kay(_at_)softwareag(_dot_)com
-----Original Message-----
From: owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
[mailto:owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com] On Behalf Of
Matt Seaborn
Sent: 05 December 2002 08:45
To: 'XSL-List(_at_)lists(_dot_)mulberrytech(_dot_)com'
Subject: [xsl] How do you handle namespace prefixes in
attribute values in XSLT?
Taking a wsdl file (only as an example, applies to any
namespaces xml file) which looks like this
<?xml version="1.0"?>
<definitions name="StockQuote"
targetNamespace="http://example.com/stockquote.wsdl"
xmlns:xsd1="http://example.com/stockquote.xsd"
...
<message name="GetLastTradePriceOutput">
<part name="body" element="xsd1:TradePrice"/>
</message>
and you wish to operate on it using XSLT. If the prefix
'xsd1' is not used in the QName of an element then when
operating on the XML the 'xsd1' prefix will be lost unless it
is explicitly declared in the XSLT. However as the actual
prefix of a namespace is considered irrelevant it cannot be
known before being given the XML document to transform.
Assuming the namespace and its prefix is not known in advance
and therefore not declared in the XSLT the prefix-namespace
association will not be present in the destination document
which renders the attribute value 'xsd1:TradePrice' incorrect
if it is placed in the destination (transformed) docoument.
How should this be handled, as I cannot see how to either
preseve the prefix-namespace declaration or ensure the
namespace is declared and change the prefix to a correct
value in the attribute in the destination document?
Matt Seaborn
Software Engineer
Categoric Software
The leader in business process event management technology
+44 (0)1932 590900 tel
+44 (0)1932 590901 fax
+44 (0)1932 590907 direct
http://www.categoric.com <http://www.categoric.com/>
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list