XML (eXtensible Markup Language) एक टेक्स्ट फ़ॉर्मेट है जो कस्टम टैग का उपयोग करके संरचित डेटा को संग्रहीत और प्रसारित करने के लिए है। इसका व्यापक रूप से कॉन्फ़िगरेशन फ़ाइलों, वेब सेवाओं और Android डेवलपमेंट में उपयोग किया जाता है। W3C कंसोर्टियम के अनुसार, XML विशिष्टता 2008 से एक स्थिर मानक बनी हुई है। XML स्कीमा के माध्यम से मान्यकरण की क्षमता के साथ एक सख्त डेटा संरचना प्रदान करता है।
मुख्य बिंदु
XML एक मार्कअप भाषा है जो दस्तावेज़ों को मानव और मशीन दोनों द्वारा पढ़ने योग्य प्रारूप में एन्कोड करने के लिए नियमों का एक सेट परिभाषित करती है। HTML के विपरीत, XML में टैग का कोई निश्चित सेट नहीं है — डेवलपर अपने स्वयं के टैग बनाते हैं जो डेटा संरचना के अनुरूप होते हैं।
XML को W3C कंसोर्टियम द्वारा 1996 में SGML (Standard Generalized Markup Language) के एक सरलीकृत उपसमूह के रूप में विकसित किया गया था। XML का मुख्य लक्ष्य सामग्री को डेटा प्रस्तुति से अलग करना है। HTML के विपरीत, जो दिखावट का वर्णन करता है, XML डेटा की संरचना और अर्थ का वर्णन करता है।
XML की मुख्य विशेषता विस्तारशीलता है। यदि किसी प्रोजेक्ट में नए डेटा प्रकार उभरते हैं, तो डेवलपर मौजूदा संरचना को बदले बिना नए टैग जोड़ता है। यह XML को दीर्घकालिक डेटा भंडारण और विभिन्न प्रणालियों के बीच आदान-प्रदान के लिए सुविधाजनक बनाता है।
XML सिंटैक्स HTML की तुलना में सख्त है। प्रत्येक ओपनिंग टैग का एक संगत क्लोज़िंग टैग होना चाहिए, विशेषताएँ उद्धरण चिह्नों में होती हैं, और टैग नाम केस-सेंसिटिव होते हैं। दस्तावेज़ में बिल्कुल एक रूट एलिमेंट होना चाहिए जो अन्य सभी को समाहित करता है।
एक XML दस्तावेज़ 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>
सुव्यवस्थित (Well-formed) XML को बुनियादी नियमों का पालन करना चाहिए: प्रत्येक ओपनिंग टैग के लिए क्लोज़िंग टैग अनिवार्य है, नेस्टिंग सख्त है (टैग ओवरलैपिंग निषिद्ध है), विशेषता मान हमेशा उद्धरण चिह्नों में होते हैं। किसी भी नियम का उल्लंघन दस्तावेज़ को अमान्य और अपार्स करने योग्य बना देता है।
XML नेमस्पेस नाम संघर्ष की समस्या को हल करते हैं जब एक दस्तावेज़ में विभिन्न शब्दकोशों के एलिमेंट का उपयोग किया जाता है। नेमस्पेस को xmlns विशेषता द्वारा एक URI के साथ परिभाषित किया जाता है जो शब्दकोश को विशिष्ट रूप से पहचानता है।
XML Schema (XSD) XML दस्तावेज़ की संरचना का वर्णन करने के लिए एक भाषा है। XSD परिभाषित करता है कि कौन से एलिमेंट और विशेषताएँ अनुमत हैं, उनके डेटा प्रकार, अनिवार्यता और बाधाएँ। स्कीमा प्रसंस्करण से पहले स्वचालित दस्तावेज़ मान्यकरण की अनुमति देती हैं, जो एकीकरण समाधानों के लिए महत्वपूर्ण है।
| तकनीक | उद्देश्य | उदाहरण |
|---|---|---|
| DTD | बुनियादी संरचना मान्यकरण | पुराना, कम क्षमताएँ |
| XSD | सख्त टाइपिंग और मान्यकरण | उद्योग मानक |
| RELAX NG | XSD का कॉम्पैक्ट विकल्प | XSD से सरल और अधिक पठनीय |
| XSLT | XML का अन्य फ़ॉर्मेट में रूपांतरण | XML से HTML, PDF, CSV |
| XPath | नेविगेशन और नोड चयन | XML ट्री से क्वेरी |
XML Android डेवलपमेंट में एक महत्वपूर्ण भूमिका निभाता है। Android ऑपरेटिंग सिस्टम यूज़र इंटरफ़ेस (लेआउट फ़ाइलें), एप्लिकेशन कॉन्फ़िगरेशन (AndroidManifest.xml), संसाधन (strings, colors, themes) और वेक्टर ग्राफ़िक्स (VectorDrawable) का वर्णन करने के लिए XML का उपयोग करता है। iOS पर, XML का उपयोग कम बार किया जाता है, मुख्य रूप से Storyboard और कॉन्फ़िगरेशन plist फ़ाइलों के लिए।
Android में, प्रत्येक एप्लिकेशन स्क्रीन View घटकों के पदानुक्रम के साथ एक XML फ़ाइल द्वारा वर्णित की जाती है: ConstraintLayout, LinearLayout, TextView, Button। यह दृष्टिकोण एप्लिकेशन तर्क को प्रस्तुति से अलग करता है, रखरखाव और विभिन्न स्क्रीन के अनुकूलन को सरल बनाता है। संसाधन XML फ़ाइलें कोड बदले बिना एप्लिकेशन के स्थानीयकरण की अनुमति देती हैं।
एक सामान्य लेआउट फ़ाइल में नेस्टेड एलिमेंट के साथ एक रूट ConstraintLayout होता है, जिनमें से प्रत्येक में स्थिति, आकार और शैली की विशेषताएँ होती हैं। Android स्टार्टअप पर प्रदर्शन अनुकूलन के लिए XML को AXML बाइनरी फ़ॉर्मेट में संकलित करता है।
<?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>
XML पार्सिंग मोबाइल प्लेटफ़ॉर्म पर दो मुख्य दृष्टिकोणों से की जाती है: DOM (Document Object Model) पूरे दस्तावेज़ को एक पेड़ के रूप में मेमोरी में लोड करता है, SAX (Simple API for XML) दस्तावेज़ को स्ट्रीमिंग करके पढ़ता है, ईवेंट हैंडलर को कॉल करता है। DOM छोटे दस्तावेज़ों के लिए सुविधाजनक है, SAX मेमोरी सीमाओं वाली बड़ी फ़ाइलों के लिए।
Android में अंतर्निहित पार्सर हैं: स्ट्रीम पार्सिंग के लिए XmlPullParser और DOM दृष्टिकोण के लिए DocumentBuilder। iOS डेलिगेट प्रोटोकॉल के साथ Foundation XMLParser का उपयोग करता है। ऑब्जेक्ट को XML में सीरियलाइज़ करने के लिए, PHP में SimpleXML या Java में Jackson XML जैसी लाइब्रेरी का उपयोग किया जाता है।
Android कुशल XML पार्सिंग के लिए XmlPullParser का उपयोग करने की सलाह देता है। पार्सर ईवेंट-संचालित मोड में काम करता है: अगले एलिमेंट पर जाने के लिए next() को कॉल करता है और ईवेंट प्रकार (START_TAG, TEXT, END_TAG) लौटाता है। यह न्यूनतम मेमोरी खपत के साथ किसी भी आकार के दस्तावेज़ों को संसाधित करने की अनुमति देता है।
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
}
XML के उपयोग के उदाहरण वास्तविक परियोजनाओं में इसकी भूमिका दर्शाते हैं। Android डेवलपमेंट के अलावा, XML का उपयोग बिल्ड कॉन्फ़िगरेशन, डेटा विवरण और दस्तावेज़ कार्यप्रवाह के लिए किया जाता है। Maven, SOAP सेवाओं और कई एंटरप्राइज़ टूल के साथ काम करने के लिए XML सिंटैक्स की समझ आवश्यक है।
pom.xml फ़ाइल Maven प्रोजेक्ट का वर्णन करती है: निर्भरताएँ, प्लगइन्स, संस्करण और बिल्ड प्रोफ़ाइल। प्रत्येक निर्भरता groupId, artifactId और version टैग के साथ निर्दिष्ट की जाती है। Maven रिपॉज़िटरी से निर्दिष्ट लाइब्रेरी को स्वचालित रूप से डाउनलोड करता है।
<?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 और JSON के बीच चुनाव प्रोजेक्ट की विशिष्ट आवश्यकताओं पर निर्भर करता है। JSON REST API, मोबाइल एप्लिकेशन और कॉन्फ़िगरेशन के लिए उपयुक्त है जहाँ कॉम्पैक्टनेस और गति महत्वपूर्ण है। XML एंटरप्राइज़ सिस्टम, दस्तावेज़ कार्यप्रवाह और Android डेवलपमेंट में अपरिहार्य है, जहाँ सख्त मान्यकरण, नेमस्पेस और डेटा रूपांतरण की आवश्यकता होती है।
XML दीर्घकालिक दस्तावेज़ भंडारण के परिदृश्यों में जीतता है। XSD स्कीमा की बदौलत, XML दस्तावेज़ों को स्वचालित रूप से मान्य किया जा सकता है, जो चिकित्सा, वित्तीय और कानूनी प्रणालियों के लिए महत्वपूर्ण है। XSLT रूपांतरण एकल XML स्रोत से HTML, PDF और अन्य फ़ॉर्मेट उत्पन्न करने की अनुमति देते हैं, जो दस्तावेज़ कार्यप्रवाह को सरल बनाता है।
JSON, बदले में, वेब API और मोबाइल एप्लिकेशन के लिए मानक बन गया है। JavaScript के साथ एकीकरण में आसानी, छोटा आकार और उच्च पार्सिंग गति JSON को REST API, WebSocket संदेश और कॉन्फ़िगरेशन फ़ाइलों के लिए पसंदीदा विकल्प बनाती है। अधिकांश नई परियोजनाओं के लिए, JSON से शुरू करने और विशिष्ट आवश्यकताएँ उत्पन्न होने पर ही XML पर स्विच करने की सिफारिश की जाती है।
अक्सर पूछे जाने वाले प्रश्न
XML डेटा की संरचना और सामग्री का वर्णन करता है, HTML दिखावट और प्रस्तुति का। XML किसी भी टैग को बनाने की अनुमति देता है, HTML का एक निश्चित सेट है। XML सिंटैक्स में सख्त है: सभी टैग बंद होने चाहिए, HTML बिना बंद टैग की अनुमति देता है। XML डेटा के लिए है, HTML प्रदर्शन के लिए।
XSD (XML Schema Definition) XML दस्तावेज़ की संरचना का वर्णन करने के लिए एक भाषा है। XSD परिभाषित करता है कि कौन से एलिमेंट और विशेषताएँ अनुमत हैं, उनके डेटा प्रकार, अनिवार्यता और बाधाएँ। स्कीमा प्रसंस्करण से पहले XML दस्तावेज़ के स्वचालित मान्यकरण की अनुमति देती है, त्रुटियों को रोकती है और डेटा अखंडता सुनिश्चित करती है।
Android पर, XML पार्सिंग के लिए XmlPullParser का उपयोग करें — एक अंतर्निहित स्ट्रीमिंग पार्सर। यह ईवेंट-संचालित रूप से काम करता है: एक लूप में START_TAG, TEXT और END_TAG को संसाधित करता है, मेमोरी का कुशलतापूर्वक प्रबंधन करता है। छोटे दस्तावेज़ों के लिए, DocumentBuilderFactory के माध्यम से DOM पार्सर उपयुक्त है, जो पूरे दस्तावेज़ को नोड ट्री के रूप में मेमोरी में लोड करता है।
DTD (Document Type Definition) एक पुराना मान्यकरण तंत्र है जिसमें सीमित क्षमताएँ हैं: यह डेटा प्रकार (सब कुछ स्ट्रिंग है) और नेमस्पेस का समर्थन नहीं करता है। XSD डेटा प्रकार (संख्या, दिनांक, गणना), नेमस्पेस और विस्तारशीलता के समर्थन के साथ एक आधुनिक प्रतिस्थापन है। XSD स्वयं एक XML दस्तावेज़ है, जबकि DTD अपने स्वयं के सिंटैक्स का उपयोग करता है।
नेमस्पेस नाम संघर्ष को रोकते हैं जब एक XML दस्तावेज़ विभिन्न स्रोतों से एलिमेंट को जोड़ता है। उदाहरण के लिए, Android लेआउट में View टैग android.view और एक लाइब्रेरी दोनों से आ सकता है। URI के साथ xmlns विशेषता प्रत्येक एलिमेंट और विशेषता के स्रोत को विशिष्ट रूप से पहचानती है।
सारांश
हम एक मोबाइल एप्लिकेशन टर्नकी विकसित करेंगे
IT Sectr 2017 से स्टार्टअप और व्यवसायों के लिए iOS और Android एप्लिकेशन बनाता है। हम आपको सलाह देंगे और सर्वोत्तम समाधान प्रस्तावित करेंगे।
यह भी पढ़ें