XML: ano ito, istraktura ng dokumento at prinsipyo ng paggana

May-akda: IT Sectr Nai-publish: 2026-03-08 Oras ng pagbabasa: 8 min

Ang XML (eXtensible Markup Language) ay isang text format para sa pag-iimbak at pagpapadala ng nakaayos na data gamit ang mga custom na tag. Ito ay malawakang ginagamit sa mga configuration file, web services, at Android development. Ayon sa W3C consortium, ang XML specification ay nananatiling isang matatag na pamantayan mula noong 2008. XML ay nagbibigay ng mahigpit na istraktura ng data na may posibilidad ng pag-validate sa pamamagitan ng mga schema.

Mga Pangunahing Punto

  • XML — isang napapalawak na markup language na may mga custom na tag para sa nakaayos na data
  • Mahigpit na istraktura — sapilitang pagsasara ng mga tag, root element, at pag-validate sa pamamagitan ng XSD
  • Mga namespace — mekanismo para maiwasan ang mga salungatan sa pangalan sa isang dokumento
  • XSLT — pagbabago ng XML sa iba pang mga format: HTML, PDF, CSV
  • Android development — ginagamit ang XML para sa mga layout, manifest, at resources

Ano ang XML?

XML ay isang markup language na tumutukoy sa isang set ng mga panuntunan para sa pag-encode ng mga dokumento sa isang format na nababasa ng tao at makina. Hindi tulad ng HTML, ang XML ay walang nakapirming set ng mga tag — ang developer ay lumilikha ng sarili niyang mga tag na naaayon sa istraktura ng data.

Ang XML ay binuo ng W3C consortium noong 1996 bilang isang pinasimpleng subset ng SGML (Standard Generalized Markup Language). Ang pangunahing layunin ng XML ay paghiwalayin ang nilalaman at presentasyon ng data. Hindi tulad ng HTML na naglalarawan ng hitsura, ang XML ay naglalarawan ng istraktura at kahulugan ng data.

Ang pangunahing katangian ng XML ay ang pagpapalawak nito. Kung may lumitaw na mga bagong uri ng data sa proyekto, ang developer ay nagdaragdag lamang ng mga bagong tag nang hindi binabago ang umiiral na istraktura. Ginagawa nitong maginhawa ang XML para sa pangmatagalang pag-iimbak ng data at pagpapalitan sa pagitan ng iba’t ibang sistema.

Mga Pangunahing Lugar ng Paggamit ng XML

  • Android development — mga layout file, manifest, resources (strings, colors, themes)
  • Configuration — Maven POM, Ant build, mga web config (web.xml)
  • Mga Web Service — SOAP, XML-RPC, RSS/Atom feeds
  • Daloy ng Dokumento — SVG, DocBook, Office Open XML
  • Mga Database — SQL Server (XML type), Oracle, PostgreSQL

Syntax at Istraktura ng XML

Ang syntax ng XML ay mas mahigpit kaysa sa HTML. Ang bawat pambungad na tag ay dapat may katumbas na pansarang tag, ang mga attribute ay nasa loob ng mga panipi, ang mga pangalan ng tag ay sensitibo sa malaki at maliit na titik. Ang dokumento ay dapat may eksaktong isang root element na naglalaman ng lahat ng iba pang elemento.

Ang XML na dokumento ay maaaring magsimula sa isang deklarasyon na nagpapahiwatig ng bersyon ng XML at encoding. Pagkatapos ay sumusunod ang root element, sa loob nito ay maaaring may mga nested na elemento, attribute, text content, at komento. Ang mga walang laman na elemento ay isinusulat bilang .

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>

Mga Panuntunan ng Well-formed XML

Well-formed XML ay dapat sumunod sa mga pangunahing panuntunan: ang mga pansarang tag ay sapilitan para sa bawat pambungad na tag, ang pag-nest ay mahigpit (ipinagbabawal ang pagtawid ng mga tag), ang mga halaga ng attribute ay palaging nasa panipi. Ang paglabag sa anumang panuntunan ay nagpapawalang-bisa sa dokumento at hindi ito maaaring i-parse.

  1. Isang root element — ang dokumento ay may eksaktong isang root
  2. Tamang pag-nest — ang mga tag ay hindi dapat mag-cross
  3. Pansarang tag — sapilitan para sa lahat ng elemento maliban sa self-closing
  4. Sensitibo sa malaki/maliit na titik — <Book> at <book> ay magkaibang elemento
  5. Mga panipi sa attribute — mga halaga ng attribute sa doble o solong panipi

Mga Namespace at Schema ng XML

Ang XML namespaces ay lumulutas sa problema ng mga salungatan sa pangalan kapag sa isang dokumento ay ginagamit ang mga elemento mula sa iba’t ibang diksyunaryo. Ang namespace ay tinutukoy ng xmlns attribute na may URI na natatanging tumutukoy sa diksyunaryo.

XML Schema (XSD) ay isang wika para sa paglalarawan ng istraktura ng isang XML na dokumento. Tinutukoy ng XSD kung aling mga elemento at attribute ang pinapayagan, ang kanilang mga uri ng data, obligasyon, at mga limitasyon. Ang mga schema ay nagbibigay-daan sa awtomatikong pag-validate ng dokumento bago ang pagproseso, na kritikal para sa mga solusyon sa pagsasama.

Teknolohiya Layunin Halimbawa
DTD Pangunahing pag-validate ng istraktura Luma, mas kaunting kakayahan
XSD Mahigpit na pag-type at pag-validate Pamantayan sa industriya
RELAX NG Kompaktong alternatibo sa XSD Mas simple at mas nababasa kaysa XSD
XSLT Pagbabago ng XML sa iba pang mga format XML sa HTML, PDF, CSV
XPath Pag-navigate at pagpili ng mga node Mga query sa XML tree

XML sa Mobile Development

XML ay may mahalagang papel sa Android development. Ginagamit ng Android operating system ang XML para sa paglalarawan ng user interface (mga layout file), configuration ng application (AndroidManifest.xml), resources (mga string, kulay, tema) at vector graphics (VectorDrawable). Sa iOS, ang XML ay ginagamit nang mas madalas, pangunahin para sa Storyboard at mga plist configuration file.

Sa Android, ang bawat screen ng application ay inilalarawan ng isang XML file na may hierarchy ng mga View component: ConstraintLayout, LinearLayout, TextView, Button. Ang pamamaraang ito ay naghihiwalay ng lohika ng application mula sa presentasyon, pinapasimple ang pagpapanatili at pag-aangkop sa iba’t ibang screen. Ang mga XML resource file ay nagbibigay-daan sa lokalisasyon ng application nang hindi binabago ang code.

Halimbawa ng Android Layout

Ang tipikal na layout file ay naglalaman ng root ConstraintLayout na may nested na mga elemento, bawat isa ay may mga attribute ng posisyon, laki, at estilo. Ini-compile ng Android ang XML sa binary AXML format para sa pag-optimize ng performance sa pagsisimula.

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>

Pag-parse ng XML sa Mga Mobile Platform

Ang pag-parse ng XML sa mga mobile platform ay ginagawa gamit ang dalawang pangunahing paraan: DOM (Document Object Model) ay naglo-load ng buong dokumento sa memorya bilang isang puno, SAX (Simple API for XML) ay nagbabasa ng dokumento nang streaming, na tumatawag sa mga event handler. Ang DOM ay maginhawa para sa maliliit na dokumento, ang SAX — para sa malalaking file na may limitasyon sa memorya.

Sa Android ay may mga built-in na parser: XmlPullParser para sa streaming analysis at DocumentBuilder para sa DOM approach. Sa iOS ay ginagamit ang Foundation XMLParser na may delegate protocol. Para sa serialization ng mga object sa XML ay madalas na ginagamit ang mga library tulad ng SimpleXML sa PHP o Jackson XML sa Java.

Pag-parse ng XML sa Android (Kotlin)

Sa Android ay inirerekomenda ang paggamit ng XmlPullParser para sa mahusay na pag-parse ng XML. Ang parser ay gumagana sa event mode: tumatawag ng next() upang lumipat sa susunod na elemento at nagbabalik ng uri ng event (START_TAG, TEXT, END_TAG). Ito ay nagpapahintulot sa pagproseso ng mga dokumento ng anumang laki na may minimal na pagkonsumo ng memorya.

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
}

Mga Halimbawa ng XML sa Mga Application

Mga halimbawa ng paggamit ng XML ay nagpapakita ng papel nito sa mga tunay na proyekto. Bukod sa Android development, ang XML ay ginagamit para sa configuration ng compilation, paglalarawan ng data, at daloy ng dokumento. Ang kaalaman sa syntax ng XML ay kinakailangan para sa pagtatrabaho sa Maven, SOAP services, at maraming enterprise tools.

Configuration ng Maven (POM)

Ang file na pom.xml ay naglalarawan ng Maven project: dependencies, plugin, version, at compilation profile. Ang bawat dependency ay tinutukoy ng mga tag na groupId, artifactId, at version. Awtomatikong nilo-load ng Maven ang mga tinukoy na library mula sa mga repository.

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: Kailan Pumili ng Alin

Ang pagpili sa pagitan ng XML at JSON ay depende sa mga partikular na pangangailangan ng proyekto. Ang JSON ay angkop para sa REST API, mobile application, at configuration kung saan mahalaga ang pagkakasiksik at bilis. Ang XML ay hindi mapapalitan sa Enterprise system, daloy ng dokumento, at Android development kung saan kailangan ang mahigpit na pag-validate, namespace, at pagbabago ng data.

Ang XML ay nananalo sa mga senaryo ng pangmatagalang pag-iimbak ng dokumento. Salamat sa XSD schema, ang mga XML dokumento ay maaaring i-validate nang awtomatiko, na kritikal para sa medikal, pinansyal, at legal na sistema. Ang XSLT transformations ay nagbibigay-daan sa pagbuo ng HTML, PDF, at iba pang format mula sa isang XML source, na pinapasimple ang daloy ng dokumento.

Ang JSON naman ay naging pamantayan para sa web API at mobile application. Ang pagiging simple ng pagsasama sa JavaScript, mas maliit na sukat, at mataas na bilis ng pag-parse ay ginagawang mas pinipiling pagpipilian ang JSON para sa REST API, WebSocket messages, at configuration file. Para sa karamihan ng mga bagong proyekto, inirerekomenda na magsimula sa JSON at lumipat sa XML lamang kung may mga partikular na pangangailangan.

Mga Madalas Itanong

Ano ang pagkakaiba ng XML sa HTML?

XML ay naglalarawan ng istraktura at nilalaman ng data, HTML — hitsura at presentasyon. Ang XML ay nagpapahintulot sa paglikha ng anumang tag, ang HTML ay may nakapirming set. Ang XML ay mas mahigpit sa syntax: lahat ng tag ay dapat sarado, ang HTML ay nagpapahintulot ng hindi saradong tag. XML — para sa data, HTML — para sa pagpapakita.

Ano ang XSD at para saan ito?

XSD (XML Schema Definition) ay isang wika para sa paglalarawan ng istraktura ng isang XML dokumento. Tinutukoy ng XSD kung aling mga elemento at attribute ang pinapayagan, ang kanilang mga uri ng data, obligasyon, at mga limitasyon. Ang schema ay nagbibigay-daan sa awtomatikong pag-validate ng XML dokumento bago ang pagproseso, na pumipigil sa mga error at ginagarantiyahan ang integridad ng data.

Paano mag-parse ng XML sa Android?

Sa Android para sa pag-parse ng XML gamitin ang XmlPullParser — isang built-in na streaming parser. Ito ay gumagana sa event mode: pinoproseso ang START_TAG, TEXT, at END_TAG sa isang loop, mahusay na pinamamahalaan ang memorya. Para sa maliliit na dokumento, ang DOM parser sa pamamagitan ng DocumentBuilderFactory na naglo-load ng buong dokumento sa memorya bilang isang node tree ay angkop.

Ano ang pagkakaiba sa pagitan ng DTD at XSD?

DTD (Document Type Definition) ay isang lumang mekanismo ng pag-validate na may limitadong kakayahan: hindi nito sinusuportahan ang mga uri ng data (lahat ay string) at namespace. XSD ay isang modernong kapalit na may suporta para sa mga uri ng data (mga numero, petsa, enumerasyon), namespace, at pagpapalawak. Ang XSD mismo ay isang XML dokumento, ang DTD ay gumagamit ng sarili nitong syntax.

Bakit kailangan ang mga namespace sa XML?

Ang mga namespace ay pumipigil sa mga salungatan sa pangalan kapag ang isang XML dokumento ay pinagsasama ang mga elemento mula sa iba’t ibang source. Halimbawa, sa Android layout, ang tag na View ay maaaring magmula sa android.view o sa isang library. Ang xmlns attribute na may URI ay natatanging tumutukoy sa source ng bawat elemento at attribute.

Buod

  • XML — napapalawak na markup language na may custom na tag para sa nakaayos na data
  • Mahigpit na syntax — sapilitang pansarang tag, root element, sensitibo sa malaki/maliit na titik
  • Mga namespace at XSD schema ay nagsisiguro ng pag-validate at pumipigil sa mga salungatan sa pangalan
  • Android ay gumagamit ng XML para sa mga interface, resources, at configuration ng application
  • Pag-parse ay ginagawa sa pamamagitan ng XmlPullParser (streaming) o DOM (sa memorya)
  • XSLT ay nagbibigay-daan sa pagbabago ng XML sa HTML, PDF, at iba pang format
  • Mas mababang kasikatan sa REST API ay natatalo sa JSON, ngunit ang XML ay hindi mapapalitan sa Enterprise at Android

Gagawa kami ng mobile application na turnkey

Gumagawa ang IT Sectr ng mga iOS at Android application para sa mga startup at negosyo mula noong 2017. Magpapayo kami sa iyo at magmumungkahi ng pinakamahusay na solusyon.

Pag-usapan ang proyekto

Basahin din