AltınSoft Makale Arşivi

Web Hosting Hizmetleri

Anasayfa | Toplu SMS | Video | Web Hosting | Makale Ara | Anketler | Sitene Ekle | RSS Kaynağı

Arama


Gelişmiş Arama

Her Yönüyle XML ve Uygulamaları (1)

Her Yönüyle XML ve Uygulamaları (1)

Kategori  Kategori : Web Tasarım
Yorumlar  Yorum Sayısı : 0
Okunma  Okunma : 162
Tarih  Tarih : 09 Mart 2008 03:37

Bu belge, HTML bilen kullanıcılara yönelik olarak yazılmıştır. HTML ve XML arasındaki benzerlikleri ve farklılıkları göstererek, XML mantığını temel seviyede göstermek için yazılmıştır. XML ile ilgili temel kavramları tanımlar, iyi şekillendirilmiş bir XML belgesinin özelliklerini, XML tanımları yaparken dikkat edilmesi gerekenleri basitçe anlatır.

1- Belgenin Amacı

Bu belge, HTML bilen kullanıcılara yönelik olarak yazılmıştır. HTML ve XML arasındaki benzerlikleri ve farklılıkları göstererek, XML mantığını temel seviyede göstermek için yazılmıştır. XML ile ilgili temel kavramları tanımlar, iyi şekillendirilmiş bir XML belgesinin özelliklerini, XML tanımları yaparken dikkat edilmesi gerekenleri basitçe anlatır.

2- Önbilgi ve Gereksinimler

Bu belge, okuyucunun HTML bildiğini varsayarak hazırlanmıştır. HTML bilmekten kastım, tüm HTML etiketlerini ve kullanımlarını ezbere bilmek değil, HTML in mantığını ve yazılıp çalıştırılmasını bilmektir. XML yazmak için üçüncü programlar bulunmaktadır. Ancak Notepad (Visual Notepad :] ) fazlasıyla yeterli bir programdır. XML dosyalarınızı yerel olarak denemek istiyorsanız Microsoft Internet Explorer 5 ve üstü bir tarayıcı kullanabilirsiniz. XML dosyalarının ayrıştırılması için bilgisayarınızda MSXML (Microsoft XML Core Services) kurulu olması gerekmektedir. MSXML in bilgisayarınızda kurulu olup olmadığını anlamak için: http://alexfung.info/xml4test.htm adresindeki testi uygulayabilirsiniz.

3- Yazar Notu

3.1- Yasal Sorumluluk Reddi
Bu belgede yazılanları uygulamak okuyucunun sorumluluğundadır. Yazara ulaşmak için belirtilen e-posta adresini kullanabilirsiniz, ancak yazıdaki mantık hataları ve/veya yazım hataları konuları dışındaki mesajlar göz ardı edilecektir. (Yardım talepleri vs.) Bu belgede yazılanlardan doğacak herhangi bir hasardan yazar sorumlu tutulamaz. Örnekler Microsoft Windows ortamında çalıştırılmıştır. Belirtilen ipuçları bu sisteme aittir. Sizin sisteminiz farklı ise sisteme bağlı ipuçları işinize yaramayabilir. Bu belgenin yayımı yazarına ve geliştiricilerine herhangi bir sorumluluk getirmez. Kullanılacak programların lisansları okuyucunun sorumluluğundadır.

3.2- Bu Belgenin Kopyalanması
Bu belge yazar ve telif hakkı bilgilerinin saklanması şartı ile kısmen ya da tamamen -koşulsuz olarak- çoğaltılabilir, Ticari amaçlı olarak yapılacak alıntılarda yazara haber verme şartı aranır. Belge XML standartlarında şekillendirildiğinden yayınlandığı herhangi bir sunucu üzerinden kullanılabilir. Belgeyi çoğaltırken orijinaline saygı duymak sorumluluğunu kabul etmiş sayılırsınız. Belge üzerinde bir geliştirme/düzeltme yaptığınızda bunu yazarına bildirmekle yükümlüsünüz. Belgenin çevirilerinin yapılması, çevirmenlere ticari ayrıcalıklar sağlamaz. Bu şartlar altında belgenin kopyalanması ve dağıtılması serbesttir.

4- Yazı

4.1 Giriş
Son günlerde adını sıkça duyduğumuz bir kavram olan XML, web sayfası tasarlayıcılarının yakından tanıdığı HTML ile benzerlikler göstermekte, bu da bazılarımızın kafasında XML in HTML den çok da farklı olmadığı izlenimini uyandırmaktadır. XML 'in HTML e benzediği kesindir, ancak benzerlikleri kadar şeklen ve mantıken ayrıldığı noktalar da vardır, hatta bunlar çoğunluktadır.

4.2 XML, HTML 'e benzer
XML etiket yapısında kodlandığı için HTML e benzer. Aslında XML ve HTML in ikisi de SGML den türemiştir. Bu nedenle iki kardeşin birbirine benzerliği kadar benzerlik göstermektedir. Tabi ki iki kardeşin yüzlerinin benzemesi, onların karakterlerinin ve huylarının aynı olması anlamına gelmez. Bunun yanında, şimdiye kadar HTML yazmak için kullandığınız araçları, başta Visual (!) Notepad olmak üzere, XML yazmak için de kullanabilirsiniz.

4.3 XML in HTML den ayrıldığı noktalar
XML bir çok noktada HTML den farklılık göstermektedir. Bu farklılıkları iki çatı altında toplayabilmekteyiz:

4.3.1 Sözdizimi Farklılıkları
XML ve HTML in ikisinde de ortak olan etiketlerden bahsetmiştik. Bu etiketler her iki dilde de < ve > karakterleri arasına yazılır. HTML önceden tanımlanmış bir şemadır, ancak XML 'de kendi etiketlerinizi ve standartlarınızı kendiniz belirlersiniz. Bu nedenle XML etiketlerini işlemek konusunda, XML ayrıştırıcıları, HTML işleyen tarayıcılar kadar bağışlayıcı değildir. Bunun anlamı, bazı tarayıcılar (Buna MS Internet Explorer da dahil olmak üzere) karışık yazılmış bir HTML kodunu işlerken en mantıklı çözüme yatkın davranırlar. Ancak XML ayrıştırıcıları XML belgelerinin çok iyi şekillendirilmesini şart koşarlar. Tabi ki XML etiketleri de birbirleri içerisine yuvalanabilir, ancak bu işlemin yapılması sırasında bazı kuralları göz önünde bulundurmak gerekir.

4.3.2 Mantık farklılıkları
HTML önceden tanımlı bir şema iken, XML de kendi etiketlerinizi kendiniz oluşturursunuz. Burada kesinlikle şöyle bir yanılgıya düşmeyin, XML, veriye yöneliktir, yani şekillendirme kısmı biraz daha geri planda kalır. XSLT ile şekillendirme yapabilirsiniz, ancak bunun için de standart HTML etiketlerini kullanırsınız, yani XML kullanmakla, herhangi bir kaynaktaki verilerinizi tanımlı hale getirirsiniz, şekillendirme kısmı XSLT e aittir. XML, küresel anlaşabilirlik sağlamak için geliştirilmiştir. Verilerinizi iki farklı sistem arasında, hiç bir özelliğini kaybetmeden iletebilmek bunun en güzel örneğidir. DTD ler, verilerinizin türünü tanımlarken size yardımcı olurken, XSLT ve CSS ile verilerinizi sunabilirsiniz. Bu özelliklerin tümüne ek olarak, XML, ayrıştırıcısı tanımlanmış her dil ve sistem üzerinde çalışabilir. XML düz metin dosyalarından bile daha ortam bağımsızdır. XML bilgisayar dünyasındaki en ortam bağımsız ve evrensel şeydir. Kısacası, XML in mantığı verileri ifade etmek iken, HTML daha çok bunun şekillendirme yanı ile ilgilenir.

4.4 İyi şekillendirilmiş belgeler
XML belgelerinin iyi şekillendirilmiş olması için bazı kurallar olması gerektiğini söylemiştim. Aslında XML in sözdizimi konusunda HTML tarayıcıları kadar bağışlayıcı olmaması geliştiriciler için bir nimettir. Bu bahsettiğimiz bağışlayıcı olmamak kavramı, XML in dünyadaki en sıkı kurallı dil olduğu anlamına gelmez. Sisteminizdeki XML ayrıştırıcısı, işini yaparken, belirli esneklik sınırları içerisinde davranır. XML in şekilsel farklılıklarını anlatırken, XML de kendi etiketlerinizi kendinizin oluşturduğundan bahsetmiştik. Bunu örneklendirmek gerekirse, HTML tarayıcıları için etiketi her zaman aynı şeyi ifade ederken, XML in ruhunda olan özgürlük anlayışı sayesinde kendi etiketlerinizi kendiniz oluşturabilirsiniz. Tabi bu işi yaparken, standartlar içinde kalmak dolayısıyla bu özgürlüğün çığırından çıkmasını engellemek için bazı kurallar tanımlanmıştır. Şimdi isterseniz bu kurallara bir göz atalım.

4.4.1 Sadece Bir Belge Etiketi
Öncelikle belge etiketinin ne demek olduğuna deyinelim isterseniz. Belge etiketi, XML belgeniz içerisindeki diğer tüm etiketleri kapsayan, kök öğedir. Diğer tüm XML etiketleri belge öğesinin alt öğesidir:

xml version="1.0" encoding="iso-8859-9" ?>
<kitaplarim>
<
kitap nu="1">
<
yazarlar>
<
yazar>Richard Petersenyazar>
yazarlar>
<
yayinci>Alfayayinci>
<
isim>Herkes İçin Linuxisim>
<
isbn>975-316-719-9isbn>
<
sayfa>768sayfa>
<
kapak>Standartkapak>
kitap>
<
kitap nu="2">
<
yazarlar>
<
yazar nu="1">Murat Kuzuyazar>
<
yazar nu="2">Alev Orhanyazar>
<
yazar nu="3">Kemal Çınaryazar>
yazarlar>
<
yayinci>Seçkinyayinci>
<
isim>Linux Ağ Yönetimiisim>
<
isbn>975-347-494-6isbn>
<
sayfa>366sayfa>
<
kapak>Standartkapak>
kitap>
<
kitap nu="3">
<
yazarlar>
<
yazar nu="1">Murat Kuzuyazar>
yazarlar>
<
yayinci>İbesyayinci>
<
isim>Linux Doktoruisim>
<
isbn>975-347-579-9isbn>
<
sayfa>212sayfa>
<
kapak>Standartkapak>
kitap>
kitaplarim>

Bu iyi şekillendirilmiş XML dosyasından da görülebileceği üzere, kendi belirlediğimiz XML etiketleri başka XML etiketlerinin içerisine yuvalanmıştır. Ancak tüm XML etiketleri kitaplarım etiketinin içindedir. Bir XML belgesini ayrıştırıcıya tanımlayan, o belgenin belge elementidir (kitaplarım) Bir XML belgesinin sadece bir tane ve mutlaka bir belge etiketi bulunmalıdır. Diğer elementler bazı değerler içerir, ancak bulunmaları zorunlu değildir. Örneğin aşağıdaki de geçerli bir XML dosyasıdır:

xml version="1.0" encoding="utf-8" ?>
<
kitaplarim/>

Bu ise kötü şekillendirilmiş bir XML belgesidir ve ayrıştırıcıda hata oluşmasına sebep olacaktır:

xml version="1.0" encoding="utf-8" ?>
<kitaplarim>
<
kitap nu="1">
<
yazarlar>
<
yazar>Richard Petersenyazar>
yazarlar>
<
yayinci>Alfayayinci>
<
isim>Herkes İçin Linuxisim>
<
isbn>975-316-719-9isbn>
<
sayfa>768sayfa>
<
kapak>Standartkapak>
kitap>
kitaplarim>
<
yayinevleri>
<
yayinevi nu="1">
<
ad>Seçkinad>
<
adres>vs.adres>
yayinevi>
yayinevleri>

Bu belge, bir belge etiketi içerisine alınarak geçerli yapılabilirdi..

4.4.2 Tüm XML Etiketleri Kapatılmalıdır
XML etiketleri, herhangi bir değer içermiyor olsalar bile ile kapatılmalıdırlar. Yukarıdaki örneklerde de görüldüğü gibi tüm etiketlerin birer kapatma etiketi vardır. Bir tane kitabımızı yazarın kendisinin bastırdığını bu nedenle yayınevinin olmadığını farz edelim. Bu durumda hiç bir değer içermeyen bir XML etiketi şu şekilde basitçe kapatılabilir:

<yayinci />

Bu aslında, etiketin açılıp kapatıldığını gösterir. HTML içerisinde kullanmaya alışık olduğumuz meta, input, hr, br gibi bazı etiketler, HTML belgelerinin XML standartlarına getirilmesi sırasında bu şekilde kapatılmalıdır.

İpucu: Microsoft Front Page, belgelerinizi XML standardında yayınlamanız için büyük kolaylıklar sağlıyor. Yapmanız gereken tek şey, belgenizi yazmayı bitirdikten sonra, HTML görünümüne geçerek sağ tıklamak ve "XML Biçimlendirme kurallarını uygula" seçeneğini tıklamaktır.

4.4.3 Üst üste geçmiş etiketler
XML etiketlerinin birbirlerini kapsayabileceğinden bahsetmiştim. Ancak bu kapsama özelliği sırasında dikkat edilmesi gereken bir altın kural var. Bunu bir örnekle açıklamak istiyorum. Çoğu HTML Tarayıcısı aşağıdaki HTML yazma hatasını en uyguna yaklaşım yaparak tolere edebilmektedir, ancak bu ifade XML ayrıştırıcıları tarafından kesinlikle kabul edilemeyecek bir hatadır:

<b><i>Merhabab>i>

XML tarayıcısı, bu şekilde biçimlendirilmiş belgeyi işlemeye çalışırken, < b > etiketinin açılmasını onaylayacak, ardından < i > etiketinin < b > etiketi içerisine yuvalanmasını da onaylayacak, < i > etiketinin değerine "Merhaba" kelimesini atayacak, ardından < i > içerisine yuvalanacak yeni bir etiket, ya da i etiketinin kapatılmasını bekleyecektir. Ancak < b > etiketinin daha önce kapatılmasını kabul edemeyeceğinden hata verecek ve ayrıştırmayı durduracaktır. Aynı kod, iyi şekilli olarak şöyle yazılabilir:

<b><i>Merhabai>b>

Bu, iyi şekillenmiş XML belgeleri için uygulanması gereken altın kurallardan biridir.

4.4.4 XML Nitelikleri
Bir XML niteliğini basit bir şekilde HTML diline bir eşleştirme yaparak açıklamak gerekirse, HTML içinde kullanılan font etiketinin size özelliği gibi kullanımı olan yapılara benzetme yapılabilir. size, font etiketine ait bir özellik olduğu gibi, tüm XML nitelikleri de bağlı olduğu XML etiketlerini tanımlamaya yardımcı olur:

<kitap nu="1">

Bu örnekte, nu niteliği, yine kendimizin belirlediği bir isimdir. Ve Türk Dili dersimizin hocası Dr. Ahmet Öcal 'ın kullandığı şekilde "numara" kelimesinin kısaltması yerine kullanılmıştır.

XML nitelikleri tanımlanırken dikkat edilmesi gereken iki kural vardır, nitelik isimleri oluşturulurken etiket isimlerine ait kurallar geçerlidir, ve nitelik değerleri içerisinde boşluk karakterinin kullanıldığı zamanlarda nitelik değerleri tek veya çift tırnak içerisinde sunulmalıdır. XML kodunuzun çeşitli kaynaklar tarafından işlenebileceğini, ve herhangi bir ayrıştırıcının bu konuda daha hassas davranabileceğini göz önüne alarak, nitelik değerlerinizi her zaman standartlara uyarak tek veya çift tırnak içerisinde yazmanızı tavsiye ederim.

4.4.5 Özel Karakterler
XML belgeleri için özel anlam taşıyan bazı karakterler, XML belgelerinin herhangi bir yerinde kullanılamazlar. Bu karakterlerden bazıları: <, >, &, ' (tek tırnak), " (çift tırnak) tır. Bu bizim için bir kısıtlama değildir, ancak bir miktar ek işe neden olabilmektedir. Bu karakterleri kullanmanız gerektiğinde aşağıdaki tablodaki karşılıkları ile değiştirmeniz gerekmektedir:

Tanım Kullanılabilecek Kod Anlamı
lt < < (Küçüktür)
gt > > (Büyüktür)
amp & & (Ve)
apos &apos; ' (Tek tırnak - ayıraç)
quot " " (Çift tırnak)

4.4.6 Büyük-Küçük Harf Duyarlılığı
Tüm XML belgeleri, etiketleri ve nitelikleri büyük küçük harf duyarlıdır. Bu nedenle, etiketlerinizi kapatırken, veya XML dosyasından veri toplarken bunu göz önünde bulundurmalısınız. Örneğin şu kullanım yanlıştır:

<isim>Herkes İçin LinuxIsim>

4.4.7 Türkçe Karakterler
XML belgeleri içerisinde, referansı içerisinde gerekli tanımı yaptığınız sürece, etiket adlarında, niteliklerde, nitelik değerlerinde kısacası XML belgesinin her yerinde Türkçe karakterler kullanabilirsiniz. Tabi Türkçe karakterleri kullanırken, hedef aldığınız kullanıcıların Türkçe karakter setlerine sahip olduğunu kabul ettiğinizi unutmayın. Bu bir kısıtlama değildir, İngilizce karakterlerin yüklü olduğu neredeyse tüm sistemlerde Türkçe karakterler de yüklüdür. Ayrıca, bu Internet sayfanızda Türkçe karakterler kullanmakla neredeyse aynı şeydir.

4.5 Sonuç Olarak
Gelecek 20 yılın teknolojisinin tabanını oluşturan dilin temellerini ve yazım kurallarını öğrenmiş bulunuyorsunuz. Burada her şey bitmiyor tabi. XML gibi geniş bir konuda, her şeyde olduğu gibi tecrübe konuşuyor, daha çok belge tanımı yaparak, ve XML tabanlı daha çok uygulama geliştirerek bu dilin temellerini çok daha iyi öğreneceksiniz.

Bir sonraki makalemde, XML in kullanım alanlarını gerçek örneklerle göstereceğim, ve inanıyorum ki, bu dili öğrendikçe, bu kadar basit bir dilin nasıl bu kadar yetenekli ve hayat kolaylaştırıcı olduğunu görüp hayretler içinde kalacaksınız.

Hepinize XML hayatınızda başarılar dilerim!

5- Kaynaklar

  • MSXML 4.0 SDK - XML Developers Guide
  • XML101.com
  • Adım Adım Microsoft XML - Arkadaş Yayınları 2001
  • MSDN Collection May 2003
  • xml.com
  • xml.org

6- Ekler

Makale içerisinde kullanılan bazı kısaltmaların açıklamaları burada verilmiştir:

XML: (eXtensilble Markup Language) Esnek işaretleme dili, verileri tanımlamak için geliştirilmiş, Microsoftun gelecek 20 yıllık yatırımı olduğunu söylediği bir işaretleme dili.
HTML: (HyperText Markup Language) Geniş metin işaretleme dili, ifadedeki geniş, metinlerin geniş olmasından değil, metinlerin işaretlenmesi için kullanılan dilin geniş olmasından geliyor.
SGML: (Standart Generalized Markup Language) Standart genelleştirilmiş işaretleme dili, XML ve HTML in atası sayılan, ortaya atılması çok eskilere dayanan bir işaretleme dili.
ISO: (International Standards Organization) Uluslararası Standartlar Kurumu, özellikle bilgisayar teknolojileri konusunda, standartlar koyan kurumlardan bir tanesi. Türkçe dili için kullanılan uluslararası ISO-8859-9 karakter setini ortaya koyan kuruluş. ( http://www.iso.org/ )
XSLT: (Extensible Stylesheet Language Transformation) XML verilerinizin sunumu için geliştirilmiş bir dil. XML tabanlı olarak çalışır, ve HTML etiketleri yardımıyla verinizin sunumunu yapabilirsiniz.
CSS: (Cascading Sytle Sheets) HTML belgelerinin şekillendirilmesi esnasında, her web tasarımcısının can simidi olmuş bir standart şekillendirme dili.
DTD: (Document Type Definition) XML belgelerinizde, hangi etiketle hangi tür veri tuttuğunuzu, ve o etikete ait verilerin sınırlandırmalarını belirlediğiniz bir yan belge türü. XML belgelerinizin "iyi şekillendirilmiş" olması gibi "tam tanımlı" olması kavramı için gerekli belge türü.
Microsoft Front Page: Microsoft firmasının, Windows işletim sistemleri altında çalışan, görsel web tasarım aracı.
Ayrıştırıcı: XML belgelerinizi inceleyerek, bu verileri platforma özel veriler biçimine sokan özel program.

Not: Belgenin baş tarafında, Microsoft 'un işletim sistemleri altındaki standart metin editörü Notepad 'e esprili bir yaklaşımla Visual Notepad adıyla çağrımda bulunulmuştur. Bu Microsoft 'un Visual editörlerine dokundurma yapmak için yapılmış bir espridir. Bilgisayar dünyasında bulunan bu isimdeki bir program kastettiğim program değildir. Notepad programına, Windows un başlat mönüsü altındaki çalıştır bölümüne "notepad" yazarak erişebilirsiniz.

 

Yazdırılabilir Sayfa Yazdırılabilir Sayfa | Word'e Aktar Word'e Aktar | Tavsiye Et Tavsiye Et | Yorum Yaz Yorum Yaz

Web Tasarım

En Çok Okunan Makaleler

Seçtiklerimiz

Anket

AltınSoft Makale Arşivini beğendinizmi ?




Tüm Anketler

© 2004-2009 Tüm Hakları Saklıdır
RSS Kaynağı

AltınSoft Bilişim Teknolojileri

Altyapı: MyDesign Haber Sistemi