RE: [xsl] xmlns="" / XML to XHTML

Subject: RE: [xsl] xmlns="" / XML to XHTML
From: Eric van der Vlist <vdv@xxxxxxxxxxxx>
Date: Tue, 13 Sep 2005 15:06:56 +0200
Le mardi 13 septembre 2005 ` 13:48 +0100, Michael Kay a icrit :
> > and b) modified the <html> Tag like this:
> > 
> > <html lang="de" xml:lang="de">
> > <xsl:attribute 
> > name="xmlns">http://www.w3.org/1999/xhtml</xsl:attribute>
> > 
> > And see there: All default namespaces are gone (Perhaps I4ve finally 
> > understood namespaces ;-))
> > 
> 
> No, I'm sorry, but you haven't. A namespace is not an attribute, and an
> attribute is not allowed to have the name "xmlns". The spec says explicitly
> (section 7.1.3) "It is an error if the [name attribute] is the string
> "xmlns". If your XSLT processor accepts this stylesheet, then it has a bug
> in it.

More precisely, this is an error if it accepts it and adds the namespace
declaration to the output tree (the XSLT 1.0 rec leaves the option to
implementations to silently ignore the bogus xsl:attribute in that
case).

Now, I am really curious to know why anyone would want to write:

<html lang="de" xml:lang="de">
<xsl:attribute name="xmlns">http://www.w3.org/1999/xhtml</xsl:attribute>

instead of the less verbose (and authorized)

<html lang="de" xml:lang="de" xmlns="http://www.w3.org/1999/xhtml";>

!!!

Eric
-- 
Le premier annuaire des apiculteurs 100% XML!
                                                http://apiculteurs.info/
------------------------------------------------------------------------
Eric van der Vlist       http://xmlfr.org            http://dyomedea.com
(ISO) RELAX NG   ISBN:0-596-00421-4 http://oreilly.com/catalog/relax
(W3C) XML Schema ISBN:0-596-00252-1 http://oreilly.com/catalog/xmlschema
------------------------------------------------------------------------

Current Thread