XML फॉर्मेट करें
निजी और सुरक्षित
सब कुछ आपके ब्राउज़र में होता है। आपकी फ़ाइलें हमारे सर्वर को कभी नहीं छूती हैं।
अत्यंत तेज़
कोई अपलोडिंग नहीं, कोई प्रतीक्षा नहीं। फ़ाइल छोड़ते ही कनवर्ट करें।
वास्तव में मुफ्त
कोई खाता आवश्यक नहीं। कोई छिपी हुई लागत नहीं। कोई फ़ाइल आकार की चाल नहीं।
XML (Extensible Markup Language) 25 वर्षों से अधिक समय से मौजूद है, लेकिन यह अभी भी आधुनिक सॉफ़्टवेयर के बुनियादी ढांचे में गुंथा हुआ है: Office दस्तावेज़ों और Android लेआउट से लेकर SOAP API, RSS फ़ीड, कॉन्फ़िगरेशन फ़ाइलें और डिजिटल संरक्षण वर्कफ़्लोज़ तक। यह अब लोकप्रिय नहीं है—वह मुकुट JSON को मिल गया—लेकिन XML तब भी महत्वपूर्ण है जहाँ कड़ी संरचना, समृद्ध मेटाडेटा और दीर्घकालिक अंतरसंचालनीयता मायने रखती है। इस लेख का लक्ष्य XML को पूरी तरह से समझाना है: यह कहाँ से आया, यह कैसे काम करता है, हम इसे कैसे प्रोसेस और मान्य करते हैं, यह नए प्रारूपों से कैसे तुलना करता है, और 2025 और उसके बाद इसे सुरक्षित और अच्छी तरह से कैसे उपयोग करें।
1. XML वास्तव में क्या है
XML नेस्टेड तत्वों और विशेषताओं का उपयोग करके संरचित डेटा और दस्तावेज़ों का प्रतिनिधित्व करने के लिए एक सरलीकृत मार्कअप भाषा है। यह World Wide Web Consortium के Extensible Markup Language (XML) 1.0 Recommendation द्वारा परिभाषित किया गया है, जो अच्छी तरह से गठित XML दस्तावेज़ों के लिए सिंटैक्स निर्दिष्ट करता है और वर्णन करता है कि प्रोसेसर को उन्हें कैसे संभालना चाहिए।
XML स्पेक XML को SGML (Standard Generalized Markup Language) के एक प्रतिबंधित उपसमुच्चय के रूप में वर्णित करता है, जिसे SGML की मूल शक्ति—स्पष्ट मार्कअप के साथ संरचित पाठ का प्रतिनिधित्व करना—बनाए रखते हुए लागू करने में सरल बनाने के लिए डिज़ाइन किया गया है।
कुछ प्रमुख गुण XML को विशिष्ट बनाते हैं:
- पाठ-आधारित और Unicode-जागरूक। XML दस्तावेज़ सादा पाठ हैं और Unicode/ISO 10646 वर्ण सेट पर निर्भर करते हैं, जो उन्हें पोर्टेबल और भाषा-स्वतंत्र बनाता है।
- स्व-वर्णनात्मक। टैग नाम और विशेषताएँ अर्थ ले जाते हैं। संरचना को मूल रूप से समझने के लिए अलग स्कीमा की आवश्यकता नहीं है (हालाँकि स्कीमा इसे बहुत अधिक शक्तिशाली बनाते हैं)।
- पदानुक्रमित। XML की ट्री संरचना सीधे नेस्टेड डेटा, दस्तावेज़ों और कॉन्फ़िगरेशन पदानुक्रमों पर मैप करती है।
- विस्तार योग्य। आप अपने स्वयं के टैग और शब्दावली का आविष्कार करते हैं; XML स्वयं अनुमत तत्वों के सेट को ठीक नहीं करता है।
2. एक संक्षिप्त इतिहास: SGML से XML तक आधुनिक वेब तक
XML की जड़ें SGML में हैं, 1980 के दशक का एक ISO मानक जिसका उपयोग प्रकाशन और तकनीकी दस्तावेज़ीकरण में भारी रूप से किया गया था। 1990 के दशक के मध्य तक, वेब का HTML (जो स्वयं SGML-आधारित था) हर जगह था लेकिन बहुत सीमित था और प्रस्तुति से कसकर जुड़ा हुआ था।
1996–1997 के आसपास, Jon Bosak, Tim Bray, C. M. Sperberg-McQueen, James Clark और अन्य सहित एक कार्य समूह ने SGML के एक सरल, वेब-अनुकूल उपसमुच्चय को डिज़ाइन करना शुरू किया जिसे आसानी से और विश्वसनीय र ूप से पार्स किया जा सके। पहला XML 1.0 Recommendation 1998 में प्रकाशित हुआ था, और XML जल्दी से कई प्रारंभिक-वेब मानकों और प्रोटोकॉल के लिए आधार बन गया, जिसमें SOAP, WSDL, SVG, XSLT और कई उद्योग-विशिष्ट शब्दावली शामिल हैं।
बाद में, XML 1.1 ने कुछ वर्ण-हैंडलिंग एज केस और नियंत्रण वर्णों को परिष्कृत किया, लेकिन XML 1.0 व्यवहार में प्रमुख वेरिएंट बना हुआ है।
3. कोर XML सिंटैक्स: अच्छी तरह से गठित दस्तावेज़
XML 1.0 स्पेक अच्छी तरह से गठित दस्तावेज़ों के लिए एक सटीक सिंटैक्स परिभाषित करता है। न्यूनतम रूप से, एक अच्छी तरह से गठित XML दस्तावेज़:
- ठीक एक रूट तत्व है।
- मिलान करने वाले स्टार्ट और एंड टैग का उपयोग करता है।
- तत्वों को ठीक से नेस्ट करता है (कोई ओवरलैपिंग टैग नहीं)।
- विशेषता मानों के लिए उद्धरण चिह्नों का उपयोग करता है।
- कानूनी वर्णों और एन्कोडिंग का उपयोग करता है।
एक छोटा लेकिन वैध दस्तावेज़ इस तरह दिख सकता है:
<?xml version="1.0" encoding="UTF-8"?>
<note>
<to>George</to>
<from>Adam</from>
<message>Hello XML!</message>
</note>XML घोषणा वैकल्पिक है, लेकिन यह संस्करण और वर्ण एन्कोडिंग बताने का पारंपरिक तरीका है। दस्तावेज़ तत्व <note> एकमात्र रूट है। टेक्स्ट नोड्स, तत्व, विशेषताएँ, टिप्पणियाँ, प्रसंस्करण निर्देश और इकाई संदर्भ मिलकर स्पेक में वर्णित ट्री संरचना बनाते हैं।
XML अच्छी तरह से गठित और वैध दस्तावेज़ों के बीच भी अंतर करता है:
- एक अच्छी तरह से गठित दस्तावेज़ सिंटैक्स नियमों का पालन करता है।
- एक वैध दस्तावेज़ अतिरिक्त रूप से एक DTD या स्कीमा के अनुरूप है जो इसकी संरचना और सामग्री को प्रतिबंधित करता है।
4. नेमस्पेस: शब्दावली को सुरक्षित रूप से मिलाना
जैसे-जैसे XML शब्दावली बढ़ती गई, नाम टकराव एक समस्या बन गई: एक शब्दावली किताब के शीर्षक के लिए <title> का उपयोग कर सकती है; दूसरी नौ करी के शीर्षक के लिए। टकराव से बचने के लिए, XML ने नेमस्पेस पेश किया, W3C Recommendation Namespaces in XML में परिभाषित।
उदाहरण के लिए:
<book xmlns:dc="http://purl.org/dc/elements/1.1/">
<dc:title>XML in Depth</dc:title>
</book>यहाँ, dc:title dc उपसर्ग को Dublin Core namespace URI से बाइंड करके किसी भी अन्य <title> तत्व से सुरक्षित रूप से अलग किया जाता है। नेमस्पेस आधुनिक XML पारिस्थितिकी तंत्र में महत्वपूर्ण हैं: XSD, XSLT, SOAP, RSS और Office Open XML सभी उन पर बहुत अधिक निर्भर करते हैं।
5. मान्यकरण: DTD, XML Schema और अधिक
5.1 DTD
मूल XML स्पेक में Document Type Definitions (DTD) दस्तावेज़ों की अनुमत संरचना—अनुमत तत्व, विशेषताएँ, इकाइयाँ, आदि—को परिभाषित करने के विहित तरीके के रूप में शामिल था। DTD कॉम्पैक्ट हैं और XML प्रोलॉग में अच्छी तरह से एकीकृत हैं, लेकिन वे सीमित हैं: वे गैर-XML सिंटैक्स का उपयोग करते हैं, कमजोर टाइपिंग है, और नेमस्पेस के सा थ संघर्ष करते हैं।
5.2 XML Schema (XSD)
DTD सीमाओं को संबोधित करने के लिए, W3C ने XML Schema Definition (XSD) को मानकीकृत किया, अब संस्करण 1.1 में, XML Schema Definition Language (XSD) 1.1 Part 1: Structures में। XSD स्वयं XML में लिखा गया है, नेमस्पेस का समर्थन करता है, और समृद्ध टाइपिंग (स्ट्रिंग्स, संख्याएँ, तिथियाँ, सूचियाँ, संघ), घटना बाधाएँ और जटिल सामग्री मॉडल प्रदान करता है।
अन्य स्कीमा भाषाएँ मौजूद हैं—जैसे RELAX NG और Schematron—लेकिन XSD कई उद्यम और मानक-संचालित वातावरण में डी फैक्टो मानक बना हुआ है।
5.3 मान्यकरण क्यों मायने रखता है
मान्यकरण XML को संरचित पाठ से सिस्टम के बीच अनुबंधों में बदल देता है। उदाहरण के लिए:
- वित्तीय मैसेजिंग स्पेक भुगतान निर्देशों के लिए सख्त स्कीमा परिभाषित करते हैं।
- Office Open XML और RSS जैसे मानक अपने दस्तावेज़ प्रारूपों को स्कीमा के साथ औपचारिक रूप देते हैं।
- बिल्ड और कॉन्फ़िगरेशन टूल
pom.xmlयाweb.configजैसी फ़ाइलों को जल्दी त्रुटियों को पकड़ने के लिए मान्य करते हैं।
6. XML प्रसंस्करण: DOM, SAX और स्ट्रीमिंग
XML स्वयं केवल पाठ है। कुछ उपयोगी करने के लिए, सॉफ़्टवेयर को इसे किसी मॉडल में पार्स करना होगा। दो क्लासिक प्रसंस्करण मॉडल DOM और SAX हैं।
6.1 DOM: मेमोरी-इन-ट्री
W3C का DOM Level 3 Core specification एक भाषा-तटस्थ ऑब्जेक्ट मॉडल को परिभाषित करता है जो तत्वों, विशेषताओं, पाठ, टिप्पणियों और अधिक के लिए नोड्स के साथ एक संपूर्ण दस्तावेज़ ट्री का प्रतिनिधित्व करता है। DOM रैंडम-एक्सेस-अनुकूल है, तर्क करने में आसान है, और लाइब्रेरी में व्यापक रूप से समर्थित है, लेकिन इसके लिए संपूर्ण दस्तावेज़ को मेमोरी में रखने की आवश्यकता होती है।
6.2 SAX: इवेंट-ड्रिवेन स्ट्रीमिंग
Simple API for XML (SAX) एक इवेंट-ड्रिवेन API है जो XML को स्ट्रीम के रूप में पार्स करती है और "स्टार्ट एलिमेंट" या "एंड एलिमेंट" जैसे इवेंट्स के लिए कॉलबैक फायर करती है। यह SAX Project site और Oracle SAX tutorial में वर्णित है।
SAX पूरे ट्री को संग्रहीत किए बिना एक ही पास में दस्तावेज़ों को प्रोसेस करता है, जिससे यह अत्यधिक मेमोरी-कुशल होता है और लॉग, मैसेज प्रसंस्करण या बैच ट्रांसफ़ॉर्मेशन जैसे बड़े स्ट्रीम के लिए आदर्श होता है। StAX जैसे पुल-आधारित स्ट्रीमिंग API समान सिद्धांतों का पालन करते हैं।
7. XPath, XSLT और XQuery: XML को क्वेरी और ट्रांसफ़ॉर्म करना
7.1 XPath
XPath /bookstore/book[1]/title जैसे पथ-जैसे अभिव्यक्तियों का उपयोग करके XML दस्तावेज़ के भागों को संबोधित करने के लिए एक कॉम्पैक्ट क्वेरी भाषा है। नवीनतम संस्करण, XPath 3.1