İçindekilerGirişİndex
YukarıİlkÖncekiSonrakiSon
Geriİleri
Yazdır

XML (Extensible Markup Language)

XML nedir?

Bir web sayfasında verilerle biçimler aynı koddadır. Örneğin bir haber yazısında haber ile bu haberin hangi renk gösterileceği aynı kodda bulunur. Bunun bazı sakıncaları vardır. Veriler ile biçimler genellikle farklı insanlar tarafından yapılır. Yine aynı veri değişik ortamlarda değişik görünmesi gerekir (örneğin web sayfası,cep telefonu veya yazdırılırken aynı veri değişik gösterilebilir). Sonuç olarak veriler ile biçimlerin ayrı olması çok büyük yararlar sağlar. İşte XML verileri saklamak için geliştirilmiştir.

XML HTML'e benzer. HTML gibi element'lerden oluşur. Aşağıda bir XML örneği görülüyor.

<worker>
	<name>ali</name>
	<surname>keser</surname>
</worker>

Yukarıda ali keser adlı çalışanın bilgisi bulunmaktadır. İstenirse daha fazla bilgi eklenebilir. Çünkü element yaratmak sizen elinizdedir.

HMTL'in en büyük eksikliği yeni tag'ler eklenememesidir. Halbuki XML'de tag'leri siz yaratırsınız. Aslında XML'in kendisi bir dil değildir. HTML, SMIL, SVG vs.. gibi markup dili yaratmaya yarayan bir teknolojidir. XML'de ile HTML'deki gibi belirli element'ler yoktur.

HTML'de verilerle biçimlerin aynı yerde olması verilerin veya biçimlerin istenildiği zaman kullanılmasını engeller. Örneğin bir programın HTML dosyasındaki verileri kullanması zordur. XML ile bu çok kolay bir şekilde yapılır. Çünkü XML sadece veri tutar. Bu verilerin nasıl gösterileceği ise XSL ile belirlenir. XSL bir XML document'ini başka bir XML document'ine çeviren bir dildir. Bu sayede bir XML document'ini HTML'le veya cep telefonları için VML'ye çevirebilirsiniz.

HTML'in hoş görülü bir dil olması çok büyük bir sorun yaratır. HTML'de bazı tag'ler kapanmasa da olur. Attribute'lerde çift tırnak tek tırnak hatta hiç tırnak kullanmasanızda olur. İşte bu yüzden bir HTML dosyasının düzgün bir şekilde yazılıp yazılmadığını bilemessiniz. Halbuki XML'de kurallar kesindir ve uyulmak zorundadır. Açılan bir tag kapatılmalıdır. Bunun gibi kurallara uyan bir document well-formed document olur. Eğer XML document'i well-formed değilse hiç değerlendirilmez ve bir programın document'i okuması sırasında hata oluşur.

XML Parser ve Processor'ları

Bir XML document'i text dosyasıdır. Bu text dosyasını okuyup, içindeki verileri elde eden programlara parser denir. Parser XML document'ini okur ve element'lerden bir nesne hiyerarşisi yaratır. Ve oluşturulan bu nesnelerden istenilen bilgiler alınabilir. Örneğin çocuk element'lerini veya bir attribute'nin değerini almak gibi. XML Parser'i bu nesnelerin hiyerarşisini oluşturmak için XML document'inin well-formed olmasını ister. Eğer değilse hata oluşur. Böylece siz parse edilmiş bir document'in well-formed olduğuna emin olursunuz.

Bazen bir XML document'ini başka bir tip XML'e veya başka bir type'e döndürmek gerekebilir. En önemlisi bir XML document'inin HTML'e döndürülmesidir. Bu işlem için XSL kullanılır. Bir XML document'ini bir XSL kullanarak başka bir type'e döndüren programlarada processor denir. Üretilen type bir markup dili olmayabilir. Örneğin bir dosyaya sadece yazılar aktarılabilir.

Valid XML

Bir XML document'inin well-formed olması sadece yazım kurallarına uyduğunu gösterir. Halbuki XML'i oluşturan kişi normalde kullanmaması gereken bir element'i kullanabilir. Eğer bu element yazım kurallarına uygun eklenmişse well-formed hatası gelmez. Bunu engellemek için siz hangi element'lerin kullanılacağını, bir element'in içinde hangi element'lerin olabileceğini, bir elementin kaç attributesi olduğu vs.. gibi özelliklerini baştan verirsiniz. Böylece parser document'i değerlendirirken element'lerin, tag'lerin, attribute'lerin doğru kullanılıp kullanılmadığı denetler. Bunu yapmak için DTD veya XML Schmema kullanılır. Örneğin yukarıdaki XML örneği için

<!ELEMENT worker (name,surname)>	
<!ELEMENT name (#PCDATA)>
<!ELEMENT surname (#PCDATA)>

şeklinde bir DTD yaratılıp , XML document'inde bu belirtilirse artık oluşturulacak document'in valid olacağına emin olabilirsiniz. Yukarıdaki örnekte bir worker element'i yarattık ve içerisinde name ve surname element'leri olduğunu belirttik. Böylece XML document'inde worker elementi için örneğin year element'i kullanılamaz. Kullanılırsa document valid olmayacağı için bir hata gelir.

İçindekilerGirişİndex
YukarıİlkÖncekiSonrakiSon
Geriİleri
Yazdır