एक्स्टेंसिबल एप्लिकेशन मार्कअप लैंग्वेज

एक्स्टेंसिबल एप्लिकेशन मार्कअप लैंग्वेज (XAML ) संरचित मूल्यों और वस्तुओं को आरंभ करने के लिए Microsoft द्वारा विकसित एक घोषणात्मक प्रोग्रामिंग XML- आधारित भाषा है। यह माइक्रोसॉफ्ट के विशिष्टता वादा खोलें  के तहत उपलब्ध है। XAML का उपयोग विंडोज प्रेजेंटेशन फाउंडेशन (WPF), सिल्वरलाइट, विंडोज वर्कफ़्लो फाउंडेशन (WF), विंडोज यूआई लाइब्रेरी (WinUI) और यूनिवर्सल विंडोज प्लेटफॉर्म (UWP) में बड़े पैमाने पर किया जाता है। WPF और UWP में, XAML UI तत्वों, डेटा बाइंडिंग और इवेंट्स को परिभाषित करने के लिए एक  उपयोगकर्ता इंटरफ़ेस मार्कअप भाषा  है। WF में, हालाँकि, XAML  कार्यप्रवाह ज़ को परिभाषित करता है।

XAML तत्व सीधे सामान्य भाषा रनटाइम  (CLR) ऑब्जेक्ट इंस्टेंसेस पर मैप करते हैं, जबकि XAML विशेषताएँ उन ऑब्जेक्ट्स पर CLR प्रॉपर्टीज और इवेंट्स को मैप करती हैं।

XAML में जो कुछ भी बनाया या कार्यान्वित किया जाता है, उसे अधिक पारंपरिक .NET भाषा, जैसे C Sharp (प्रोग्रामिंग भाषा)|C# या Visual Basic .NET का उपयोग करके व्यक्त किया जा सकता है। हालाँकि, तकनीक का एक प्रमुख पहलू XAML को संसाधित करने के लिए उपकरणों के लिए आवश्यक कम जटिलता है, क्योंकि यह XML पर आधारित है।

प्रौद्योगिकी
एक्सएएमएल मूल रूप से एक्स्टेंसिबल एवलॉन मार्कअप लैंग्वेज के लिए खड़ा था, एवलॉन विंडोज प्रेजेंटेशन फाउंडेशन (डब्ल्यूपीएफ) के लिए कोड-नाम है। .NET फ्रेमवर्क 3.0 के विकास के अंत से पहले, माइक्रोसॉफ्ट ने विंडोज वर्कफ्लो फाउंडेशन (डब्ल्यूएफ) के लिए एक्सएएमएल को अपनाया।

WPF में, XAML विज़ुअल प्रयोक्ता इंटरफ़ेस का वर्णन करता है। WPF 2D और 3D ऑब्जेक्ट्स, रोटेशन, एनिमेशन और कई अन्य प्रभावों और सुविधाओं की परिभाषा की अनुमति देता है। एक XAML फ़ाइल को बाइनरी एप्लिकेशन मार्कअप लैंग्वेज (BAML) फ़ाइल में संकलित किया जा सकता है, जिसे .NET Framework असेंबली में संसाधन के रूप में डाला जा सकता है। रन-टाइम पर, फ्रेमवर्क इंजन BAML फ़ाइल को असेंबली संसाधनों से निकालता है, इसे पार्स करता है, और संबंधित WPF विज़ुअल ट्री या वर्कफ़्लो बनाता है।

WF संदर्भों में, XAML संभावित रूप से लंबे समय तक चलने वाले घोषणात्मक तर्क का वर्णन करता है, जैसे कि प्रक्रिया मॉडलिंग टूल और नियम प्रणाली द्वारा बनाए गए। XAML के UI मार्कअप उपयोग से इसे अलग करने के लिए वर्कफ़्लोज़ के क्रमांकन प्रारूप को पहले XOML कहा जाता था, लेकिन अब वे अलग नहीं हैं। हालाँकि, वर्कफ़्लो मार्कअप वाली फ़ाइलों का फ़ाइल एक्सटेंशन अभी भी .xoml है। XAML लुक और फील को परिभाषित करने के लिए एक विशिष्ट तरीके का उपयोग करता है जिसे टेम्प्लेट कहा जाता है; व्यापक स्टाइल शीट  सिंटैक्स से भिन्न, यह XBL के करीब है। XAML फ़ाइलें बनाने के लिए, कोई Microsoft अभिव्यक्ति मिश्रण, Microsoft Visual Studio, होस्ट करने योग्य WF विज़ुअल डिज़ाइनर, या XAMLPad का उपयोग कर सकता है।

उदाहरण
विंडोज प्रेजेंटेशन फाउंडेशन का यह उदाहरण टेक्स्ट हैलो, वर्ल्ड दिखाता है! कैनवस नामक शीर्ष-स्तरीय XAML कंटेनर में।

स्कीमा ( भाग) को आपके कंप्यूटर पर काम करने के लिए बदलना पड़ सकता है। Microsoft द्वारा अनुशंसित स्कीमा का उपयोग करना, उदाहरण भी हो सकता है

इसे एक वेब पृष्ठ  में एकीकृत किया जा सकता है यदि WPF XBAPs (XAML ब्राउज़र एप्लिकेशन) का उपयोग करके स्थापित किया गया है जो ब्राउज़र के भीतर होस्ट किए गए सैंडबॉक्स वाले वातावरण में चल रहे संकलित अनुप्रयोग हैं। दूसरा तरीका  Microsoft सिल्वरलाइट  का उपयोग करना है। कोड को सीधे HTML पेज में शामिल नहीं किया जा सकता है; बल्कि इसे जावास्क्रिप्ट के माध्यम से पेज में लोड किया जाना चाहिए। यदि .NET 3.0 या बाद का संस्करण स्थापित है, तो सिल्वरलाइट प्लगइन की आवश्यकता के बिना, .NET फ्रेमवर्क 3.0 के संयोजन के साथ एक संगत वेब ब्राउज़र (इंटरनेट एक्सप्लोरर और फ़ायरफ़ॉक्स सहित) में ढीली XAML फ़ाइलों को भी देखा जा सकता है। ढीली XAML फाइलें मार्कअप-ओनली फाइलें होती हैं जो प्रस्तुत की जाने वाली दृश्य सामग्री को परिभाषित करने तक सीमित होती हैं। वे एक आवेदन के साथ संकलित नहीं हैं।

MySilverlight.js फ़ाइल में वह कोड होना चाहिए जो MySilverlight HTML तत्व के अंतर्गत उपरोक्त XAML कोड (एक XML फ़ाइल के रूप में) को लोड करता है।

XAML को अपनी पूर्ण क्षमता तक उपयोग करने का एक महत्वपूर्ण हिस्सा बाध्यकारी का उचित उपयोग करना है, साथ ही साथ अपनी विशिष्ट आवश्यकताओं के लिए आवश्यकतानुसार अपने स्वयं के कस्टम उपयोगकर्ता तत्वों को बनाने में सहज होना है। बंधन निम्नानुसार किया जा सकता है:

एक्सएएमएल
के संस्करणों के बीच अंतर XAML के तीन मुख्य Microsoft कार्यान्वयन हैं:
 * विंडोज प्रेजेंटेशन फाउंडेशन (WPF), पहले .NET फ्रेमवर्क 3.0 के साथ उपलब्ध
 * माइक्रोसॉफ्ट सिल्वरलाइट 3 और 4, पहले इंटरनेट एक्सप्लोरर 6 के लिए उपलब्ध था और अब हटा दिया गया है
 * Windows UI लाइब्रेरी (पूर्व में UWP XAML और WinRT XAML), पहले Windows 8 और Windows Server 2012 के साथ शिप की गई थी, लेकिन अब Windows ऐप SDK के एक भाग के रूप में उपलब्ध है

इन संस्करणों के पार्सिंग व्यवहार में कुछ अंतर हैं। इसके अतिरिक्त, सिल्वरलाइट 4 एक्सएएमएल पार्सर 100% पश्च संगतता  नहीं है। सिल्वरलाइट 3 फाइलों के साथ बैकवर्ड-संगत। सिल्वरलाइट 3 एक्सएएमएल फाइलों को सिल्वरलाइट 4 पार्सर द्वारा अलग तरीके से खारिज या पार्स किया जा सकता है।

प्रतियोगिता से प्रतिक्रिया
2007 में, इंटरऑपरेबल सिस्टम्स के लिए यूरोपीय समिति (ECIS) - ज्यादातर अमेरिकी सॉफ्टवेयर कंपनियों का एक गठबंधन - ने Microsoft पर HTML को हाईजैक करने और इसे XAML से बदलने का प्रयास करने का आरोप लगाया, इस प्रकार एक वेंडर लॉक-इन बनाया। Ars Technica के लिए लिखने वाले जेरेमी रीमर ने इस टिप्पणी को सबसे गंभीर त्रुटि के रूप में वर्णित किया और कहा कि XAML के कभी भी HTML को बदलने की संभावना नहीं है।

यह भी देखें

 * उपयोगकर्ता इंटरफ़ेस मार्कअप भाषाओं की सूची
 * यूजर इंटरफेस मार्कअप भाषाओं की तुलना:


 * ईएमएमएल
 * एफएक्सएमएल
 * एम एक्सएमएल
 * ओपन एक्सएमएल पेपर विशिष्टता
 * एक्सयूएल
 * ZUML


 * इंटरफ़ेस बिल्डर
 * लेआउट प्रबंधक

बाहरी संबंध

 * XAML Language Reference
 * XAML for UWP: Overview
 * XAML for WPF: Overview
 * System.Windows.Markup Namespace
 * System.Xaml Namespace