Hi
-----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
Lars Huttar
Sent: Wednesday, October 29, 2003 12:05 AM
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: RE: [xsl] adding a namespace to a stylesheet automatically
This is of course the scenario that motivated
xpath-default-namespace in
XSLT 2.0.
Michael Kay
Yes. I'm wondering if anyone has written a solution to make
do for XSLT 1.0.
You can use local-name() ans namespace-uri()
<xsl:template match="*[local-name()='foo' and
namespace-uri()=$mynamespace]">
<xsl:if test="parent::*[local-name()='bar' and
namespace-uri()=$mynamespace][(_at_)baz] = /*/*[local-name()='squid' and
namespace-uri()=$mynamespace]">...</xsl:if>
Just define $mynamespace as a global parameter. Every time you change
namespaces you only need ta pass the new one to the stylesheet
Regards,
Americo Albuquerque
Thanks.
I think for this kind of thing it would be just as easy
to just put in a namespace prefix where needed, and when
I want to change the namespace, just change the declaration
of that prefix in the stylesheet; or if required, do a global-replace
in my text editor to change "foo:" to "bar:".
What I'm looking for is a way to avoid the tedious and error-prone
work of going through
the stylesheet and inserting a namespace prefix [or switching
to local-name() and namespace-uri()] wherever
(and only where) an element name is given in an XPath
expression or a pattern.
I.e. when the stylesheet already exists and does not use
a namespace for the source document.
Lars
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list