Home arrow XML arrow Page 2 - XML Basics (part 2)

Splitting Up - XML

Now that you know the basics, this article explains how to use XML's more advanced constructs to author complex XML documents. Entities, namespaces, CDATA blocks, processing instructions - they're all in here, together with aliens, idiots, secret agents and buried treasure.

TABLE OF CONTENTS:
  1. XML Basics (part 2)
  2. Splitting Up
  3. Eating Humble PI
  4. XML And Alcohol
  5. The Name Game
  6. An Entity In The Attic
  7. Digging For Treasure
  8. The Man From IDIOT
  9. Endgame
By: icarus, (c) Melonfire
Rating: starstarstarstarstar / 5
July 28, 2001

print this article
SEARCH DEV SHED

TOOLS YOU CAN USE

advertisement
First up, CDATA. As explained in the previous article, the XML specification considers all text enclosed within tags to be character data. There is one important exception to this - CDATA blocks.

CDATA blocks are document sections explicitly marked as not containing markup, and are hence treated as character data by the parser. These blocks can contain pretty much anything - strings, numbers, symbols, ancient Egyptian hieroglyphics - and will be ignored by the parser.

A CDATA block typically begins with

<![CDATA[
and ends with

]]>
with the data enclosed within the two. Here's an example:

<?xml version="1.0"?> <manual> <function>split(str, pattern)</function> <description>Split a string <param>str</param> into component parts on the basis of <param>pattern</param></description> <example> <![CDATA[ <? split("apple, vanilla, orange", ","); ?> ]]> </example> </manual>
CDATA blocks make it easy to add large blocks of text (including text containing special characters, symbols or program code) to an XML document, yet have the parser treat it as regular character data. And so, while a parser might choke on this,

<?xml version="1.0"?> <secret_message> <from>Our man in Paris</from> <to>Director, Special Operations</to> <coded_body_text> 12637 0%%348 83483 89238 82383 10341 0*049 27216 02039 84585 18127 45759 3@492 83%84 22829 238#3 92345 72310 53467 12941 92461 40149 7^&291 21271 46101 42356 74(@1 4!128 47353 #511~ 473~7 12942 38#53 45628 </coded_body_text> </secret_message>
it will be absolutely fine with this.

<?xml version="1.0"?> <secret_message> <from>Our man in Paris</from> <to>Director, Special Operations</to> <coded_body_text> <![CDATA[ 12637 0%%348 83483 89238 82383 10341 0*049 27216 02039 84585 18127 45759 3@492 83%84 22829 238#3 92345 72310 53467 12941 92461 40149 7^&291 21271 46101 42356 74(@1 4!128 47353 #511~ 473~7 12942 38#53 45628 ]]> </coded_body_text> </secret_message>
Obviously, you cannot include the ending sequence

]]>
within a CDATA block, as this would merely serve to confuse the parser. If you need to include this sequence within a CDATA block, it needs to be written as

]]&gt;


This article copyright Melonfire 2001. All rights reserved.

 
 
>>> More XML Articles          >>> More By icarus, (c) Melonfire
 

blog comments powered by Disqus
escort Bursa Bursa escort Antalya eskort
   

XML ARTICLES

- Google Docs and Xpath Data Functions
- Flex Array Collection Sort and Filtering
- The Flex Tree Control
- Flex List Controls
- Working with Flex and Datagrids
- How to Set Up Podcasting and Vodcasting
- Creating an RSS Reader Application
- Building an RSS File
- An Introduction to XUL Part 6
- An Introduction to XUL Part 5
- An Introduction to XUL Part 4
- An Introduction to XUL Part 3
- An Introduction to XUL Part 2
- An Introduction to XUL Part 1
- XML Matters: Practical XML Data Design and M...

Developer Shed Affiliates

 


Dev Shed Tutorial Topics: