XML कॉन्फ़िगरेशन (.xml)

W3C मानक

एक्स्टेंसिबल मार्कअप लैंग्वेज (XML) एक बहुमुखी मार्कअप भाषा है जो ऐसे प्रारूप में दस्तावेजों को एनकोड करने के लिए नियमों का एक सेट परिभाषित करती है जो मानव-पठनीय और मशीन-पठनीय दोनों है।

XML ऑनलाइन कंप्रेस करें

निजी - फ़ाइलें कभी आपके डिवाइस से बाहर नहीं जातीं

निरीक्षण और मेटाडेटा

ऑपरेटिंग सिस्टम और फ़ाइल विश्लेषक शुरुआती बाइनरी बाइट अनुक्रम का निरीक्षण करके XML फ़ाइलों की पहचान करते हैं:

फ़ाइलें यहाँ चुनें या छोड़ें

निजी - फ़ाइलें कभी आपके डिवाइस से बाहर नहीं जातीं

या पेस्ट करें Ctrl+V
नेटवर्क पर कोई डेटा भेजे बिना गोपनीयता की गारंटी: बाहरी सर्वर पर 0 बाइट अपलोड किए गए। सारी प्रोसेसिंग आपके ब्राउज़र सैन्डबॉक्स में स्थानीय रूप से हुई।

बाइट-स्तरीय हेडर हस्ताक्षर (मैजिक बाइट्स)

ऑपरेटिंग सिस्टम और फ़ाइल विश्लेषक शुरुआती बाइनरी बाइट अनुक्रम का निरीक्षण करके XML फ़ाइलों की पहचान करते हैं:

HEX हस्ताक्षर (ऑफ़सेट 0):

3C 3F 78 6D

ASCII निरूपण: <?xm

मानकीकरण: W3C अनुशंसा (XML 1.0 पाँचवाँ संस्करण)

तकनीकी विनिर्देश

कंटेनर आर्किटेक्चरकस्टम सिमेंटिक टैग और विशेषताओं के साथ पदानुक्रमित (hierarchical) टेक्स्ट मार्कअप भाषा
कंप्रेशनसमापन टैग में तत्व नामों की पुनरावृत्ति होने पर Gzip / Deflate 85% - 92% तक संपीड़न प्राप्त करते हैं
बाइट एंडियानेसXML घोषणा एन्कोडिंग विशेषता द्वारा निर्धारित UTF-8 / UTF-16 कैरेक्टर स्ट्रीम
कलर स्पेसलागू नहीं
चैनल और संरचनातत्व (<tag>), विशेषताएं (attr="val"), CDATA ब्लॉक, प्रोसेसिंग निर्देश
अधिकतम आयामअसीमित पदानुक्रमित ट्री संरचना
पारदर्शितालागू नहीं
स्ट्रीमिंग और प्रोग्रेसिवSAX (Simple API for XML) और StAX पार्सर मेमोरी-कुशल स्ट्रीम रीडिंग सक्षम करते हैं

तकनीकी तुलना मैट्रिक्स: XML बनाम प्रतियोगी

तकनीकी विशेषताXML (वर्तमान)JSONYAMLProtocol Buffers
विस्तारपूर्णताउच्च (क्लोजिंग टैग और विशेषता सिंटैक्स)कम (कॉम्पैक्ट की-वैल्यू प्रारूप)कम (इंडेंटेशन-आधारित)अति-कम (बाइनरी सिरीलाइजेशन)
स्कीमा सत्यापनकंपाइलर प्रवर्तन के साथ परिपक्व XSD और DTD मानकJSON स्कीमा (वैकल्पिक)JSON स्कीमा / YAML स्कीमासख्त .proto स्कीमा परिभाषाएँ
नेमस्पेसमूल XML नेमस्पेस (xmlns) समर्थनकोई मूल नेमस्पेस तंत्र नहींकोई मूल नेमस्पेस तंत्र नहींपैकेज घोषणाएँ
रूपांतरणXSLT घोषणात्मक रूपांतरण पाइपलाइनकस्टम कोड / jq स्क्रिप्टकस्टम कोडकस्टम कोड

सामान्य करप्शन मोड और हेक्स रिकवरी गाइड

XML पार्सिंग त्रुटि: टैग मेल नहीं खाता या एंटिटी परिभाषित नहीं है।

मूल कारण: अनएस्केप किए गए आरक्षित वर्ण (जैसे '&', '<', या '>') या ओपनिंग और क्लोजिंग टैग के बीच केस बेमेल।

रिकवरी: '&' को '&amp;', '<' को '&lt;', '>' को '&gt;' से बदलें, या '<![CDATA[ ... ]]>' ब्लॉकों के अंदर मनमाना टेक्स्ट लपेटें।

सुरक्षा विश्लेषण और पार्सर अटैक वेक्टर्स

शक्तिशाली DTD और एंटिटी विस्तार क्षमताओं के कारण XML पार्सर ऐतिहासिक रूप से एंटरप्राइज़ कंप्यूटिंग में सबसे अधिक हमला किए जाने वाले घटकों में से एक रहे हैं।

ज्ञात अटैक वेक्टर्स

  • XML External Entity (XXE): स्थानीय सर्वर फ़ाइलों ('file:///etc/passwd') या आंतरिक नेटवर्क एंडपॉइंट्स को संदर्भित करने वाला दुर्भावनापूर्ण DOCTYPE।
  • Billion Laughs Attack (XML Bomb): सेवा से इनकार (DoS) का कारण बनने के लिए मेमोरी में तेजी से विस्तार करने वाली नेस्टेड एंटिटी घोषणाएं।
  • XPath इंजेक्शन: सैनिटाइज़ न किए गए उपयोगकर्ता इनपुट से XML डेटाबेस में अनधिकृत क्वेरी की जा सकती हैं।

सुरक्षात्मक सर्वोत्तम प्रथाएँ: XML पार्सर में हमेशा बाहरी DTD रिज़ॉल्यूशन और बाहरी एंटिटी प्रोसेसिंग को अक्षम करें (setFeature 'disallow-doctype-decl' को true पर सेट करें)।

ऐतिहासिक मूल और मील के पत्थर

2008W3C ने आधुनिक अंतरराष्ट्रीय चरित्र समर्थन को मानकीकृत करते हुए XML 1.0 पाँचवाँ संस्करण प्रकाशित किया।
2000W3C ने संरचित टाइपिंग और इवेंट आर्किटेक्चर की स्थापना करते हुए XML Schema 1.0 (XSD) और DOM लेवल 2 प्रकाशित किया।
1998W3C ने SGML के सरलीकृत, वेब-अनुकूल सबसेट के रूप में XML 1.0 सिफ़ारिश प्रकाशित की।

मुख्य लाभ और खूबियाँ

  • XSD (XML Schema Definition) या DTD का उपयोग करके कठोर स्कीमा सत्यापन सख्त डेटा अखंडता सुनिश्चित करता है।
  • नेमस्पेस (xmlns) जटिल बहु-स्रोत दस्तावेजों में तत्व नामों के टकराव को रोकते हैं।
  • शक्तिशाली क्वेरी और रूपांतरण टूलचेन (XPath, XSLT, XQuery)।

तकनीकी सीमाएँ और कमियाँ

  • अत्यधिक विस्तारपूर्ण: समापन टैग में तत्वों के नाम दोहराए जाते हैं, जिससे फ़ाइलें बड़ी होती हैं और अधिक बैंडविड्थ खर्च होती है।
  • DOM पार्सिंग बड़े मेमोरी-इंटेंसिव ऑब्जेक्ट ट्री बनाती है।
  • XML एक्सटर्नल एंटिटी (XXE) और एंटिटी विस्तार सुरक्षा कमजोरियों से ग्रस्त।

रोचक तकनीकी जानकारी

  • XML, SGML (Standard Generalized Markup Language) का एक सरलीकृत सबसेट है, जिसे वर्ल्ड वाइड वेब पर सहजता से काम करने के लिए डिज़ाइन किया गया था।
  • आधुनिक कार्यालय दस्तावेज़ (.docx, .xlsx), वेक्टर छवियां (.svg), और RSS फ़ीड सभी विशेष XML बोलियाँ हैं।
  • क्लासिक 'बिलियन लाफ्स' (Billion Laughs) डिनायल-ऑफ-सर्विस हमला पार्सिंग पर 3 गीगाबाइट मेमोरी में तेज़ी से फैलकर केवल 1 किलोबाइट नेस्टेड XML एंटिटीज़ (lol1 जो दस lol0s को संदर्भित करता है, lol9 तक) का उपयोग करता है।

अक्सर पूछे जाने वाले तकनीकी प्रश्न

वेल-फॉर्म्ड और वैलिड XML में क्या अंतर है?

'वेल-फॉर्म्ड' XML बुनियादी सिंटैक्स नियमों (मिलान वाले टैग, विशेषताओं के चारों ओर उद्धरण, एकल रूट तत्व) का पालन करता है। 'वैलिड' XML वेल-फॉर्म्ड होता है और साथ ही बाहरी स्कीमा परिभाषा (XSD या DTD) का सख्ती से पालन करता है।

अधिकांश वेब API के लिए JSON ने XML की जगह क्यों ली?

JSON सीधे JavaScript और अन्य प्रोग्रामिंग भाषाओं की मूल डेटा संरचनाओं (हैश मैप और एरे) से मेल खाता है। इसमें कम अतिरिक्त कोड चाहिए, पार्सिंग तेज़ होती है और नेटवर्क पेलोड छोटे होते हैं।

XML External Entity (XXE) कमजोरी क्या है?

XXE कमजोरी तब होती है जब XML पार्सर किसी अविश्वसनीय दस्तावेज़ को प्रोसेस करता है और उसमें बाहरी दस्तावेज़ प्रकार परिभाषा (DTD) प्रोसेसिंग चालू होती है। हमलावर स्थानीय सर्वर फ़ाइलों (जैसे सिस्टम कॉन्फ़िगरेशन) या आंतरिक नेटवर्क URL की ओर संकेत करने वाली एंटिटी परिभाषित कर सकते हैं। इससे सर्वर गोपनीय डेटा पढ़कर उजागर कर सकता है।