  | |  | Why does Doctype change processing of a document | Why does Doctype change processing of a document 2007-05-02 - By Ferdinand Soethe
-------- Original Message -------- Subject: Re: Why does Doctype change processing of a document Date: Wed, 02 May 2007 20:03:38 +0200 From: Ferdinand Soethe <ferdinand@(protected)> To: Larry Trammell <larryt@(protected)> References: <22A20AD271DB4949836F85AACBB90A770892A0@(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
|
|
 |