You are on page 1of 8

XML Teknolojisine Gerçekçi Yaklaşım

Deniz KILINÇ ve Prof. Dr. Alp Kut

Bilgisayar Mühendisliği Bölümü

Dokuz Eylül Üniversitesi


{ dkilinc@deu.edu.tr , alp@cs.deu.edu.tr }

Özet
İlk resmi işaretleme dili olarak gösterilen GML (Generalized Markup Language), 1969
yılında, yasal belgelerin kolay bir şekilde paylaşılabilmesi ve taşınabilmesi amacıyla, yapılan
araştırma geliştirme çalışmaları sonucunda ortaya çıkmıştır. GML, 1978 yılında ANSI
(American National Standard Institute) kurumunca oluşturulan bir grup tarafından
geliştirilmeye başlanmış ve 1986 yılında SGML (Standard Generalized Markup Language)
adını alarak, ISO (International Organization for Standardization) kurumu tarafından
uluslararası standart (ISO 8879) haline getirilmiştir. SGML’in internet üzerindeki uygulamalar
için çok karmaşık olması ve HTML’in yetersiz kalması büyük bir sorun haline gelmiş ve bu
sorunları gidermek için, 1996 yılında XML dilini tasarlamak amacıyla W3C toplanmıştır.
XML’in basit dizayn yapısının çalışmalarına, 1996 Ağustosunun son günlerinde başlanmış ve
yoğun çalışmalar sonucunda, Şubat 1998’de XML 1.0 bir standart olarak W3C tarafından
yayınlanmıştır. XML(eXtensible Markup Language), SGML’in güç ve esnekliğini içeren
basitleştirilmiş, genişletilebilir bir işaretleme dilidir. XML, SGML’in alt kümesi olarak
gösterilir ve HTML gibi işaretleme etiketlerini kullanır. İlk bakışta, XML teknolojisinin
birçok avantaja sahip olduğu görülmektedir. XML yapısal bir text formatına ve okunabilir bir
yapıya sahiptir. XML dökümanlarının işlenmesi kolay, işlenme maliyeti de azdır. XML
teknolojisi, varolan güvenlik çözümlerini destekler. XML’ in en önemli özelliği açık bir
standart omasıdır. XML sürekli bir gelişim içersindedir ve XML teknolojisi için yeni araçlar
yazılmaktadır. XML’ in avantajları olduğu gibi dezavantajları da vardır. XML teknolojisi
bilinçsiz çevrelerce abartıldığı için, XML’in aslında bir uygulama, bir programlama dili ya da
dünya barışına ve açlığına bir çözüm olmadığı unutulmuştur. Bu abartı yüzünden XML’in ne
olduğunun yanı sıra, yapabilecekleri hakkında da kafalarda karışıklık oluşmuştur. XML, onu
işleyecek ayrıştırıcılara ve uygulamalara ihtiyaç duyar. XML tek başına basit olabilir fakat
XML’in resmi tasarım hedefleri arasında yer alan ayrıştırma, işleme, entegrasyon, mesajlaşma
ve transformasyon gibi işlemler zannedildiği kadar kolay değildir. XML, öğrenmesi,
okunması, uygulanması ve test edilmesi kolay bir teknolojidir. B2B gibi uygun uygulamalarda
geliştirme zamanını oldukça kısaltır. Sadece bir döküman formatı olmasına rağmen RPC
mesajlaşması gibi birçok uygulamada kullanılır. Problem, XML’in kullanımına uygun
olmayan senaryolarda bile uygunmuş gibi görülüp kullanılmaya çalışılması ve insanın doğası
gereği, yeni çıkan teknolojilerin tüm problemlerde uygulanmak istenmesidir.

Anahtar Kelimeler: GML, SGML, XML, DOM, B2B uygulamaları, XML’in gerçek yüzü.
1. Giriş

1967 yılında Kanada Hükümeti Baskı Ofisinde düzenlenen bir toplantıda, William
Tunnicliffe, dökümanlarda, iç içe geçmiş içerik ve format bilgilerinin, birbirinden ayrılması
gerektiğini anlatan bir konuşma yaptı. 1968’de New York’lu bir kitap yayımcısı, Stanley Rice,
kitap yazarları için, döküman formatlarını standart haline getirmek amacıyla bir etiket seti
hazırladı. Bu çalışmaya, Grafik Haberleşme Derneği (GCA , Graphic Communications
Association), sponsor oldu ve etiket seti kavramının geliştirilmesini sağladı. GCA GenCode
komitesi, etiketleme ile işaretleme mantığını birleştirerek, dökümanların, hiyerarşik yapıya sahip
olacağını gösterdi.

İlk resmi işaretleme dili olarak gösterilen GML (Generalized Markup Language), 1969
yılında, yasal belgelerin kolay bir şekilde paylaşılabilmesi ve taşınabilmesi amacıyla, IBM’den
Goldfarb, Mosher ve Lorie üçlüsünün yaptığı araştırma geliştirme çalışmaları sonucunda ortaya
çıkmıştır. GML’in temeli, GCA GenCode komitesinin yaptığı çalışmalara dayanmaktadır. Diğer
işaretleme dillerinin atası GML, 1978 yılında ANSI (American National Standard Institute)
kurumunca oluşturulan bir grup tarafından geliştirilmeye başlandı. Dil, 1986 yılında SGML
(Standard Generalized Markup Language) adını alarak, ISO (International Organization for
Standardization) kurumu tarafından uluslararası standart (ISO 8879) haline getirildi.

SGML bir metin veya belge kümesinde kullanılan dilin yapısını belirtmek için kullanılan bir
dildir. Tüm meta dillerde olduğu gibi, temel bir sözdizimi tanımlar ve bunu kullanarak kendi
elemanlarınızı tanımlamanıza izin verir. Havacılık ve otomobil gibi büyük endüstri kuruluşları ve
basın alanında bir belgeleme standardı olarak kullanılmıştır ve kullanılmaya devam edilmektedir.

Mesela, Oxford ingilizce sözlüğü, SGML daha taslak versiyonlarındayken, bu dile geçirildi ve
çok karmaşık bir DTD (Dokuman Type Declaration) tanımlandı. Bu sayede yayında çok özel
aramalar yapılabildi ve arama sonucunda ilgisiz binlerce kayıt gelmesi engellendi. Yeni
kelimelerin eklenmesi kolaylaştı. SGML çok güçlü bir dil olmasına rağmen, yaratıcıları ve W3C
(Word Wide Consortium) üyeleri tarafından, karmaşık yapısı ve yüksek uygulama geliştirme
maliyetinden dolayı, Internet tabanlı uygulamalar özellike hızlı ve kolay web yayınları için tercih
edilmemiştir.

1989 yılında Tim Berners-Lee ve Anders Berlung internet ortamında daha kolay belge
paylaşabilmek için HTML (Hypertext Markup Language) dilini bir SGML uygulaması olarak
geliştirdi. Yani, HTML dilinin yapısal tüm elemanları, SGML dilinde tanımlandı. HTML dili bir
belgenin içerdiği başlık, font, resim ve tablo gibi bilgileri bilgisayar ortamında, standart bir
şekilde görüntülemek ve biçimlendirmek için geliştirilmiş bir dildir. Öğrenilmesi ve uygulanması
kolay olduğu için HTML yeni gelişmekte olan web’in süratle temelini oluşturmaya başlamıştı.
Yalnızca sunum amaçlıdır ve daha önceden tanımlanmış sabit bir etiket kümesi içermektedir.
Standart etiket kümesini kendimizin ekleyeceği yeni etiketler ile genişletemeyiz.

HTML’in içerik yönetiminden çok içeriği görüntüleme amaçlı olması, genişleyebilir bir dil
olmaması, meta bir dil olmaması ve diğer zayıflıklarından dolayı, Internet ortamında yeni bir
dilin ihtiyacı hissedildi. Bu yeni dil ne SGML kadar karmaşık, ne de HTML kadar basit
olmalıydı.

“SGML’in güç ve esnekliğini içerecek basitleştirilmiş,


genişletilebilir bir işaretleme dili”

Bu ihtiyacı gidermek için, 1996 yılında XML dilini tasarlamak amacıyla W3C toplandı.
XML’in basit dizayn yapısının çalışmaları, 1996 Ağustosunun son günlerinde başladı ve yoğun
çalışmalar sonucunda, 11 hafta gibi kısa bir sürede, SGML’96 konferansında, XML’in ilk taslak
versiyonu(draft) yayınlandı. Fakat, diğer ayrıntıların tamamlanması bir yıl daha sürdü ve Şubat
1998’de XML 1.0 bir standart olarak W3C tarafından yayınlandı.

Şekil 1.1 İşaretleme dillerine genel bakış

2. Kısaca HTML

HTML (Hypertext Markup Language), web sayfalarının formatlanması amacıyla yazılmış, bir
SGML uygulamasıdır. Önceden tanımlanmış standart etiket kümesine sahiptir. Herbir etiket,
sayfanın formatlanmasına dair özel anlam taşır. Etiketler web tarayıcıları tarafından işlenir ve
ilgili içeriğin formatlanmış hali, tarayıcı ekranında görüntülenir. İçerisinde Netscape, Internet
Explorer ve Mozilla’nın bulunduğu birçok web tarayıcısı mevcuttur. Geliştirilen sayfaların, tüm
tarayıcılarda düzgün çalışması için standartların dışına fazla çıkılmamalıdır.

HTML sayfaları ilk çıktığı zaman, basit text tabanlı editörlerde, hakkını vererek yazılırken,
zamanla çıkan yeni editörler ve Frontpage, Macromedia gibi kod üretici programlar yüzünden
tabiri yerindeyse yiğitlik bozulmuştur. İnsanlar ne yazdıklarını bilmeden sürükle bırak metodu
ile, HTML sayfalarını yaptıklarını, hatta birer web mühendisi olduklarını sanmaya
başlamışlardır.

3. XML

XML(eXtensible Markup Language), SGML’in güç ve esnekliğini içeren basitleştirilmiş,


genişletilebilir bir işaretleme dilidir. SGML’in alt kümesi olarak gösterilir ve HTML gibi
işaretleme etiketlerini kullanır. Aralarındaki fark, XML işaretleme etiketlerinin, içeriğin ne
anlama geldiğini(metadata) tanımlamak için kullanılmasıdır. XML meta bir dildir. Yani, yeni
işaretleme dillerini yaratabilme becerisine sahiptir. HTML de SGML’den türetilmiş bir dil
olmasına rağmen bu özelliği taşımaz.

XML

Fonksiyonsuz LISP
Acrobatsız PDF
Ticari anlamsallığı(semantic) olmayan EDI
Kelime işleme anlamsallığı olmayan RTF
Sıkıştırma olmayan ZIP
Multimedyasız FLASH
Daha fazla karakter içeren Mors Alfabesi
Daha fazla kontrol karakteri içeren Unicode
Mao’nun binlerce kilometrelik gezisinin ilk adımı
Microsoft’un Sun’a karşı gizli silahı
Sun’ın Microsoft’a karşı açık silahı
Siyasilerin ortak buluşabildiği tek yer, TBMM
4. XML’in özellikleri ve yaklaşımlar

4.1XML yapısal bir text formatına sahiptir

Avantajları:
Bu doğal özelliği sayesinde, içerik bilgisinin yanı sıra, içeriğin ne anlam taşıdığını
(metadatasını) yapısal bir formatta tutar. Örneğin bir kitabı tanımlayan elemanları; başlığı,
yazarı, bölümleri, bölüm yazıları ve kataloğudur. Bir bölüm yazısını tanımlayan elemanlar ise
paragrafları, satırları ve dipnotlarıdır. Kitabı bu şekilde yapısal tanımlayan bir döküman
yaratmak, hem makine hem de insan tarafından okunabilirlik sağlar. Eğer yazardan, kitabın
katalog bölümünde bahsedilirse, yapısallık bozulmuş olur.

Çoğu metin dosyası bu önemli avantaja sahip değildir. Sadece içerik bilgisini ya da en fazla,
buna ek olarak, ini uzantılı dosyalardaki gibi, tek seviyeli metadata bilgisini tutarlar. Sadece
içerik bilgisi tutan dosyalarda verileri ayırmak için, genelde virgül ve benzeri karakterler
kullanılır. Yapısallık olmadığından okunabilirlik de ortadan kalkar.

Dezavantajları:
XML dökümanları, içerik bilgisini ve metadatayı yapısal tutarak büyük bir avantaja sahip
olmalarına rağmen, bazı projelerde XML’e ihtiyaç duyulmadan basit metin dosyaları
kullanılarak daha verimli sonuçlar elde edilebilir. Birkaç parametreyi ve değerlerini, tek
seviyeli tutmak için, yaratılacak konfigürasyon dosyasını, XML dökümanı yapmak
gereksizdir.

4.2 XML okunabilir bir yapıya sahiptir

Avantajları:
XML teknolojisinin, sık sık kendinden söz ettiren avantajı, hiçbir ön bilgiye gerek
duyulmadan, dökümanın, insan ve makine tarafından okunabilir olmasıdır. Okunabilirlik,
kendiliğinden, yazılabilirlik avantajını da getirir. XML dökümanlarını yazmak için maliyeti
yüksek editörlere gerek yoktur.

Dezavantajları:
XML genelde farklı sistemler arası iletişimi sağladığından dolayı, insan için okunabilir olması
aslında çok fazla birşey değiştirmez. Asıl hedef sistemlerin entegrasyonudur. Mekanizma
işlemeye bir kere başladıktan sonra, insanlar belkide uzunca bir süre sisteme
dokunmayacaklardır. Fakat formatlı ve okunabilir olması uğruna, dosya ebatları büyültülmüş,
ağ trafiği yoğunluğu arttırılmış olur.
İnsanlar isterlerse okunabilir olmayan XML dökümanları yaratabilirler. Birçok uygulama
geliştirici kendisi açısından anlamlı olan, başkalarınca hiç birşey ifade etmeyen eleman
isimleri kullanabilirler. Örneğin <denopas981> etiketi herkez için anlamlı olmayabilir. Bunun
yanında Çince ya da Fransızca dilleri kullanılarak yazılan etiket isimleri de olabilir. Bu dilleri
bilmeyen birisi için XML dökümanı okunabilir değildir.

4.3 XML dökümanlarının işlenmesi kolay ve maliyeti azdır

Avantajları:
Diğer dosya formatları ve veritabanlarının en büyük dezavantajlarından birisi, üzerlerinde
işlem yapmak için gereken araçların çok pahalı olmasıdır. Bu dezavantaj XML dökümanları
için geçerli değildir. Çünkü XML işleme araçları dünya çapında çok yaygındır ve ucuzdur.
Düzenli bir yapıya sahip olan XML dökümanlarını işlemek amacıyla birçok ayrıştırıcı
tasarlanmıştır. Ayrıştırıcıların çoğu tarayıcılar tarafından otomatik olarak desteklenir. W3C,
xml dökümanlarını işleyebilmek ve ayrıştırabilmek amacıyla ulusal bir method yaratmıştır.
DOM(Document Object Model) adı verilen method, ayrıştırma işlemi için en çok kullanılan
tekniklerden biridir. Ağaç-tabanlı işlem modeli olarak da adlandırılır. Geliştirilen
ayrıştırıcıların çoğu bu metoda göre tasarlanmıştır.

Dezavantajları:
XML dökümanlarının işlenmesi sadece ayrıştırma demek değildir. Ayrıştırılan döküman
verileri üzerinde ilave olarak başka işlemler de yapmak gerekebilir. Aslında çoğu
uygulamalarda, ayrıştırma, birçok adım içerisinden ilkidir. Bazı organizasyonlar, ulusal
ayrıştırma metodu olan DOM’un gerçek iş yaşamı uygulamalarında, çok da pratik olmadığını
ve kaynakları kötü kullandığını savunmuştur. Çünkü DOM metodunda, büyük ebatlı
dökümanlar da dahil olmak üzere, tüm dökümanlar, bellekte ağaç tabanlı bir modele oturtulur.

4.4XML teknolojisi, varolan güvenlik çözümlerini destekler

Avantajları:
XML teknolojisi, mevcut internet ve ağ altyapısını desteklediğinden dolayı, bu altyapılar için
belirlenen güvenlik kavramlarına, getirilen çözümler, XML için de geçerlidir. Geçerli olan
güvenlik kavramları;
 Authentication, kullanıcının gerçekten doğru kullanıcı olup olmadığının
belirlenmesi; XML belgelerinin iletilmesi sırasında dijital imza ve sertifikaların
kullanılması
 Encryption, verilerin şifrelenmesi; XML’in HTTPS üzerinden SSL protokolü
kullanılarak iletilmesi. (XMLHTTP objesi)
 Authorization, bulunduğunuz yerdeki veriye ulaşım hakları (görüntüleme,
okuma, yazma, okuma-yazma); Döküman ve protokoller üzerinde uygulanan
mevcut tekniklerin XML dökümanlarında da uygulanması

Dezavantajları:
XML varolan yöntemleri ve protokolleri destekler, fakat teknolojinin çalışma mantığından
dolayı, yeni tehditlere açıktır. Mesela, XML dökümanları içerisinden, URI(Uniform Resource
Identifier) kullanılarak, harici DTD dosyalarına referans edilmesi, bu risklerden bir tanesidir.
XML dökümanını kullanan kullanıcılar, referans edilen URI kaynağının güvenli olup
olmadığını bilmeden işlemlerine devam ederler. Kaynağa erişen bir saldırgan, DTD üzerinde
çeşitli oynamalar yapabilir;
 OPTIONAL tipte bir özelliğin tipini REQUIRED yapabilir
 Özelliklerin varsayılan değerlerini değiştirebilir
 DTD içerisinde geçen varlıkların (entity), içerik metinleri veya referans ettikleri
notasyonlar değiştirilerek, çeşitli virüslerin aktive edilmesi sağlanabilir

Ya da, URI kaynaklarının saldırıya uğrayarak ulaşılamaz hale getirilmesi, XML’in geçerlilik
işleminin iptal olmasına yol açar.

4.5 XML programlama dili ya da dünya barışı için bir çözüm değildir

XML teknolojisi çok abartıldığından dolayı, onun aslında bir uygulama, bir programlama dili
ya da dünya barışına ve açlığına bir çözüm olmadığı unutulmuştur. XML veriyi ve verinin
anlamsallığını, belirli geçerlilik kuralları çerçevesinde, belirli bir formatta saklayan bir
dökümandır.

Bu abartı yüzünden XML’in ne olduğunun yanı sıra, yapabilecekleri hakkında da kafalarda


karışıklık oluşmuştur. XML onu işleyecek ayrıştırıcılara ve uygulamalara ihtiyaç duyar. XML
tek başına basit olabilir, fakat XML’in resmi tasarım hedefleri arasında yer alan, ayrıştırma,
işleme, entegrasyon, mesajlaşma ve transformasyon gibi işlemler o kadar da kolay değildir.
XML’in bir sistem tarafından anlaşılabilir olması için, sistemde bir yerlerde bir kod
parçasının, döküman etiketlerinin ne anlama geldiğini bilmesi gerekir. XML standart bir
döküman formatı yaratmamızı ve onu kolayca ayrıştırabilmemizi sağlar, fakat her şirket ya da
kurum, ortak bir standart yerine, kendi standardını belirlediği için, farklı kurumlar arası
haberleşme olabilmesi için, bir ayrıştırıcının yapabileceğinden çok daha fazlasına ihtiyaç
vardır. Gerçek hayatta işletmeler, oturup hangi standartlarda veriyi göndereceklerinin
anlaşmasına varmalıdır.

Bilgi sistemlerinde geçen dil kavramında genelde bir programlama dilinden bahsedilmesine
karşın, XML, C++ ya da Delphi gibi bir programla dili değildir, bir işaretleme dilidir. Aslında
XML kullanılarak programlama dilleri yazılmaya çalışılmıştır. Fakat kullanılmaları zor
olduğu için, uygulama geliştiricileri tarafından edilme tercih edilmemiştir.

Function MerhabaDunya : Boolean; <Function Name=”MerhabaDunya”


Begin Type=”Boolean”>
Write(‘Merhaba Dünya’); <call function=”Write”>
Result := True; <param type=”String”>Merhaba Dünya</param>
End; </call>
</Function>

5. Sonuç

XML öğrenmesi, okunması, uygulanması ve test edilmesi kolay bir teknolojidir. B2B gibi
uygun uygulamalarda geliştirme zamanını oldukça kısaltır. Sadece bir döküman formatı
olmasına rağmen RPC mesajlaşması gibi birçok uygulamda kullanılır. En önemlisi, XML açık
bir standartdır, sürekli bir gelişim içersindedir ve yeni araçlar yazılmaktadır. Problem,
XML’in kullanımına uygun olmayan senaryolarda bile uygunmuş gibi görülüp kullanılmaya
çalışılması, insanların doğası gereği, yeni çıkan teknolojileri tüm problemlerde uygulamak
istemesidir.

6. Kaynakça
 [1] Harold, E.R., XML Bible, IDG Books Worldwide Inc., United States of
America, 1999
 [2] DuCharme, Bob, XML: The Annotated Specification, Prentice Hall, 2000
 [3] Goldfarb, Charles F., XML Handbook, Pearson Education,2001
 XML-DEV mail listesi
 http://www.XML.org web sitesi
 http://www.XML.com web sitesi

You might also like