मुख्य सामग्री पर जाएँ
Tooletto

XML फ़ॉर्मेटर

XML को सही नेस्टिंग और इंडेंटेशन के साथ फ़ॉर्मेट करें, या मिनिफ़ाई करें। CDATA सेक्शन, कमेंट और एंगल ब्रैकेट रखने वाले एट्रिब्यूट बिल्कुल सटीक बरक़रार रहते हैं, और असंतुलित टैग बताई जाती हैं।

  • फ़ाइलें कभी आपकी डिवाइस से बाहर नहीं जातीं
  • मुफ़्त, बिना साइन-अप
  • कोई वॉटरमार्क नहीं
  • लोड होने के बाद ऑफ़लाइन भी काम करता है
Loading tool…

XML फ़ॉर्मेटर कैसे करें

  1. 1

    अपना XML पेस्ट करें

    कोई मिनिफ़ाई फ़ीड, कॉन्फ़िगरेशन फ़ाइल, SOAP रिस्पॉन्स — जो भी हो।

  2. 2

    फ़ॉर्मेट करें या मिनिफ़ाई करें

    पढ़ने के लिए इंडेंट करें, या भेजने के लिए समेटें।

  3. 3

    एरर जाँचें

    असंतुलित और बिना बंद किए टैग साफ़ तौर पर बताई जाती हैं।

रेगुलर-एक्सप्रेशन-आधारित XML फ़ॉर्मेटर असल में कहाँ टूटते हैं

रेगुलर एक्सप्रेशन पर बना कोई फ़ॉर्मेटर — हर `<` से पहले लाइन ब्रेक डालना और खुली टैग की लगातार गिनती के हिसाब से इंडेंट करना — साधारण हाथ से लिखे XML पर ठीक-ठाक काम करता है और असली-दुनिया के दस्तावेज़ों पर ऐसी वजहों से फ़ेल हो जाता है जिन्हें किसी बिगड़ी फ़ाइल का कारण बनने तक नज़रअंदाज़ करना आसान है। कोई CDATA सेक्शन, `<![CDATA[...]]>` के रूप में लिखा गया, ख़ास तौर पर मनमाना टेक्स्ट रखने के लिए मौजूद है जिसमें ख़ुद टैग जैसे दिखने वाले कैरेक्टर हो सकते हैं, और `<` ढूँढने वाले किसी रेगुलर एक्सप्रेशन के पास यह जानने का कोई तरीक़ा नहीं कि उसे कंटेंट को संरचना मानने की बजाय उन मार्कर के बीच सब कुछ नज़रअंदाज़ करना चाहिए। कमेंट में वही जोखिम है, और एट्रिब्यूट वैल्यू और भी बुरी हैं: `note="a > b"` जैसे एट्रिब्यूट में एक लिटरल `>` कैरेक्टर है जिसे कोई भोला स्कैनर टैग के अंत के रूप में ग़लत समझ सकता है, इसे चुपचाप ग़लत जगह पर काट देता है।

XML को सही तरीक़े से फ़ॉर्मेट करने का मतलब है कि स्कैनर को टैग संरचना जैसी दिखने वाली किसी भी चीज़ को ढूँढने से पहले इन ख़ास क्षेत्रों को पहचानना पड़ता है — CDATA ब्लॉक, कमेंट, प्रोसेसिंग इंस्ट्रक्शन, DOCTYPE डिक्लेरेशन, और कोट की गई एट्रिब्यूट वैल्यू — ताकि उनका कंटेंट मार्कअप के रूप में दोबारा समझे जाने की बजाय बाइट-दर-बाइट आगे बढ़ाया जाए।

यहाँ वैलिडेट करने का मतलब है अच्छी बनावट, स्कीमा अनुरूपता नहीं

यह टूल जाँचता है कि हर टैग सही तरीक़े से बंद है और सही तरीक़े से नेस्टेड है — वे संरचनात्मक नियम जो किसी दस्तावेज़ को "अच्छी बनावट वाला" XML बनाते हैं — और वह जाँच फ़ेल होने पर ख़ास असंतुलित या बिना बंद टैग बताता है। यह जो नहीं करता वह है दस्तावेज़ को किसी DTD या XML Schema (XSD) के ख़िलाफ़ वैलिडेट करना, जो अतिरिक्त रूप से यह जाँचता कि एलिमेंट, एट्रिब्यूट और उनकी ख़ास वैल्यू किसी ख़ास दस्तावेज़ प्रकार के नियमों के मुताबिक़ हैं या नहीं — क्या कोई ज़रूरी एट्रिब्यूट मौजूद है, क्या कोई एलिमेंट सही संदर्भ में दिखता है, क्या कोई वैल्यू किसी उम्मीद वाले डेटा टाइप से मेल खाती है। यह एक वाक़ई अलग और ज़्यादा विस्तृत जाँच है जिसे अतिरिक्त इनपुट के रूप में ख़ुद स्कीमा दस्तावेज़ चाहिए, कुछ ऐसा नहीं जिसे कोई सामान्य-मक़सद फ़ॉर्मेटर सिर्फ़ XML से अंदाज़ा लगा सके।

HTML को पूरी तरह अलग टूल की ज़रूरत क्यों है

सख़्त XHTML वैध XML है और यहाँ सही तरीक़े से फ़ॉर्मेट होता है, लेकिन असली दुनिया का सामान्य HTML नहीं है, ऐसी वजहों से जो ख़ुद HTML की स्पेसिफ़िकेशन में शामिल हैं: `<br>` और `<img>` जैसे ख़ाली एलिमेंट कभी बंद नहीं होते और बिल्कुल भी कोई क्लोज़िंग टैग नहीं रखते, कई टैग में वैकल्पिक क्लोज़िंग टैग होती हैं जिन्हें ब्राउज़र अपने आप अनुमान लगाते हैं, और ब्राउज़र ऐसी बिगड़ी नेस्टिंग सहन करते हैं जिसे सख़्त XML विश्लेषण सीधे रिजेक्ट कर देगा। सामान्य HTML पर लगाया गया सख़्त XML फ़ॉर्मेटर हर पूरी तरह सामान्य और अच्छी तरह बनी पेज पर एरर बताएगा, यही ठीक वजह है कि HTML के पास एक असली HTML पार्सर के इर्द-गिर्द बना एक अलग फ़ॉर्मेटर है जो इन ख़ास HTML नियमों को दस्तावेज़ को सख़्त XML मानने की बजाय समझता है।

JSON के दबदबे के बावजूद XML अब भी कहाँ मायने रखता है

JSON ने नई वेब API के लिए डिफ़ॉल्ट चुनाव के रूप में XML की जगह ले ली है, लेकिन काफ़ी सारा इंफ्रास्ट्रक्चर उस बदलाव से पहले बना था और अब भी उस पर चलता है: SOAP वेब सर्विस, RSS और Atom फ़ीड, SVG इमेज (जो ख़ुद XML हैं), Office दस्तावेज़ फ़ॉर्मेट आंतरिक रूप से, और JSON की लोकप्रियता से पहले के एंटरप्राइज़ सिस्टम व कॉन्फ़िगरेशन फ़ॉर्मेट की एक लंबी सूची। इनमें से किसी पुराने या ज़्यादा औपचारिक सिस्टम के साथ इंटीग्रेट करने वाले किसी भी व्यक्ति को अब भी अच्छी तरह बना XML पढ़ना, डीबग करना और बनाना ज़रूरी है, जो ठीक वह ऑडियंस है जिसे एक समर्पित XML फ़ॉर्मेटर अब भी सेवा देता है, भले ही XML नई API डिज़ाइन में पीछे रह गया हो।

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

क्या यह मेरा XML वैलिडेट करता है?

यह जाँचता है कि टैग संतुलित और सही तरीक़े से नेस्टेड हैं या नहीं, और न होने पर समस्या वाली टैग बताता है। यह किसी DTD या XSD स्कीमा के ख़िलाफ़ वैलिडेट नहीं करता — उसके लिए ख़ुद स्कीमा चाहिए और यह एक अलग काम है।

क्या CDATA सेक्शन और कमेंट बरक़रार रहते हैं?

बिल्कुल जैसे लिखे गए हैं वैसे ही। पार्सर टैग ढूँढने से पहले `<![CDATA[…]]>`, कमेंट, प्रोसेसिंग इंस्ट्रक्शन और DOCTYPE डिक्लेरेशन पहचानता है, तो उनके अंदर का मार्कअप कभी संरचना समझकर ग़लत नहीं समझा जाता — यही वह जगह है जहाँ रेगुलर-एक्सप्रेशन-आधारित फ़ॉर्मेटर फ़ाइलें बिगाड़ते हैं।

< या > रखने वाले एट्रिब्यूट का क्या होता है?

ये संभाले जाते हैं। पार्सर किसी टैग को पढ़ते समय कोटेशन का ट्रैक रखता है, तो `note="a > b"` जैसा एट्रिब्यूट टैग को समय से पहले ख़त्म नहीं करता। यह सरल फ़ॉर्मेटर में एक आम ख़ामी है।

क्या मैं इसे HTML के लिए इस्तेमाल कर सकता हूँ?

सख़्त XHTML के लिए, हाँ। असली दुनिया के HTML में `<br>` और `<img>` जैसे ख़ाली एलिमेंट हैं जो कभी बंद नहीं होते, साथ ही वैकल्पिक क्लोज़िंग टैग भी, तो इसके लिए HTML फ़ॉर्मेटर सही टूल है — यह एक असली HTML पार्सर इस्तेमाल करता है।

XML फ़ॉर्मेटर के सामान्य काम