XML फ़ॉर्मैटर और वैलिडेटर
XML पेस्ट करें, फ़ॉर्मैट से सही इंडेंटेशन में सजाएं, वैलिडेट से सिंटैक्स जांचें। एट्रिब्यूट्स और नेमस्पेस संभाले जाते हैं। कोई अपलोड नहीं।
- अपना XML बाएँ टेक्स्ट एरिया में पेस्ट करें।
- फ़ॉर्मैट क्लिक करें ताकि fast-xml-parser के माध्यम से राउंड-ट्रिप होकर इंडेंटेड XML निकले।
- वैलिडेट क्लिक करें इनपुट संशोधित किए बिना well-formedness जांचने के लिए।
- त्रुटियाँ दस्तावेज़ में गलत स्थिति की ओर इशारा करती हैं।
यह क्या करता है?
fast-xml-parser के साथ XML पार्स करता है और सुसंगत इंडेंटेशन के साथ इसे फिर से एमिट करता है। प्रत्येक एलिमेंट के भीतर एट्रिब्यूट क्रम सुरक्षित है; एलिमेंट नेस्टिंग बिल्कुल वैसी ही सुरक्षित है। मिश्रित सामग्री (टेक्स्ट + चाइल्ड एलिमेंट) और नेमस्पेस (prefix:tag) अक्षुण्ण रहते हैं। आउटपुट well-formed XML है — पर well-formed valid के बराबर नहीं (वैलिडिटी के लिए schema या DTD चाहिए, जिसे यह टूल जांचता नहीं)।
उदाहरण
अव्यवस्थित XML इनपुट:
<root version="1"><name>Ada</name><tags>math</tags><tags>logic</tags></root> फ़ॉर्मैट किया आउटपुट:
<root version="1">
<name>Ada</name>
<tags>math</tags>
<tags>logic</tags>
</root> सामान्य XML त्रुटियाँ और कैसे ठीक करें
XML के well-formedness नियम HTML से सख़्त हैं। नीचे के पैटर्न ज़्यादातर पार्सर विफलताओं को कवर करते हैं।
- बिना बंद किया टैग। `<a><b></a>` अमान्य है — `<b>` को कहीं बंद होना चाहिए (`<b/>` या `</b>`)। XML HTML-शैली के वैकल्पिक क्लोज़ टैग की अनुमति नहीं देता।
- बेमेल केस। XML केस-सेंसिटिव है — `<Foo></foo>` दो अलग टैग नाम हैं। केस को बिल्कुल मिलाएँ।
- अनएस्केप विशेष अक्षर। टेक्स्ट या एट्रिब्यूट मान के अंदर लिटरल `<`, `>`, `&`, या उद्धरण को एस्केप करना ज़रूरी है: `<`, `>`, `&`, `"`। ऐसे अक्षरों वाले डेटा को CDATA में लपेटें: `<![CDATA[...]]>`।
- अनेक रूट। XML को ठीक एक रूट एलिमेंट चाहिए। टॉप लेवल पर `<a/><b/>` अमान्य है — उन्हें लपेटें: `<root><a/><b/></root>`।
- अमान्य एलिमेंट नाम। एलिमेंट नाम अंक से शुरू नहीं हो सकते, स्पेस नहीं हो सकती, या आरक्षित अक्षर (`< > & " \'`) नहीं हो सकते। `xml` (किसी भी केस में) से शुरू होने वाले नाम स्पेक द्वारा आरक्षित हैं।
- एट्रिब्यूट के चारों ओर बेमेल कोट। `<a name="value\'>` डबल और सिंगल कोट्स मिलाता है। प्रति एट्रिब्यूट एक शैली लगातार चुनें। दोनों मान्य XML हैं।
अक्सर पूछे जाने वाले प्रश्न
क्या फ़ॉर्मैटिंग मेरा डेटा बदलती है?
केवल एलिमेंट्स के बीच का व्हाइटस्पेस। एलिमेंट क्रम, एट्रिब्यूट क्रम, एट्रिब्यूट मान, टेक्स्ट सामग्री और CDATA रैपिंग सुरक्षित हैं। सेल्फ-क्लोज़िंग रूप (`<x/>`) और स्पष्ट रूप (`<x></x>`) सामान्यीकृत हो सकते हैं।
क्या XML टिप्पणियाँ सुरक्षित हैं?
fast-xml-parser डिफ़ॉल्ट से टिप्पणियाँ हटा देता है। यदि आपको टिप्पणी-संरक्षित फ़ॉर्मैटिंग चाहिए, तो एक भिन्न टूल (उदा. XSLT आइडेंटिटी ट्रांसफ़ॉर्म, या `xmllint --format`) का उपयोग करें।
क्या यह स्कीमा के विरुद्ध सत्यापित करता है?
नहीं। यह केवल well-formedness जांचता है — कि दस्तावेज़ सिंटैक्स के अनुसार वैध XML के रूप में पार्स होता है। स्कीमा सत्यापन (XSD, DTD, RelaxNG) एक अलग कदम है जिसके लिए स्कीमा को अतिरिक्त इनपुट के रूप में चाहिए।
नेमस्पेस कैसे संभाले जाते हैं?
नेमस्पेस प्रीफ़िक्स एलिमेंट नाम (`x:foo`) के हिस्से के रूप में रखे जाते हैं। डिफ़ॉल्ट नेमस्पेस घोषणाएँ और प्रीफ़िक्स बाइंडिंग एट्रिब्यूट के रूप में सुरक्षित हैं। नेमस्पेस-जागरूक प्रसंस्करण (URI रिज़ॉल्यूशन) नहीं किया जाता।
क्या मेरा XML अपलोड होता है?
नहीं। सब कुछ आपके ब्राउज़र में चलता है — आपका इनपुट इस पेज के JavaScript द्वारा पार्स और पुनः-सीरियलाइज़ होता है और कभी किसी सर्वर पर नहीं भेजा जाता।
क्या मैं इंडेंटेशन को कस्टमाइज़ कर सकता हूँ?
वर्तमान में प्रति स्तर 2 स्पेस पर तय। कस्टमाइज़ करने के लिए, कमांड लाइन पर fast-xml-parser चलाएँ — वही लाइब्रेरी — और `{ indentBy: " " }` या कोई अन्य स्ट्रिंग पास करें।