XML फ़ॉर्मेटर और वैलिडेटर
XML को 2 स्पेस, 4 स्पेस या टैब से इंडेंट करें, एक ही लाइन में सिकोड़ें, या जानें कि वह क्यों पार्स नहीं होता। सही XML के लिए एलिमेंट की संख्या, नेस्टिंग की गहराई और आकार मिलता है; गलत XML के लिए पार्सर का संदेश। निःशुल्क, साइन-अप की ज़रूरत नहीं, और आपका XML कभी आपके ब्राउज़र से बाहर नहीं जाता।
मोड
XML फ़ॉर्मेटर का उपयोग कैसे करें
- 1. एक मोड चुनें। फ़ॉर्मेट करें पठनीय रूप से इंडेंट करता है; मिनिफ़ाई करें एलिमेंटों के बीच की खाली जगह हटाता है।
- 2. इंडेंट चुनें। फ़ॉर्मेट के लिए 2 स्पेस, 4 स्पेस या टैब चुनें।
- 3. अपना XML चिपकाएँ और बटन दबाएँ। परिणाम नीचे तीन गिनतियों के साथ दिखता है: एलिमेंट, अधिकतम गहराई (रूट स्तर 1 है) और आउटपुट का आकार कैरेक्टर में।
- 4. दिखाई गई गलतियाँ सुधारें। अगर XML ठीक से बना नहीं है, तो कोई आउटपुट नहीं आता और आपका ब्राउज़र पार्सर बताता है कि उसे क्या मिला। XML सुधारें और बटन दोबारा दबाएँ।
Well-formed बनाम Valid
दो अलग चीज़ों को XML "वैलिडेट" करना कहा जाता है। कोई दस्तावेज़ well-formed है अगर वह W3C की XML 1.0 Recommendation के सिंटैक्स नियमों का पालन करता है; वह valid है अगर वह DTD या XSD जैसे किसी स्कीमा का भी पालन करता है। यह टूल केवल well-formedness जाँचता है, अपने ब्राउज़र में बने XML पार्सर से। यह DTD या स्कीमा नहीं पढ़ता, इसलिए जो दस्तावेज़ well-formed है पर आपके एप्लिकेशन के लिए गलत है — जैसे कोई आवश्यक एलिमेंट न होना — वह पास हो जाता है। यह जिन नियमों को लागू करता है:
| नियम | कब टूटता है |
|---|---|
| एक रूट एलिमेंट | दो शीर्ष-स्तरीय एलिमेंट, या रूट से पहले टेक्स्ट |
| एलिमेंट ठीक से नेस्ट होते हैं | <a><b></a></b> |
| हर स्टार्ट टैग का एंड टैग होता है | <a><b></a>, या <br/> की जगह <br> |
| नाम केस-सेंसिटिव होते हैं | <Title>…</title> |
| एट्रिब्यूट वैल्यू कोट में होती हैं | <a id=1/> |
| किसी एलिमेंट पर एट्रिब्यूट दोहराया नहीं जाता | <a id="1" id="2"/> |
टेक्स्ट में < और & एस्केप होते हैं | <a>5 < 6 & 7</a> को 5 < 6 & 7 होना चाहिए |
XML में ठीक पाँच पूर्वनिर्धारित एंटिटी होती हैं — <, >, &, ' और " — इसलिए जैसी HTML एंटिटी त्रुटि है, जब तक कोई DTD उसे घोषित न करे। किसी अनक्लोज़्ड टैग के लिए संदेश, जो ब्राउज़र का अपना शब्दांकन है और ब्राउज़र के अनुसार बदलता है, उस जोड़ी का नाम लेता है जो मेल नहीं खाती: Chrome में, <a><b></a> पहली लाइन के 11वें कॉलम पर एक त्रुटि देता है, जिसका संदेश है "Opening and ending tag mismatch: b line 1 and a"।
फ़ॉर्मेटर क्या बदलता है
यह टूल आपके XML को एक ट्री में पार्स करता है और उसी ट्री को वापस लिखता है, इसलिए आउटपुट आपके टेक्स्ट की नकल नहीं, बल्कि साफ़ लेआउट वाला समतुल्य XML है। इन अंतरों की उम्मीद करें:
- घोषणा और DOCTYPE सुरक्षित रहते हैं।
<?xml …?>वाली पहली लाइन और<!DOCTYPE …>घोषणा, इसके आंतरिक सबसेट सहित, वैसे ही वापस लिखे जाते हैं जैसे आपने टाइप किए थे। - एट्रिब्यूट अपना क्रम रखते हैं, पर उन्हें डबल कोट में फिर से लिखा जाता है।
- एंटिटी हल हो जाती हैं।
'और©जैसे कैरेक्टर संदर्भ अपने असली अक्षर बन जाते हैं; टेक्स्ट में केवल&,<और>, और एट्रिब्यूट में", दोबारा एस्केप होते हैं। - खाली एलिमेंट सेल्फ़-क्लोज़ होते हैं।
<a></a>बन जाता है<a/>जब उसमें कोई सामग्री न हो, हालाँकि जिसमें केवल एक स्पेस हो वह<a></a>ही रहता है। - कमेंट, CDATA सेक्शन और प्रोसेसिंग निर्देश सुरक्षित रहते हैं।
हल किया गया उदाहरण
यह एक-पंक्ति का दस्तावेज़ एक घोषणा, एक सिंगल-कोटेड एट्रिब्यूट, एक कमेंट और एक खाली एलिमेंट रखता है:
इनपुट
<?xml version="1.0" encoding="UTF-8"?><library><book id='1'><title>APA Manual</title><year>2020</year><!-- note --></book><book id="2"/></library>
फ़ॉर्मेट करें, 2 स्पेस
नौ लाइनें और 172 कैरेक्टर: घोषणा, फिर library हाशिये पर, हर book दो स्पेस अंदर, और title, year और कमेंट चार स्पेस अंदर। पहली book का id अब id="1" लिखा है।
मिनिफ़ाई करें
146 कैरेक्टर की एक लाइन।
आँकड़े
5 एलिमेंट और अधिकतम गहराई 3 (library, book, title)।
मिनिफ़ाई घोषणा रखता है और पूरे ट्री को एक लाइन पर रखता है, इसलिए वही दस्तावेज़ 172 कैरेक्टर से घटकर 146 हो जाता है। आउटपुट-साइज़ कार्ड ये कैरेक्टर-गिनतियाँ दिखाता है।
आपको कौन-सा उपकरण चाहिए?
यह पेज XML के लिए है। HTML के लिए, जो अनक्लोज़्ड टैग सहता है और इनलाइन स्पेसिंग रखता है, HTML Formatter का उपयोग करें। XML को JSON डेटा में बदलने के लिए, आगामी XML to JSON Converter दिखाएगा कि एट्रिब्यूट और दोहराए गए एलिमेंट कैसे मैप होते हैं; JSON के लिए, JSON फ़ॉर्मेटर का उपयोग करें।
अक्सर पूछे जाने वाले प्रश्न
- XML फ़ॉर्मेटर क्या करता है?
- यह XML को फिर से इंडेंट करता है ताकि नेस्टिंग दिखे, आमतौर पर हर लाइन पर एक एलिमेंट के साथ। यह टूल यह भी जाँचता है कि XML ठीक से बना है या नहीं, क्योंकि उसे नई लेआउट में वापस लिखने से पहले दस्तावेज़ को पार्स करना ज़रूरी है।
- यहाँ XML वैलिडेशन कैसे काम करता है?
- आपके ब्राउज़र का अपना XML पार्सर टेक्स्ट पढ़ता है। अगर XML किसी सिंटैक्स नियम को तोड़ता है, तो पार्सर की त्रुटि दिखाई जाती है और कोई आउटपुट नहीं बनता। यह केवल well-formedness जाँचता है — DTD या XSD स्कीमा के विरुद्ध वैलिडेट नहीं करता।
- क्या कमेंट, CDATA सेक्शन और एट्रिब्यूट सुरक्षित रहते हैं?
- हाँ: कमेंट और CDATA सेक्शन वैसे ही वापस लिखे जाते हैं, और एट्रिब्यूट अपना क्रम रखते हैं, हालाँकि कोट डबल कोट में सामान्य किए जाते हैं। DOCTYPE घोषणा वैसे ही वापस लिखी जाती है जैसे आपने टाइप की थी।
- मिनिफ़ाई क्या करता है?
- यह एलिमेंटों के बीच की खाली जगह और लाइन-ब्रेक हटाता है, ताकि सबसे छोटा समतुल्य टेक्स्ट मिले, और अगर कोई XML घोषणा है तो उसे रखता है।
<title>जैसे एलिमेंटों के अंदर का टेक्स्ट अपने स्पेस रखता है, और चाइल्ड एलिमेंटों के साथ वाला टेक्स्ट भी, जैसे बोल्ड शब्द वाला पैराग्राफ़। - फ़ॉर्मेट करने से मेरे टेक्स्ट का स्पेसिंग क्यों बदलता है?
- केवल मिश्रित सामग्री को फ़ॉर्मेट करने पर — ऐसा टेक्स्ट जो चाइल्ड एलिमेंटों के साथ बैठा हो, जैसे बोल्ड शब्द वाला पैराग्राफ़। फ़ॉर्मेट उस टेक्स्ट को ट्रिम करता है और हर टुकड़े को अपनी लाइन पर रखता है, जिससे स्पेसिंग बदलती है; मिनिफ़ाई इसे रखता है। डेटा-जैसे XML, जहाँ एलिमेंट या तो टेक्स्ट रखते हैं या दूसरे एलिमेंट, प्रभावित नहीं होता।
- मेरा XML के साथ क्यों फ़ेल होता है?
- XML में केवल पाँच पूर्वनिर्धारित एंटिटी हैं, और
उनमें से नहीं है। उसकी जगह संख्यात्मक संदर्भ लिखें, या एंटिटी को DTD में घोषित करें। - क्या मेरा XML किसी सर्वर पर अपलोड होता है?
- नहीं। पार्सिंग और फ़ॉर्मेटिंग आपके ब्राउज़र में होती हैं, और आपके द्वारा चिपकाया गया कुछ भी कहीं नहीं भेजा जाता।