XML’de HTML gibi işaretleme etiketlerini kullanan dildir. HTML ve XML arasındaki temel fark XML işaretleme etiketlerinin bilginin içeriğini tanımlamak için kullanılmasıdır. XML bir meta dildir. Diğer bir deyişle diğer yeni işaretleme dillerini tanımlamak için kullanılan bir dildir. XML ile herhangi bir uygulama için bir XML belgesinin içinde bulunacak verinin içeriği ve içerdiği veri tiplerini tanımlayacak uygulamaya özel bir işaretleme dili tanımlayabilirsiniz. Meta veri (Metadata veya Metainformation) veri hakındaki bilgidir. XML etiketleri veri hakındaki meta bilgiyi tanımlamaktadır. Şekil 2’deki XML adres listesi belgesi örneğindeki etiketler adres içinde geçen veriler hakkında bilgi vermektedir. Başlagıç <contact> ve bitiş </contact> etiketleri arasındaki verilerin adres bilgisi olduğunu bildirmektedir. Bu belgenin içindeki başlagıç ve bitiş etiketlerine bakarak bir uygulama bu bilgilerin ne gibi bilgi içerdiklerini kolay bir şekilde çıkarabilir. Örneğin <city> başlangıç ve </city> arasındaki “New yok” verisinin şehir bilgisi olduğunu kolayca anlaşılabilir.
XML:
<?xml version="1.0"?>
<!DOCTYPE addressbook SYSTEM "AddressBook.dtd" [
<!ENTITY amp "&#38;">
<!ENTITY apos "'">
]>
<addressbook>
<!-- This is my good friend Frank. -->
<contact>
<name>Frank Rizzo</name>
<address>1212 W 304th Street</address>
<city>New York</city>
<state>New York</state>
<zip>10011</zip>
<phone>
<voice>212-555-1212</voice>
<fax>212-555-1213</fax>
</phone>
<email>frizzo@fruity.com</email>
<web>http://www.fruity.com/rizzo</web>
<company>Frank's Ratchet Service</company>
</contact>
<!-- This is my old college roommate Sol. -->
<contact>
<name>Sol Rosenberg</name>
<address>1162 E 412th Street</address>
<city>New York</city>
<state>New York</state>
<zip>10011</zip>
<phone>
<voice>212-555-1818</voice>
<fax>212-555-1819</fax>
</phone>
<email>srosenberg@fruity.com</email>
<web>http://www.fruity.com/rosenberg</web>
<company>Rosenberg's Shoes & Glasses</company>
</contact>
</addressbook>
etiketler içermekdedir. Belgenin web tarayıcılarında nasıl formatlanacağı konusunda herhangi bir bilgi yoktur. Belgenin formatlanması daha sonra göreceğimiz CSS veya XSL teknolojileri yapılabilir.
Şu ana kadar bu örnekte belge içinde hangi etiketler hangi yapıda kullanılabilir belirmedik. Bir belge içerisinde her hangi bir etiket ismi verip bu etiketi belge içinde kullanabilirmiyiz? Elbeteki hayır. Bir uygulamadaki XML belgesinin yapısı ve içereçeği etiketler o uygulama için geliştirilmiş olan olan özel işaretleme dili ile tanımlanır. Bu işaretleme dilinin yapısı ise XML DTD (Document Type Definition) veya XML schema olarak adlandırılan belge tanımlama dosyalarında belirtilir. Şekil 3’te yukarıdaki adres listesi örneği için tanımlanmış bir DTD dosyasını göstermektedir. Bu dosyada bu DTD’ye göre oluşturulmuş bir adres listesinde hangi etiketlerin bulunabileçeğini, bu etiketlerin hangi etiketleri içerebileceği gibi bilgiler vermektedir. İlk satır <adressbook> etiketinin bir veya daha fazla <contact> etiketi içereceğini belirmektedir. İkinci satır ise bir <contact> etiketinin içinde geçecek elemanları belirlemektedir.
XML:
<!ELEMENT addressbook (contact)+>
<!ELEMENT contact (name, address+, city, state, zip, phone, email, web, company)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT address (#PCDATA)>
<!ELEMENT city (#PCDATA)>
<!ELEMENT state (#PCDATA)>
<!ELEMENT zip (#PCDATA)>
<!ELEMENT phone (voice, fax?)>
<!ELEMENT voice (#PCDATA)>
<!ELEMENT fax (#PCDATA)>
<!ELEMENT email (#PCDATA)>
<!ELEMENT web (#PCDATA)>
<!ELEMENT company (#PCDATA)>