XML Nedir?
Genişletilebilir İşaretleme Dili (XML), metin bilgilerini hem insanlar hem de makineler tarafından okunabilir bir biçimde kodlamak için bir dizi kural tanımlayan, HTML'ye benzer bir işaretleme dilidir. Bir işaretleme dili olarak, bir belge içinde öğeler oluşturmak için kullanıcı tanımlı etiketler kullanır ; yani XML dosyaları, tipik programlama sözdizimi yerine standart sözcükler içerir. Bu nedenle kendi kendini tanımlayan bir dildir.XML'in isminin tüm bölümlerini inceleyelim ve neden Genişletilebilir İşaretleme Dili olarak adlandırıldığını görelim.
- Genişletilebilir - XML, kullanıcının kendi etiketlerini ve değerlerini tanımlamasına olanak tanıdığı için genişletilebilirdir. Ayrıca, kullanıcının karakterlerin kodlamasını ve belgenin nasıl alınıp görüntüleneceğini tanımlamasına da olanak tanır.
- İşaretleme - XML, öğeler olarak da adlandırılan etiketler kavramı üzerine kuruludur. HTML'ye çok benzer, ancak daha önce de belirttiğimiz gibi HTML'den daha genişletilebilir ve özelleştirilebilirdir. XML belgesi çok esnek bir yapıdır; kullanıcının ihtiyaçlarına göre sonsuza kadar iç içe geçirilebilir ve genişletilebilir.
- Dil - XML bir meta dildir. Kullanıcıların, RSS (RDF Site Özeti), WML (Kablosuz İşaretleme Dili) ve XSL (Genişletilebilir Stil Dili) gibi diğer dilleri üzerine inşa etmelerine olanak tanır.
XML'e neden ihtiyacımız var?
Birçok kişi, HTML gibi oldukça popüler bir işaretleme dili zaten mevcutken neden XML'e ihtiyacımız olduğunu merak ediyor. Cevap çok basit ve anlaşılır: HTML, web tarayıcıları tarafından kullanılmak üzere tasarlanmıştır, insanlar tarafından değil. HTML, önceden tanımlanmış etiketler/öğeler ve belge yapısı kullanır. Ayrıca, kullanıcı tanımlı yapılarla genişletilemez.XML ise, kullanıcının ihtiyaçlarına göre genişletilebilir ve insan tarafından okunabilir olacak şekilde özel olarak tasarlanmıştır . Aşağıdaki örneğe bakalım:Kod:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="https://www.w3.org/1999/xhtml">
<head>
<title>Interface Configuration</title>
<meta http-equiv="Content-Type"
content="text/html; charset=utf-8" />
</head>
<body>
<h1>GigabitEthernet0/0</h1>
<h2>Description: Link to Router 1</h2>
<p>IPaddress:192.168.1.1</p>
<p><b>Mask: 255.255.255.0</b></p>
<p><strong>Speed:1000</strong></p>
...
<h1>GigabitEthernet0/1</h1>
<h2>Description: Link to Router 3</h2>
<p>IPaddress:192.168.5.1</p>
<p><b>Mask: 255.255.255.0</b></p>
<p><strong>Speed:100</strong></p>
...
<h1>GigabitEthernet0/0</h1>
<h2>Description: Link to Router 4</h2>
<p>IPaddress:192.168.43.1</p>
<p><b>Mask: 255.255.255.192</b></p>
<p><strong>Speed:10</strong></p>
</body>
</html>
Yukarıdaki örneğe dikkatlice bakın. Bir insan bu belgeyi okuyabilir ve içeriğini anlayabilir, ancak kesinlikle insanlar tarafından okunabilir ve herhangi bir programlama diliyle çözümlenmesi kolay değildir. Benzer içeriğin HTML yerine XML ile belgelendiği başka bir örneğe bakalım.
Kod:
<?xml version="1.0" encoding="UTF-8"?>
<interfaces>
<interface id="1">
<name>GigabitEthernet0/0</name>
<description >Link to Router 1</description>
<address>192.168.1.1</address>
<mask>255.255.255.0</mask>
<speed>1000</speed>
</interface>
<interface id="2">
<name>GigabitEthernet0/1</name>
<description >Link to ROuter 3</description>
<address>192.168.2.1</address>
<mask>255.255.255.0</mask>
<speed>100</speed>
</interface>
<interface id="3">
<name>GigabitEthernet0/2</name>
<description >Link to Router 4</description>
<address>192.168.43.1</address>
<mask>255.255.255.192</mask>
<speed>100</speed>
</interface>
</interfaces>
Belgedeki verileri okumanın ve anlamlandırmanın ne kadar kolay olduğuna dikkat edin. Ayrıca, verileri bir programlama diliyle ayrıştırmanın daha kolay olup olmayacağını düşünün. XML ile, programlama diline yalnızca <interface></interface> parantezleri içindeki tüm verilerin bu arayüze ait olduğunu belirtmeniz yeterli olacaktır.
Aşağıdaki XML'in kendi başına hiçbir şey yapmadığını anlamak önemlidir . Bu , önceden tanımlanmış kurallar kümesini izleyen etiketlere sarılmış bilgilerden ibarettir
Kod:
<?xml version="1.0" encoding="UTF-8"?>
<interfaces>
<interface id="1">
<name>GigabitEthernet0/0/1</name>
<description >VLAN20</description>
<address>10.1.1.1</address>
<mask>255.255.255.0</mask>
<MTU>1400</MTU>
<duplex>full</duplex>
<speed>1000</speed>
</interface>
<interface id="2">
<name>GigabitEthernet0/0/2</name>
<description >VLAN20</description>
<address>192.168.1.1</address>
<mask>255.255.255.128</mask>
<MTU>1500</MTU>
<duplex>full</duplex>
<speed>1000</speed>
</interface>
<interface id="3">
<name>GigabitEthernet0/0/3</name>
<description >VLAN20</description>
<address>172.16.5.1</address>
<mask>255.255.255.192</mask>
<MTU>1514</MTU>
<duplex>full</duplex>
<speed>100</speed>
</interface>
</interfaces>
Bu XML verileri algoritmalara ve programlama dillerine aktarılabilir. Değiştirilebilir ve yerel bir dosyada saklanabilir. Ağ üzerinden gönderilebilir. Ancak kendi başına, yalnızca bir düz metin yığınıdır.
XML Açık Standarttır
XML, açık metin biçiminde saklanır. Bu, verileri depolamak, taşımak ve paylaşmak için yazılım ve donanımdan bağımsız bir yol sağlar.Açık standart olması nedeniyle XML, birçok popüler uygulama ve web tarayıcısı tarafından yaygın olarak benimsenmekte ve desteklenmektedir. Ayrıca Microsoft Office, Open Office ve Google Docs tarafından desteklenen ofis formatlarından biridir.



