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

एक्स्टेंसिबल एप्लिकेशन मार्कअप लैंग्वेज (एक्सएएमएल ) संरचित मान और वस्तुओं को आरंभ करने के लिए माइक्रोसाॅफ्ट द्वारा विकसित यह प्रोग्रामिंग एक्सएमएल पर आधारित भाषा है। यह माइक्रोसॉफ्ट की विशिष्टताओं के अनुसार उपलब्ध रहती है। एक्सएएमएल का उपयोग विंडोज प्रेजेंटेशन फाउंडेशन (डब्ल्यूपीएफ), सिल्वरलाइट, विंडोज वर्कफ़्लो फाउंडेशन (डब्ल्यूएफ), विंडोज यूआई लाइब्रेरी (विनयूआई) और यूनिवर्सल विंडोज प्लेटफॉर्म (यूडब्ल्यूपी) में बड़े पैमाने पर किया जाता है। इस प्रकार डब्ल्यूपीएफ और यूडब्ल्यूपी में, एक्सएएमएल यूआई एलिमेंटों, डेटा बाइंडिंग और इवेंट्स को परिभाषित करने के लिए एक  उपयोगकर्ता इंटरफ़ेस मार्कअप भाषा  है। डब्ल्यूएफ में एक्सएएमएल कार्यप्रवाह को परिभाषित करता है।

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

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

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

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

डब्ल्यूएफ संदर्भों में, एक्सएएमएल संभावित रूप से लंबे समय तक चलने वाले घोषणात्मक तर्क का वर्णन करता है, जैसे कि प्रक्रिया मॉडलिंग टूल और नियम प्रणाली द्वारा बनाए गए। एक्सएएमएल के यूआई मार्कअप उपयोग से इसे अलग करने के लिए वर्कफ़्लो के क्रमांकन प्रारूप को पहले एक्सओएमएल कहा जाता था, अपितु अब वे अलग नहीं हैं। चूंकि, वर्कफ़्लो मार्कअप वाली फ़ाइलों का फ़ाइल एक्सटेंशन अभी भी .xoml है। एक्सएएमएल लुक और फील को परिभाषित करने के लिए विशिष्ट तरीके का उपयोग करता है जिसे टेम्प्लेट कहा जाता है, कैसकेडिंग स्टाइल शीट सिंटैक्स से भिन्न, यह एक्सबीएल के समीप है।

एक्सएएमएल फ़ाइलें बनाने के लिए, कोई माइक्रोसाॅफ्ट अभिव्यक्ति मिश्रण, माइक्रोसाॅफ्ट विजिउल स्टूडियो, होस्ट करने योग्य डब्ल्यूएफ विज़ुअल डिज़ाइनर, या एक्सएएमएलपैड का उपयोग कर सकता है।

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

स्कीमा ( भाग) को आपके कंप्यूटर पर काम करने के लिए बदलना पड़ सकता है।

माइक्रोसाॅफ्ट द्वारा अनुशंसित स्कीमा का उपयोग करना, उदाहरण भी हो सकता है

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

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

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

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

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

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

यह भी देखें

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


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


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

बाहरी संबंध

 * एक्सएएमएल Language Reference
 * एक्सएएमएल for यूडब्ल्यूपी: Overview
 * एक्सएएमएल for डब्ल्यूपीएफ: Overview
 * System.विंडोज.Markup Namespace
 * System.Xaml Namespace