xsl-list
[Top] [All Lists]

Re: CDATA Output

2003-04-23 07:16:34
Thanks Mike,

The reason it is being suggested to use a CDATA
section is that the element is going to contain HTML
markup, and thus, a ton of stuff like this >, <, &,
and other characters that need to be escaped. However,
I see what you are saying about the receiver treating
it differently and luckily, although I don't have
control over the receiver, I DO have control over
making sure that all content put into that containing
element is well-formed, so I will do that.

Thanks for the help.

--Nathan



Date: Wed, 23 Apr 2003 08:54:37 +0100
From: "Michael Kay" <mhk(_at_)mhk(_dot_)me(_dot_)uk>
Subject: RE: [xsl] Re: CDATA output


but it did not work, rightfully so. So, I cannot use
cdata-section-elements. Right now, I am simply doing
this:

<property name="Body">&lt;![CDATA[
<!-- main content -->
<xsl:apply-templates />
]]&gt;</property>

but that seems 'unclean' to me...

Not only is it unclean, it's not going to work, unless
you use
disable-output-escaping.

Why does the serialized output need to be in a CDATA
section? Is it
really destined for an application that treats

  <a><![CDATA[xyz&]]></a>

differently from

  <a>xyz&amp;</a>

? If so, you should consider redesigning that
application. The
XSLT/XPath data model regards the two constructs above
as different
representations of the same information, and I think
any sane XML
application should do likewise.

Your only alternative is to do the serialization
yourself. Rather than
doing this in the logic of your stylesheet (using
disable-output-escaping), I would suggest doing it as
a back-end
post-processing application - typically written as a
SAX
ContentHandler.

Michael Kay
Software AG
home: Michael(_dot_)H(_dot_)Kay(_at_)ntlworld(_dot_)com
work: Michael(_dot_)Kay(_at_)softwareag(_dot_)com

__________________________________________________
Do you Yahoo!?
The New Yahoo! Search - Faster. Easier. Bingo
http://search.yahoo.com

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



<Prev in Thread] Current Thread [Next in Thread>