[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

Re: [xsl] Default namespace in XML document


Subject: Re: [xsl] Default namespace in XML document
From: George Cristian Bina <george@xxxxxxx>
Date: Wed, 02 Nov 2005 00:31:33 +0200

Hi,

When you specify a NameTest in XPath 1.0 using an element name without a prefix then that means the element from no namespace. If you want to specify elements from a namespace then you need to use a prefix mapped to that namespace. In XSLT 2.0 you can use the xpath-default-namespace attribute to specify the namespace to be used for names without a prefix used in XPath 2.0 expressions.

If you want your stylesheet to ignore the namespace of the elements then use something like

*[local-name()='MyRoot']
instead of
MyRoot

in your XPath expressions.

Hope that helps,
George
---------------------------------------------------------------------
George Cristian Bina
<oXygen/> XML Editor, Schema Editor and XSLT Editor/Debugger
http://www.oxygenxml.com


Kevin L.. Cobb wrote:
I have an XML document with a default namespace indicated at the root.
Something like this:

<MyRoot xmlns="http://www.mysite.com">
<!-- a lotta XML in here -->
</MyRoot>

My XSLT to parse the XML does not work as expected because of the
default namespace, i.e. when I remove the namespace, everyting works as
expected. All XPATH statements find their intended values. Since I don't
have control over the source XML and the included default namespace,
what should I do to my XSLT so that my XPATH expressions find their
intended values?

BTW: I'm using the XERCES parser.

Thanks,

Kevin


Current Thread