outputting entity references

Subject: outputting entity references
From: "DuCharme, Robert" <Robert.DuCharme@xxxxxxxxxx>
Date: Fri, 2 Jun 2000 11:46:17 -0400
I've figured out how to output entity references with XSLT. There is some
ugliness involved (i.e. disable-output-escaping), but it's encapsulated in
an entity declaration in the stylesheet's doctype declaration, leaving the
stylesheet document itself looks pretty clean. A sample:

  <!DOCTYPE stylesheet [
  <!ENTITY ntilde "<xsl:text
disable-output-escaping='yes'>&amp;ntilde;</xsl:text>">
  ]>
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";  
  version="1.0">

	 <xsl:output doctype-system="mydecls.dtd"/>

	 <xsl:template match="/">
		<p>The Spanish word for "Spain" is Espa&ntilde;a.</p>
	 </xsl:template>

  </xsl:stylesheet>

This will output the following:

  <p>The Spanish word for "Spain" is Espa&ntilde;a.</p>

Of course, mydecls.dtd needs a proper declaration of ntilde for the output
document to be considered valid. Also, this entity reference won't work
inside of an attribute value or an xsl:text element, because the entity
substitution will attempt to insert the xsl:element declared as the entity's
replacement text there, which is illegal. Still, I know this will be handy. 

Suggestions? Insults? (I think most would agree that the subject of the
usefulness of outputting specific entity references has been discussed
enough on the list.)

Bob DuCharme          www.snee.com/bob           <bob@  
snee.com>  "The elements be kind to thee, and make thy
spirits all of comfort!" Anthony and Cleopatra, III ii


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread