Site hosted by Angelfire.com: Build your free website today!

XML CDATA

xml.jpg

Kogu XML dokumendi tekst loetakse parseri abil. Tekst mis jääb CDATA sektsiooni, seda parser ei loe.

Tavaliselt XML parser parsib kogu teksti XML dokumendi sees. Kui XML elementi parsitakse siis tekst mis jääb XML märgiste vahele, parsitakse samuti:

<teade>See tekst siin parsitakse samuti</teade>

Parser teeb seda sest XML elemendis võib olla veel teisi elemente. Allpool olevas näites on <nimi> elemendis veel kaks elementi:

<nimi><ees>Jaan></ees><perekonna>Tatikas</perekonna></nimi>

Parsed Character Data (PCDATA) terminit kasutatakse teksti-data kohta mida XML parser parsib e. loeb.

Cdata - Unparsed (parsimatu) Character DATA

Seda terminit kasutatakse teksti-data kohta mida parser ei loe v. ei peaks saama lugeda. Sellised märgid nagu "<" ja "&" ei ole lubatud XML elemendi sees.
"<", - tekitab vea kuna parser loeb seda elemendi alguseks.
& - tekitab vea kuna parser loeb seda erimärgise alguseks.

Javascript'is on palju selliseid märke, seega rikete vältimiseks tuleb skript sulgeda CDATA sektsiooni. Kõik mis jääb CDATA sektsiooni, seda parser ei loe.
CDATA sektsioon algab "<![CDATA[" ja lõpeb "]]>":

<juur>
  <tütar>
  <![CDATA[
    Tekst mida parser ignoreerib on siin...
  ]]>
  </tütar>
</juur>

Pane tähele: lõpumärgise "]]>" sees ei tohi olla tühikuid ja seda ei tohi poolitada.

Selles näites on kogu Javascript'i kood suletud CDATA sektsiooni:

<?xml version="1.0"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Kellaaeg</title>

<script type="text/javascript">

<![CDATA[
  var currentTime = new Date()
  var hours = currentTime.getHours()
  var minutes = currentTime.getMinutes()

  var suffix = "AM";
  if (hours >= 12) {
  suffix = "PM";
  hours = hours - 12;
  }
  if (hours == 0) {
  hours = 12;
  }

  if (minutes < 10)
  minutes = "0" + minutes

  document.write("<b>" + hours + ":" + minutes + " " + suffix + "</b>")
]]>
</script>

</head>

<body>
<h1>Kuvame kellaaega</h1>
</body>
</html>




Punane Nool Vasak Punane Nool