XML Nedir?

Bu yazıyı paylaş
X It! LinkedIn Facebook

XML Nedir?

Extensible Markup Language, yani genişletilebilir işaretleme dili. Her kes XML'i anlatırken işaretleme dillerinin ata

Extensible Markup Language, yani genişletilebilir işaretleme dili. Her kes XML'i anlatırken işaretleme dillerinin atası olan SGML'den iyi veya kötü söz eder. Ama nedense HTML'i anlatırken durum böyle değildir. Bu tür bir anlatımı eleştirmiyoruz, çünkü çok doğru bir yaklaşımdır. Ama bildiğiniz gibi TeknoCLUB web profesyonellerine yönelik bir alan değildir, ve webe ilgi veya ihtiyaç duyan kişileri bilgilendirmeyi amaçlar. Aslında çoğu kez bu yüzden zorlanıyoruz da. Yani teknik şeyleri salt teknik bilgiden arındırıp, felsefeyi anlatmak hiç de kolay olmuyor. İsterseniz bu faslı geçip konuya girelim.

Gereksinim nereden doğdu?İşletim sisteminden bağımsız, içeriğe göre yazılım gerektirmeyen ve buna rağmen bilgiyi paylaşma ihtiyacı vardı. Yani bir windows +MS Office kullanıcısının oluşturduğu bir dosyayı Mac kullanıcısı ve farklı bir ofis paketi kullanan bir kullanıcının okuyabilmesi düşünüldü. Bunu yapabileceğiniz ilk yaygın dosya formatı da text dosyaları idi. Notepad ya da her hangi bir text editör programı ile yazdığınız dosyayı başkaları okuyabiliyor ve değiştirebiliyordu. Tabii bununla yetinilemezdi, çünkü text dosyaları çok zayıf biçimlendirme olanakları sunuyordu. İşte bunlar SGML ve bunun alt grubu olan işaretleme dillerini gerekli kıldı.

Daha sonra daraltılmış kalıplar içinde çalışan, dolayısı ile öğrenimi çok daha kolay olan HTML çıktı. Böylece web sayfaları oluşturulmaya ve bir tarayıcı programa sahip olan her hangi bir bilgisayarda görüntülenmeye başladı. Tablolar, metinler, grafikler vb. pek çok şey bu sayede sunulmaya başlandı.

Ama sorun tam olarak çözülmemişti. Çünkü bu sayfalar statik yani oluşturulduğu şekilde görünen sayfalardı. Dinamik sayfalara, yani kullanıcının ihtiyacına göre bu dosyaların oluşturlmasına ihtiyaç duyuluyordu. Çözüm kısa sürede geldi. Sunucu tarafında çalıştırılan program dilleri geliştirildi. Aslında yapılan bir HTML sayfasının oluşturulması idi. Farklılık ise bu HTML sayfalarının kullanıcı isteğine göre o anda oluşturulması ve tarayıcısına gönderilmesi idi. Yani bu tür bir program ile sunucu tarafında oluşturulan bir sayfa aslında oluşturulduğu andan itibaren statik bir HTML sayfasıdır. Bu tarz bir sayfanın kaynak koduna baktığınızda bunu fark edersiniz. Fazla kafanızı karıştırmayalım. Sunucu tarafında HTML sayfası oluşturmak , bir de veri tabanı kullanımı imkanı sunuyordu ki, bu ikili, devrimsel ve ihtiyacı karşılamak açısından çok başarılı idi. (PHP, ASP, SQL, MySQL, vb) Halen de öyledir. Farkında mısınız XML'e ancak gelebildik. Sorunun çözülemeyen tarafı şu idi. Sunucu tarafında oluşturduğumuz dosya statik dedik ya, işte düğüm burada. Çünkü bu tür bir dosya oluştulduğu ortama bağlıdır. Dolayısı ile istenen sonucu sunar, ama değişim esnekliği yoktur. İşte burada XML devreye girdi ya da giriyor diyelim. XML dosyasını ne şekilde oluşturursanız oluşturun bir başka platforma teslim edebilir ve orada da aynen kullanılmasını ve hatta değiştirilip geri alınmasını ve sorunsuzca kullanabilmesini sağlayabilirisiniz. XML kesinlikle alternatif değil HTML'yi tamamlayıcı bir dildir. Nedeni ise çok basit HTML dosyanın ya da sayfanın görselliğini yönetmek için vardır, XML ise içeriğini. Buna bağlı olarak XML de çıktıyı oluşturmak için HTML'yi kullanır. Ama bir nevi dinamik dosyalarda sık kullanılan ve içeriğin tutulduğu veri tabanını da dolaşıma sokmanızı sağlar. Bu son cümle teknik jargona hiç de uymadı galiba, ama anlatım açısından gerekli idi.

İşaretleme DiliKısaca işaretleme dilini anlatmamız gerekecek. HTML'de her hangi bir öğe sayfaya eklenirken etiketler (tag) arasında yazılır. Böylece tarayıcı ne yapacağını bilir. Çok basit bir örnek vermek gerekirse bir yazının koyu yazılacağını tarayıcıya anlatmak için koyu etiketleri arasına yazarız. İşaretleme dili kavramı tam da bunu ifade eder, yani koyu ifadesini koyu yazma (Bold) etiketi ile işaretlemiş oluyoruz. HTML ile XML'in ortak noktası bu işaretleme mantığıdır ve bunu da her ikisinin de atası olan SGML'den miras alırlar. Fark Nerede?HTML'de bu etiketler önceden tanılanmış ve izin verilen biçimlerde kullanılmıştır. Yani yukarıdaki örnekteki koyu yazma işini yapacaksınız bunu anlatıldığ şekilde yaparsınız, başka şekilde değil. Oysa ki XML'de bu etiketleri serbestçe oluşturursunuz. Örneğin XML Açıklamaları şeklinde bir oluşum kullanılır. Ve daha sonra da bunun biçimsel tanımlamaları yapılarak nasıl görüntüleneceği belirlenir.

Genişletilebilir ifadesi buna dayanmaktadır. Bu şekilde içeriği etiketler ve sayfanızı oluşturursunuz.

Şimdi bunun ne işinize yarayacağına göz atalım

Kullanım AlanıXML'in bu özelliği sayesinde oluşturulan dosya örneğin tedarik zincirinde dolaşıma sokulabilir. Ve bu şekilde tanımlanan özel etiketler içine girilen bilgiler her hangi bir birgisayarda (tabii XML destekleyen bir tarayıcı ile) görüntülenebilir. Örnek vermek gerekirse XML'in ilk kullanıcısı finans dünyası olmuştur. Borsa, döviz bilgileri bu şekilde iletilmeye başlanmıştır.

Daha önce de belirttiğimiz gibi bu yazı size XML hakkında fikir vermeyi amaçlar, yoksa konu bu kadar basit değil. XML dosyalarını tanımlayan DTD, Shema, CSS dosyaları vb. pek çok teknik ayrıntı var ve bunlar kalın kitaplarda anlatılıyor.

Ama burada anlatılanlardan bir web kullanıcısı olarak çıkarmamız gereken, XML dili sayesinde verinin sadece işlenip gösterilmekten öte değiş tokuşunun mümkün olduğu ve gelecekteki uygulamaların pek çoğunun içinde bu dilin yer alacağı.

Reklam
Kobitek'e ücretsiz üye olun

16005 kere okundu


Etiketler:

Reklam

Destekçilerimize Teşekkürler


Kozyatağı Mahallesi Sarı Kanarya Sokak Byofis No: 14 K:7 Kadıköy 34742 İstanbul
Telefon: 0216 906 00 42 | E-Posta: info@ kobitek.com

KOBITEK.COM, bir TEKNOART Bilişim Hizmetleri Limited Şirketi projesidir.

2001 yılından beri KOBİlere ücretsiz bilgi kaynağı olma hedefi ile, alanında uzman yazarlar tarafından sunulan özgün bir iceriğe sahiptir.

Tüm yazıların telif hakları KOBITEK.COM'a aittir. Alıntı yapılabilir, referans verilebilir, ancak yazarın kişisel bloğu dışında başka yerde yayınlanamaz