YAML - प्रक्रियाएं
YAML प्रक्रिया प्रवाह के लिए एक मानक प्रक्रिया का पालन करता है। YAML में मूल डेटा संरचना में नोड्स जैसे सरल अभ्यावेदन शामिल हैं। इसे रिप्रेजेंटेशन नोड ग्राफ भी कहा जाता है।
इसमें मैपिंग, सीक्वेंस और स्केलर मात्राएँ शामिल हैं जिन्हें क्रमबद्ध पेड़ बनाने के लिए क्रमबद्ध किया जा रहा है। क्रमांकन के साथ वस्तुओं को बाइट्स की धारा के साथ परिवर्तित किया जाता है।
क्रमिक घटना वृक्ष निम्नलिखित चित्र में दर्शाए अनुसार चरित्र धाराओं की प्रस्तुति बनाने में मदद करता है।
रिवर्स प्रक्रिया सीरियल इवेंट ट्री में बाइट्स की धारा को पार्स करती है। बाद में, नोड्स नोड ग्राफ में परिवर्तित हो जाते हैं। ये मान बाद में YAML मूल डेटा संरचना में परिवर्तित हो जाते हैं। नीचे दिया गया आंकड़ा यह बताता है -
YAML में जानकारी का उपयोग दो तरीकों से किया जाता है: machine processing तथा human consumption। YAML में प्रोसेसर ऊपर दिए गए आरेख में पूरक विचारों के बीच जानकारी परिवर्तित करने की प्रक्रिया के लिए एक उपकरण के रूप में उपयोग किया जाता है। यह अध्याय उन सूचना संरचनाओं का वर्णन करता है जो किसी दिए गए आवेदन में एक YAML प्रोसेसर प्रदान करना चाहिए।
YAML में सीरियल प्रारूप में डेटा ऑब्जेक्ट्स का प्रतिनिधित्व करने के लिए एक क्रमांकन प्रक्रिया शामिल है। YAML जानकारी के प्रसंस्करण में तीन चरण शामिल हैं:Representation, Serialization, Presentation and parsing। आइए उनमें से प्रत्येक पर विस्तार से चर्चा करें।
प्रतिनिधित्व
YAML तीन प्रकार के नोड्स का उपयोग करके डेटा संरचना का प्रतिनिधित्व करता है: sequence, mapping तथा scalar।
अनुक्रम
अनुक्रम अनुक्रमित प्रविष्टियों की संख्या को संदर्भित करता है, जो मुख्य मूल्य जोड़ी के अनियंत्रित संघ को मैप करता है। यह पर्ल या पायथन सरणी सूची से मेल खाती है।
नीचे दिखाया गया कोड अनुक्रम प्रतिनिधित्व का एक उदाहरण है -
product:
- sku : BL394D
quantity : 4
description : Football
price : 450.00
- sku : BL4438H
quantity : 1
description : Super Hoop
price : 2392.00
मानचित्रण
दूसरी ओर मानचित्रण शब्दकोश डेटा संरचना या हैश तालिका का प्रतिनिधित्व करता है। उसी का एक उदाहरण नीचे दिया गया है -
batchLimit: 1000
threadCountLimit: 2
key: value
keyMapping: <What goes here?>
Scalars
स्केलर स्ट्रिंग, पूर्णांक, दिनांक और परमाणु डेटा प्रकारों के मानक मूल्यों का प्रतिनिधित्व करते हैं। ध्यान दें कि YAML में नोड्स भी शामिल हैं जो डेटा प्रकार संरचना को निर्दिष्ट करते हैं। स्केलर पर अधिक जानकारी के लिए, कृपया इस ट्यूटोरियल के अध्याय 6 को देखें।
क्रमबद्धता
YAML में सीरियलाइज़ेशन प्रक्रिया की आवश्यकता होती है जो मानव के अनुकूल महत्वपूर्ण आदेश और लंगर नामों को आसान बनाती है। क्रमांकन का परिणाम एक YAML क्रमांकन वृक्ष है। यह YAML डेटा के ईवेंट कॉल की एक श्रृंखला का उत्पादन करने के लिए ट्रैवर्स किया जा सकता है।
क्रमांकन के लिए एक उदाहरण नीचे दिया गया है -
consumer:
class: 'AppBundle\Entity\consumer'
attributes:
filters: ['customer.search', 'customer.order', 'customer.boolean']
collectionOperations:
get:
method: 'GET'
normalization_context:
groups: ['customer_list']
itemOperations:
get:
method: 'GET'
normalization_context:
groups: ['customer_get']
प्रस्तुतीकरण
YAML क्रमांकन के अंतिम आउटपुट को प्रस्तुति कहा जाता है। यह मानव के अनुकूल तरीके से एक चरित्र धारा का प्रतिनिधित्व करता है। YAML प्रोसेसर में स्ट्रीम बनाने, इंडेंटेशन और फ़ॉर्मेटिंग सामग्री को संभालने के लिए विभिन्न प्रस्तुति विवरण शामिल हैं। यह पूरी प्रक्रिया उपयोगकर्ता की प्राथमिकताओं द्वारा निर्देशित है।
YAML प्रस्तुति प्रक्रिया के लिए एक उदाहरण JSON मूल्य का परिणाम है। बेहतर समझ के लिए नीचे दिए गए कोड को देखें -
{
"consumer": {
"class": "AppBundle\\Entity\\consumer",
"attributes": {
"filters": [
"customer.search",
"customer.order",
"customer.boolean"
]
},
"collectionOperations": {
"get": {
"method": "GET",
"normalization_context": {
"groups": [
"customer_list"
]
}
}
},
"itemOperations": {
"get": {
"method": "GET",
"normalization_context": {
"groups": [
"customer_get"
]
}
}
}
}
}
पदच्छेद
पार्सिंग प्रस्तुति की विलोम प्रक्रिया है; इसमें पात्रों की एक धारा शामिल है और घटनाओं की एक श्रृंखला बनाता है। यह प्रस्तुति प्रक्रिया में पेश किए गए विवरण को छोड़ देता है जो क्रमबद्ध घटनाओं का कारण बनता है। पार्सिंग प्रक्रिया बीमार इनपुट के कारण विफल हो सकती है। यह मूल रूप से यह जांचने की एक प्रक्रिया है कि क्या YAML अच्छी तरह से गठित है या नहीं।
एक YAML उदाहरण पर विचार करें जो नीचे उल्लिखित है -
---
environment: production
classes:
nfs::server:
exports:
- /srv/share1
- /srv/share3
parameters:
paramter1
तीन हाइफ़न के साथ, यह दस्तावेज़ की शुरुआत का प्रतिनिधित्व करता है जिसमें विभिन्न विशेषताओं को बाद में परिभाषित किया गया है।
YAML लिंट YAML का ऑनलाइन पार्सर है और यह जाँचने में मदद करता है कि यह वैध है या नहीं। YAML लिंट के लिए आधिकारिक लिंक नीचे उल्लिखित है:http://www.yamllint.com/
आप नीचे दिखाए गए अनुसार पार्सिंग का आउटपुट देख सकते हैं -