Makale Özeti

XML(eXtensible Markup Language-Genişleyebilir Anlamlandırma Dili) hakkında birşeyler duymuşsunuzdur muhakkak; onun Web üzerinde veri alışveriş methodunu değiştireceğini, HTML’in bir nevi kardeşi olduğunu, ama tabi ki SGML(Standard Generalized Markup Language)’in bir alt kümesi olduğunu. XML üzerine uygulamalar geliştirmek onu kendi iş süreçlerinize dahil etmek istiyorsanız XML’i biraz daha geniş olarak inceleyen bu yazıyı okumanızı tavsiye ederim.

Makale

XML(eXtensible Markup Language-Genişleyebilir Anlamlandırma Dili) hakkında birşeyler duymuşsunuzdur muhakkak; onun Web üzerinde veri alışveriş methodunu değiştireceğini, HTML’in bir nevi kardeşi olduğunu, ama tabi ki SGML(Standard Generalized Markup Language)’in bir alt kümesi olduğunu. XML üzerine uygulamalar geliştirmek onu kendi iş süreçlerinize dahil etmek istiyorsanız XML’i biraz daha geniş olarak inceleyen bu yazıyı okumanızı tavsiye ederim.

İlk önce SGML’i incelemekte fayda görüyorum. Sonuçta bu bir giriş olduğuna göre temeli sağlam atmalıyız. SGML International Standards Organization(ISO) tarafından 1986 yılında kabul edilmiş ve onaylanmış bilgi-yönetimi standardıdır. SGML platform-bağımsız ve uygulama-bağımsız dökümanlar yaratmak sağlamak için oluşturulmuştur. Dilbilgisi gibi bir mekanizma kullanılarak dökümanların yapısını özel tanımlanmış tag’ler kullanarak yapısını tanımlamamıza yarar.

SGML bir meta-dildir. Meta-dil demek dil yaratmaya yarayan dil demektir. (Yapay zeka’da metaknowledge’in knowledge about knowledge olduğu gibi.) Örneğin HTML, SGML’den türetilmiş bir anlamlandırma dilidir. Aynı şekilde XML’de temel olarak SGML’e dayanır. İlginç olan XML’in SGML gibi bir meta-dilden türemesine rağmen kendisi de bir meta-dil olmasıdır. Yani XML’den de yeni diller türetilebilir.

XML’i içeriğin nasıl görüneceğinden ziyade içeriğin yapısını tanımlamada kullanırız. Diğer taraftan HTML dökümanın nasıl gösterileceğini belirtir, dökümanın ne olduğundan hiç bahsetmez.

Diğer önemli bir konu ise DTD’dir. HTML’de dikkat ettiyseniz ilk satır:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 FINAL //EN">

olarak görünür. Burada Web browser’a html’in hangi DTD’sini kullanacağı söylenir. Burada DTD Document Type Declaration’dır. Fakat kesinlikle bu XML’de ileride kullanacağımız DTD yani Document Type Definiton ile karıştırılmamalıdır. HTML’deki Document Type Declaration bize hangi tür bir dökümana sahip olduğumuzu söylerken , XML’de Document Type Definition ise dökümanın syntax’ının geçerli(valid) olduğu yerleri tanımlar. Aslında ileride DTD’yi geniş olarak ele alacağız ama kısaca açıklayacak olursak: DTD parser’ın izleyeceği kuralları belirler. Dökümanda ne gibi elemanların olduğunu ve bu elemanların neler yaptığını açıklar. Ayrıca DTD dökümanın tag yapısının ve içeriğindeki organizasyon hiyerarşisinin önceden tanımlanmış HTML kurallarına uyup uymadığını kontrol etmek için parser tarafından kullanılır. Şimdi aklınızdan geçenleri tahmin edebiliyorum, biraz karışık gibi görünüyor ama uygulama yapınca DTD’nin ne kadar kolay birşey olduğunu anlayacaksınız. Biraz daha sabır.

Internetin ilk yıllarında birkaç HTML tag’i kullanarak gri web sayfaları yapmak oldukça büyük bir işti. Ama zamanla insanlar bunun çok iyi bir reklam aracı olabileceğini farkedip, üzerinde çalışmaya başladılar. Birçok grafiksel öğe geldi, insanlar tasarım yapmaya başladılar. Bunu Html 2.0 ve 3.0 izledi. Gün geçtikçe internetin altyapısı da düzeldi. Türkiye’de inanılmaz bir ISS(Internet Servis Sağlayıcı) patlaması yaşandı. Paket fiyatları düştü düştü , firmalar bu rekabetten oldukça etkilendi ve geriye oldukça köklü firmalar kaldı. Internet 2. boyutunu yani insanlardan bilgi toplama yakalamıştı. Ve halen belki de bu boyuttayız. Asp bize sunucu taraflı uygulamalar geliştimeye olanak tanıdı hem de cgi, perl gibi dilleri bilmeden sadece Vbscript ile bunu yapmamızı sağladı. Artık web sayfaları dinamik içerik sağlıyordu, sizin kim olduğunuzu anlayıp size özel işlemler yapıyordu ki, veri transferinin önemi oldukça büyüdü. Artık herşey veriye bağlanmıştı. Bir web sitesinin arkasına SQL Server’lar, Oracle’lar SAP R/3 sistemleri durmaya başlamıştı. İşte XML bu veri değişimi işlemini kolaylaştırmak için doğdu. 3. kuşak internette de bu ve yeni teknolojiler kullanılarak insan faktörü ön plana çıkacak ve etkileşimli web siteleri yapılacak. B2B ve B2C’ler yerini Marketplace’lere bırakacak. Biz şu an 2. kuşağı yaşayan ama 3. kuşağa geçmeye hazırlanan bir ülkede bulunuyoruz.

XML ile veri değişiminin kolay hale gelmesi hedeflenmişti ve başarıldı. Artık sizin verilerinizi alacak sistemin ne olduğunu bilmeniz ve ona göre çıktı üretmeniz gibi birşey söz konusu değil. Siz bir XML paketi oluşturup karşı sisteme yolluyorsunuz. O da bu paketi açaral kendi sistemine dahil ediyor. Yani artık internet aracılığıyla farklı sistemler veri değişiminde aynı dili konuşuyor: XML.

XML başlığı altında işleyeceğimiz diğer bir konu ise XSL yani eXtensible Stylesheet Language. Kısaca XSL , XML dökümanlarının biçimini belirleme ve değiştirmede kullanılır. XSL kullanarak XML dökümanlarını daha başka XML dökümanlarına dönüştürebilirsiniz. Şimdilik XSL’i kafanızda CSS olarak canlandırabilirsiniz, sanki XML verilerine şekil kazandırıyormuş gibi ama ileriki konularda XSL’in çok daha kapsamlı olduğunu göreceğiz.

Mehmet Nuri ÇANKAYA

nuri.cankaya@xmlnedir.com