Extensible Application Markup Language

Extensible Application Markup Language (XAML)
拡張子.xaml
MIMEタイプapplication/xaml+xml
開発者マイクロソフト
種別マークアップ言語
派生元XML

Extensible Application Markup LanguageXAML、ザムルと発音する[1])は、オブジェクトプロパティ、あるいはそれらの関係や相互作用を定義するために用いられるXMLベースの宣言的言語である。XAMLという略語はもともと「Extensible Avalon Markup Language」に由来していた。AvalonとはWindows Presentation Foundation (WPF) のコードネームである。

適用領域

XAMLは.NET Framework 3.0以降のテクノロジーにおいて広範囲にわたって使われている。とりわけ、Windows Presentation Foundation (WPF) および Silverlightにおいてユーザーインターフェイス要素やデータバインディング、イベント処理、などを定義するために、また、Windows Workflow Foundation (WF) においてワークフローそのものを定義するために用いられる。なお、Windows 8およびWindows RTで利用できるWinRT APIを使用したWindowsストアアプリでは、.NETアプリケーションに限らずC++ネイティブアプリケーション[2]でもXAMLを使ってUIを構築することが可能となっている。後発のWindows 10にて対応したユニバーサルWindowsプラットフォーム (UWP) アプリもまたWinRTベースであり、XAMLを利用して開発する。クロスプラットフォームな.NETアプリケーション開発に利用可能なXamarin.Formsでは、UIの記述にXAMLを用いる。

これらのXAMLを利用するテクノロジー間で、個別のXAML要素の互換性については確保されておらず、名称が違っていたり、サポートされていなかったりする要素もあるが、いずれのフレームワークもほぼ同じ要領で開発できることが大きな利点となる。マイクロソフト固有のXAMLは主にWindowsプラットフォームに特化したものだが、XAML Standardと呼ばれる標準化プロジェクトも立ち上げられている[3][4]

WPFにおける仕様

XAMLにおける要素 (element) はCLRにおけるオブジェクトインスタンスに、属性 (attribute) はCLRにおけるプロパティやイベントに対応する。典型的には、XAMLファイルはMicrosoft Expression BlendMicrosoft Visual Studio、XAMLPadのような開発ツールによって生成される。XAMLファイルは.bamlファイル(バイナリファイル)にコンパイルされ、リソースとして.NET Frameworkアセンブリに含められる。実行時には、CLRがアセンブリのリソースから.bamlファイルを抽出・解析し、WPFのユーザーインターフェイス要素やワークフローを作成する。

WPFにおいては、XAMLはAdobe Flashのように表現豊かなユーザーインターフェイスを記述することができる。他のXMLベースのユーザーインターフェイス記述言語にはXULUIML(英語版)がある。XAMLは単純な2Dグラフィックスだけでなく3Dオブジェクトも記述することが可能で、さらに回転・拡大縮小といった変形に加えて、アニメーションやその他の多彩な効果を表現することができる。

XAMLで記述可能なあらゆるものはまた、C#VB .NETなどといった.NET言語によるコードビハインドでも記述することができる。しかし、重要な相違点として、XAMLはXMLベースであるがゆえに、開発ツール(RADツール)の設計が容易であるという点が挙げられる。その結果、特にWPFにおいて、XAMLファイルを生成するためのさまざまなツールが開発されている。また、XMLであるために分析者・デザイナー・開発者がそれぞれの立場から製品に関与することが容易になっている。

脚注

[脚注の使い方]
  1. ^ 第1回 Hello Worldとテキスト・エディタで始めるXAML - @IT
  2. ^ 通例、C++/CX(英語版)と呼ばれるマイクロソフト独自の拡張が施された言語を用いる。
  3. ^ Microsoft/xaml-standard: XAML Standard : a set of principles that drive XAML dialect alignment
  4. ^ XAML Standardとは:特集:Microsoftテクノロジーの現在と未来 - @IT

関連項目

外部リンク

  • Intoroducing "Longhorn" for Developers 第3章 コントロールとXAML
  • MSDN Library XAML Overview (英語)
  • Download Extensible Application Markup Language (XAML) from Official Microsoft Download Center: 仕様書
3Dファイル形式
レガシー
3DCG
3D CAD
ラピッドプロトタイピング
及びマルチメディア
現行
3DCG
3D CAD
3D都市モデル(英語版)
Web3D
3Dプリンター
フライトシミュレータ
ボクセル/ボリューム
  • OpenVDB形式 (*.vdb)(英語版)
アーキテクチャ
共通言語基盤
言語
関連技術
その他のCLI実装
組織
開発環境
カテゴリ カテゴリ
オフィススイート・文書
Web
組版
軽量
データ記述
その他の言語
  • AmigaGuide(英語版)
  • CML(英語版)(化学)
  • Crossmark(英語版)
  • DITA
  • eLML(英語版)
  • EAD(英語版)
  • Enriched text(英語版)(電子メール)
  • GuideML(英語版)
  • HyTime(英語版)
  • IPF(英語版)
  • LilyPond(楽譜)
  • LinuxDoc(英語版)
  • Lout(英語版)
  • MIF(英語版)
  • MAML(英語版)
  • MathML
  • MEI(英語版)
  • MusicXML
  • OMDoc(英語版)
  • OpenMath(英語版)(数式)
  • RTML(英語版)
  • RFT(英語版)
  • S1000D(英語版)
  • troff