YAML - प्रवाह शैलियाँ

YAML में प्रवाह शैलियों को JSON के प्राकृतिक विस्तार के रूप में सोचा जा सकता है ताकि बेहतर पठनीय विशेषता के लिए तह सामग्री लाइनों को कवर किया जा सके जो ऑब्जेक्ट इंस्टेंस बनाने के लिए एंकर और उपनाम का उपयोग करता है। इस अध्याय में, हम निम्नलिखित अवधारणाओं के प्रवाह प्रतिनिधित्व पर ध्यान केंद्रित करेंगे -

  • एलियास नोड्स
  • खाली नोड्स
  • प्रवाह स्केलर शैलियों
  • संग्रह शैलियों प्रवाह
  • नोड्स प्रवाहित करें

उर्फ नोड्स का उदाहरण नीचे दिखाया गया है -

%YAML 1.2
---
!!map {
   ? !!str "First occurrence"
   : &A !!str "Foo",
   ? !!str "Override anchor"
   : &B !!str "Bar",
   ? !!str "Second occurrence"
   : *A,
   ? !!str "Reuse anchor"
   : *B,
}

ऊपर दिए गए कोड का JSON आउटपुट नीचे दिया गया है -

{
   "First occurrence": "Foo", 
   "Second occurrence": "Foo", 
   "Override anchor": "Bar", 
   "Reuse anchor": "Bar"
}

खाली सामग्री वाले नोड्स को रिक्त नोड माना जाता है। निम्न उदाहरण से पता चलता है -

%YAML 1.2
---
!!map {
   ? !!str "foo" : !!str "",
   ? !!str "" : !!str "bar",
}

JSON में खाली नोड्स का आउटपुट निम्नानुसार दर्शाया गया है -

{
   "": "bar", 
   "foo": ""
}

फ्लो स्केलर शैलियों में दोहरे-उद्धृत, एकल-उद्धृत और सादे प्रकार शामिल हैं। उसी के लिए मूल उदाहरण नीचे दिया गया है -

%YAML 1.2
---
!!map {
   ? !!str "implicit block key"
   : !!seq [
      !!map {
         ? !!str "implicit flow key"
         : !!str "value",
      }
   ]  
}

ऊपर दिए गए उदाहरण के लिए JSON प्रारूप में आउटपुट नीचे दिखाया गया है -

{
   "implicit block key": [
      {
         "implicit flow key": "value"
      }
   ] 
}

YAML में प्रवाह संग्रह एक अन्य प्रवाह संग्रह के भीतर एक ब्लॉक संग्रह के साथ नेस्टेड है। प्रवाह संग्रह प्रविष्टियों के साथ समाप्त किया जाता हैcomma (,) सूचक। निम्न उदाहरण विस्तार से प्रवाह संग्रह ब्लॉक की व्याख्या करता है -

%YAML 1.2
---
!!seq [
   !!seq [
      !!str "one",
      !!str "two",
   ],
   
   !!seq [
      !!str "three",
      !!str "four",
   ],
]

JSON में प्रवाह संग्रह के लिए आउटपुट नीचे दिखाया गया है -

[
   [
      "one", 
      "two"
   ], 
   [
      "three", 
      "four"
   ]
]

JSON जैसी प्रवाह शैलियों में प्रारंभ और अंत संकेतक शामिल हैं। एकमात्र प्रवाह शैली जिसमें कोई गुण नहीं होता है, वह है सादे स्केलर।

%YAML 1.2
---
!!seq [
!!seq [ !!str "a", !!str "b" ],
!!map { ? !!str "a" : !!str "b" },
!!str "a",
!!str "b",
!!str "c",]

JSON फॉर्मेट में ऊपर दिखाए गए कोड का आउटपुट नीचे दिया गया है -

[
   [
      "a", 
      "b"
   ], 
   
   {
      "a": "b"
   }, 
   
   "a", 
   "b", 
   "c"
]