XML: nədir, sənəd strukturu və iş prinsipi

Müəllif: IT Sectr Dərc olunub: 2026-03-08 Oxuma vaxtı: 8 dəq

XML (eXtensible Markup Language) istifadəçi teqlərindən istifadə edərək strukturlaşdırılmış məlumatların saxlanması və ötürülməsi üçün mətn formatıdır. Konfiqurasiya fayllarında, veb xidmətlərində və Android inkişafında geniş istifadə olunur. W3C konsorsiumunun məlumatına görə, XML spesifikasiyası 2008-ci ildən etibarən sabit standart olaraq qalır. XML sxemlər vasitəsilə validasiya imkanı ilə ciddi məlumat strukturu təmin edir.

Əsas məqamlar

  • XML — strukturlaşdırılmış məlumatlar üçün istifadəçi teqləri olan genişləndirilə bilən işarələmə dilidir
  • Ciddi struktur — məcburi bağlanan teqlər, kök element və XSD vasitəsilə validasiya
  • Ad məkanları — bir sənəddə ad konfliktlərinin qarşısını almaq üçün mexanizm
  • XSLT — XML-in digər formatlara çevrilməsi: HTML, PDF, CSV
  • Android inkişafı — XML layoutlar, manifest və resurslar üçün istifadə olunur

XML nədir?

XML sənədləri həm insan, həm də maşın tərəfindən oxuna bilən formatda kodlaşdırmaq üçün qaydalar dəstini müəyyən edən işarələmə dilidir. HTML-dən fərqli olaraq, XML-in sabit teq dəsti yoxdur — tərtibatçı məlumat strukturuna uyğun öz teqlərini yaradır.

XML 1996-cı ildə W3C konsorsiumu tərəfindən SGML-in (Standard Generalized Markup Language) sadələşdirilmiş alt dəsti olaraq hazırlanmışdır. XML-in əsas məqsədi məzmunun və məlumat təqdimatının ayrılmasıdır. Görünüşü təsvir edən HTML-dən fərqli olaraq, XML məlumatların strukturunu və mənasını təsvir edir.

XML-in əsas xüsusiyyəti genişləndirilə bilməsidir. Layihədə yeni məlumat növləri yaranarsa, tərtibatçı mövcud strukturu dəyişmədən sadəcə yeni teqlər əlavə edir. Bu, XML-i məlumatların uzunmüddətli saxlanması və müxtəlif sistemlər arasında mübadiləsi üçün əlverişli edir.

XML-in əsas tətbiq sahələri

  • Android inkişafı — layout faylları, manifest, resurslar (strings, colors, themes)
  • Konfiqurasiya — Maven POM, Ant build, veb konfiqlər (web.xml)
  • Veb xidmətlər — SOAP, XML-RPC, RSS/Atom lentləri
  • Sənəd dövriyyəsi — SVG, DocBook, Office Open XML
  • Məlumat bazaları — SQL Server (XML type), Oracle, PostgreSQL

XML sintaksisi və strukturu

XML sintaksisi HTML-dən daha ciddidir. Hər bir açılan teq müvafiq bağlanan teqa malik olmalıdır, atributlar dırnaq işarələri içərisindədir, teq adları böyük-kiçik hərfə həssasdır. Sənədin qalan bütün elementləri ehtiva edən tam bir kök elementi olmalıdır.

XML sənədi XML versiyasını və kodlaşdırmanı göstərən bəyannamə ilə başlaya bilər. Sonra kök element gəlir, onun içərisində iç-içə elementlər, atributlar, mətn məzmunu və şərhlər ola bilər. Boş elementlər kimi yazılır.

xml
<?xml version="1.0" encoding="UTF-8"?>
<catalog>
    <book id="bk001">
        <title>XML Developer Guide</title>
        <author>John Smith</author>
        <price currency="USD">29.99</price>
        <published>2026-03-15</published>
    </book>
    <book id="bk002">
        <title>Advanced XML Schemas</title>
        <author>Jane Doe</author>
        <price currency="USD">49.99</price>
        </book>
</catalog>

Yaxşı formalaşdırılmış XML qaydaları

Well-formed XML əsas qaydalara riayət etməlidir: hər bir açılan teq üçün bağlanan teq məcburidir, iç-içə yerləşdirmə ciddidir (teqlərin kəsişməsi qadağandır), atribut dəyərləri həmişə dırnaq içərisindədir. Hər hansı bir qaydanın pozulması sənədi yanlış edir və parsirinqə məruz qalmır.

  1. Bir kök element — sənədin tam bir kökü var
  2. Düzgün iç-içə yerləşdirmə — teqlər kəsişməməlidir
  3. Bağlanan teqlər — öz-özünə bağlananlar istisna olmaqla bütün elementlər üçün məcburidir
  4. Böyük-kiçik hərf həssaslığı — <Book> və <book> fərqli elementlərdir
  5. Atributlarda dırnaq işarələri — atribut dəyərləri qoşa və ya tək dırnaq içərisində

XML ad məkanları və sxemləri

XML ad məkanları (XML Namespaces) eyni sənəddə müxtəlif lüğətlərdən elementlər istifadə edildikdə ad konfliktləri problemini həll edir. Ad məkanı lüğəti unikal şəkildə müəyyən edən URI ilə xmlns atributu ilə təyin edilir.

XML Schema (XSD) XML sənədinin strukturunu təsvir etmək üçün bir dildir. XSD hansı elementlərin və atributların icazəli olduğunu, onların məlumat növlərini, məcburiliyini və məhdudiyyətlərini müəyyən edir. Sxemlər emaldan əvvəl sənədi avtomatik olaraq yoxlamağa imkan verir ki, bu da inteqrasiya həlləri üçün kritik əhəmiyyət daşıyır.

Texnologiya Təyinat Nümunə
DTD Əsas struktur validasiyası Köhnə, az imkanlı
XSD Ciddi tipləşdirmə və validasiya Sənaye standartı
RELAX NG XSD üçün kompakt alternativ XSD-dən daha sadə və oxunaqlı
XSLT XML-in digər formatlara çevrilməsi XML-dən HTML, PDF, CSV
XPath Düyünlərdə naviqasiya və seçim XML ağacına sorğular

XML mobil inkişafda

XML Android inkişafında əsas rol oynayır. Android əməliyyat sistemi XML-dən istifadəçi interfeysini təsvir etmək (layout faylları), tətbiq konfiqurasiyası (AndroidManifest.xml), resurslar (sətirlər, rənglər, mövzular) və vektor qrafikası (VectorDrawable) üçün istifadə edir. iOS-da XML daha az, əsasən Storyboard və plist konfiqurasiya faylları üçün istifadə olunur.

Android-də tətbiqin hər ekranı View komponentlərinin iyerarxiyası olan XML faylı ilə təsvir olunur: ConstraintLayout, LinearLayout, TextView, Button. Bu yanaşma tətbiq məntiqini və təqdimatı ayırır, texniki xidməti və müxtəlif ekranlara uyğunlaşmanı asanlaşdırır. Resurs XML faylları kodu dəyişmədən tətbiqi lokallaşdırmağa imkan verir.

Android layout nümunəsi

Tipik bir layout faylı, hər biri yerləşmə, ölçü və stil atributlarına malik olan iç-içə elementləri olan əsas ConstraintLayout ehtiva edir. Android işə salma zamanı performansı optimallaşdırmaq üçün XML-i AXML ikili formatına kompilə edir.

xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:id="@+id/title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/welcome"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintStart_toStartOf="parent" />

    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/click"
        app:layout_constraintTop_toBottomOf="@id/title"
        app:layout_constraintStart_toStartOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>

Mobil platformalarda XML parsirinqi

XML parsirinqi mobil platformalarda iki əsas yanaşma ilə həyata keçirilir: DOM (Document Object Model) bütün sənədi ağac kimi yaddaşa yükləyir, SAX (Simple API for XML) sənədi axın rejimində oxuyur, hadisə idarəedicilərini çağırır. DOM kiçik sənədlər üçün əlverişlidir, SAX — yaddaş məhdudiyyətləri olan böyük fayllar üçün.

Android-də daxili parserlər mövcuddur: axın təhlili üçün XmlPullParser və DOM yanaşması üçün DocumentBuilder. iOS-da Foundation XMLParser deleqat protokolu ilə istifadə olunur. Obyektləri XML-ə serializasiya etmək üçün tez-tez PHP-də SimpleXML və ya Java-da Jackson XML kimi kitabxanalar istifadə olunur.

Android-də XML parsirinqi (Kotlin)

Android-də səmərəli XML təhlili üçün XmlPullParser istifadə etmək tövsiyə olunur. Parser hadisə rejimində işləyir: növbəti elementə keçmək üçün next() çağırır və hadisə növünü (START_TAG, TEXT, END_TAG) qaytarır. Bu, minimal yaddaş istehlakı ilə istənilən ölçülü sənədləri emal etməyə imkan verir.

kotlin
import org.xmlpull.v1.XmlPullParser
import org.xmlpull.v1.XmlPullParserException
import java.io.IOException

fun parseCatalog(parser: XmlPullParser): List<Book> {
    val books = mutableListOf<Book>()
    var eventType = parser.getEventType()
    var currentBook: Book? = null

    while (eventType != XmlPullParser.END_DOCUMENT) {
        when (eventType) {
            XmlPullParser.START_TAG -> {
                when (parser.getName()) {
                    "book" -> currentBook = Book()
                    "title" -> parser.next()
                    "author" -> parser.next()
                }
            }
            XmlPullParser.TEXT -> {
                currentBook?.apply {
                    title = parser.getText() ?: ""
                }
            }
            XmlPullParser.END_TAG -> {
                if (parser.getName() == "book") {
                    currentBook?.let { books.add(it) }
                }
            }
        }
        eventType = parser.next()
    }
    return books
}

Tətbiqlərdə XML nümunələri

İstifadə nümunələri XML-in real layihələrdə rolunu göstərir. Android inkişafından əlavə, XML kompilasiya konfiqurasiyası, məlumat təsviri və sənəd dövriyyəsi üçün istifadə olunur. XML sintaksisini bilmək Maven, SOAP xidmətləri və bir çox enterprise alətləri ilə işləmək üçün vacibdir.

Maven konfiqurasiyası (POM)

pom.xml faylı Maven layihəsini təsvir edir: asılılıqlar, plaginlər, versiyalar və kompilasiya profilləri. Hər bir asılılıq groupId, artifactId və version teqləri ilə təyin edilir. Maven göstərilən kitabxanaları depozitoriyalardan avtomatik yükləyir.

xml
<?xml version="1.0" encoding="UTF-8"?>
<project
    xmlns="http://maven.apache.org/POM/4.0.0"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
    http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.example</groupId>
    <artifactId>my-app</artifactId>
    <version>1.0.0</version>
    <dependencies>
        <dependency>
            <groupId>com.squareup.retrofit2</groupId>
            <artifactId>retrofit</artifactId>
            <version>2.9.0</version>
        </dependency>
    </dependencies>
</project>

XML vs JSON: nə vaxt nəyi seçməli

XML və JSON arasında seçim layihənin konkret tələblərindən asılıdır. JSON yığcamlıq və sürətin vacib olduğu REST API, mobil tətbiqlər və konfiqurasiyalar üçün uyğundur. XML ciddi validasiya, ad məkanları və məlumat transformasiyası tələb olunan Enterprise sistemlərində, sənəd dövriyyəsində və Android inkişafında əvəzolunmazdır.

XML sənədlərin uzunmüddətli saxlanması ssenarilərində üstündür. XSD sxemləri sayəsində XML sənədləri avtomatik olaraq yoxlamaq mümkündür, bu da tibbi, maliyyə və hüquqi sistemlər üçün kritikdir. XSLT çevrilmələri bir XML mənbəyindən HTML, PDF və digər formatlar yaratmağa imkan verir ki, bu da sənəd dövriyyəsini asanlaşdırır.

JSON isə veb API və mobil tətbiqlər üçün standart halına gəldi. JavaScript ilə inteqrasiyanın sadəliyi, daha kiçik ölçü və yüksək parsirinq sürəti JSON-u REST API, WebSocket mesajları və konfiqurasiya faylları üçün üstünlük təşkil edən seçim edir. Əksər yeni layihələr üçün JSON ilə başlamaq və yalnız xüsusi tələblər yarandıqda XML-ə keçmək tövsiyə olunur.

Tez-tez verilən suallar

XML HTML-dən nə ilə fərqlənir?

XML məlumatların strukturunu və məzmununu təsvir edir, HTML — görünüşü və təqdimatı. XML istənilən teqlər yaratmağa imkan verir, HTML sabit dəstə malikdir. XML sintaksisdə daha ciddidir: bütün teqlər bağlanmalıdır, HTML bağlanmamış teqlərə icazə verir. XML — məlumatlar üçün, HTML — göstərmək üçün.

XSD nədir və nə üçün lazımdır?

XSD (XML Schema Definition) XML sənədinin strukturunu təsvir etmək üçün bir dildir. XSD hansı elementlərin və atributların icazəli olduğunu, onların məlumat növlərini, məcburiliyini və məhdudiyyətlərini müəyyən edir. Sxem səhvlərin qarşısını alaraq və məlumat bütövlüyünü təmin edərək XML sənədini emaldan əvvəl avtomatik yoxlamağa imkan verir.

Android-də XML necə parsirlənir?

Android-də XML parsirinqi üçün daxili axın parseri olan XmlPullParser istifadə edin. O, hadisə rejimində işləyir: START_TAG, TEXT və END_TAG-ı dövrədə emal edir, yaddaşı səmərəli idarə edir. Kiçik sənədlər üçün bütün sənədi düyün ağacı kimi yaddaşa yükləyən DocumentBuilderFactory vasitəsilə DOM parser uyğundur.

DTD və XSD arasında fərq nədir?

DTD (Document Type Definition) məhdud imkanları olan köhnə validasiya mexanizmidir: məlumat növlərini (hər şey sətirdir) və ad məkanlarını dəstəkləmir. XSD məlumat növləri (rəqəmlər, tarixlər, sadalamalar), ad məkanları və genişləndirilə bilmə dəstəyi ilə müasir əvəzedicidir. XSD özü XML sənədidir, DTD öz sintaksisindən istifadə edir.

XML-də ad məkanları nə üçün lazımdır?

Ad məkanları XML sənədi müxtəlif mənbələrdən elementləri birləşdirdikdə ad konfliktlərinin qarşısını alır. Məsələn, Android layout-da View teqi həm android.view-dən, həm də kitabxanadan ola bilər. URI ilə xmlns atributu hər bir elementin və atributun mənbəyini unikal şəkildə müəyyən edir.

Xülasə

  • XML — strukturlaşdırılmış məlumatlar üçün istifadəçi teqləri olan genişləndirilə bilən işarələmə dilidir
  • Ciddi sintaksis — məcburi bağlanan teqlər, kök element, böyük-kiçik hərf həssaslığı
  • Ad məkanları və XSD sxemləri validasiyanı təmin edir və ad konfliktlərinin qarşısını alır
  • Android XML-dən interfeyslər, resurslar və tətbiq konfiqurasiyası üçün istifadə edir
  • Parsirinq XmlPullParser (axın) və ya DOM (yaddaşa) vasitəsilə həyata keçirilir
  • XSLT XML-i HTML, PDF və digər formatlara çevirməyə imkan verir
  • Daha az populyarlıq REST API-də JSON-a uduzur, lakin XML Enterprise və Android-də əvəzolunmazdır

Açar təslim mobil tətbiq hazırlayacağıq

IT Sectr 2017-ci ildən startaplar və bizneslər üçün iOS və Android tətbiqləri yaradır. Sizə məsləhət verəcəyik və ən yaxşı həlli təklif edəcəyik.

Layihəni müzakirə et

Həm də oxuyun