Subject: Re: Converting a string to Uppercase or Lowercase without using translate() ?
From: Wendell Piez <wapiez@xxxxxxxxxxxxxxxx>
Date: Tue, 27 Nov 2007 11:48:11 -0500
|
At 11:22 AM 11/27/2007, Andrew wrote:
Maybe we should have a go at obfuscating XSLT through over zealous use
of entities... like turning the identity template into the &ident;
entity ref:
<!DOCTYPE xsl:stylesheet [
<!ENTITY xslt-ns 'http://www.w3.org/1999/XSL/Transform'>
<!ENTITY opt '<xsl:output indent="yes"/>'>
<!ENTITY ident '<xsl:template
match="@*|node()"><xsl:copy><xsl:apply-templates
select="@*|node()"/></xsl:copy></xsl:template>'>
]>
<xsl:stylesheet xmlns:xsl="&xslt-ns;"
version="2.0">
&opt;
&ident;
</xsl:stylesheet>
Since entities resolve recursively, this cries out for more:
<!DOCTYPE xsl:stylesheet [
<!ENTITY xslt-ns 'http://www.w3.org/1999/XSL/Transform'>
<!ENTITY all '@*|node()'>
<!ENTITY opt '<xsl:output indent="yes"/>'>
<!ENTITY copy '<xsl:copy><xsl:apply-templates
select="&all"/></xsl:copy>'>
<!ENTITY ident '<xsl:template
match="&all;">©</xsl:template>'>
]>
<xsl:stylesheet xmlns:xsl="&xslt-ns;"
version="2.0">
&opt;
&ident;
</xsl:stylesheet>
Cheers,
Wendell
======================================================================
Wendell Piez mailto:wapiez@xxxxxxxxxxxxxxxx
Mulberry Technologies, Inc. http://www.mulberrytech.com
17 West Jefferson Street Direct Phone: 301/315-9635
Suite 207 Phone: 301/315-9631
Rockville, MD 20850 Fax: 301/315-8285
----------------------------------------------------------------------
Mulberry Technologies: A Consultancy Specializing in SGML and XML
======================================================================
|