XAML मूल रूप से XML का सबसेट है। एक्सएमएल को एक्सएमएल पर आधारित करने के मुख्य लाभों में से एक यह कहा जाता है कि इसे मौजूदा उपकरणों के साथ पार्स किया जा सकता है। और यह एक बड़ी डिग्री तक हो सकता है, हालांकि (कृत्रिम रूप से गैर-तुच्छ) विशेषता मान पाठ रूप में बने रहेंगे और इसे आगे बढ़ाने की आवश्यकता होगी।
XML व्युत्पन्न भाषा में GUI का वर्णन करने के लिए दो प्रमुख विकल्प हैं। एक ऐसा करना है जो WinForms ने किया और वास्तविक कोड में इसका वर्णन किया। इसके साथ कई समस्याएं हैं, हालांकि यह पूरी तरह से लाभ-रहित नहीं है ( XAML की तुलना इस दृष्टिकोण से करने के लिए एक प्रश्न )। अन्य प्रमुख विकल्प विशेष रूप से हाथ में काम के लिए तैयार एक पूरी तरह से नया वाक्यविन्यास डिजाइन करना है । यह आमतौर पर एक डोमेन-विशिष्ट भाषा के रूप में जाना जाता है ।
तो, भविष्य की पीढ़ियों के लिए एक सबक के रूप में, और क्या यह XML पर XAML को आधार बनाने के लिए एक अच्छा विचार था, या यह एक कस्टम-डिज़ाइन डोमेन-विशिष्ट भाषा के रूप में बेहतर होता? यदि हम एक और भी बेहतर यूआई फ्रेमवर्क डिजाइन कर रहे थे, तो क्या हमें एक्सएमएल या कस्टम डीएसएल चुनना चाहिए?
चूंकि यथास्थिति के बारे में सकारात्मक रूप से सोचना बहुत आसान है, विशेष रूप से एक जो समुदाय द्वारा काफी पसंद किया जाता है, मैं कुछ उदाहरण कारण दूंगा कि XML के शीर्ष पर निर्माण को गलती क्यों माना जा सकता है।
XML के लिए एक भाषा को बंद करना एक बात है, इसके लिए: यह पार्स करने के लिए बहुत आसान है (कोर पार्सर पहले से ही उपलब्ध है), 3 डी डेवलपर्स के लिए लिखने के लिए बहुत, बहुत कम डिज़ाइन कार्य और वैकल्पिक पार्सर भी लिखना बहुत आसान है।
लेकिन परिणामस्वरूप भाषा विभिन्न तरीकों से असंतोषजनक हो सकती है। बल्कि क्रिया है। यदि आप किसी चीज़ के प्रकार को बदलते हैं, तो आपको इसे समापन टैग में बदलने की आवश्यकता है। इसमें टिप्पणियों के लिए बहुत खराब समर्थन है; एक विशेषता पर टिप्पणी करना असंभव है। एक्सएमएल द्वारा विशेषताओं की सामग्री पर सीमाएं रखी गई हैं। मार्कअप एक्सटेंशन को XML सिंटैक्स के "शीर्ष पर" बनाया जाना है, न कि इसे गहराई से और अच्छी तरह से एकीकृत किया गया है। और, मेरा व्यक्तिगत पसंदीदा, यदि आप एक विशेषता के माध्यम से कुछ सेट करते हैं, तो आप पूरी तरह से अलग सिंटैक्स का उपयोग करते हैं यदि आप एक ही चीज़ को एक संपत्ति संपत्ति के रूप में सेट करते हैं।
यह भी कहा जाता है कि चूंकि हर कोई XML जानता है, XAML को कम सीखने की आवश्यकता होती है। कड़ाई से यह कहना सच है, लेकिन वाक्यविन्यास सीखना एक नया यूआई फ्रेमवर्क सीखने में बिताए समय का एक छोटा अंश है; यह फ्रेमवर्क की अवधारणाएं हैं जो वक्र को खड़ी करती हैं। इसके अलावा, XML- आधारित भाषा की idiosyncracies वास्तव में "सीखने की जरूरत" टोकरी में जोड़ सकती है।
क्या ये नुकसान पार्सिंग की आसानी से कम हो गए हैं? क्या अगले शांत ढांचे को परंपरा को जारी रखना चाहिए, या एक भयानक DSL डिजाइन करने के लिए समय का निवेश करना चाहिए जो मौजूदा टूल द्वारा पार्स नहीं किया जा सकता है और जिसका सिंटैक्स सभी को सीखना होगा?
पीएस हर कोई XAML और WPF को भ्रमित नहीं करता है , लेकिन कुछ करते हैं। एक्सएएमएल एक्सएमएल जैसी चीज है। WPF बाइंडिंग, थीमिंग, हार्डवेयर त्वरण और अन्य बहुत सारे सामानों के समर्थन के साथ ढांचा है।