-------- Original Message -------- Subject: Re: Why does Doctype change processing of a document Date: Wed, 02 May 2007 20:03:38 +0200 From: Ferdinand Soethe <[EMAIL PROTECTED]> To: Larry Trammell <[EMAIL PROTECTED]> References: <[EMAIL PROTECTED]>
Thanks to all of you for helping me understand my mistake. At least I know what is going wrong now. Adding xmlns:xhtml="http://www.w3.org/1999/xhtml" to my stylesheet worked well but added all those ugly xhtml:... to the generated elements. So I declared xhtml as default namespace xmlns="http://www.w3.org/1999/xhtml" to make them disappear. Which worked really well in this template and let to the resulting document being free of xhtml:... > <xsl:stylesheet > xmlns:xsl="http://www.w3.org/1999/XSL/Transform" > xmlns="http://www.w3.org/1999/xhtml" > version="1.0" > > > <!-- toolbox for copying everything over to the target --> > <xsl:import href="copyover.xsl"/> > > <!-- Match html, disregard the namespace --> > <xsl:template match="/*[local-name()='html']"> > <xsl:apply-templates select="*[local-name()='body']"/> > </xsl:template> > > <!-- Match body, disregard namespace --> > <xsl:template match="/*[local-name()='html']/*[local-name()='body']"> > <div class="content"> > <xsl:apply-templates/> > </div> > </xsl:template> except for the div-element. Has anyone the patience to explain? And also: I expected to be able to do away with /*[local-name()='html'] now that xhtml is default namespace. But it doesn't work that way. Why? And when I change the style-sheet to > <xsl:stylesheet > xmlns:xsl="http://www.w3.org/1999/XSL/Transform" > xmlns:xhtml="http://www.w3.org/1999/xhtml" > version="1.0" exclude-result-prefixes="xhtml"> > > <!-- toolbox for copying everything over to the target --> > <xsl:import href="copyover.xsl"/> > > <!-- Match html, disregard the namespace --> > <xsl:template match="/*[local-name()='html']"> > <xsl:apply-templates select="*[local-name()='body']"/> > </xsl:template> > > <!-- Match body, disregard namespace --> > <xsl:template match="/*[local-name()='html']/*[local-name()='body']"> > <div class="content"> > <xsl:apply-templates/> > </div> > </xsl:template> > and try to remove xhtml with exclude-result-prefixes then things turn around. div will no longer have a namespace attribute while all the copied element do. Misterious really. Best regards, Ferdinand Soethe