XML सिर्फ एक उपकरण है जो कई स्वादों और उपयोगों में आता है। एक्सएमएल कुछ चीजों पर उत्कृष्टता प्राप्त करता है और दूसरों को बेकार करता है। मुझे लगता है कि समस्याओं में से एक यह है कि लोगों ने "एंटरप्राइज" एक्सएमएल देखा है जो नामस्थान और बकवास के साथ अनावश्यक रूप से जटिल है (एसओएपी, किसी को भी?)। मनुष्यों के लिए XML प्रारूपों को डिजाइन करने की चाल डेटा में वास्तविक अर्थ जोड़ रही है जबकि उन्हें पढ़ने के लिए भारी नहीं बनाया गया है।
जिन चीजों को लोग मुद्दा बनाते हैं, उनमें से एक यह है कि एक्सएमएल कभी-कभी किसी पात्र या कुछ गायब ब्रैकेट पर चुटकी लेता है। हालाँकि, एक उल्टा और एक नकारात्मक पक्ष भी है। उल्टा यह है कि आपके पास HTML जैसी अस्पष्टता नहीं है जहां अर्ध-अमान्य वाक्यविन्यास के विभिन्न मामलों की व्याख्या अलग तरीके से की जा सकती है।
नकारात्मक पक्ष यह है कि यह लेखक के लिए थोड़ा कठिन है और सीखना कठिन है। मैं मानता हूं कि ऐसा तर्क दिया जाना चाहिए कि यदि HTML XML जैसा कठोर होता, तो वेब इतना बड़ा नहीं बन पाता, लेकिन मैं यह भी तर्क दूंगा कि अगर आज ऐसा होता तो हमें खुशी होगी। :)
इसके अलावा, हर चीज के लिए इसका इस्तेमाल न करें क्योंकि आपके पास इसे लागू करने के लिए समझ और निर्णय है। यदि आपके पास सभी XML हैं, तो आप हमेशा एक XSLT परिवर्तन करना चाहते हैं जो आप चाहते हैं। :)
मेरा तर्क है कि प्रारूप केवल वास्तव में मायने रखता है जब मनुष्यों को इसके साथ सहभागिता करने की आवश्यकता होती है। यदि आप कुछ ऐसा प्रोग्राम लिख रहे हैं जो किसी चीज़ को क्रमबद्ध करता है और उसे कहीं और भेजता है जहाँ इसे आपके किसी अन्य प्रोग्राम द्वारा उपभोग किया जाना है, तो कौन परवाह करता है कि यह जितना संभव हो उतना लंबे समय तक दिखता है? सभी देखभाल के लिए एक द्विआधारी प्रारूप या बन्नी और यूनिकॉर्न का उपयोग करें।
XML के पेशेवरों
- बहुत सारे किनारे मामले शामिल हैं जो कि YAML और JSON नहीं करते हैं
- विभिन्न प्लेटफार्मों और भाषाओं की एक सरणी में XML को पार्स करने और मान्य करने के लिए उत्कृष्ट उपकरण हैं
- XML आसानी से और शक्तिशाली रूप से दूसरे प्रारूप में परिवर्तित हो सकता है (XSLT जैसी चीजों के माध्यम से)
- उचित XML दस्तावेज़ मनुष्यों को पढ़ने और संपादित करने के लिए सरल हैं; मुझे मत बताओ JSON आसान है, यह नहीं है :)
- एक्सएमएल कुछ हद तक स्वयं-वर्णन है, अर्थात इसमें सीधे इसकी संरचना और अर्थ (अधिकांश द्विआधारी प्रारूपों के विपरीत) के बारे में जानकारी शामिल है
- एन्कोडिंग संभालती है
- व्हॉट्सएप अज्ञेयवाद, जो आसान क्रॉस-प्लेटफ़ॉर्म उपयोग के लिए बनाता है
- यदि यह अच्छी तरह से गठित नहीं है तो (डेटा का संरचनात्मक रूप से सही होना सुनिश्चित करता है)
- यह एसजीएमएल नहीं है
विपक्ष
- वाचाल
- यह बाइनरी के रूप में पार्स करने के लिए उतना तेज़ नहीं है
- यदि यह अच्छी तरह से गठित नहीं है तो टूटता है (आपके एप्लिकेशन को क्रैश करता है)
अच्छा उपयोग करता है
- विन्यास फाइल
- डेटा इंटरचेंज प्रारूप
- संस्करण लचीला फ़ाइल स्वरूपों
- डेटाबेस में दस्तावेज़ संग्रहीत करना
इतना अच्छा उपयोग नहीं
- डेटा ट्रांसफर प्रारूप
- वस्तुओं को क्रमबद्ध करना
- डेटाबेस में रिलेशनल डेटा संग्रहीत करना
- उच्च प्रदर्शन I / O परिदृश्यों के लिए फ़ाइल स्वरूप