-------- 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


Reply via email to