Re: [xsl] Extra xmlns=""

Subject: Re: [xsl] Extra xmlns=""
From: David Carlisle <davidc@xxxxxxxxx>
Date: Tue, 17 Jul 2001 15:01:58 +0100
> And here's the output I'm getting using MSXML.  I get the same thing in XT,
> but not in Xalan-C or Xalan-J.

As Mike commented, two of those systems are getting this wrong.
Unfortunately you haven't shown enough of the stylesheet to determine
which. (just need to see the xsl:stylesheet start tag)

<xsl:template match="article">
 <html xmlns=""; lang="en" xml:lang="en">

so here <html is in the XHTML namespace as are all unprefixed elements
_in that template_.

so the output should be <html in the XHTML namespace

<html lang="en" xml:lang="en" xmlns="";>

so far, so good.

<xsl:template match="keywordset">

here h2 is in the default namespace in force at that point in the

If you haven't got an xmlns= on your xsl:stylesheet then this is no
namespace at all and so you are specifying that you want to generate
an h2 in no namespace. Given that 
<html lang="en" xml:lang="en" xmlns="";>
has already been output, the only way to serialise this is to output
<h2 xmlns="">
and msxsl and xt would be right.

If on the other hand you have xmlns=""; on
any ancestor of that <h2> in the styleshhet (which can only be the
xsl:stylesheet element, as you've shown the rest) then th eh2 is in the
XHTML namespace, so it should be output as
<h2> and MSXML and XT would be wrong.


This message has been checked for all known viruses by Star Internet
delivered through the MessageLabs Virus Scanning Service. For further
information visit or alternatively call
Star Internet for details on the Virus Scanning Service.

 XSL-List info and archive:

Current Thread