[XML-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: CDATA sections in W3C XML Infoset

  • From: Bob Kline <bkline@r...>
  • To: Tim Bray <tbray@t...>
  • Date: Fri, 30 Mar 2001 19:43:40 -0500 (EST)

cdata bray
On Fri, 30 Mar 2001, Tim Bray wrote:

> At 10:54 AM 30/03/01 -0500, Bob Kline wrote:
> >
> >   Find the element containing the CDATA section.
> >   Find the CDATA child of the element.
> >   Hand the value of the CDATA section to the parser.
> 
> This seems really questionable.  Using CDATA sections to embed
> other XML that's known not to contain any seems just fine.
> On the other hand, relying on that CDATA section to tell you
> where it is smells bad.  Wouldn't it have been immensely
> better to do
> 
> <mydoc>...
>   <included-doc><![CDATA[ <something-else /> .. 
>   ]]></included-doc> ...
> </mydoc>
> 
> Then the CDATA does what it's supposed to, simplify
> escaping, and the tags do what they're supposed to,
> provide semantic markup saying what pieces of text
> really are.  -Tim

You're absolutely right, and that's exactly what we're doing.  Our
command sets look like this:

<CdrCommandSet>
 <SessionId>...</SessionId>
 <CdrCommand>
  <CdrAddDoc>
   <CdrDoc Type='Protocol'>
    <CdrDocCtl>... [some control elements] ...</CdrDocCtl>
    <CdrDocXml><![CDATA[
     <Protocol> ... [rest of the embedded document] ...
     </Protocol>
    ]]></CdrDocXml>
   </CdrDoc>
  </CdrAddDoc>
 </CdrCommand>
 ... [more commands] ...
</CdrCommandSet>

So the step described as "Find the element containing the CDATA section"
was referring to the location of a specific element (the CdrDocXml
element at a known position in the hierarchy of a CdrCommand element),
not a blind stumbling around looking for any CDATA section we happened
to run into.  I can see why you might have come to a different
conclusion, though, given the less than precise wording.  If I hadn't
been trying to keep the description of each step down to a single line I
might have said "Find the specific element which we know will contain a
single child node for the CDATA section for the embedded document."  
Sorry for any confusion my sloppy wording may have caused.

The approach we're using give us a number of benefits.  Some of these
benefits are:

  * We can validate the command set against a DTD.
  * A human can easily examine a document embedded in a command set
    when troubleshooting is required (much harder to do with lots
    of escaping going on).
  * We avoid the additional overhead and complexity of extra
    re-encoding and decoding steps.

It's clear from this thread that not everyone gives these advantages the
same weight that we do.  I guess we'll just have to warn writers of any
client software for this system to steer clear of any packages which in
the name of "Infoset compliance" (to use the phrase of one of the
contributors to the thread) violate the assumptions we began with about
the ability to get back CDATA sections where we expect them.  And cross
our fingers that the DOM doesn't get changed to match what's happened to
the Infoset.

-- 
Bob Kline
mailto:bkline@r...
http://www.rksystems.com


PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
 

Stylus Studio has published XML-DEV in RSS and ATOM formats, enabling users to easily subcribe to the list from their preferred news reader application.


Stylus Studio Sponsored Links are added links designed to provide related and additional information to the visitors of this website. they were not included by the author in the initial post. To view the content without the Sponsor Links please click here.

Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.