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

RE: [xsl] Namespace question


Subject: RE: [xsl] Namespace question
From: <Jarno.Elovirta@xxxxxxxxx>
Date: Wed, 7 Apr 2004 09:22:13 +0300

FAQ,

> I'm trying to transform an XHTML document whose root node looks like 
> this:
> 
> 	 <html xmlns="http://www.w3.org/1999/xhtml>
> 
> None of my templates match, and it's because of the default namespace 
> attribute.

No. It's because your node tests are not what you meant them to be. See <http://www.w3.org/TR/xpath.html#node-tests>:

  "A QName in the node test is expanded into an expanded-name using the namespace declarations from the expression context. This is the same way expansion is done for element type names in start and end-tags except that the default namespace declared with xmlns is not used: if the QName does not have a prefix, then the namespace URI is null--".

> What do I need to do to fix my stylesheet?

Add namespace declaration for the XHTML namespace with a prefix, e.g.

  xmlns:h="http://www.w3.org/1999/xhtml"

then write your patterns and expressions using it

  <xsl:template match="h:html">

Cheers,

Jarno


Current Thread
Keywords