[xsl] Creating HTML and XHTML with one stylesheet with namespace-alias

Subject: [xsl] Creating HTML and XHTML with one stylesheet with namespace-alias
From: Deborah Pickett <debbiep-list-xsl@xxxxxxxxxx>
Date: Mon, 03 Sep 2007 10:04:53 +1000
Can someone please confirm if what I'm doing here conforms to the XSLT
1.0 spec?  It seems to crash Xalan-J 2.7.0, but Saxon 6 and MSXML 4 do
what I want.  (XSLT 2.0 clearly states that this works, and indeed Saxon
8 does so.)

I am using a large stylesheet, call it foo2html.xsl, which generates
HTML 4 (un-namespaced, as HTML should be) using literal result elements:
  <!-- Lots of templates like this. -->
  <xsl:template match="/foo">

I want to use that same stylesheet to generate equivalent,
properly-namespaced, XHTML 1.0, by importing it into a "shell"
stylesheet that maps the null namespace to the XHTML namespace.  I use
xsl:namespace-alias to map the default namespace prefix, in this case no
namespace, to the XHTML namespace.

<xsl:stylesheet version="1.0"
  <xsl:import href="foo2html.xsl"/>
  <xsl:output method="xml" doctype-system=
    doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN" />

I'm not fussy about whether the output makes use of default namespaces
or not, provided that it's valid XHTML.  I would prefer to do the
transform in one pass.

Specifically, what I want to know is:
Is is allowed for namespace-alias to map the null namespace in XSLT 1.0?


Current Thread