XML फ़ॉर्मैटर और ब्यूटीफ़ायर
XML पेस्ट करें और उसे beautify करें (साफ़ इंडेंटेशन के साथ प्रिटी-प्रिंट), minify करें (एक लाइन में समेटें), या validate करें (जाँचें कि वह well-formed है)। Comments, CDATA और attributes सुरक्षित रहते हैं — सब कुछ आपके ब्राउज़र में चलता है और कुछ भी अपलोड नहीं होता।
XML फ़ॉर्मैटर कैसे काम करता है
यह टूल आपके XML को वर्ण-दर-वर्ण पढ़ता है और उसे tokens में विभाजित करता है — start tags, end tags, self-closing tags, टेक्स्ट, comments, CDATA सेक्शन, processing instructions और डिक्लरेशन। फिर यह उन tokens को फिर से उत्सर्जित करता है, हर खुले एलिमेंट के लिए एक स्तर इंडेंटेशन जोड़ता है और बंद होने पर हटा देता है, ताकि नेस्टिंग की गहराई इस बात से दिखे कि हर लाइन कितनी इंडेंट है। चूँकि यह किसी चीज़ को फेंकने के बजाय tokens पर काम करता है, आपके दस्तावेज़ में कुछ नहीं खोता: attributes, comments और CDATA सेक्शन की कच्ची सामग्री ठीक वैसे ही आती है जैसे आपने टाइप की थी। Minify इसका उलटा करता है — यह tags के बीच की खाली जगह हटा देता है ताकि दस्तावेज़ एक ही संक्षिप्त लाइन में सिमट जाए, जबकि टेक्स्ट और CDATA सामग्री अछूती रहती है।
Beautify बनाम minify बनाम validate
| क्रिया | यह क्या करता है | इसे तब इस्तेमाल करें… |
|---|---|---|
| Beautify | इंडेंटेशन और लाइन ब्रेक जोड़ता है (2/4-स्पेस या टैब)। | आपको ऐसा XML पढ़ना या डिबग करना हो जो मिनिफ़ाइड या एक लाइन में आया हो। |
| Minify | tags के बीच की खाली जगह हटाता है; टेक्स्ट और CDATA रखता है। | आपको नेटवर्क पर भेजने या संग्रह के लिए सबसे छोटी फ़ाइल चाहिए। |
| Validate | well-formedness जाँचता है और सटीक त्रुटि बताता है। | कोई पार्सर आपका XML अस्वीकार कर रहा है और आपको कारण खोजना है। |
हर बार जब आप इनपुट संपादित करते हैं या क्रिया बदलते हैं, टूल well-formedness फिर से जाँचता है, इसलिए बॉक्स के नीचे की स्टेटस लाइन हमेशा बताती है कि दस्तावेज़ पार्स होता है या नहीं, और अगर नहीं तो कहाँ विफल होता है।
XML सिंटैक्स संदर्भ
| भाग | उदाहरण | टिप्पणी |
|---|---|---|
| Prolog / डिक्लरेशन | <?xml version="1.0" encoding="UTF-8"?> | वैकल्पिक पहली लाइन जो XML संस्करण और वर्ण एन्कोडिंग बताती है। |
| Element (एलिमेंट) | <title>Midnight Rain</title> | एक start tag, सामग्री, और एक मिलान end tag। हर start tag बंद होना ज़रूरी है। |
| खाली एलिमेंट | <br/> | एक self-closing tag — बिना सामग्री वाले एलिमेंट का संक्षिप्त रूप। |
| Attribute (एट्रिब्यूट) | <book id="bk101"> | start tag पर एक name="value" जोड़ा; मान उद्धरण में होना चाहिए (एकल या दोहरा)। |
| Comment (टिप्पणी) | <!-- notes here --> | पार्सर इसे अनदेखा करते हैं; यह फ़ॉर्मैटर इसे अक्षरशः रखता है। |
| CDATA सेक्शन | <![CDATA[ if (a < b) … ]]> | कच्चा टेक्स्ट जिसमें बिना escaping के < और & हो सकते हैं — बिल्कुल वैसे ही रखा जाता है। |
| Processing instruction | <?xml-stylesheet href="s.xsl"?> | दस्तावेज़ को प्रोसेस करने वाले एप्लिकेशन के लिए एक निर्देश। |
| Entity reference | < > & " ' | पाँच आरक्षित वर्णों < > & " और अपोस्ट्रोफ़ी के लिए escapes। |
Well-formed बनाम valid XML
यह टूल जाँचता है कि आपका XML well-formed है — यह बुनियादी सिंटैक्स नियमों का पालन करता है: एक ही root एलिमेंट, हर start tag बंद, tags सही ढंग से नेस्टेड, attribute मान उद्धरण में, और पाँच आरक्षित वर्ण escaped (या CDATA में लिपटे)। यह valid होने से अलग है, जिसका अतिरिक्त मतलब है कि दस्तावेज़ किसी विशिष्ट schema (एक DTD या XSD) के अनुरूप हो, जो ठीक-ठीक परिभाषित करता है कि कौन-से एलिमेंट और attributes किस क्रम में अनुमत हैं। Well-formed पूर्व-शर्त है: किसी schema के विरुद्ध जाँचे जाने से पहले XML का well-formed होना ज़रूरी है। अगर आपको केवल अपनी फ़ाइल का साफ़-साफ़ पार्स होना चाहिए, तो well-formedness ही आपकी ज़रूरत है — और यही यहाँ स्टेटस लाइन बताती है।
आम उपयोग
- एक लाइन में लौटे मिनिफ़ाइड API रिस्पॉन्स (SOAP, RSS/Atom फ़ीड, sitemaps) को पढ़ना।
- किसी diff या कोड समीक्षा से पहले कॉन्फ़िगरेशन फ़ाइलें (
pom.xml, Android layouts,web.xml,.svg) साफ़ करना। - किसी XML payload को भेजने से पहले छोटा करना, फिर डिबग करने के लिए उसे दोबारा फैलाना।
- किसी बिना बंद या बेमेल tag को खोजना जिसे कोई सख़्त पार्सर अस्वीकार कर रहा हो।
गोपनीयता
फ़ॉर्मैटर पूरी तरह आपके अपने डिवाइस पर चलता है। आपका XML आपके ही ब्राउज़र में पार्स और फिर से इंडेंट होता है, कभी किसी सर्वर पर नहीं भेजा जाता, और न ही संग्रहित या लॉग किया जाता है — इसलिए यह निजी कॉन्फ़िगरेशन और API डेटा के साथ सुरक्षित है, और पेज लोड होने के बाद ऑफ़लाइन भी काम करता है।
अक्सर पूछे जाने वाले सवाल
- XML फ़ॉर्मैटर (ब्यूटीफ़ायर) क्या करता है?
- यह XML को फिर से इंडेंट करता है ताकि नेस्टेड संरचना पढ़ने में आसान हो। मिनिफ़ाइड या एक-लाइन वाला XML — जैसे APIs और कॉन्फ़िग फ़ाइलें अक्सर संग्रहित करती हैं — अलग-अलग लाइनों में फैला दिया जाता है, हर चाइल्ड एलिमेंट अपने पैरेंट के नीचे इंडेंट होता है। यह टूल डेटा नहीं बदलता: एलिमेंट नाम, attributes, टेक्स्ट सामग्री, comments और CDATA सेक्शन सभी बिल्कुल वैसे ही सुरक्षित रहते हैं; केवल tags के बीच की खाली जगह फिर से लिखी जाती है। आप 2-स्पेस, 4-स्पेस या टैब इंडेंट चुन सकते हैं।
- ब्यूटीफ़ाई, मिनिफ़ाई और वैलिडेट करने में क्या अंतर है?
- Beautify (प्रिटी-प्रिंट) इंडेंटेशन और लाइन ब्रेक जोड़ता है ताकि इंसान संरचना पढ़ सके। Minify tags के बीच की सारी खाली जगह हटा देता है ताकि फ़ाइल भेजने या संग्रह के लिए यथासंभव छोटी हो जाए — एलिमेंट और CDATA के अंदर का टेक्स्ट अछूता रहता है। Validate जाँचता है कि दस्तावेज़ well-formed है: हर tag बंद है, tags सही ढंग से नेस्ट होते हैं, attribute मान उद्धरण में हैं और एक ही root एलिमेंट है। यह टूल तीनों कर सकता है, और अगर कोई त्रुटि हो तो सटीक well-formedness त्रुटि बताता है।
- क्या यह जाँचता है कि मेरा XML well-formed है?
- हाँ। यह आपके इनपुट को ब्राउज़र के अंतर्निहित XML पार्सर से पार्स करता है और हरे रंग की "well-formed" स्थिति या सटीक त्रुटि दिखाता है (उस लाइन और कॉलम के साथ जहाँ पार्सिंग विफल हुई) — उदाहरण के लिए बिना बंद किया गया tag, बेमेल end tag या बिना उद्धरण वाला attribute। ध्यान दें यह well-formedness जाँच है, schema वैलिडेशन नहीं: यह पुष्टि करता है कि XML भाषा के सिंटैक्स नियमों का पालन करता है, पर यह किसी DTD या XSD के विरुद्ध वैलिडेट नहीं करता, इसलिए यह नहीं बताएगा कि आपके एलिमेंट किसी विशेष schema से मेल खाते हैं या नहीं।
- क्या comments, CDATA और attributes रखे जाते हैं?
- हाँ। फ़ॉर्मैटर दस्तावेज़ को टोकनाइज़ करता है, हिस्से फेंकता नहीं, इसलिए XML comments (<!-- … -->), CDATA सेक्शन (<![CDATA[ … ]]>), processing instructions, <?xml …?> डिक्लरेशन और DOCTYPE लाइनें सभी अक्षरशः सुरक्षित रहती हैं। Attribute क्रम और मान अछूते रहते हैं, और CDATA के अंदर का कच्चा टेक्स्ट — किसी भी < या & वर्ण सहित — बिल्कुल वैसे ही कॉपी होता है, क्योंकि यही तो CDATA सेक्शन का पूरा उद्देश्य है।
- "unclosed tag" या "mismatched tag" त्रुटि कैसे ठीक करूँ?
- इन त्रुटियों का मतलब है कि किसी start tag का कोई मिलान end tag नहीं है, या end tag का नाम निकटतम खुले एलिमेंट से मेल नहीं खाता। बताई गई लाइन और कॉलम पढ़ें, फिर जाँचें कि हर <tag> का एक संगत </tag> हो और tags उसी उलटे क्रम में बंद हों जिस क्रम में खुले थे — <a><b></b></a>, कभी <a><b></a></b> नहीं। यह भी सुनिश्चित करें कि दस्तावेज़ में ठीक एक टॉप-लेवल (root) एलिमेंट हो और हर attribute मान उद्धरण में लिपटा हो। मान्य XML को beautify करने से इन संरचनात्मक ग़लतियों को पकड़ना बहुत आसान हो जाता है।