AJAX - XML ile Çalışmak



XML’e Giriş başlıklı
yazımda XML’in hangi durumlarda kullanılabileceğini açıklamıştım. Bu
yazıda ise kendi XML belgelerimizi ne şekilde oluşturabileceğimizi
göreceğiz. Ayrıca yazının sonunda XML belgeleriyle çalışabilmeniz
için bir kaç araçtan da bahsedeceğim.

Yazılarımda hep vurguluyorum: XML’de patron sizsiniz. Bilmeniz veya
ezberlemeniz gereken çok fazla özelleşmiş sözcük (KEYWORD) yok.
Fakat yazdığınız belgelerin uygulamalar tarafından sorunsuzca
değerlendirilebilmesi için bazı yazım kurallarını bilmeniz gerekir.
Şimdi bunları sıralayalım ve ardından da bir örnek uygulama yapalım.

Bir XML belgesinin sadece bir tane kök elementi olabilir. Yani XML’i
bir ağaç yapısında düşünürseniz ağacın bir kökü olduğunu bilirsiniz.

XML’de büyük-küçük harf duyarlılığı vardır.
Açtığınız tüm etiketleri kapatmalısınız.
Eğer boş bir etiketiniz varsa yani içinde veri bulunmaycaksa “/”
işaretini kullanarak kapatabilirsiniz.
İlk açılan etiket en son kapatılır yani etiketler için iç içe geçmiş
nested bir yapı mevcuttur.
Tüm özellikleri (attributes) “” (çift tırnak) arasında yazmalıyız.

Etiket olarak XML, xml , Xml , xML gibi XML’i ifaden sözcükleri
kullanamayız. Bu kelimelerin kullanımı yasaktır çünkü bu XML
kelimesi farklı bir amaç için ayrılmıştır. Zaten gerek de yok
kullanmaya
Etiket adları bir harf ile başlayıp, harf veya rakam ile devam
edebilir. Ama temel şart harf ile başlamasıdır.
Ayrıca aşağıdaki karakterler yerine XML standartalarına uygun olan
versiyonlarını kullanmalıyız.

Son maddeye özellikle dikkat etmenizi istiyorum. İleride
hazırlayacağınız XML belgesini bir ayrıştırıcı tarafından
ayrıştırmaya kalkınca bununla ilgili sorunlarla
karşılaşabiliyorsunuz. Ara projemde kullanıcının bir arayüz ile
girdiği verileri işlemlerin sonunda bir XML belgesi olarak
kaydediyordum fakat burada hep bu karakter dönüşümlerini unuttuğum
için başım çok ağrımıştı. Ben ettim siz etmeyin diyorum Bu gibi
karakerlerin XML begesinden hariç olarak değerlendirilmesi için
CDATA alanları oluşturabilirsiniz (CDATA alanları ayrıştırıcılar
tarafından değerlendirilmez). CDATA kullanımı ise şu şekilde oluyor:

Yukarıda değindiğimiz kuralları şu örnek üzerinde inceleyelim:

Öncelikle xml version… diye başlayan etiketimize bakalım. Sanırım bu
size neden etiket adı olarak XML, xml, XML gibi kelimeleri
kullanamayacağımızı açıklamıştır. O etiketin bir de özelliği var ve
encoding=”UTF-8″ olarak belirtilmiş. Buna her zaman ihtiyacınız
olmayabilir. Özellikle uygulamayı siz geliştiriyor ve XML belgesini
siz kullanıyorsanız encoding konusu sizin için çok sorun
olmayacaktır fakat hazırladığınız XML belgesi başkaları tarafından
kullanılacaksa hangi karakter kodlamasının kullanıldığını
belirtmekte fayda var. Meselâ ben kendi bloguma MYNET haberleri
eklemek istemiştim ve bir RSS öğesi ekledim fakat bir de baktım
Türkçe karakterler bozuk çıkıyor. Sonradan anladımki Wordpress’in
RSS okuyucusu gelen belgeyi UTF-8 ile kodlanmış sanıp ona göre
okuyordu.

Bu örneğimizde kök (root) elemanımız “Arabalar” ve görüldüğü gibi
başka da kök eleman yok. Kök elemanın altında da “yazararabalari” ,
“okuyucuarabalari” ve “yarisarabalari” olmak üzere 3 alt eleman
bulunuyor. Bunlara yabancı kaynaklarda “child element” dendiğini de
görebilirsiniz.

“Yazararabalari” elemanının altında 3 farklı eleman daha bulunuyor.
Burada bir konuya dikkat çekmek istiyorum. Ben örneğimde XML
belgesindeki büyük-küçük harf duyarlılığını vurgulamak için etiket
adlarını büyüklü-küçüklü yazdım fakat sizler bundan kaçının. Size
tavsiyem belgenizi tamamen küçük harflerden oluşturun. Bu şekilde
hem uygulamanız içerisinde XML’den okuduğunuz değeri büyük-küçük
harf işlemleriyle perişan etmemiş olursunuz hem de uygulama
performansınızı da düşürmemiş olursunuz.

“Okuyucuarabaları” adındaki etiketimiz için herhangi bir alt dal
bulunmadığı için “/” kullanarak hemen açtığımız yerde kapattık, buna
da dikkat etmelisiniz. Ayrıca kök etiketimize bir açıklama ekledim.
Sizler de açıklamanızı yukarıdaki etiketlerin arasına alarak
istediğiniz yere ekleyebilirsiniz. Dikkat etmeniz gereken son nokta
da yasak karakterleri ne şekilde kullandığımızla ilgili.

Tüm bu kurallara uyarak WELL-FORMED bir XML belgesi oluşturmuş olduk
yani yazım kurallarına uyan doğru bir XML belgemiz var artık. Mesela
bu belgeyi, kullandığınız web tarayıcısı ile sorunsuzca
açabilirsiniz.

Sanırım aklınıza “hangi araçları kullanarak yapıcam bu işi” gibi bir
soru geldi. Başımızın tacı NOTEPAD ile bunları yapıp .xml uzantısı
ile kaydetmeniz yeterli. Fakat her zaman XML belgesiyle çalışmak bu
kadar kolay olmayacaktır. Bir de işin içine DTD, SCHEMA gibi
kavramlar girince veya belgenin boyutu büyüyünce Notepad yeterli
olmayabilir.

Örneğin ben yukarıdaki ekran görüntülerini ALTOVA XMLSPY adlı
üründen aldım. Gerçekten XML ile ciddi işler yapıyorsanız
vazgeçilmez bir araç. Zaten ALTOVA firması XML konusunda uzman bir
firma. Yazılımın deneme sürümünü mutlaka indirip denemelisiniz.
Fakat bu araç ücretli olduğu için sizlere ücretsiz çözümler de
önermem gerekiyor.

Ücretsiz olarak aklıma ilk gelen ürün More Motion XML Editor aracı.
Bu ürün Altova XMLSPY kadar olmasa da iş görebilecek nitelikte.
Özellikle giriş seviyesindeki kullanıcılar için ideal. Kurulum
gerektirmiyor ve yazıyı formatlayıp daha okunabilir bir hale
getirebiliyor. Hem de yerli bir firma tarafından üretilmiş bir ürün.

XML belgeleriye çalışmak için kullanabileceğiniz diğer araçlar ise
şu şekilde:

XML WRITER
MICROSOFT XML NOTEPAD
OXYGEN XML EDITOR

Eğer sizlerin de bunlar dışında kullandığı araçlar varsa yazının
altına yorum olarak ekleyip bizlerle paylaşabilirsiniz. Bu yazımızda
WELL-FORMED yani yazım kurallarına uyan bir XML belgesini ne şekilde
oluşturacağımız gördük. Size tavsiyem eğer XML ile yeni
tanışıyorsanız belgelerinizi önce NOTEPAD ile hazırlayın, daha sonra
da yukarıda adı geçen araçları kullanarak kurallara uygun yazıp
yazmadığınızı kontrol edin. Bu sayede hem pratikliğiniz artacak hem
de kuralları daha iyi kavramış olacaksınız.

Sabırla okuduğunuz için teşekkürler. Bir başka XML yazısında
görüşenceye dek hoşçakalın…

NOT: Örneklerde geçen kişiler ve sahip oldukları araçlar
tamamen hayal ürünüdür. Hiçbir şekilde gerçeği yansıtmamaktadır

Yeni yorum gönder

Bu alanın içeriği gizli tutulacak ve açıkta gösterilmeyecektir.
  • Web sayfası ve e-posta adresleri otomatik olarak bağlantıya çevrilir.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <img>
  • Satır ve paragraflar otomatik olarak bölünürler.

Biçimleme seçenekleri hakkında daha fazla bilgi

CAPTCHA
Aşağıdaki resimde yer alan karakterleri kutucuğa doğru olarak yazınız
Image CAPTCHA
Enter the characters shown in the image.

Anket

Web sitesinde hangisi daha önemlidir:

Son Konular

2012-04-10 00:53 - Chrome Pili daha çabuk bitiriyor
2012-03-22 19:47 - Geliştirdiğin kodları satmak ister misin
2012-02-12 23:21 - SMF forumu vbulletin foruma aktarmak
2011-12-14 21:50 - Motorlu araçlar otomobil vergisi sorgulama
2011-12-14 21:47 - Sorgulamalar
2011-12-11 14:33 - Ben az önce ne arayacaktım
2011-09-10 22:51 - DSLR Fotograf Makinası sınıflandırması
2011-09-09 17:33 - ‘Crop Factor’ Nedir, hakkında bilgi
2011-09-09 17:30 - Fotograf Rehberi
2011-08-20 21:30 - Samsung LEDTV'lerde .SRF ve XFS süprizi
2011-08-19 00:45 - 2011 yılının web tasarım trendleri
2011-04-09 20:18 - Alan adları gerçek isim sahiplerine verilecek!
2011-01-13 01:43 - SEO İçin Dikkat Edilmesi Gereken Hususlar
2011-01-13 01:42 - Meta tag SEO Optimization
2011-01-13 01:41 - Google Adsense Hakkında Detaylı Bilgi
2011-01-13 01:40 - Soru Ve Cevaplar ile Google Adsense
2011-01-13 01:39 - Arama motoru Google ve Pagerank
2011-01-13 01:38 - Seo Sözlüğü
2011-01-13 01:37 - Google Arama Özellikleri
2011-01-13 01:36 - Adsense Reklam Yerleşimi
2011-01-13 01:35 - Robots.txt Dosyası Kullanım Robotları Yölendirme Kontrol
2011-01-13 01:34 - Sitenizin Google ve Web deki Yeri
2011-01-13 01:33 - Arama Motoru Bilgi ve İpuçları
2011-01-13 01:31 - Arama Motorları Teknikleri
2011-01-13 01:29 - Google Pagerank Detaylı Anlatım
2011-01-13 01:27 - Sitenize Ziyaretçiler En Çok Hangi Kelimeler İle Gelmiş
2011-01-13 01:25 - Pagerank Nedir?
2011-01-13 01:19 - Fireworks Shadow and Glow
2011-01-13 01:18 - Fireworks Sharpen
2011-01-13 01:16 - Fireworks Other
2011-01-13 01:13 - Fireworks Blur
2011-01-13 01:09 - Fireworks Bevel and Emboss
2011-01-13 01:05 - Fireworks Adjust Color
2011-01-13 01:03 - Fireworks Save as Style
2011-01-13 00:58 - Fireworks Text Menüsü
2011-01-13 00:54 - Fireworks Select Menüsü
2011-01-13 00:54 - Fireworks Modify Menüsü
2011-01-13 00:51 - Fireworks View Menüsü
2011-01-13 00:18 - Fireworks Edit Menüsü
2011-01-13 00:16 - Fireworks File Menüsü
2011-01-13 00:05 - İnternet - Web Tarayıcılar (Browser)
2011-01-13 00:04 - İnternet - Web Server Yazılımları
2011-01-13 00:03 - İnternet ve Web İlişkisi
2011-01-13 00:02 - İnternette Kullanılan Protokoller
2011-01-13 00:01 - İnternet - World Wide Web (WWW) Nedir?
2011-01-13 00:00 - İnternet - URL nedir?
2011-01-12 23:43 - İnternet Backorder Nedir?
2011-01-12 23:34 - İnternet - Virüs Nedir?
2011-01-12 23:32 - İnternet Paypal nedir? Nasıl Kullanılır?
2011-01-12 23:31 - İnternet - DNS Nedir?