2008-09-17 16 views
7

एक्सएमएल या किसी अन्य प्रारूप पर YAML क्यों चुनेंगे?वाईएएमएल किस प्रकार का आवेदन/उपयोग सबसे उपयुक्त है?

+0

क्या आप कृपया स्पष्ट कर सकते हैं कि आप किस प्रकार के वाईएएमएल के बारे में बात कर रहे हैं? ऐसा लगता है कि यह यह नहीं है: http://www.yaml.de/en/home.html। – JRoppert

+0

उस भेद को बनाने के लिए जोड़ा गया लिंक :) – fuentesjr

उत्तर

9

मैं सर्जीओ से सहमत हूं; वाईएएमएल एक प्रारूप प्रदान करता है जो मनुष्यों द्वारा आसानी से संपादन योग्य है, लेकिन डेटा संरचनाओं को स्पष्ट रूप से प्रदर्शित करने का एक अच्छा तरीका भी है।

वाईएएमएल अधिक मानव-पठनीय, आईएमओ होने लगता है।

वाईएएमएल मार्कअप भाषा की बजाय डेटा धारावाहिक तकनीक का अधिक है।

+0

जैसा कि यह कहता है "YAML एंट मार्कअप भाषा!" ;-) –

4

यदि दस्तावेज़ों को मनुष्यों द्वारा संपादित या निर्मित करने की आवश्यकता होती है तो मैं वाईएएमएल चुनूंगा। सिर्फ एक विचार।

7

YAML के मुख्य फायदे मानव पठनीयता और कॉम्पैक्टनेस हैं। ओह, और यह विभिन्न प्लेटफार्मों और भाषाओं में व्यापक रूप से समर्थित है।

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

1

वाईएएमएल किस प्रकार का आवेदन/उपयोग सबसे उपयुक्त है?

स्पष्ट रूप से उत्तर देना मुश्किल है। इसके बजाए, मैं कुछ उदाहरण प्रदान करने की कोशिश करूंगा कि वाईएएमएल के लिए अच्छा नहीं है (मेरी विनम्र राय में)।

<name type="string">Orion</name> 
<age type="integer">26</age> 

यह एक ऐसा मामला है जहां यह XML में दोनों विशेषताओं और मानों को मिश्रण करने के लिए उपयोगी है। वाईएएमएल में गुण नहीं हैं, इसलिए आपको दिनांक/पूर्णांक/स्ट्रिंग/आदि का निर्धारण करने के लिए टाइप अनुमान का उपयोग करना होगा - यह जटिल या उपयोगकर्ता परिभाषित प्रकारों के लिए विफल रहता है।

<user> 
    .... 10 lines of stuff 
    <sub-user> 
    ...15 more lines of stuff 
    </sub-user> 
    .... 10 more lines of stuff belonging to user 
</user> 

यह एक ऐसा मामला है जहां एक्सएमएल में समापन टैग बहुत लाभ प्रदान करते हैं। यदि आप उपरोक्त डेटा को वाईएएमएल में प्रारूपित करना चाहते थे, तो 'स्कोप' प्रदान करने के लिए केवल इंडेंटेशन का उपयोग करके, यह कहना बहुत कठिन होगा कि चीजें कहां शुरू होती हैं और समाप्त होती हैं।

अच्छा उपाय के लिए, यहाँ official yaml spec at yaml.org

YAML से एक उद्धरण है मुख्य रूप से एक डेटा क्रमबद्धता भाषा है। एक्सएमएल को मानक सामान्यीकृत मार्कअप भाषा (एसजीएमएल) के साथ पिछड़ा संगत होने के लिए डिज़ाइन किया गया था और इस प्रकार इस पर कई डिज़ाइन बाधाएं थीं कि वाईएएमएल साझा नहीं करता है। एसजीएमएल की विरासत को विरासत में रखते हुए, एक्सएमएल को संरचित दस्तावेज का समर्थन करने के लिए डिज़ाइन किया गया है, जहां वाईएएमएल डेटा संरचनाओं और मैसेजिंग पर अधिक निकटता से लक्षित है। जहां एक्सएमएल कई डोमेन में अग्रणी है, वाईएएमएल एक्सएमएल और अन्य प्रौद्योगिकियों से सीखने वाले पाठों का परिणाम है।

0

मैं (एक डोमेन विशिष्ट भाषा लिखने विशेष रूप से ऐसे मामलों में जहां अन्य डेवलपर्स रखरखाव कर रही होगी में करने के लिए एक सस्ता और आसान स्थानापन्न के रूप में YAML का उपयोग करें; मुझे यकीन है कि मैं उसका प्रयोग करेंगे जब गैर डेवलपर्स होगा नहीं कर रहा हूँ इसे बनाए रखना)