Erreur dans Firefox avec l'attribut xmlns et les feuilles de styles XSL

La présence du code suivant xmlns="http://www.w3.org/TR/xhtml1/strict" au sein de la déclaration <xsl:stylesheet/> provoque une erreur de rendu dans Firefox.
Internet Explorer, Opera et Safari ne présentent pas le problème.


Exemple sans la directive xmlns


Exemple avec la directive xmlns

diff -u without_xmlns.xsl with_xmlns.xsl


--- without_xmlns.xsl   2008-11-17 11:17:48.000000000 +0100
+++ with_xmlns.xsl      2008-11-17 13:17:15.000000000 +0100
@@ -1,5 +1,6 @@
 <?xml version="1.0"?>
 <xsl:stylesheet version="1.0"
+                xmlns="http://www.w3.org/TR/xhtml1/strict"
                 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
   <xsl:output method="html"/>
   <xsl:template match="/">

Testé avec :

Correction

L'erreur vient de la (mauvaise ?) lecture de la recommendation XSLT qui, dans son paragraphe 2.3 "Literal Result Element as Stylesheet", montre le code :


<xsl:stylesheet version="1.0"
                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                xmlns="http://www.w3.org/TR/xhtml1/strict">

Or, dans la recommendation XHTML 1.0, on trouve au pagraphe 3.1.1 "Strictly Conforming Documents" que l'adresse à fournir à l'attribut xmlns est : http://www.w3.org/1999/xhtml.
Dès lors, le rendu dans Firefox est correct comme le montre le second exemple avec la directive xmlns.

diff -u with_xmlns.xsl with_xmlns2.xsl


--- with_xmlns.xsl      2008-11-17 14:26:19.000000000 +0100
+++ with_xmlns2.xsl     2008-11-17 14:49:52.000000000 +0100
@@ -1,6 +1,6 @@
 <?xml version="1.0"?>
 <xsl:stylesheet version="1.0"
-                xmlns="http://www.w3.org/TR/xhtml1/strict"
+                xmlns="http://www.w3.org/1999/xhtml"
                 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
   <xsl:output method="html"/>
   <xsl:template match="/">