एक वाईएएमएल फ़ाइल क्या है?
YAML फ़ाइल में एक भाषा YAML (YAML Ain’t Markup Language) शामिल है जो एक यूनिकोड आधारित डेटा-सीरियलाइज़ेशन भाषा है; कॉन्फ़िगरेशन फ़ाइलों, इंटरनेट मैसेजिंग, ऑब्जेक्ट दृढ़ता आदि के लिए उपयोग किया जाता है। YAML अपनी फ़ाइलों के लिए .yaml एक्सटेंशन का उपयोग करता है। इसका सिंटैक्स एक विशिष्ट प्रोग्रामिंग भाषा से स्वतंत्र है। मूल रूप से, YAML को मानव संपर्क और आधुनिक प्रोग्रामिंग भाषाओं के साथ अच्छी तरह से काम करने के लिए डिज़ाइन किया गया है। मनमाना देशी डेटा संरचनाओं को क्रमबद्ध करने के लिए समर्थन ने YAML फ़ाइलों की पठनीयता में वृद्धि की है, लेकिन इसने पार्सिंग और फ़ाइल निर्माण प्रक्रिया को थोड़ा जटिल बना दिया है।
संक्षिप्त इतिहास
YAML को पहली बार 2001 में प्रस्तावित किया गया था और इसे क्लार्क इवांस, इंगी डॉट नेट और ओरेन बेन-किकी द्वारा विकसित किया गया था। YAML को पहले मार्कअप भाषा के रूप में इसके उद्देश्य को इंगित करने के लिए “फिर भी एक और मार्कअप भाषा” कहा जाता था। डेटा-उन्मुख के रूप में इसके उद्देश्य को इंगित करने के लिए इसे बाद में “YAML Aint Markup Language” के रूप में पुन: प्रस्तुत किया गया।
YAML फ़ाइल स्वरूप
YAML फ़ाइल में निम्न डेटा प्रकार होते हैं
- स्केलर: स्केलर मान हैं जैसे स्ट्रिंग्स, पूर्णांक, बूलियन, आदि।
- अनुक्रम: क्रम हाइफ़न (-) से शुरू होने वाले प्रत्येक आइटम की सूचियाँ हैं। सूचियों को नेस्टेड भी किया जा सकता है।
- मैपिंग: मैपिंग कुंजियों को मानों के साथ सूचीबद्ध करने की क्षमता देती है।
वाक्य - विन्यास
- व्हॉटस्पेस: नेस्टिंग और समग्र संरचना को इंगित करने के लिए व्हॉट्सएप इंडेंटेशन का उपयोग किया जाता है।
नाम: जॉन स्मिथ
संपर्क Ajay करें:
घर: 1012355532
कार्यालय: 5002586256
पता:
गली: |
123 बवंडर गली
सूट 16
शहर: ईस्ट सेंटरविल
राज्य : के.एस
- टिप्पणियां: टिप्पणियां “#” चिन्ह से शुरू होकर लिखी जाती हैं।
# यह एक YAML टिप्पणी है
- ** सूचियाँ **: हाइफ़न (-) का उपयोग प्रत्येक सदस्य के साथ एक अलग पंक्ति में सूची सदस्यों को इंगित करने के लिए किया जाता है। सूची के सदस्यों को अल्पविराम (,) द्वारा अलग किए गए सदस्यों के साथ वर्ग कोष्ठक ([…]) में भी संलग्न किया जा सकता है।
- A
- B
- C
[ए, बी, सी]
- सहयोगी सरणी: एक सहयोगी सरणी घुंघराले ब्रैकेट ({…}) से घिरा हुआ है। कुंजियों और मूल्यों को कोलन (:) द्वारा अलग किया जाता है और प्रत्येक जोड़ी को अल्पविराम (,) द्वारा अलग किया जाता है।
{name: John Smith, age: 20}
- स्ट्रिंग्स: स्ट्रिंग को डबल-कोट्स (") या सिंगल-कोट्स (’) के साथ या बिना लिखा जा सकता है।
नमूना स्ट्रिंग
"नमूना स्ट्रिंग"
'नमूना स्ट्रिंग'
- स्केलर ब्लॉक सामग्री: स्केलर सामग्री को निम्नलिखित का उपयोग करके ब्लॉक नोटेशन में लिखा जा सकता है:
- |: All live breaks are significant.
- >: Each line break is folded to space. It removes the leading whitespace for each line.
डेटा: |
वाईएएमएल
(वाईएएमएल मार्कअप भाषा नहीं है)
एक डेटा-सीरियलाइज़ेशन भाषा है
जानकारी: ?
YAML (YAML मार्कअप लैंग्वेज नहीं है)
एक डेटा-सीरियलाइज़ेशन भाषा है
- एकाधिक दस्तावेज़: एक ही स्ट्रीम में कई दस्तावेज़ों को तीन हाइफ़न (—) द्वारा अलग किया जाता है। हाइफ़न दस्तावेज़ की शुरुआत का संकेत देते हैं। दस्तावेज़ सामग्री से निर्देशों को अलग करने के लिए हाइफ़न का भी उपयोग किया जाता है। दस्तावेज़ का अंत तीन बिंदुओं (…) द्वारा इंगित किया गया है।
---
दस्तावेज़ 1
---
दस्तावेज़ 2
...
- प्रकार: मान के प्रकार को निर्दिष्ट करने के लिए, दोहरे विस्मयादिबोधक चिह्न (!!) का उपयोग किया जाता है।
ए: !! फ्लोट 123
बी: !! str 123
- टैग: किसी नोट को टैग असाइन करने के लिए, एम्परसेंड (&) का उपयोग किया जाता है और उस नोड को संदर्भित करने के लिए, तारांकन चिह्न (*) का उपयोग किया जाता है।
नाम: जॉन स्मिथ
बिल-टू: &id01
गली: |
123 बवंडर गली
सूट 16
शहर: ईस्ट सेंटरविल
राज्य : के.एस
शिप-टू: *id01
- निर्देश: YAML दस्तावेज़ों के आगे एक धारा में निर्देश हो सकते हैं। निर्देश एक प्रतिशत चिह्न (%) के साथ शुरू होते हैं और उसके बाद नाम और फिर पैरामीटर रिक्त स्थान से अलग हो जाते हैं।
% वाईएएमएल 1.2
---
दस्तावेज़ सामग्री
वाईएएमएल फ़ाइल उदाहरण
यहां आप docker yaml फ़ाइल उदाहरण नीचे देख सकते हैं:
topology:
database_node_name: docker_controller
docker_controller_node_name: docker_controller
self_service_portal_node_name: docker_controller
kvm_compute_node_names: kvm_compute1
docker_compute_node_names: docker_compute1
वाईएएमएल बनाम जेएसओएन
मूल रूप से, JSON और YAML दोनों को मानव-पठनीय डेटा इंटरचेंज प्रारूप प्रदान करने के लिए विकसित किया गया है। YAML को JSON फॉर्मेट के सुपरसेट के रूप में महसूस किया जाता है। इसका मतलब है कि हम YAML पार्सर का उपयोग करके JSON को पार्स कर सकते हैं। हालांकि इस सिद्धांत का व्यावहारिक कार्यान्वयन थोड़ा मुश्किल है। इसलिए, YAML और JSON के बीच कुछ मूलभूत अंतर नीचे दिए गए हैं:
वाईएएमएल | जेएसओएन |
---|---|
क्रमबद्ध डेटा को पार्स करने की जटिल और समय लेने वाली प्रक्रिया | अपने सरल डिजाइन के साथ JSON क्रमबद्ध डेटा को जल्दी और आसानी से पार्स करें |
कम सामुदायिक समर्थन | बड़ा सामुदायिक समर्थन और लोकप्रियता |
टिप्पणियों का समर्थन करता है | टिप्पणियों का समर्थन नहीं करता |
अन्य डेटा ऑब्जेक्ट्स के संदर्भ का उपयोग करने की क्षमता | वस्तु संदर्भों के साथ जटिल संरचनाओं को क्रमबद्ध करना असंभव |
पदानुक्रम को डबल स्पेस वर्णों का उपयोग करके दर्शाया जाता है। टैब वर्णों की अनुमति नहीं है | वस्तुओं और सारणियों को कोष्ठकों और कोष्ठकों में दर्शाया गया है |
स्ट्रिंग कोट्स वैकल्पिक हैं लेकिन यह सिंगल और डबल कोट्स का समर्थन करता है। | स्ट्रिंग्स डबल कोट्स में होनी चाहिए। |
रूट नोड कोई भी वैध डेटा प्रकार हो सकता है | रूट नोड या तो एक सरणी या एक वस्तु होना चाहिए। |