आँकड़ों और विज्ञापन के लिए कुकीज़
हम आँकड़ों और विज्ञापन के लिए कुकीज़ इस्तेमाल करते हैं, दोनों Google को जाती हैं। मना करने से आपको दिखने वाली किसी चीज़ में कोई फ़र्क़ नहीं पड़ता।निजता पेज पढ़ें
यहाँ आप YAML को XML में बदलते हैं, मुफ़्त और बिना खाते के: फ़ाइल ऊपर छोड़िए और कुछ ही सेकंड में नतीजा डाउनलोड के लिए तैयार मिलेगा। कन्वर्ज़न आपके अपने ब्राउज़र के भीतर होता है, इसलिए फ़ाइल कभी अपलोड नहीं होती। यह Windows, macOS और Linux पर वैसे ही चलता है जैसे iPhone और Android पर, और कनेक्शन काट देने पर भी चलता रहता है।
एक बार में 100 फ़ाइलें। फ़ॉर्मेट अलग-अलग हों तो भी चलेगा।
ये एक के बाद एक बदलती हैं और साथ में एक ZIP बनकर उतरती हैं।
YAML से XML
हर कुंजी एक एलिमेंट बनती है और उसका मूल्य उस एलिमेंट की सामग्री बनता है। नेस्टेड मैपिंग नेस्टेड एलिमेंट बनती है, प्रति स्तर दो स्पेस इंडेंट के साथ, और कोई स्केलर टैग के बीच पाठ बन जाता है।
मूल्य पाठ के तौर पर लिखे जाते हैं, क्योंकि XML एलिमेंट यही रख सकता है। 1.50 लिखा YAML नंबर 1.5 बनकर आता है, क्योंकि पार्सर इसे नंबर मानकर सुलझा चुका था इससे पहले कि लेखक इसे देखे।
XML को ठीक एक बाहरी एलिमेंट चाहिए और YAML दस्तावेज़ में कई शीर्ष-स्तर कुंजियाँ हो सकती हैं। नियम है: एक शीर्ष-स्तर कुंजी root बनती है, जब तक वह सूची न रखे।
सूची रखने वाली अकेली शीर्ष-स्तर कुंजी वह मामला है जो लोगों को चौंकाता है। इसे भी सामान्य आवरण मिलता है, क्योंकि कुंजी को root बनाना उस टैग को हर आइटम पर दोहरा देता और कई बाहरी एलिमेंट वाला दस्तावेज़ छोड़ता।
किसी कुंजी के नीचे YAML क्रम उस कुंजी को प्रति आइटम एक बार उगलता है। तीन बिल्ड कमांड script कुंजी के नीचे तीन script एलिमेंट क्रम में, एक-दूसरे के भाई-बहन बनते हैं। यही पुराना और ज़्यादा आम XML मुहावरा है।
यह इकलौता मुहावरा नहीं है। बहुत सी स्कीमा एकवचन बच्चों को रखने वाला बहुवचन आवरण चाहती हैं। यह पाने के लिए YAML को वैसा लिखना पड़ता है — स्रोत में नेस्टिंग ही आउटपुट में नेस्टिंग बनाती है।
सिर्फ़-एलिमेंट वाली XML डेटा के लिए ठीक है और ज़्यादातर असली स्कीमा के लिए ग़लत, जो पहचानकर्ता, टाइप और भाषा कोड एट्रिब्यूट में रखते हैं। दो कुंजी नाम आपको नियंत्रण देते हैं। @ से शुरू होने वाली कुंजी एट्रिब्यूट बनती है, #text नाम की कुंजी एलिमेंट का अपना पाठ बनती है।
दोनों कुंजियों को YAML में उद्धृत करना पड़ता है, क्योंकि सादे स्केलर की शुरुआत में @ आरक्षित है और # टिप्पणी शुरू कर देता है।
XML एलिमेंट नाम अक्षर, अंक, अंडरस्कोर, हाइफ़न और बिंदु देते हैं, अंक से शुरुआत नहीं। YAML कुंजी लगभग कुछ भी अनुमति देती है। लेखक जो अक्षर इस्तेमाल नहीं कर सकता वह अंडरस्कोर बन जाता है।
यह बदलाव जानकारी खो सकता है और टकरा सकता है: दो अलग वर्जित अक्षर रखने वाली कुंजियाँ एक ही एलिमेंट नाम पर आ सकती हैं। हाइफ़न और बिंदु बिना बदले पार जाते हैं।
कोई XML घोषणा नहीं, तो फ़ाइल पहले टैग से शुरू होती है। कोई DOCTYPE नहीं, कोई नेमस्पेस घोषणा नहीं, कोई स्कीमा संदर्भ नहीं। आउटपुट UTF-8 और सुव्यवस्थित है, और उसमें कुछ भी यह नहीं बताता कि यह किस शब्दावली का है।
किसी इंटीग्रेशन के लिए यह आम तौर पर हाथ से भरने लायक़ अंतर है, और छोटा है: घोषणा की लाइन, root पर xmlns एट्रिब्यूट, और स्कीमा स्थान।
बिना मूल्य वाली YAML कुंजी ख़ाली एलिमेंट जोड़ा बनती है। XML इसे किसी ख़ाली-स्ट्रिंग रखने वाले एलिमेंट से अलग नहीं कर सकता, तो अगर स्कीमा «अनुपस्थित» और «ख़ाली» को अलग मानती है, YAML से कुंजी हटा दीजिए।
एम्परसैंड, कोणीय कोष्ठक और दोहरे उद्धरण चिह्न किसी मूल्य में एस्केप होते हैं, तो क्वेरी पैरामीटर वाला URL या कोड का टुकड़ा दस्तावेज़ तोड़े बिना सुरक्षित पार जाता है।
XML 1998 से W3C सिफ़ारिश है, और JSON की बजाय इसे उगलने की वजह लगभग हमेशा पर्यावरण है, वाक्य-रचना नहीं: दस्तावेज़ को अस्वीकार करने के लिए XSD, एक मूल्य निकालने के लिए XPath।
इनमें से कुछ भी बदलाव के साथ मुफ़्त नहीं आता। पाइपलाइन बनाने से पहले पहली फ़ाइल पर आउटपुट को स्कीमा के ख़िलाफ़ तुरंत चलाइए — जो एलिमेंट एट्रिब्यूट होना चाहिए था वह YAML में दो-अक्षर का बदलाव है।
दो स्रोत समस्याएँ बदलाव को घटाने की बजाय रोक देती हैं। --- अलगाव रखने वाली फ़ाइल कई YAML दस्तावेज़ रखती है, और XML फ़ाइल एक रखती है, तो पार्सर चुनने की बजाय मना कर देता है।
एक ही मैपिंग में दोहरी कुंजी भी अस्वीकार होती है, लाइन नंबर के साथ, जो कुछ YAML औज़ारों से सख़्त और सही है। टिप्पणियाँ कुछ नहीं रोकतीं और बचती भी नहीं।
| YAML | XML | |
|---|---|---|
| पूरा नाम | YAML Ain't Markup Language | Extensible Markup Language |
| फ़ाइल एक्सटेंशन | .yaml, .yml | .xml |
| मीडिया टाइप | application/yaml | application/xml |
| पहली बार प्रकाशित | 2001 | 1998 |
| प्रकाशक | — | W3C |
| विनिर्देश | YAML 1.2 | XML 1.0 |
| लाइसेंस | खुला मानक | खुला मानक |
| आज की स्थिति | मौजूदा | मौजूदा |
| ब्राउज़र में खुलता है | कोई ब्राउज़र नहीं | हर ब्राउज़र |
| इसकी जगह विचारणीय | JSON, TOML | JSON |
कुछ नहीं खोता। YAML और XML — दोनों अपनी सामग्री बिना नुक़सान सँभालते हैं: यह कन्वर्ज़न पैकिंग बदलता है, गुणवत्ता नहीं, और आप इसे दोहरा सकते हैं बिना इस डर के कि नुक़सान जमा होता जाएगा।
टिप्पणियाँ साथ जाती हैं। YAML और XML — दोनों में टिप्पणी की वाक्य-रचना है, इसलिए बाद में फ़ाइल सँभालने वाले के लिए छोड़े गए नोट चुपचाप ग़ायब नहीं होते।
XML को हर मौजूदा ब्राउज़र खोल लेता है। YAML को इतने भी नहीं। अगर फ़ाइल किसी वेब पेज या किसी फ़ॉर्म तक जा रही है, तो आम तौर पर इस कन्वर्ज़न की पूरी वजह यही है।
Visual Studio Code YAML और XML — दोनों पढ़ लेता है, इसलिए आप नतीजे को असली फ़ाइल के बग़ल में रखकर देख सकते हैं, बिना दूसरा प्रोग्राम खोले।
YAML 2001 में आया। यह YAML 1.2 में तय किया गया है, और अगर फ़ाइल को उस औज़ार से ज़्यादा जीना है जिसने उसे लिखा, तो यह बात क़ीमती है।
XML W3C का है और 1998 से चला आ रहा है, और XML 1.0 में तय किया गया है। Visual Studio Code और oXygen XML Editor इस फ़ॉर्मेट को पढ़ लेते है।
नहीं। यह कन्वर्ज़न पूरी तरह आपके ब्राउज़र में होता है, इसलिए फ़ाइल आपके डिवाइस से बाहर नहीं जाती। आप ख़ुद जाँच सकते हैं: डेवलपर टूल्स का नेटवर्क टैब खोलिए और कुछ बदल कर देखिए। आपको पेज ख़ुद दिखेगा और आँकड़ों तथा विज्ञापन के वे अनुरोध दिखेंगे जिनसे इस सेवा का ख़र्च निकलता है — और एक भी ऐसा अनुरोध नहीं जो आपकी फ़ाइल साथ ले जा रहा हो।
हाँ। न खाता, न वॉटरमार्क, और न कोई रोज़ का कोटा जो ख़त्म हो: यह आपकी अपनी मशीन पर चलता है, इसलिए आप जितनी बार चाहें लौट सकते हैं। ब्राउज़र 100 MB तक की फ़ाइलें सँभालता है, एक बार में 100।
नहीं। XML वही सामग्री बिना कुछ फेंके सँभालता है: नतीजा गुणवत्ता में असली फ़ाइल जैसा ही होता है।
कुछ नहीं खोता। YAML और XML — दोनों अपनी सामग्री बिना नुक़सान सँभालते हैं: यह कन्वर्ज़न पैकिंग बदलता है, गुणवत्ता नहीं, और आप इसे दोहरा सकते हैं बिना इस डर के कि नुक़सान जमा होता जाएगा।