Ana içeriğe atla

XML Teknolojisi Tarihçe

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.

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ı, hızlı ve kolay web uygulamaları 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. 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”
clip_image001 
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ı.
clip_image003

Şekil 1.1 İşaretleme dillerine genel bakış
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.
Diğer XML Tanımları
  • 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ı
Deniz KILINÇ

Yorumlar

Bu blogdaki popüler yayınlar

UML ve Modelleme – Bölüm 4 (Class (Sınıf) Diyagramları)

Bir önceki makalemizde UML modellemede kullanılan ilk diyagram olan Use Case diyagramını incelemiştik. Bu makalemizde nesne tabanlı programlamada kullanılan sınıflar ve sınıfların arasındaki ilişkileri modelleyebileceğimiz diyagramlar olan Class(Sınıf) diyagramlarını inceleyeceğiz. UML’de sınıflar, nesne tabanlı programlama mantığı ile tasarlanmıştır. Sınıf diyagramının amacı bir model içerisinde sınıfların tasvir edilmesidir. Nesne tabanlı uygulamada, sınıfların kendi özellikleri (üye değişkenler), işlevleri (üye fonksiyonlar) ve diğer sınıflarla ilişkileri bulunmaktadır. UML’de sınıf diyagramlarının genel gösterimi aşağıdaki gibidir. Şekil 1. Class Diyagram Şekil1’de görüldüğü üzere bir dikdörtgeni 3 parçaya bölüyoruz. En üst bölüm sınıf adını, orta kısım özellik listesini (üye değişkenler) ve en son kısım, işlev listesini (üye fonksiyonlar) göstermektedir. Çoğu diyagramlarda alt iki bölüm çıkarılır. Genelde tüm özellik ve işlevler gösterilmemektedir. Ama...

Yazılım Maliyet Tahmineleme Tecrübeleri

Yazılım mühendisliğinde maliyet hesabı her zaman problem olmuştur. "Bu iş kaç Adam/Gün tutar?" sorusuyla sıkça karşılaşıyoruz. Adam/gün veya Adam/ay ölçütleri bir kaynağın/kişinin belirtilen zaman dilimindeki iş gücü anlamına gelir. Tabi bu noktada yine kafa karışıklıkları başlar. 6 A/G'lik bir işi hızlandıralım diye 2 kişi ile yapmaya çalışsak ve kaynak/kod, modül, altyapı, insan vb. her bir şeyi bir kenara bıraksak, matematiksel basit formülle 6/2=3 A/G'de biter? Gerçek hayat böyle değil, öncelikle bunu anlamamız lazım. Hep şu örnek verilir; "Aynı bebeği 2 kadın birlikte daha kısa sürede doğurur mu?" Eğer bunun cevabı "Evet" ise (veya bir gün böyle bir durum ortaya çıkarsa), yazımı değiştirmem gerekecek:) Mevzu gerçekten derin...Maliyet hesabı; bulunduğunuz firmanın yazılım süreçlerini hangi methodlarla uyguladığına, ilgili işin o dönemdeki aciliyetine, (şirket yönetiminin baskısına:)) vb. bir çok duruma bağlı olabilir. Örneğin; bizim firmada e...

UML ve Modelleme – Bölüm 3 (Use Case Diyagramlar)

Önceki iki makalemizde ( 1 , 2 ) UML’e genel olarak değinip ve modellemede kullanacağımız dokuz diyagram hakkında bilgiler vermiştik. Bu makalemizde Use Case diyagramından detaylı bahsedeceğiz. Öncelikle, genel Use case diyagramının tanımını hatırlayalım. “Bir kullanıcı ve bir sistem arasındaki etkileşimi anlatan senaryo topluluğudur.” Ivar Jacobson Senaryo tanımı için der ki: “Aktörle sistem arasında gerçekleştirilen, sonucunda aktöre farkedilir getirisi/ faydası oluşan etkileşimli diyalogdur. ” UML Use Case Diyagramları  sistemin işlevselliğini açıklamak amacıyla kullanılır. Sistemin birbirinden ayrı özelliklerinin detaylarını göstermekten ziyade, Use Case Diyagramlar, tüm mevcut işlevselliği göstermek için kullanılabilir. Buradaki en önemli noktalardan biri,   Use Case Diyagramlar temelde sequence diyagram ve akış diyagramlarından farklıdır. Use Case diyagramlar dört ana elemandan oluşmaktadır. Aktörler , Sistem (Proje kapsamını belirtir) , Use Caseler ...