Re: [xsl] CDATA Handling

Subject: Re: [xsl] CDATA Handling
From: Evan Lenz <evan@xxxxxxxxxxxx>
Date: Tue, 06 Jan 2009 10:02:24 -0800
Weird, my choice of text delimiter got partially stripped out in the email distributed to the list. So I guess I'll add:

3. Using weird non-XML delimiters (like number signs) in email discourse may result in unexpected behavior.

[idle testing; forgive the noise: TARTIMAGE## ##E]

Evan Lenz wrote:
I'll probably regret this suggestion. No one has mentioned an alternative possibility (still bad architecturally, just not quite as bad as using CDATA delimiters): use non-XML "markup" (text) to delimit the images.

<x>See following image: TARTIMAGE##abcde##ENDIMAGE##</x>

That way:

1. No DTD change is necessary, and
2. the delimiters aren't lexical details that get lost when using XML processing tools.

Now you just have a different set of problems:

1. You're not using XML, which is designed for this sort of thing (and made easy to process using XML tools), and
2. things could break if your choice of delimiters happens to appear in textual data.

So the above suggestion is a lesser of two evils. My official advice is to update the DTD. :-)


David Carlisle wrote:
<x>See following image: <![CDATA[abcde]]></x>

But that is spectacularly fragile markup, if the input is like that although it looks superficially like XML it would be best not to use any XML tools to process it, as if you pass that through an XML parser it is going to look like <x>See following image: abcde</x>.

(Actually an XML parser, typically DOM ones, may report the presence of
CDATA sections, just as it may report other things, such as line
numbers, but that's principally for editor support, not part of the XML
infoset that an XML application can rely on extracting from an XML

Returning to XSLT, while your original question used an entire element
content as a CDATA section, and several replies pointed out ways of
getting a more or less equivalent output using CDATA sections, the form
shown here where a CDATA section is being abused to mark up a text
range, is impossible to handle in XSLT (or other XML tools) as the CDATA
section markup is not reported.


________________________________________________________________________ The Numerical Algorithms Group Ltd is a company registered in England and Wales with company number 1249803. The registered office is: Wilkinson House, Jordan Hill Road, Oxford OX2 8DR, United Kingdom.

This e-mail has been scanned for all viruses by Star. The service is
powered by MessageLabs. ________________________________________________________________________

Current Thread