XML को YAML में बदलें

यहाँ आप XML को YAML में बदलते हैं, मुफ़्त और बिना खाते के: फ़ाइल ऊपर छोड़िए और कुछ ही सेकंड में नतीजा डाउनलोड के लिए तैयार मिलेगा। कन्वर्ज़न आपके अपने ब्राउज़र के भीतर होता है, इसलिए फ़ाइल कभी अपलोड नहीं होती। यह Windows, macOS और Linux पर वैसे ही चलता है जैसे iPhone और Android पर, और कनेक्शन काट देने पर भी चलता रहता है।

  • कहाँ चलता है आपके ब्राउज़र में। फ़ाइल कभी अपलोड नहीं होती।
  • नए सिरे से बना YAML के काम करने का तरीक़ा XML से अलग है। यह किसी लॉसी कोडेक जैसा धीरे-धीरे होने वाला नुक़सान नहीं है: YAML जो कुछ व्यक्त कर सकता है, वह हूबहू उतर आता है — और जिसका वहाँ कोई समतुल्य नहीं, वह पूरी तरह रह जाता है।
  • फ़ाइल आकार की सीमा हर फ़ाइल 100 MB तक, मुफ़्त, बिना खाते के।
  • जानने लायक़ XML के गुण और लिखावट वाली गाँठें — दोनों कुंजी बन जाते हैं, और यह फ़ैसला कन्वर्टर आपकी जगह ख़ुद करता है।

एक बार में 100 फ़ाइलें। फ़ॉर्मेट अलग-अलग हों तो भी चलेगा।

बंद टैग हटते ही pom.xml कैसी दिखती है

XML अपने आधे अक्षर बस यह बताने में लगाता है कि कोई एलिमेंट कहाँ ख़त्म होता है। YAML यही इंडेंटेशन से कहता है, इसलिए वही दस्तावेज़ काफ़ी छोटा आता है और हर नेस्टिंग-स्तर स्कैन करने के लिए किसी जोड़ी की बजाय एक दृश्य क़दम भर है। किसी Maven pom या web.config पर यही स्क्रोल करने और पढ़ने के बीच का फ़र्क़ है।

संरचना नहीं बदलती। हर एलिमेंट की बन जाता है, उसके बच्चे उसके नीचे mapping बनते हैं, और पाठ मान बन जाता है। कुछ भी दोबारा क्रमबद्ध नहीं होता और कुछ भी संक्षेप नहीं किया जाता — जो आप देख रहे हैं वह विराम-चिह्न हटा हुआ वही दस्तावेज़ है।

जो कीज़ कोट में आती हैं, और वे क्यों आनी चाहिए

Attributes @ लगे उपसर्ग वाली कीज़ बनकर आते हैं, और जो एलिमेंट attributes और पाठ दोनों रखता है वह पाठ को #text की के तहत रखता है। दोनों कोट में लिखे जाते हैं, क्योंकि YAML @ को किसी plain scalar की शुरुआत में आरक्षित संकेतक मानता है और # को टिप्पणी की शुरुआत।

यह शोर जैसा दिखता है और सही होना ही है। फ़ाइल हाथ से संपादित करते समय वे कोट रखिए: हटाने पर YAML या तो पार्स होना बंद कर देती है, या #text के मामले में लाइन का बाक़ी हिस्सा चुपचाप टिप्पणी बन जाता है और मान खो जाता है।

YAML का इस्तेमाल किसी कॉन्फ़िग के दो वर्शन diff करने के लिए

यही बदलने की सबसे मज़बूत वजह है। XML को diff करना परेशान करने वाला है क्योंकि एक स्तर गहरा बदलाव कई लाइन-टैग के रूप में दिखता है, और किसी औज़ार से दोबारा-फ़ॉर्मेट करना पूरी फ़ाइल फिर से लिख देता है। दोनों वर्शन बदलकर YAML को diff करना बदले मान अपनी लाइन पर उनके ऊपर की-पथ के साथ दिखाता है।

एक चेतावनी सब कुछ तय करती है। चूँकि एक दोहराया एलिमेंट mapping बनता है और दो एलिमेंट सूची बनते हैं, दूसरी निर्भरता जोड़ने वाला वर्शन उस शाखा का आकार बदल देता है, सिर्फ़ सामग्री नहीं — यानी diff पूरा ब्लॉक फिर से लिखा हुआ दिखाता है।

नेमस्पेस उपसर्ग, और की के भीतर का कोलन

उपसर्ग की-नाम का हिस्सा बनकर बचे रहते हैं, इसलिए soap: या xsi: इस्तेमाल करने वाला दस्तावेज़ कोलन वाली कीज़ बनाता है। लेखक उन्हें बिना कोट लिखता है, और वे उसी पार्सर से वापस सही पढ़ी जाती हैं। नेमस्पेस-घोषणाएँ ख़ुद attribute के रूप में बचती हैं।

किसी की के भीतर का कोलन फ़ाइल भेजने से पहले हाथ से ठीक करने लायक़ है। YAML किसी और औज़ार से पढ़ी जाने वाली हो तो उन कीज़ को ख़ुद कोट कर दीजिए। कुछ भी उपसर्ग को उसके नेमस्पेस URI में नहीं सुलझाता।

क्या स्ट्रिंग रहता है और क्या चुपचाप संख्या बन जाता है

संख्या जैसे दिखने वाले मान पार्स होते हैं, एलिमेंट-पाठ और attribute दोनों में। Maven का वर्शन 4.13.2 स्ट्रिंग ही रहता है, क्योंकि उसमें दो बिंदु हैं और वह संख्या नहीं हो सकता। 1.0 लिखा गया version attribute 1 बन जाता है, और 007 जैसा शून्य-पैडेड मान 7 बन जाता है।

सिर्फ़ इंसान की आँख से पढ़ी जाने वाली कॉन्फ़िग पर नुक़सान इतना ही है कि वह कैसी दिखती है, और यह अब भी मायने रखता है — किसी रिव्यू में 1.0 की जगह 1 दिखना कुछ सवाल खड़ा करता है या ग़लत कॉपी हो जाता है।

लंबे मान, कई-लाइन पाठ और ख़ाली एलिमेंट

नई-लाइन वाला मान ब्लॉक स्केलर के रूप में लिखा जाता है — pipe चिह्न और उसके नीचे इंडेंट पाठ — जो उसे escape करने की बजाय पढ़ने लायक़ रखता है। बिना नई-लाइन वाला लंबा एक-लाइन मान बिना लपेटे ही जस का तस लिखा जाता है।

ख़ाली या self-closing एलिमेंट ख़ाली स्ट्रिंग बन जाता है, कोट की एक जोड़ी के रूप में लिखा। XML में ख़ाली एलिमेंट और कुछ न होने वाले एलिमेंट में फ़र्क़ नहीं होता, इसलिए कुछ खोता नहीं, पर लंबी फ़ाइल में ख़ाली स्ट्रिंग नज़र से आसानी से छूट जाती है।

वे टिप्पणियाँ जो यह कन्वर्ज़न मिटा देता है

XML टिप्पणियों का समर्थन करता है, YAML भी करता है, और आपकी कोई भी नहीं बचती। पार्सर उन्हें फेंक देता है और कुछ भी उन्हें वापस नहीं लिखता। किसी build फ़ाइल पर यह सबसे बड़ा नुक़सान है, क्योंकि किसी पिन की गई निर्भरता-वर्शन के ऊपर की टिप्पणी अक्सर उसकी वजह का इकलौता बचा रिकॉर्ड होती है।

जो तरीक़ा इस जाल से बचाता है वह है YAML को पढ़ने की प्रति मानना और XML को स्रोत रखना। अगर YAML असल में स्रोत बनने वाली है — किसी Ansible या Helm chart में असली माइग्रेशन — तो टिप्पणियाँ कॉपी करने का पास काम में जोड़ लीजिए, XML मिटाने से पहले।

नतीजे को किसी औज़ार के स्वीकार लायक़ रूप में बदलना

बदला हुआ कॉन्फ़िग अभी values फ़ाइल या variable-सेट नहीं है। इसमें XML के निशान हैं — @ कीज़, #text कीज़, root पर कोई नेमस्पेस-घोषणा — जो जिसे आप खिला रहे हैं उसके लिए बे-मतलब हैं। पहला काम उन्हें मिटाना है।

दूसरा है नामकरण। XML एलिमेंट-नाम अक्सर किसी स्कीमा के पीछे बहुत लंबे होते हैं, और YAML कॉन्फ़िग को आमतौर पर छोटे और सपाट चाहिए। दोनों पास हाथ से होते हैं और दोनों असली माइग्रेशन हैं; कन्वर्ज़न बस पढ़ने लायक़ शुरुआती बिंदु देता है।

कब बदलें और कब XML को छोड़ दें

तब बदलिए जब मक़सद समझना, रिव्यू करना या तुलना करना हो: YAML छोटी है, संरचना साफ़ है, और पूरा काम ब्राउज़र में फ़ाइल छोड़ने जितने समय में हो जाता है।

तब न बदलें जब फ़ाइल किसी स्कीमा से वैलिडेट होती हो, sign की गई हो, या किसी XML-पढ़ने वाले औज़ार से इस्तेमाल होती हो। उस मामले में XML ही असली दस्तावेज़ है, और YAML की नक़ल दूसरा सच बनकर बहक जाएगी। पढ़िए YAML के रूप में, बदलिए XML के रूप में।

XML को YAML में ऐसे बदलें

  1. अपनी XML फ़ाइल इस पेज पर छोड़ें, या चुनने के लिए दबाएँ।
  2. लक्ष्य के रूप में YAML चुनें। कन्वर्ज़न आपके ब्राउज़र में होता है और फ़ाइल अपलोड नहीं होती।
  3. तैयार YAML फ़ाइल डाउनलोड कर लें।

XML या YAML: क्या बदलता है

XML और YAML की तुलना
XMLYAML
पूरा नामExtensible Markup LanguageYAML Ain't Markup Language
फ़ाइल एक्सटेंशन.xml.yaml, .yml
मीडिया टाइपapplication/xmlapplication/yaml
पहली बार प्रकाशित19982001
प्रकाशकW3C
विनिर्देशXML 1.0YAML 1.2
लाइसेंसखुला मानकखुला मानक
आज की स्थितिमौजूदामौजूदा
ब्राउज़र में खुलता हैहर ब्राउज़रकोई ब्राउज़र नहीं
इसकी जगह विचारणीयJSONJSON, TOML

क्या बचा रहता है

टिप्पणियाँ साथ जाती हैं। XML और YAML — दोनों में टिप्पणी की वाक्य-रचना है, इसलिए बाद में फ़ाइल सँभालने वाले के लिए छोड़े गए नोट चुपचाप ग़ायब नहीं होते।

नतीजा खोलना

YAML को कोई भी ब्राउज़र नहीं पढ़ता। इस लिहाज़ से दोनों में यही कम जगह चलने वाला है। भेजने से पहले देख लीजिए कि पाने वाला इसे लेता भी है या नहीं।

Visual Studio Code XML और YAML — दोनों पढ़ लेता है, इसलिए आप नतीजे को असली फ़ाइल के बग़ल में रखकर देख सकते हैं, बिना दूसरा प्रोग्राम खोले।

कौन-सा फ़ॉर्मेट किस काम के लिए है

XML W3C का फ़ॉर्मेट है, जो 1998 में आया। यह XML 1.0 में तय किया गया है, और अगर फ़ाइल को उस औज़ार से ज़्यादा जीना है जिसने उसे लिखा, तो यह बात क़ीमती है।

YAML 2001 से चला आ रहा है, और YAML 1.2 में तय किया गया है। Visual Studio Code और yq इस फ़ॉर्मेट को पढ़ लेते है।

XML से YAML: आम सवाल

क्या मेरी XML फ़ाइल कहीं अपलोड होती है?

नहीं। यह कन्वर्ज़न पूरी तरह आपके ब्राउज़र में होता है, इसलिए फ़ाइल आपके डिवाइस से बाहर नहीं जाती। आप ख़ुद जाँच सकते हैं: डेवलपर टूल्स का नेटवर्क टैब खोलिए और कुछ बदल कर देखिए। आपको पेज ख़ुद दिखेगा और आँकड़ों तथा विज्ञापन के वे अनुरोध दिखेंगे जिनसे इस सेवा का ख़र्च निकलता है — और एक भी ऐसा अनुरोध नहीं जो आपकी फ़ाइल साथ ले जा रहा हो।

क्या XML को YAML में बदलना मुफ़्त है?

हाँ। न खाता, न वॉटरमार्क, और न कोई रोज़ का कोटा जो ख़त्म हो: यह आपकी अपनी मशीन पर चलता है, इसलिए आप जितनी बार चाहें लौट सकते हैं। ब्राउज़र 100 MB तक की फ़ाइलें सँभालता है, एक बार में 100।

XML को YAML में बदलने पर क्या गुणवत्ता जाती है?

XML और YAML सामग्री का वर्णन बुनियादी तौर पर अलग-अलग तरीक़ों से करते हैं। इसलिए यह कन्वर्ज़न नक़ल नहीं, पुनर्निर्माण है: ईमानदार, पर बाइट-दर-बाइट एक जैसा नहीं। XML के गुण और लिखावट वाली गाँठें — दोनों कुंजी बन जाते हैं, और यह फ़ैसला कन्वर्टर आपकी जगह ख़ुद करता है।

क्या YAML फ़ाइल ब्राउज़र में खुलती है?

YAML को कोई भी ब्राउज़र नहीं पढ़ता। इस लिहाज़ से दोनों में यही कम जगह चलने वाला है। भेजने से पहले देख लीजिए कि पाने वाला इसे लेता भी है या नहीं।

इन फ़ॉर्मेट के बारे में और