XML Temel özellikleri , İşlenmesi ve İlgili Teknolojiler
Hazırlayanlar:
Levent Tanın Mehmet Gürsul Tolga Ovatman
İçindekiler 1. Giriş ve Özet 2. XML Tarihi 3. XML’in Genel Özellikleri ve Kullanımı 3.1. XML Nedir? 3.2. XML Nasıl Kullanılabilir? 3.3. Neden XML? 3.4. Örneklerle XML Sözdizimi , Özellik ve Eleman Kullanımı 4. XML İşleme (XML Processing) 4.1. DTD’ler 4.2. Bir DTD Yaratmak 4.3. Özellikler(Attributes) İle Çalışmak 4.4. XML Ayrıştırma (XML Parsing) 4.4.1. SAX (Simple API for XML) 4.4.2. DOM (Document Object Model) 4.4.3. XPath 4.4.4. XPointer 4.4.5. Xlink 4.4.6. “XML Parser” ları (XML Ayrıştırıcıları) 4.5. XML Şema (XML Schema) 4.5.1. XML Şema’nın içyapısı 4.6. Well-Formed ve Validated XML Belgeleri 4.6.1. “Well-Formed” Belge 4.6.2. Geçerli Belge(VALID) 5. İlgili Teknolojiler 5.1. XSL (eXtensible Stylesheet Language) 5.1.1. XML'in Sunulması (CSS-XSLT) 5.1.2. XQuery 5.2. XHTML (eXtensible HyperText Mark-up Language) 5.2.1. XHTMLin Getirdiği Yenilikler: 5.2.2. Neden XHMTL? 5.2.3.XHTML Çeşitleri 5.2.4. XHTML Belgelerinin Özellikleri 6.Teşekkür Kaynakça
1. Giriş ve Özet XML tam anlamıyla bir standart haline gelmemiş olmasına rağmen geleceğin web tabanlı uygulamalarında alt yapıyı oluşturacak en büyük aday olarak görünüyor. Bu açıdan bakıldığında, XML’in günümüzdeki popülaritesi ve XML ile ilgili teknolojilerin her geçen gün daha hızlı bir şekilde artması daha rahat anlaşılıyor. XML, ortaya çıkış düşüncesiyle insanlar için HTML’den çok daha rahat ve kullanımı kolay bir dil olmayı amaçlıyor. Bununla beraber uygulamada HTML’in yetersiz kaldığı konulara da eğilerek aynı zamanda da teknik açıdan günümüzde HTML’in açıklarını yamamaya çalışan birçok programı ortadan kaldıracak gibi gözüküyor. İçerisinde barındırdığı kolay kullanım ve teknik genişlik konularıyla sıradan kullanıcılar için kullanım kolaylığı sağlamakla birlikte teknik geliştiriciler açısından çok geniş bir XML teknolojileri dağarcığına sahip olmayı gerektiriyor. Bu belge, XML temelinden başlayarak sıradan kullanıcılara dilin sözdizimi ve genel özellikleri hakkında bilgi verirken , konuyla ileri düzeyde ilgilenmek isteyenlerde de XML ile ilgili teknolojiler hakkında başlangıç için yeterli düzeyde açıklamalar sunuyor. Belge içerisinde öncelikle XML fikrinin ortaya atılışını ve tarihi incelenecektir , bunun ardından XML sözdizimi ve genel özelliklerine değinilecektir. XML genel özelliklerinden sonra XML’in işlenmesi konusunda XML DTD’leri ve şemalar incelenecek bir XML belgesinin hazırlanmasından sunumuna kadar üzerinde yapılan işlemler açıklanacaktır. Son bölümde de ilgili XML teknolojileri ile ilgili olarak XSL ve XSLT ile XML belgelerinin sunuma hazır hale getirilmesi ve son olarak da XQuery ve XHTML konuları ile XML’den tüeryen teknolojiler incelenecek.
2. XML Tarihi 1960’larda IBM mühendisleri belgeleri ve belge biçimlerini tanımlamak için bir GML(genelleştirilmiş işaretleme dili) üzerinde çalışıyorlardı. 1986’da ISO SGML(Standartlaştırılmış GML) adında bir standardı kabul etti. SGML belge görünümlerini özel uygulama yazılımlarından bağımsız kılmak için belgeleri işaretlemeyi öngören çok gelişmiş bir dizgeydi. Belge standartlarını kesinleştirmeye ihtiyaç duyan büyük organizasyonlar için SGML çok uygundu ve güçlü seçenekleri vardı. SGML platformbağımsız ve uygulama-bağımsız belgeler yaratmak için oluşturulmuştur ve özel tanımlanmış etiketler (tag) kullanarak belgelerin yapısını tanımlamamızı sağlar. Daha sonraları görüldü ki SGML’in gelişmişliği, hızlı ve kolay web yayınları için uygun değildi. Bu nedenle herkesin kolayca öğrenip uygulayabileceği pratiklikte basit bir işaretleme diline ihtiyaç duyuldu. Böylece SGML’in özel bir belge tipi (ya da DTD) ‘nden biraz daha fazla kapsamlı olan HTML geliştirildi. Öğrenilmesi ve uygulanması kolay olduğu ve öncü web tarayıcıları tarafından desteklendiği için HTML yeni gelişmekte olan web’in süratle temelini oluşturmaya başladı. Gerçekten de eğer SGML web’in geçerli işaretleme dili olarak kullanılsaydı web şu andaki popülaritesine kavuşamazdı. Fakat HTML’in sorununun çok yalın olmasından kaynaklandığı hemen görüldü. Başlıkları, listeleri, diğer belgelere bağları(link) içeren, metin tabanlı belgeleri kullanan web’in ilk günlerinde HTML çok uygun bir işaretleme diliydi. Kısa zamanda web uygulaması
geliştiren insanlar çoklu ortam ve sayfa tasarım olanaklarının arttırılmasını istemeye başladılar. Bu da HTML’in şiddetli büyüme sorunları yaşamasına neden oldu. Yalın bir şekilde metin içine resim yerleştirmek iyiydi fakat yerleştirmenin her zaman tam olarak istenilen yere yapılamaması tasarımda sıkıntı yaratıyordu. Görüntü haritaları oluşturmak ve bunlara bağ atamak yeni problemler yaratıyordu ve yeni çözümler gerektiriyordu. Sonrasında yanıp sönen metinler, çizelgeler, çerçeveler ve devingen HTML ortaya çıktı. Her zaman HTML’e yeni bir şeyler ekleme ihtiyacı hissediliyordu fakat bu ekleme çabaları her defasında uyumsuzluk yaratıyor ve yeni standart ihtiyaçları ile sona eriyordu. Bu sorunların nedeni çok açıktı, HTML genişleyebilir değildi. Yıllar geçtikçe Microsoft sadece Internet Explorer’da , Netscape ise sadece Navigator’da çalışacak yeni etiketler çıkardı. Ne yazık ki web uygulaması yazanlar böyle bir şansa sahip değillerdi. Karmaşık siteler tasarlanabilmesi için daha çoğuna ihtiyaç duyuluyordu. Java ve JavaScript, ASP, CGI, PERL, PHP ve diğer bütün gelişmeler HTML’i kuvvetlendiriyordu. CSS (Cascading Style Sheet) ve devingen HTML(DHTML) gibi gelişmeler web tasarımını istenilen hale getirmek için gerekli olan gücün bir kısmını öneriyordu. Bununla beraber bu eklemeler büyümekte olan sorunu daha da göz önüne çıkarıyordu. Birçok Web uygulaması geliştiricileri , HTML genişleyebilir değilken onun ana dili olan SGML’in tam genişleyebilir olduğunu biliyorlardı. SGML’de tamamen özelleştirilebilir belge kümesi oluşturmak amacıyla, uygulama geliştiriciler tüm bu belge kümesini denetleyecek bir DTD geliştirdiler. Bu zaman alıcı ve karmaşık bir işti ama işe yaradı. Asıl sorun SGML’in genişleyebilir olan özelliğini karmaşıklığından arındırabilmekti. Diğer bir deyişle amaç SGML ve HTML arasında bir köprü kurabilmekti. Sonuçta XML(eXtensible Markup Language) geliştirildi. 1996 sonlarında World Wide Web Consortium (W3C) XML’i geliştirdi. XML’in amacı SGML’in gücünü dilin karmaşıklığından arındırıp web uygulaması geliştirenlere tam anlamıyla özelleştirilebilen belgeler hazırlama olanağı sunmaktı. HTML, SGML’in bir belge tipiyken XML onun basitleştirilmiş bir biçimi gibiydi bu yüzden de yukarıda bahsedilen özellikleri taşıyordu.
3. XML’in Genel Özellikleri ve Kullanımı 3.1. XML Nedir? XML, HTML ile pek çok açıdan benzerlik gösteren bir işaretleme(markup) dilidir. Verinin tanımlanması ve tarif edilmesi için kulanılır. HTML’deki yapının aksine XML’de kullanılacak olan etiketler önceden tanımlı değildir.Yani bir XML belgesinin yapısı tamamıyle kullanıcı tarafından oluşturulur.Verinin tarif edilmesi için DTD(Document Type Definition (XML belgesinde kullanılacak etiketleri ve yapıları önceden tarif ettiğimiz kütükler)) adı verilen yapılar kullanılmaktadır. XML ve DTD’nin birlikte kullanılması ile belgeler kendini tarif eden bir yapı halini alırlar. XML, SGML’den türetülmiş bir dildir. SGML bir meta-dildir. Meta-dil demek dil yaratmaya yarayan dil demektir. İlginç olan XML'in SGML gibi bir meta-dilden türemesine rağmen kendisinin de bir meta-dil olmasıdır. Yani XML'den de yeni diller türetilebilir. Örneğin Wireless Markup Language(WML) mobil cihazları için kullanılan WAP ortamlarının
dilidir ve XML’in türevidir. HTML de SGML’den türetilmiş bir dil olmasına rağmen bu özelliği taşımaz. XML ve HTML arasındaki en belirgin fark XML’in verinin kendisiyle ilgilenmesi, HTML’in ise verinin sunumuyla ilgilenmesidir. Buna bağlı olarak HTML belgeleri veriye ilişkin şekillendirme bilgilerini içerirken, XML dökümanları ise verinin tanım bilgilerini içermektedir. XML’in tasarım amaçlarından biri de verinin taşınmasıdır.
Şimdi çok basit bir XML belgesini birlikte inceleyelim: <not>
Mehmet Levent Kutlama Doğum Günün Kutlu Olsun!!
HTML belgelerine çok benzeyen bu yapıda ilk etapta göze çarpan nokta etiket yapılarının bizim tarafımızdan tasarlanmış oluşudur. XML kütükleri her zaman belgelerin mantıksal bölümlerinin(element) başlangıç ve bitişlerini işaret eder. HTML’de kullanılan
ve