|
|
||||||||||||
|
|
SAX ve DOM SAKLAMAK DAĞITMAK İŞLEMEK XML, veri iletişimi alanında artık iyice yaygınlaşmaya başladı ve geliştiriciler tarafından tam olarak benimsenmiş görünüyor. Özellikle web sayfalarının biçimlenmesinde XML çok yaygın kullanılıyor. Bundan sonra ayrıntılı olarak işleyeceğimiz XML belgelerinin biçimlendirilmesi temel amaçlardan. Zira W3C konsorsiyumunun resmi bildirgesinde XML'in web'de kolay kullanılabilir olması ve web'den XML yoluyla bilgi dağıtılabilmesi öngörülmüştür. Bu açıdan bakıldığında web gözatıcılarının XML'e tam destek vermesi, gözatıcılar dışında dahi web'den kolay bilgi alınabilmesi için web sunucularının uygun şekilde yapılandırılması gerekir. Microsoft'un XML Web Servisleri W3C'nin temel kurallarına çok bağlıdır. Sonucun XML olarak dağıtılması dışında, web servislerinin Internet'te kolay kullanılabilirliği, farklı uygulamaları desteklemesi, kolay programlanması sözkonusudur. Veritabanı sunucuları da XML'e tam destek verme amacıyla yeni özellikler içermektedir. Tamino, MS SQL Server gibi uygulamalar XML biçiminde bilgiler üretilmesini kolaylaştırır. ADO'nun, yeni sürümlerinde XML ile ilgili yetenekler mevcuttur. Visual Studio.NET, Delphi gibi yazılım geliştirme uygulamaları da XML programlama için yeni araçlar ve özelliklerle birlikte gelmektedir. Bununla birlikte Microsoft sunucu ailesinin bazı yeni üyeleri XML ile tam uyumlu çalışmaktadır. Geliştirme ortamı dışında Office uygulamalarında da XML ile ilgili yeni özellikler olduğunu görüyoruz. Sunucu ortamlarının görevi XML biçiminde bilgiler üretmek ve XML bilgilerini depolamak şeklinde özetlenebilir. Veri aktarımını gerçekleştiren uygulamalar ise web sunucuları ya da XML uyumlu veri dağıtıcılarıdır. Diğer yandan istemci tarafında bilginin alınması ve işlenmesi görevini, web gözatıcıları, ofis uygulamaları ya da özel programlar üstlenebilir. Bilginin alınmasından sonra biçimlenip gösterilmesi durumu doğar. SAX, DOM gibi uygulamalar bilgiyi web sunucusundan ya da dosyalardan alıp işleyebilirler. SAX büyük boyuttaki verilere ulaşılmasında, DOM ise verilerin kullanılmasında ve biçimlendirilmesinde etkindir. Yukarıda bahsettiğimiz uygulamalar aslında XML verilerinin akışındaki katmanları ifade etmektedir. Kullanıcı tarafının en sonunda yer alan uygulamalar, alınmış XML bilgisini yorumlayarak kullanıcıya uygun bilgiyi sunarlar. Bu, Internet Explorer gibi bir web gözatıcı olabilmekle birlikte, SAX ve DOM gibi araçları arkaplanda kullanan herhangi bir veri uygulaması da olabilir. Tabii XML belgesini okumak için DOM türü uygulamaları kullanmak zorunlu değildir. Dosya okuyup işleyebilen her geliştirme aracı XML belgesini ayrıştırıp okuyabilir. Zira XML açık ve her zaman anlaşılır bir biçimdedir. Ne var ki, XML dosyasını çözümlemek bu durumda geliştiricinin kendisine kalmıştır. MSXML içindeki DOM ve SAX ise bu iş için geliştirilmiş yardımcı profesyonel araçlardandır. Bilginin biçimlendirilmesinde web gözatıcıları kolaylıklar sunar. Aynı kolaylık DOM'da da mevcuttur. Örneğin bir XSL şablonunu XML belgesine uygulamak birkaç satırlık kodla mümkündür. CSS ve XSL, belgelerin çok çeşitli biçimlendirilmesini sağlayabilir. Bu, web sayfalarına özgü olmayıp biçimlendirilmiş ve hatta filtrelenmiş belgeler üretmeyi kolaylaştırır. Web dilleri XML'i yeterince destekledikleri için CSS ve daha çok XSLT, web sayfalarının biçimlenmesinde yaygın olarak kullanılmaktadır. Bu yöntem, aynı içeriğin farklı görünümlerinin kolaylıkla oluşturulmasını sağlar. SIMPLE API FOR XML - SAX Simple API for XML (SAX), MSXML kütüphanesi içinde gelen ve büyük boyutlu XML verilerini okumayı kolaylaştıran bir araç. DOM'un aksine belgenin tamamını belleğe yüklemediği için daha performanslı çalışır. Ayrıca olay tabanlı olduğu için belgenin yüklenme, işlenme aşamalarında araya girip işlemi durdurmak mümkündür. Hataları yakalama, belgenin sadece bir kısmını elde etme, hızlı arama SAX'ın yeteneklerinden. DOM'a göre biraz karmaşık olsa da büyük boyutlu dosyalarda performans açısından tavsiye edilmektedir. DOM belgenin tamamını bir ağaç yapısında belleğe yükler. Her element ve her düğüm için bellekte nesneler oluşturur. SAX ise belgenin tamamını yüklemek yerine belge içinde hareket ederek elementlere ulaşmaya çalışır. Kimi yerlerde SAX ile DOM birbirlerinin alternatifi gibi gösterilse de, bilakis birbirlerini tamamlayıcı roller üstlenmişlerdir. Kaldı ki, büyük bir belgeyi SAX ile parça parça alıp DOM'a bunu işletmek mümkündür. Büyük veri yığını işlenmesi gereken uygulamalarda, ikisi arasında tercih yapmak yerine ikisini birlikte kullanmak avantajlı olabilir. SAX da DOM gibi MSXML kütüphanesi içinde gelir. Bu ay CD'mizde Service Pack 1 sürümü yer alan MSXML'i kurmadan önce varsa eskisini kaldırmanızı öneririz.
Serkan ŞAHİNOĞLU |