XML, veri paylaşımı için tasarlanmış ve uygulama geliştiricileri tarafından benimsenmiş bir dildir. Dünyadaki uygulama geliştiricilerinin otorite olarak kabul ettiği ve www'deki birçok standardı belirleyen World Wide Web Consortium (W3C) tarafından tasarlanmış ve halen geliştirilmeye devam etmektedir. XML de HTML gibi işaretleme etiketlerini kullanan bir dildir. HTML ve XML arasındaki temel fark XML işaretleme etiketlerinin bilginin içeriğini tanımlamak için kullanılmasıdır.
XML, HTML gibi, SGML’in bir alt kümesidir. W3C organizasyonu tarafından bir standart olarak kabul edilen XML, SGML ile kıyaslandığında çok daha basit bir yapıya sahiptir ve XML’in özelliklerinin tanımlandığı W3C dokümanı sadece 26 sayfadan oluşmaktadır.
XML’in getirilerinden en önemlisi; veriye kendi kendini tanımlayabilir bir yapı kazandırmasıdır. XML verisi belirli tanımlama tabloları, farklı veri tanımlama araçları gibi unsurlara gerek duymaz çünkü verinin tanımı kendi içerisinde bulunmaktadır. XML, verinin sadece görüntülenmesinin yanında tamamı ile kullanılabilir kılınmasını sağlamaktadır. Bu özelliği ile XML, özellikle verinin işlenmesine yönelik iş uygulamaları için önemli bir avantaj sunmaktadır. Ayrıca kullanıcıların kendi taglarını oluşturma imkanına sahip olmaları, XML’in genişleyebilirliğinin önemli bir göstergesidir.
XML dokümanları, metin bazlı verilerden ses ve görüntü içeren çoklu ortam verilerine kadar bir çok farklı veri tipini içerebilmektedir. Bu veri tiplerinin birlikte bulunduğu veri depolarında, özellikle iş amaçlı veriler içerisinde etkin ve çok detaylı arama işlemlerini hızlı şekilde gerçekleştirmek XML sayesinde mümkün olacaktır.
Bunların dışında, XML’in en önemli özelliklerinden biri de W3C tarafından bir standart olarak kabul edilmesidir. Özellikle iş dünyasında, birbirleri ile işlem yapacak dolayısıyla veri değişimi gerçekleştirecek işletmelerin veya kurumların birbirleri ile aynı dili konuşmaları sadece standart bir dilin oluşması ile mümkün olacaktır. Aksi halde SGML’de görülen sorunlar ortaya çıkabilecektir. XML, genel yapısı ve özellikle dünyada çok yaygın kabul görmesinin yanı sıra standart olarak kabul edilmesi ile birlikte işletmelere çok daha verimli etkileşim imkanı verecektir.
XML’in belirli bir sahibi yoktur. XML, herkese açık bir kod olmasından dolayı belli bir lisans sahibi veya geliştiricisi olmadığından, herkesin kolaylıkla ve isteyerek kullanabileceği bir yapıya sahiptir. Kullanıcıya yakın yapısı ve kullanımının son derece kolay olması da geniş kabul görmesinde önemli rol oynayan faktörlerden birisidir.
Artan rekabet koşullarında yapılan yatırımın geri dönüşünün ve bundan da öncelikli, doğru yatırımın gerçekleştirilmesinin önemi son derece büyüktür. XML, bir çok avantaj ve yürütülmesi açısından EDI (Electronic Data Interchange – Elektronik Veri Değişimi) gibi çok karmaşık ve maliyeti yüksek sistemlere ihtiyaç duymadığından yapılan yatırımın çok daha etkin geri dönüşüne imkan vermektedir.
XML bir meta dildir. Meta-dil, dil yaratmaya yarayan dil anlamına gelmektedir. Diğer bir deyişle diğer yeni işaretleme dillerini tanımlamak için kullanılan bir dildir. Örneğin HTML, SGML’den türetilmiş bir anlamlandırma dilidir. Aynı şekilde XML’de temel olarak SGML’e dayanır. XML ile herhangi bir uygulama için bir XML belgesinin içinde bulunacak verinin içeriği ve içerdiği veri tiplerini tanımlayacak uygulamaya özel bir işaretleme dili tanımlayabilirsiniz. Veri hakkında bilgi veri hakkındaki bilgidir. XML etiketleri veri hakkındaki meta bilgiyi tanımlamaktadır. Aşağıdaki XML adres listesi belgesi örneğindeki etiketler adres içinde geçen veriler hakkında bilgi vermektedir.
Tablo: 2 Örnek XML Kodu Tablosu
<state>New York</state>
<zip>10011</zip>
<phone>
<voice>212-555-1818</voice>
<fax>212-555-1819</fax>
</phone>
<email>srosenberg@fruity.com</email>
<web>
http://www.fruity.co...rosenberg</web>
<company>Rosenberg's Shoes & Glasses</company>
</contact>
</addressbook>
<?XML version="1.0"?>
<!DOCTYPE addressbook SYSTEM "AddressBook.dtd" [
<!ENTITY amp "&">
<!ENTITY apos "'">
]>
<addressbook>
<!-- This is my good friend Frank. -->
<contact>
<name>Frank Rizzo</name>
<address>1212 W 304th Street</address>
<city>New York</city>
<state>New York</state>
<zip>10011</zip>
<phone>
<voice>212-555-1212</voice>
<fax>212-555-1213</fax>
</phone>
<email>frizzo@fruity.com</email>
<web>
http://www.fruity.co...com/rizzo</web>
<company>Frank's Ratchet Service</company>
</contact>
<!-- This is my old college roommate Sol. -->
<contact>
<name>Sol Rosenberg</name>
<address>1162 E 412th Street</address>
<city>New York</city>
Başlangıç <contact> ve bitiş </contact> etiketleri arasındaki verilerin adres bilgisi olduğunu bildirmektedir. Bu belgenin içindeki başlangıç ve bitiş etiketlerine bakarak, bir uygulama bu bilgilerin ne gibi bilgi içerdiklerini kolay bir şekilde çıkarabilir. Örneğin <city> başlangıç ve </city> arasındaki 'New York' verisinin şehir bilgisi olduğu kolayca anlaşılabilir.
Bu belge örneğinde gördüğümüz gibi XML belgesi, içindeki verinin içeriğini tanımlayan etiketler içermektedir. Belgenin web tarayıcılarında nasıl formatlanacağı konusunda herhangi bir bilgi yoktur. Belgenin formatlanması CSS veya XSL teknolojileri ile yapılabilir.
1.3.1 Hiper Text İşaretleme Dili HTML ve Genişletilebilir İşaretleme Dili XML Arasında Örnek Üzerinde Bir Karşılaştırma
XML’in HTML’e göre üstünlükleri üzerine birçok farklı noktayı vurgulamak mümkündür. Bunlardan en önemlisi, XML’in, kullanıcıların belli taglarla sınırlı kalmasını zorunlu tutmayıp onlara kendi taglarını oluşturmalarına imkan vermesidir. Bunun yanında HTML’in sadece dokümanın görünüşüne yönelik kaygıları varken, XML ile dokümanın yapısının tanımlanması ve görünüm dışında kullanıma da yönelik yapılandırılması mümkündür.
Diğer bir farklılık da verinin tekrar kullanılabilirliği açısından ele alınmasıdır. Bir şirket, belli bir veriyi farklı platformlarda kullanmak amacı ile birden fazla formatta yayınlamak isteyebilir. Böyle bir durumda HTML, sadece bir tipte veri yapılandırması sunacağından ve bunu da görünüm üzerinde gerçekleştireceğinden çoklu format kullanımına imkan vermemektedir.
Aşağıda, HTML ve XML belgelerinde, içeriğin yapılandırılması örneklenmiştir.
Metin Formatı
YEŞİL YAÐMUR
gözlerine baktınız mı hiç uzun uzun
yeşil gözlü bir kızın
çayır çimen ferahlığı doluyor içinize
ve ipince ıslanıyorsunuz
sanki yeşil bir yağmur yağıyor usul usul üstünüze.....
Tablo: 3 İçeriğin HTML İçinde Yapılandırılması
HTML
<H1> YEŞİL YAÐMUR </H1>
<P> gözlerine baktınız mı hiç uzun uzun < /P>
<P> yeşil gözlü bir kızın </P>
<P> çayır çimen ferahlığı doluyor içinize </P>
<P> ve ipince ıslanıyorsunuz </P>
<P> sanki yeşil bir yağmur yağıyor usul usul üstünüze.....</P>
Tablo: 4 İçeriğin XML İçerisinde Yapılandırılması
XML
<POEM> <TITLE> YEŞİL YAÐMUR </TITLE>
<PART 1>
<LINE> gözlerine baktınız mı hiç uzun uzun </LINE>
<LINE> yeşil gözlü bir kızın </LINE>
<LINE> çayır çimen ferahlığı doluyor içinize </LINE>
<LINE> ve ipince ıslanıyorsunuz </LINE>
<LINE> sanki yeşil bir yağmur yağıyor usul usul üstünüze.....</LINE> </PART1>
</POEM>
Bu üç farklı formattan birincisi, yani metin formatı, şiirin kağıt üzerinde veya bir metin dosyasında görülen biçimidir. Herhangi bir özel formatlamaya ihtiyaç duymadan belli programlar üzerinden bu tür bir veriye ulaşmak kolaylıkla mümkündür.
HTML formatında ise kullanılan taglar yardımı ile metne bir görünüm formatı verilmiştir. Şiirin başlığının büyük puntolarla görünebilmesi için <H1> başlık tagı kullanılmıştır. Bu format ile şiir metni, bir tarayıcı üzerinde metin halindeki görüntüsü ile belirecektir.
XML formatında ise bu basit örnek dahi birçok unsuru sergilemektedir. Örneğin, bu verinin bir şiir olduğu POEM tagı ile ifade edilmiştir. Ayrıca bu metnin, şiirin birinci kıtası olduğu PART tagı ile belirlenmiştir. İçeriği tanımlayan ancak sunuma ait herhangi bir bilgiyi içermeyen bu XML dokümanı, sunum için herhangi bir platforma ve istenilen bir formatta XML’in alt unsurları kullanılarak gönderilebilir.
1.3.2 Genişletilebilir İşaretleme Dili XML’in Tasarım Amaçları
XML tasarlanırken düşünülen birçok düşünce var. W3C’nin birleşip ortaya çıkardığı 10 temel XML’in tasarım amacı şunlardır:
1- XML internet üzerinde çalışabilmelidir.
2- XML neredeyse tüm uygulamalar tarafından desteklenmelidir.
3- XML SGML ile uyumlu olmalıdır.
4- XML üreten programlar oldukça kolay olmalıdır.
5- XML’de opsiyonel özellikler minimum olmalı veya hiç olmamalıdır.
6- XML dokümanları okunabilir ve açık olmalıdır.
7- XML tasarımı tek bir firma bu işi ele almadan acilen hazırlanmalıdır.
8- XML tasarımı biçimlendirilmiş ve kısa olmalıdır.
9- XML dokümanlarının yaratılması çok kolay olmalıdır.
10- XML dokümanlarında anlam belirsizlikleri olmamalıdır.
XML dokümanları verilen tag isimleri ile kendini tanımlayabilir olmalıdır. Örneğin:
<okuladi>ODTU</okuladi>
XML dokümanları 2 kritere uymalıdır; iyi - oluşturulmuş (well-formed) ve geçerli (valid).
İyi - oluşturulmuş Doküman
Bir XML dokümanının iyi-oluşturulmuş olması için aşağıdaki temel kurallara uyması gereklidir:
1- HTML ve SGML gibi XML de büyüktür (>) ve küçüktür (<) karakterlerini ayıraçlar olarak kullanır.
2- Bu karakterlerle tag dediğimiz yapılar oluşturulur ve bunlar açıldığı zaman kapatılmalıdır.
Tek istisna boş elemandır (değeri olmayan eleman). Bu durumlarda açma ve kapama tagi aynı olabilir. Örneğin: <okuladi/> dediğimizde okuladi diye bir tag açmış oluruz ama içinde herhangi bir değer bulunmaz.
3- Taglerin eklentileri çift-tırnak içine alınmalıdır. HTML bu açıdan esnektir, fakat XML bunu yapmanıza izin vermez. Örneğin HTML’de <font size=3> yazılabilir, ama XML’de 3 çift-tırnak içine alınmalıdır.
<font size=”3”>
4- Elemanlar aynı HTML’de olduğu gibi iç-içe düzgün bir şekilde tanımlanmalıdır. Her XML dokümanı bir kök elemanına sahiptir ve diğer tüm elemanlar onun çocukları (Child) olarak anılırlar.
Tablo: 5 XML’de Kök Eleman Gösterimi
<universite>
<universiteadi>ODTU</universiteadi>
<universitesehiri>Ankara</universitesehiri>
</universite>
5- XML’deki elemanlar büyük-küçük harf ayırt eder. <universite> ile <UNIVERSITE> iki ayrı elemandır. Bu yönüyle de HTML’den farklıdır.
• Geçerli Doküman: Geçerli bir doküman kendi DTD’si (Doküman Tip Tanımı - Document Type Definition) veya şemasında (schema) tanımlanmış kurallara uyan dokümandır. DTD’ler ve şemalar, XML dokümanının her elemanının neler kapsayabileceğini ve o dokümanın organizasyonel yapısını belirler.