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 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.
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 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>
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.
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 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.
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 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>
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.
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.
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 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.
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 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>
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
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.
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.
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.
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.
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
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.
Basahin din