Öne Çıkan Yayın

Uzak Masaüstü Bağlantısı ve Modem Port Ayarı

İyi günler bu konumuzda uzak masaüstü bağlantısı ve modem port ayarını anlatacağım. Normalde uzak masaüstü bağlantısı ayarını açtığımızda ye...

2 Temmuz 2013 Salı

XML NEDİR ?

XML (Extensible Markup Language) HTML ile pek çok açıdan benzerlik gösteren bir markup dilidir. Verinin tanımlanması ve tarif edilmesi için kullanılır. HTML'deki yapının aksine XML'de kullanılacak olan tag'ler önceden tanımlı değildir. Yani bir XML dokümanının yapısı tamamı ile kullanıcı tarafından oluşturulur. Verinin tarif edilmesi için DTD adı verilen yapılar kullanılmaktadır. XML ve DTD'nin birlikte kullanılması ile dokümanlar kendini tarif eden bir yapı halini alırlar.

XML ve HTML arasındaki en belirgin fark XML'in verinin kendisiyle ilgilenmesi HTML'in ise verinin sunumuyla ilgilenmesidir. Buna bağlı olarak HTML dokümanları veriye ilişkin şekillendirme bilgilerini içerirken XML dokümanları ise verinin tanım bilgilerini içermektedir. XML'in tasarım amaçlarından biri de verinin taşınmasıdır. Bahsedilen bu özellikleri incelendiğinde XML'in pek çok önemli işlevi yerine getirdiği görülmektedir.

Şimdi çok basit bir XML dokümanını birlikte inceleyelim:

<not>
<kime>esra</kime>
<kimden>demir</kimden>
<heading>acıklama</heading>
<body>ders saatleri!</body>
</not>

HTML dokümanlarına çok benzeyen bu yapıda ilk etapta göze çarpan nokta tag yapılarının bizim tarafımızdan tasarlanmış oluşudur. HTML'de kullanılan <p> ve <h1> gibi standart tag yapıları yukarıdaki XML dokümanında kullanılmamıştır. Bahsedilen bu özelliği nedeniyle XML dokümanları genişletilebilir(extensible) bir yapıya sahiptir. Dokümanın bu hali gerçek anlamda herhangi bir şey ifade etmez. Dokümanın iletimi(gönderim veya alım) ya da sunumu için başka şeylerin de yapılması gerekmektedir.

Burada önemli bir nokta olarak XML'i HTML'in yerine geçecek bir dil olarak düşünmek yerine HTML'in tamamlayıcısı olacak olan bir dil şeklinde düşünmek uygundur.

Günümüz bilişim dünyasına bakacak olduğumuzda XML'in her alanda karşımıza çıktığını görmekteyiz. Bu nedenle XML'I bir anlamda geleceğin web dili olarak tanımlamak mümkündür.

XML Nasıl Kullanılabilir?
XML hakkında bilinmesi gereken en önemli nokta bu dilin veriyi taşımak amacıyla tasarlanmış oluşudur. XML ile veriler yapı bakımından modülerlik kazanmaktadır. Bahsettiğimiz gibi XML dokümanları verinin içeriğiyle ilgilenmektedirler. Bu sayede verilerin içerik,yapı ve sunum kısımları ayrı modüller halinde farklı XML dokümanlarında tutulmaktadır.

XML dokümanları Veri Adaları(Data Islands) adı verilen teknik sayesinde HTML sayfaları içerisinde de depolanabilmektedir. Bu teknik sayesinde verinizin sadece sunumuyla ilgilenilmektedir.
XML ile verinin alışveriş işlemi gerçekleştirilir. XML,yapısının esnekliği sayesinde birbirine uyumlu olmayan sistemler arasında veri alış verişini rahatlıkla gerçekleştirmektedir. Günümüz bilişim dünyasında bilgisayar sistemleri ve veritabanlarının genellikle birbirine uyumsuz sistemler içerebildiklerini görmekteyiz. Bundan dolayı uygulama geliştiriciler Internet üzerinden bu tip uyumsuz verilerin alış veriş işlemini gerçekleştirmek zorundadırlar.

Verinin XML formatına çevrilmesi ile farklı sistemler ve uygulamalardaki verilerin karmaşıklık derecesi indirgenerek alış veriş işleminin kolaylaştırılması sağlanır.
XML ile finansal bilgilerin Internet üzerinden alış verişi sağlanmaktadır. Günümüzde artık hepimizin sıklıkla duyduğu elektronik iş kavramı açısından incelenecek olduğunda XML'in önemli fonksiyonları yerine getirdiği görülmektedir. Bahsedilen bu fonksiyonları ile XML geleceğin Elektronik İş dili olarak da yeni bir misyonu üstlenmektedir. XML ile verinin paylaşımı kolaylaştırılır. XML,veriyi düz metin (plain text) formatında saklamasından dolayı veriyi paylaştırma konusunda da hem yazılım hem de donanımdan bağımsız hareket edebilme imkanını sunmuştur.

Bu sayede farklı uygulamalarda hareket eden farklı veri tipleriyle çalışmak daha da kolaylaşır. Ayrıca işletim sistemlerinin yükseltgenmesi,sunucu,uygulama vb. dışsal faktörlerin yenilenmesi gibi dışsal faktörlerden de asgari ölçüde etkilenilmiş olunur.

XML ile verinin depolanması sağlanır.
XML, verinin dosyalarda veya veritabanlarında saklanması için de kullanılabilir.
XML,yazılım,donanım ve uygulamalardan bağımsız olduğu için verinin daha elverişli olarak kullanımını sağlamaktadır. Yani başka istemci(client) veya uygulamalar tıpkı veri kaynaklarına erişiyormuş gibi XML dosyalarına rahatlıkla erişebilirler.
XML,esnek yapısı nedeniyle başka dillerin de oluşturulabilmesine olanak tanır. Wireless Markup Language(WML) mobil cihazları için kullanılan WAP ortamlarının dilidir ve XML'in türevidir

XML Sözdizimi(XML Syntax)
XML Syntax basit bir kaç kuraldan ibarettir. Bundan dolayı kullanımı ve öğrenimi oldukça kolaydır.
Bir XML döküman örneğini inceleyelim:
<?xml version="1.0"?>
<not>
<kime>Mehmet</kime>
<kimden>Erdem</kimden>
<heading>Hatırlatma</heading>
<body>Kitapları Unutma!</body>
</not>

XML dokümanları kendini tarif eden bir syntax'a sahiptir.
Dokümanın ilk satırı XML deklerasyonu(XML declaration) olarak isimlendirilir. Bu kısımda XML dokümanının versiyon bilgisi tanımlanır. Yukarıdaki örnekte XML dokümanımızın versiyonu 1.0 olarak belirtilmiştir.
Bir sonraki satırda dokümanın "root element" adı verilen kök elementi belirtilmiştir. Örneğimizde root element "not" tur.
<not>

Daha sonraki satırda 4 adet child element belirtilmiştir.(kimden,kime,heading ve body):
<kime>Mehmet</kime>
<kimden>Erdem</kimden>
<heading>Hatırlatma</heading>
<body>Kitapları Unutma!</body>

Son olarak root elementin bitişini gösteren tag bulunmaktadır:
</not>

Tüm XML elementleri bir kapanış tag'ine sahip olmalıdır. HTML'de ise bazı elementler bitiş tag'lerine sahip olmayabilir. Örneğin aşağıdaki kod parçası HTML için geçerli bir kod olmasına rağmen XML için geçerli değildir:

<p>Bu bir paragraftır
<p>Bu başka bir paragraftır

Yukarıdaki kod parçasını XML formatına uyarlayacak olduğumuzda

<p>Bu bir paragragftır</p>
<p>Bu başka bir paragraftır</p>
şeklinde bir düzenleme yapmamız gerekecektir.
XML tag'ler için case-sensitive özellik gösterirler. HTML'de ise case-sensitive özellik yoktur.

<mektup>Bu syntax yanlıştır</MEKTUP>
<mektup>Doğru bir syntax örneği</mektup>

XML dokümanları içerisinde tüm elementler hiyerarşiye uymalıdırlar.HTML dokümanlarında bazı elementler düzgün bir iç içe olma yapısında olmayabilirler. Aşağıdaki örneği inceleyelim:
<b><i>Burada kullanılacak olan dokümanın formatı bold  ve italic olacaktır</b></i>
XML syntax kurallarına göre yukarıdaki örneği düzenleyecek olursak:
<b><i>Burada kullanılacak olan dokümanın formatı bold  ve italic olacaktır</i></b>

Görüleceği üzere elementler belirli bir düzen çerçevesinde iç içe geçmiş durumdadırlar.
XML syntax'ında tüm XML dokümanlarının bir root elementi olması gerekmektedir. XML dokümanları içerisinde ilk tag "root tag" olarak isimlendirilir:
Bahsedilen bu root elementin altındaki tüm elementler "child element" olarak adlandırılır. Bu child elementler ise daha önceden belirtilmiş olan synax'a uymak zorundadır.Yani elementlerin iç içe geçme durumları belirli bir hiyerarşiye göre olmaktadır.

<root>
     <child>
   <subchild>….</subchild>
     </child>
…………
</root>

Attribute değerleri daima tırnak içine alınmalıdır.
XML elementleri attribute'lara sahip olabilirler ve bu attribute'lar ise tıpkı HTML'de olduğu gibi isim/değer(name/value) çiftlerini içerebilirler. Attibute değerlerinin nasıl kullanıldığını bir örnekle açıklayalım:

<?xml version="1.0"?>
<not date="12/10/99">
<kime>esra</kime>
<kimden>demir</kimden>
<heading>uyarı</heading>
<body>sınav tarihi</body>
</not>

Dikkat edilecek olursa "not" elementinin sahip olduğu "date" attribute değeri tırnak işareti içerisinde belirtilmiştir.

HTML'de white space adı verilen boşluk karakteri göz önüne alınmaz. Oysa XML dokümanlarında white space karakterler de değerlendirmeye alınır. Yani bir HTML sayfasında "Merhaba,benim adım esra" cümleciği sunum sırasında "Merhaba,benim adım esra" şeklinde görüntülenir.