This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
RE: Namespaces in XSLT
- From: "Evan Lenz" <evan at evanlenz dot net>
- To: <xsl-list at lists dot mulberrytech dot com>
- Date: Sat, 4 May 2002 19:51:07 -0700
- Subject: RE: [xsl] Namespaces in XSLT
- Reply-to: xsl-list at lists dot mulberrytech dot com
tinku wrote:
> Is the default namespaces taken into account when processing
> XPATHs in an XSL stylesheet? What will be generated as the
> following is given:
I think you might be asking two different questions here:
1) Is the default namespace taken into account when evaluating XPath
expressions (or match patterns) in an XSLT stylesheet?
2) Is the default namespace taken into account when creating an element with
a literal result element?
The answer to #1 is no. Looking at your example:
> <xsl:template xmlns= "http://foo.com" match='bo[@xpath]'>
> <foo/>
> </xsl:template>
This template rule will only match "bo" elements that are not in a
namespace. If you want to match (or select) "bo" elements in a namespace,
you must use a prefix and corresponding xmlns declaration.
Note that, for the sake of convenience, XSLT 2.0 will provide a way to
declare a default namespace for XPath expressions and XSLT patterns, in the
form of an [xsl:]default-xpath-namespace attribute. See
http://www.w3.org/TR/xslt20/#unprefixed-qnames
The answer to #2 is yes. More accurately, the XSLT processor just takes the
local/URI pair that the namespace-aware XML parser gives to it. In your
example above, the <foo/> element name consists of the following local/URI
pair: ("foo", "http://foo.com"). That is the name given to the created
element in the result tree.
Hope this helps,
Evan
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list