[xsl] How to create a literal string attribute value that contains an apostrophe?

Subject: [xsl] How to create a literal string attribute value that contains an apostrophe?
From: "Costello, Roger L." <costello@xxxxxxxxx>
Date: Mon, 9 Dec 2013 14:57:28 +0000
Hi Folks,

I want to output a string.

This

	<xsl:value-of select="'he is good'" />

outputs:

	he is good

Now, suppose that I want to output:

	he's good

This

	<xsl:value-of select="'he&apos;s good'" />

produces an error. Apparently the entity is resolved to yield

 	<xsl:value-of select="'he's good'" />

and that is obviously an error.

So what's the solution?

Answer: escape the ampersand in the apostrophe entity reference:

	<xsl:value-of select="'he&amp;apos;s good'" />

Now that doesn't seem reasonable. It means that there is double entity
resolution occurring: the first to convert

	&amp;apos;

to

	&apos;

and the second to convert

	&apos;

to

	'

Where is this double entity resolution occurring? The XML parser does the
first entity resolution. What is doing the second entity resolution?

/Roger

Current Thread