On 31/05/07, Giuseppe Di Pierri <[EMAIL PROTECTED]> wrote:
On 31/05/07, Christian Schlichtherle <[EMAIL PROTECTED]> wrote:
>
>
>
> Hi,
>
> I have an XSL stylesheet which needs to be preprocessed with JXTemplate so
> that the resulting sheet strictly conforms to XSL 1.0 (so it can be
> processed by some recent browsers).
>
> The stylesheet looks like this:
>
> <xsl:stylesheet version="1.0"
> xmlns="http://www.w3.org/1999/xhtml"
>
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
>
> xmlns:jx="http://apache.org/cocoon/templates/jx/1.0"
> exclude-result-prefixes="jx">
> <!-- Parameter declaration. -->
> <jx:choose>
> <jx:when test="${empty(cocoon.request.select)}">
> <xsl:param name="select">start</xsl:param>
> </jx:when>
> <jx:otherwise>
> <xsl:param name="select">${cocoon.request.select}</xsl:param>
> </jx:otherwise>
> </jx:choose>
> <!-- remainder omitted -->
> </xsl:stylesheet>
>
> Now if I preprocess it like this:
>
> <map:match pattern="*.xsl">
> <map:generate label="style" type="jx" src="{0}"/>
> <map:serialize type="xml"/>
> </map:match>
>
> ... then the resulting output still contains the xmlns:jx attribute in the
> <xsl:stylesheet> tag:
>
> <?xml version="1.0" encoding="UTF-8"?><!DOCTYPE stylesheet>
> <xsl:stylesheet xmlns="http://www.w3.org/1999/xhtml"
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
> xmlns:jx="http://apache.org/cocoon/templates/jx/1.0"
> version="1.0"
> exclude-result-prefixes="jx">
> <xsl:param name="select">start</xsl:param>
> <!-- remainder omitted -->
> </xsl:stylesheet>
>
> This should not be necessary since all <jx:tag>s have been processed and
> removed from the output.
>
> Any clues how I can remove them easily (without writing another XSL
> stylesheet hopefully)?
>
If you don't mind using xsl, we adopt something like this in order to
get xhtml namespace only (don't forget to replace the namespace of
xhtml with xsl one - http://www.w3.org/1999/XSL/Transform - and maybe
you don't need to translate text()):
Errata Corrige:
you would suppress the jx (http://apache.org/cocoon/templates/jx/1.0)
and not the xsl :-)
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xml:space="default">
<xsl:template match="/">
<xsl:apply-templates />
</xsl:template>
<xsl:template match="text()">
<xsl:value-of select="translate(.,'	 ',' ')" />
</xsl:template>
<xsl:template match="*">
<!-- remove element prefix (if any) -->
<xsl:element name="{local-name()}"
namespace="http://www.w3.org/1999/xhtml">
<xsl:apply-templates select="@*" />
<xsl:apply-templates />
</xsl:element>
</xsl:template>
<xsl:template match="@*">
<xsl:attribute name="{local-name()}">
<xsl:value-of select="." />
</xsl:attribute>
</xsl:template>
<xsl:template match="comment()">
<xsl:copy />
</xsl:template>
</xsl:stylesheet>
Good luck with dynamic xsl ;-)
bye
pino
--
Giuseppe Di Pierri
Managing Director
______________________
Phiware Engineering Sagl
via Ginevra 5
CH-6900 Lugano
Tel. +41 91 260 75 55
Fax.+41 91 260 75 59
Email. [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]