PCDATA - Parsed Character Data

Çözümlenmiş karakter verisi anlamına geliyor. Örnek olarak;

<kitap>Yunus Emre Divanı</kitap>

Kitap elemanın içinde & < > yerine & < > şeklinde yazmanız gerekmekte aksi halde tekrar bir eleman açıyormuş gibi işlem yapar ve hata ile karşılaşırsınız.

Hata ile karşılaşmamak için CDATA kullanmamız gerekir.

CDATA - Character Data

Karakter verisi anlamına geliyor. PCDATA'nın yetersiz kaldığı yerlerde CDATA kullanıyoruz. CDATA için;

<kitap>
	<![CDATA[
	Yunus <emre> Divanı
	]]>
</kitap>
ile biter. CDATA nerede kullanırız ?

Senaryo : Haber sitesi var; haber sitesinin manşet, son dakika, döviz kurları, spor sonuçları gibi anlık güncellenmesi gerekiyor. XML kullanarak nasıl güncelleyebiliriz?

Öncelikle sitede güncellenmesi gereken yerleri listeleyelim;

  • Site Başlığı
  • Son Dakika
  • Manşet
  • Döviz Kurları
  • Spor Sonuçları

Bu yapıya uygun bir XML oluşturalım.

<?xml version="1.0" encoding="UTF-8"?>
<site guncelleme="01.01.2015 12:15">
	<kafa>
		<baslik></baslik>
	</kafa>
	<govde>
		<manset></manset>
		<sondakika></sondakika>
		<doviz></doviz>
		<spor></spor>
	</govde>
</site>

Yukarıdaki ağaç yapısını oluşturduktan sonra gerekli verileri doldururken manşet kısmında HTML kodları ile birlikte eklersek hata alırız.

CDATA ile bunu çözebiliriz.

<?xml version="1.0" encoding="UTF-8"?>
<site guncelleme="01.01.2015 12:15">
	<kafa>
		<title>Son Dakika - Haber</title>
	</kafa>
	<govde>
		<manset>
			<![CDATA[
			<li><img src="ilkaraba.jpg"></li>
			<li><img src="ilkucak.jpg"></li>
			<li><img src="ilkuydu.jpg"></li>
			]]>
		</manset>
		<sondakika>
			<![CDATA[
			<li>Bor ile çalışan ilk milli araç üretildi.</li>
			<li>İlk milli uçak başbakan tarafından test edildi.</li>
			<li>TUBİTAK tarafından ilk milli uydu Kırşehir den fırlatıldı.</li>
			]]>
		</sondakika>
		<doviz>
			<![CDATA[
			<div class="dolar">
				x.xxxx
			</div>
			<div class="euro">
				x.xxxx
			</div>
			<div class="bist/imkb">
				x.xxxx
			</div>
			]]>
		</doviz>
		<spor>
			<![CDATA[
			<li>İnanılmaz yetenekli çocuk.</li>
			<li>Galatasaraya yönetimde çalkalanma.</li>
			<li>Fenere şok transfer.</li>
			<li>Beşiktaş'dan sponsor anlaşması.</li>
			]]>
		</spor>
	</govde>
</site>

Güncelleme işlemlerinde, XML veriyi parçalayarak hızlı bir şekilde güncelleme işlemini tamamlayabilirsiniz.