XML फ़ॉर्मेटर

XML पेस्ट करें और वह खुद सज जाता है — टेक्स्ट और एट्रिब्यूट अछूते रहते हैं।

इसका उपयोग कैसे करें

  1. अपना XML बॉक्स में पेस्ट करें — यह टाइप करते ही फ़ॉर्मेट होता है, कोई बटन नहीं दबाना है।
  2. फ़ॉर्मेट या मिनिफ़ाई चुनें, और इंडेंटेशन के लिए 2 या 4 स्पेस; परिणाम तुरंत अपडेट होता है।
  3. अगर संरचना टूटी है, तो संदेश पंक्ति, कॉलम और एलिमेंट बताता है। परिणाम कॉपी करें या .xml फ़ाइल के रूप में डाउनलोड करें।

उदाहरण

इनपुट

<?xml version="1.0" encoding="UTF-8"?><order id="A-1042"><customer><name>Ada Lovelace</name><email>ada@example.com</email></customer><items><item sku="X-1" qty="2">Analytical Engine gear</item><item sku="X-2" qty="1">Punch card set</item></items></order>

फ़ॉर्मेट किया गया

<?xml version="1.0" encoding="UTF-8"?>
<order id="A-1042">
  <customer>
    <name>Ada Lovelace</name>
    <email>ada@example.com</email>
  </customer>
  <items>
    <item sku="X-1" qty="2">Analytical Engine gear</item>
    <item sku="X-2" qty="1">Punch card set</item>
  </items>
</order>

केवल डिफ़ॉल्ट नियम: हर पंक्ति में एक एलिमेंट, हर स्तर पर दो स्पेस। एट्रिब्यूट क्रम, कोट और मान अछूते हैं, और <name> के अंदर का टेक्स्ट भी।

नियम, सीमाएँ और ज्ञात समस्याएँ

  • सिर्फ़ संरचना जाँच: टैग जोड़ी, एट्रिब्यूट कोट/डुप्लीकेट/अलगाव, एलिमेंट और एट्रिब्यूट नाम, एंटिटी सिंटैक्स। कोई DTD या XSD वैलिडेशन नहीं, कोई एंटिटी विस्तार नहीं, कोई नेमस्पेस-प्रीफ़िक्स बाइंडिंग जाँच नहीं।
  • सिर्फ़ स्ट्रक्चरल व्हाइटस्पेस दोबारा लिखा जाता है — एट्रिब्यूट के बीच का व्हाइटस्पेस और वह व्हाइटस्पेस जो बिना टेक्स्ट वाला एलिमेंट बनाता है। एट्रिब्यूट क्रम, कोट शैली, मान, एंटिटी, कमेंट, CDATA और DOCTYPE का आंतरिक उपसमुच्चय अक्षर-दर-अक्षर कॉपी होते हैं।
  • मिश्रित सामग्री कभी दोबारा इंडेंट नहीं होती: <p>Hi <b>there</b>!</p> में स्पेसिंग जैसी टाइप की गई वैसी रहती है, क्योंकि लाइन ब्रेक जोड़ने से टेक्स्ट बदल जाता। यही xml:space="preserve" पर भी लागू होता है, जो जैसा है वैसा कॉपी होता है।
  • खाली एलिमेंट आपके टाइप किए रूप में रहते हैं: <a></a> को <a/> में नहीं सिकोड़ा जाता, और <a/> को फैलाया नहीं जाता। एट्रिब्यूट क्रमबद्ध नहीं होते और कोट एक जैसे नहीं किए जाते।
  • मिनिफ़ाई सिर्फ़ स्ट्रक्चरल व्हाइटस्पेस हटाता है। टेक्स्ट का व्हाइटस्पेस, कमेंट, CDATA और DOCTYPE रखे जाते हैं — आपकी सामग्री से कुछ नहीं हटता।
  • इनपुट के बिल्कुल अंत में अनबंद टैग, कमेंट, CDATA या DOCTYPE चेतावनी है, त्रुटि नहीं: परिणाम फिर भी मिलता है। असली ग़लतियाँ (मेल न खाते टैग, बिना कोट के एट्रिब्यूट मान, भटका हुआ "&") पंक्ति और कॉलम के साथ त्रुटियाँ हैं।
  • फ़्रैगमेंट (कई टॉप-लेवल एलिमेंट, या रूट के बाहर टेक्स्ट) फ़्रैगमेंट के रूप में फ़ॉर्मेट और सूचित होता है। बिना किसी एलिमेंट वाला इनपुट त्रुटि है।
  • पंक्ति और कॉलम संख्याएँ Unicode कोड पॉइंट गिनती हैं, इसलिए एक इमोजी एक कॉलम है। सिर्फ़ स्पेस, टैब, लाइन फ़ीड और कैरिज रिटर्न व्हाइटस्पेस गिने जाते हैं; टेक्स्ट के अंदर U+3000 या U+00A0 सामग्री है और कभी नहीं हटता।
  • HTML नहीं: </li> या <br> जैसे छोड़े गए अंत टैग अनबंद बताए जाते हैं। कोई फ़ाइल अपलोड नहीं, URL पैरामीटर नहीं, इतिहास नहीं, ट्री व्यू नहीं, XML→JSON नहीं। सब कुछ आपके ब्राउज़र में चलता है: कुछ अपलोड या संग्रहीत नहीं होता।
  • 2,00,000 कैरेक्टर से ऊपर परिणाम टाइप करना रोकने के लगभग 0.6 s बाद अपडेट होता है; टेक्स्ट कभी काटा नहीं जाता। आउटपुट LF का उपयोग करता है और अंत में नया लाइन ब्रेक नहीं होता; फ़ॉर्मेटिंग इडेम्पोटेंट है।

संरचना पढ़ने योग्य हो जाने के बाद लोग आमतौर पर यह चाहते हैं।