आँकड़ों और विज्ञापन के लिए कुकीज़
हम आँकड़ों और विज्ञापन के लिए कुकीज़ इस्तेमाल करते हैं, दोनों Google को जाती हैं। मना करने से आपको दिखने वाली किसी चीज़ में कोई फ़र्क़ नहीं पड़ता।निजता पेज पढ़ें
यहाँ आप XML को TOML में बदलते हैं, मुफ़्त और बिना खाते के: फ़ाइल ऊपर छोड़िए और कुछ ही सेकंड में नतीजा डाउनलोड के लिए तैयार मिलेगा। कन्वर्ज़न आपके अपने ब्राउज़र के भीतर होता है, इसलिए फ़ाइल कभी अपलोड नहीं होती। यह Windows, macOS और Linux पर वैसे ही चलता है जैसे iPhone और Android पर, और कनेक्शन काट देने पर भी चलता रहता है।
एक बार में 100 फ़ाइलें। फ़ॉर्मेट अलग-अलग हों तो भी चलेगा।
ये एक के बाद एक बदलती हैं और साथ में एक ZIP बनकर उतरती हैं।
XML से TOML
बच्चों वाला हर एलिमेंट एक टेबल बनता है, बिंदुओं से नाम जोड़े कोष्ठक-सिर के तौर पर लिखा। तीन स्तर नीचे कोई एलिमेंट एक ही हेडर में तीन नाम रखने वाला एक हेडर बनाता है, क्योंकि TOML गहराई इंडेंटेशन में नहीं, हेडर में दिखाता है।
हर टेबल के भीतर, सादे मूल्य पहले आते हैं और नेस्टेड टेबल बाद में — TOML इसी क्रम की इजाज़त देता है। इसका मतलब है आउटपुट XML जैसे क्रम में नहीं पढ़ता। यह पुनर्व्यवस्था है, बदलाव नहीं: कोई मूल्य अलग रास्ते नहीं जाता।
बदलाव का यह हिस्सा बिना मरम्मत के काम करता है। एक ही टैग वाले दो या ज़्यादा भाई-बहन एलिमेंट TOML टेबल की सूची बनते हैं, दोहरे-कोष्ठक हेडर के साथ, दस्तावेज़ के क्रम में एक बार प्रति आइटम।
पुराना XML संकेत नीचे लागू रहता है। दोहराए जा सकने वाले एलिमेंट की एक ही घटना सूची नहीं बनती, वह सिंगल-ब्रैकेट हेडर वाला सादा टेबल बनती है। किसी फ़ाइल को एक एंट्री और दो एंट्री के साथ बदलिए, आउटपुट संरचनात्मक रूप से अलग होगा।
TOML बेयर कुंजी अक्षर, अंक, अंडरस्कोर और हाइफ़न ही अनुमति देती हैं। एट्रिब्यूट @ से शुरू होने वाली कुंजी बनकर आते हैं, एलिमेंट का अपना पाठ #text नाम की कुंजी बनकर आता है — दोनों उद्धृत होते हैं।
ये एक टू-डू सूची भी हैं। उद्धृत कुंजी यह बताती है कि यह नाम XML मशीनरी से आया, आपके कॉन्फ़िगरेशन से नहीं, और लगभग हर एक का नाम बदला जाना चाहिए: @value एट्रिब्यूट सादी value कुंजी बनती है।
TOML दस्तावेज़ ख़ुद एक टेबल है, और XML दस्तावेज़ का ठीक एक root होता है, तो पूरा कॉन्फ़िग root के नाम वाले एक हेडर के भीतर एक स्तर गहराई पर दिखता है।
सामग्री को ऊपर लाना यांत्रिक संपादन है: पहला हेडर हटा दीजिए और हर बाक़ी हेडर से वह हिस्सा हटा दीजिए। यह करने लायक़ है क्योंकि कॉन्फ़िग में हर रास्ता एक स्तर छोटा हो जाता है।
TOML में कोई null मूल्य नहीं है, और YAML जैसे प्रारूपों से बदलने पर मूल्य ख़ाली होने पर कुंजियाँ चुपचाप ग़ायब हो जाती हैं। यहाँ ऐसा नहीं होता, क्योंकि XML में भी null नहीं है।
तो इस दिशा की गारंटी अपने पड़ोसियों से मज़बूत है: XML में मूल्य रखने वाले हर एलिमेंट की TOML में एक कुंजी है। लंबी फ़ाइल में ख़ाली स्ट्रिंग नज़रअंदाज़ होना आसान है।
TOML कोर विनिर्देश में तारीख़ और समय रखता है, और पार्सर उन्हें स्ट्रिंग की बजाय तारीख़ के तौर पर लौटाता है। XML मूल्य पाठ है, तो स्रोत में तारीख़ उद्धृत स्ट्रिंग बनकर आती है और वही रहती है।
उल्टा मामला भी देखने लायक़ है: XML में 1.0 लिखा मूल्य संख्या के तौर पर पार्स होकर TOML पूर्णांक 1 बनकर लिखा जाता है, तो कोई वर्ज़न पूर्णांक बनकर अपना रूप खो देता है।
कई पंक्तियाँ रखने वाला एलिमेंट — कोई विवरण, कोई एम्बेड स्क्रिप्ट — एक ही TOML बेसिक स्ट्रिंग बनती है जिसमें न्यूलाइन की जगह \n एस्केप होते हैं। यह सही है और यह अपठनीय है।
TOML के पास तिहरे उद्धरण वाला बहु-पंक्ति स्ट्रिंग सिंटैक्स है जो ऐसे मूल्य को पठनीय रखता है, और लेखक उसका इस्तेमाल नहीं करता। एस्केप वाले मूल्य ढूँढिए और हर एक को तिहरे-उद्धरण ब्लॉक में दोबारा लिखिए।
टिप्पणियाँ छूट जाती हैं, भले दोनों प्रारूप उन्हें समर्थन देते हैं, तो पुरानी फ़ाइल की व्याख्या नई में नहीं आती। नेमस्पेस जैसे ही उपसर्ग किसी कुंजी में अक्षर बनते हैं, वे कुछ मतलब रखना बंद कर देते हैं।
यह वह व्यापार है जो सोच-समझकर करना चाहिए। TOML पढ़ने में आसान है, हाथ से लिखने में आसान है, और टाइप के बारे में स्पष्ट है, और यह किसी बदशक्ल कॉन्फ़िग को यांत्रिक रूप से अस्वीकार करने की क्षमता छोड़ देता है।
औज़ार जो देता है वह है XML का हर मूल्य, सही टेबल में, ज़्यादातर मामलों में सही नाम के साथ और बाक़ी में स्पष्ट रूप से ग़लत, उद्धृत नाम के साथ। यह अच्छी शुरुआत है, तैयार कॉन्फ़िग फ़ाइल नहीं।
बाक़ी काम छोटा और ज़रूरी है: root टेबल हटाइए, @ और #text कुंजियों का नाम बदलिए, तारीख़ें अनक्वोट कीजिए, बहु-पंक्ति मूल्य दोबारा लिखिए, और मूल से टिप्पणियाँ कॉपी कीजिए।
| XML | TOML | |
|---|---|---|
| पूरा नाम | Extensible Markup Language | Tom's Obvious Minimal Language |
| फ़ाइल एक्सटेंशन | .xml | .toml |
| मीडिया टाइप | application/xml | application/toml |
| पहली बार प्रकाशित | 1998 | 2013 |
| प्रकाशक | W3C | — |
| विनिर्देश | XML 1.0 | TOML 1.0 |
| लाइसेंस | खुला मानक | खुला मानक |
| आज की स्थिति | मौजूदा | मौजूदा |
| ब्राउज़र में खुलता है | हर ब्राउज़र | कोई ब्राउज़र नहीं |
| इसकी जगह विचारणीय | JSON, YAML | YAML, JSON, INI |
टिप्पणियाँ साथ जाती हैं। XML और TOML — दोनों में टिप्पणी की वाक्य-रचना है, इसलिए बाद में फ़ाइल सँभालने वाले के लिए छोड़े गए नोट चुपचाप ग़ायब नहीं होते।
TOML को कोई भी ब्राउज़र नहीं पढ़ता। इस लिहाज़ से दोनों में यही कम जगह चलने वाला है। भेजने से पहले देख लीजिए कि पाने वाला इसे लेता भी है या नहीं।
Visual Studio Code XML और TOML — दोनों पढ़ लेता है, इसलिए आप नतीजे को असली फ़ाइल के बग़ल में रखकर देख सकते हैं, बिना दूसरा प्रोग्राम खोले।
दोनों का निशाना अलग काम है: XML का प्रोग्रामों के बीच डेटा ले जाना पर, TOML का एडिटिंग पर। इस पर सोचना बनता है, क्योंकि जिस वजह से एक मौजूद है, आम तौर पर उसी वजह से दूसरा असुविधाजनक होता है।
XML W3C का फ़ॉर्मेट है, जो 1998 में आया। यह XML 1.0 में तय किया गया है, और अगर फ़ाइल को उस औज़ार से ज़्यादा जीना है जिसने उसे लिखा, तो यह बात क़ीमती है।
TOML 2013 से चला आ रहा है, और TOML 1.0 में तय किया गया है। Visual Studio Code इस फ़ॉर्मेट को पढ़ लेता है।
XML 1998 में आया और TOML 2013 में। किसी को सौंपने के लिए आम तौर पर पुराना वाला ज़्यादा सुरक्षित रहता है; नया वाला वही काम कम बाइट में कर देता है।
नहीं। यह कन्वर्ज़न पूरी तरह आपके ब्राउज़र में होता है, इसलिए फ़ाइल आपके डिवाइस से बाहर नहीं जाती। आप ख़ुद जाँच सकते हैं: डेवलपर टूल्स का नेटवर्क टैब खोलिए और कुछ बदल कर देखिए। आपको पेज ख़ुद दिखेगा और आँकड़ों तथा विज्ञापन के वे अनुरोध दिखेंगे जिनसे इस सेवा का ख़र्च निकलता है — और एक भी ऐसा अनुरोध नहीं जो आपकी फ़ाइल साथ ले जा रहा हो।
हाँ। न खाता, न वॉटरमार्क, और न कोई रोज़ का कोटा जो ख़त्म हो: यह आपकी अपनी मशीन पर चलता है, इसलिए आप जितनी बार चाहें लौट सकते हैं। ब्राउज़र 100 MB तक की फ़ाइलें सँभालता है, एक बार में 100।
XML और TOML सामग्री का वर्णन बुनियादी तौर पर अलग-अलग तरीक़ों से करते हैं। इसलिए यह कन्वर्ज़न नक़ल नहीं, पुनर्निर्माण है: ईमानदार, पर बाइट-दर-बाइट एक जैसा नहीं। XML के गुण और लिखावट वाली गाँठें — दोनों कुंजी बन जाते हैं, और यह फ़ैसला कन्वर्टर आपकी जगह ख़ुद करता है।
TOML को कोई भी ब्राउज़र नहीं पढ़ता। इस लिहाज़ से दोनों में यही कम जगह चलने वाला है। भेजने से पहले देख लीजिए कि पाने वाला इसे लेता भी है या नहीं।