| ファイル名拡張子 | .xaml |
|---|---|
| インターネットメディアの種類 |
アプリケーション/xaml+xml |
| 開発者 | マイクロソフト |
| 初回リリース | 2006年11月[1] |
| 最新リリース | v2019 2019年3月12日[2] |
| フォーマットの種類 | ユーザーインターフェースマークアップ言語 |
| 延長 | テキスト |
拡張アプリケーション マークアップ言語( XAML / ˈ z æ m əl / )は、構造化された値とオブジェクトを初期化するためにマイクロソフトによって開発された宣言型 XMLですOpen Specific Promiseに基づいて利用可能です。[3]
XAML は、Windows Presentation Foundation (WPF)、Silverlight、Workflow Foundation (WF)、Windows UI ライブラリ(WinUI)、ユニバーサル Windows プラットフォーム(UWP)、. NET マルチプラットフォーム アプリ UI (.NET MAUI) で広く使用されています。WPF と UWP では、XAML はUI 要素、データ バインディング、およびイベントを定義するユーザー インターフェイス マークアップ言語です。ただし、WF では、XAML はワークフローを定義します。
XAML 要素は共通言語ランタイム(CLR) オブジェクト インスタンスに直接マップされ、XAML 属性はそれらのオブジェクトの CLR プロパティとイベントにマップされます。
XAMLで作成または実装されたものはすべて、C#やVisual Basic .NETなどのより伝統的な.NET言語を使用して表現できます。ただし、このテクノロジの重要な側面は、XAMLがXMLに基づいているため、ツールがXAMLを処理するために必要な複雑さが軽減されることです。[4]
テクノロジー
XAMLは元々Extensible Avalon Markup Languageの略で、AvalonはWindows Presentation Foundation (WPF)のコード名でした。[5]しかし、.NET Framework 3.0の開発が終了する前に、MicrosoftはWorkflow Foundation (WF)にXAMLを採用しました。[5]
WPF では、XAML はビジュアルユーザー インターフェイスを記述します。WPF では、2D と 3D の両方のオブジェクト、回転、アニメーション、その他のさまざまな効果や機能の定義が可能です。XAML ファイルは、バイナリ アプリケーション マークアップ言語(BAML) ファイル[5] [6]にコンパイルでき、.NET Framework アセンブリにリソースとして挿入できます。実行時に、フレームワーク エンジンはアセンブリ リソースから BAML ファイルを抽出し、解析して、対応する WPF ビジュアル ツリーまたはワークフローを作成します。
WF コンテキストでは、XAML は、プロセス モデリング ツールやルール システムによって作成されるような、潜在的に長時間実行される宣言型ロジックを記述します。ワークフローのシリアル化形式は、以前は XAML の UI マークアップの使用と区別するために XOML と呼ばれていましたが、現在は区別されなくなりました。ただし、ワークフロー マークアップを含むファイルのファイル拡張子は、引き続き ".xoml" です。[7]
XAMLはテンプレートと呼ばれる外観と操作性を定義する特定の方法を使用します。これはカスケーディングスタイルシートの構文とは異なり、 XBLに近いものです。[8]
XAMLファイルを作成するには、 Microsoft Expression Blend、Microsoft Visual Studio、ホスト可能なWFビジュアルデザイナー、またはXAMLPadを使用できます。 [9]
例

この Windows Presentation Foundation の例では、Canvas と呼ばれる最上位レベルの XAML コンテナーに「Hello, world!」というテキストが表示されます。
<Canvas xmlns= "http://schemas.microsoft.com/client/2010" xmlns:x= "http://schemas.microsoft.com/winfx/2006/xaml" > <TextBlock>こんにちは、世界! </TextBlock> </Canvas>
スキーマ(xmlns="http://schemas.microsoft.com/..."部分)は、お使いのコンピュータで動作するように変更する必要があるかもしれません。Microsoftが推奨するスキーマを使用すると、この例も[10]になります。
<Canvas xmlns= "http://schemas.microsoft.com/winfx/2006/xaml/presentation" > <TextBlock>こんにちは、世界! </TextBlock> </Canvas>
XAML を最大限に活用する上で重要なのは、バインディングを適切に使用することと、特定のニーズに合わせて独自のカスタム ユーザー要素を作成することです。バインディングは次のように実行できます。
<TextBox x:Name= "txtInput" /> <TextBlock Text= "{Binding ElementName=txtInput,Path=Text}" />
XAML のバージョン間の違い
XAML の主な Microsoft 実装は 3 つあります。
- Windows Presentation Foundation (WPF)、. NET Framework 3.0で初めて利用可能
- Silverlight 3 および 4 (最初はInternet Explorer 6で利用可能でしたが、現在は廃止されています)
- Windows UI ライブラリ(旧称 UWP XAML および WinRT XAML) は、Windows 8およびWindows Server 2012に最初に同梱されましたが、現在はWindows アプリ SDKの一部として提供されています。
これらのバージョンでは、解析動作に若干の違いがあります。[11]さらに、Silverlight 4 XAML パーサーは Silverlight 3 ファイルと 100%下位互換性がありません。Silverlight 3 XAML ファイルは、Silverlight 4 パーサーによって拒否されたり、異なる方法で解析されたりする場合があります。[12]
Web ブラウザでの XAML アプリケーション
歴史的に、XAMLベースのアプリケーションは、 Internet ExplorerやFirefoxなどの一部のWebブラウザで実行できました。これは、 WPFアプリケーションから作成されたXBAPファイル、またはSilverlightブラウザプラグインを介して実現できました。ただし、これらの方法は両方とも、廃止されたNPAPIブラウザプラグインインターフェイスに依存しているため、現在ではすべての主要ブラウザでサポートされていません。[13] [14]
ロックインの懸念
2007年、主にアメリカのソフトウェア企業からなる連合体である欧州相互運用性システム委員会(ECIS)は、マイクロソフトがHTMLを乗っ取ってXAMLに置き換えようとし、ベンダーロックインを生み出そうとしていると非難した。[15] [16] Ars Technicaのジェレミー・ライマー氏はこのコメントを「最もひどい誤り」と評し、XAMLがHTMLに取って代わる可能性は低いと付け加えた。[16]
参照
参考文献
- ^ 「[MS-XAML] Xaml オブジェクト マッピング仕様 2006」(PDF)。Microsoft 。2008年 6 月。
- ^ 「Extensible Application Markup Language (XAML)」。Microsoft。2019年3月12日。
- ^ Worthington, David. 「Microsoft が XAML を「オープン仕様」リストに追加 – Software Development Times On The Web」。2008 年 12 月 11 日時点のオリジナルよりアーカイブ。2021年 4 月 6 日閲覧。
- ^ 「 XAML構文の詳細」。Windows Presentation Foundation ライブラリ。Microsoft。2021年 8 月 12 日 – Microsoft Docs経由。
- ^ abc Rob Relyea : 2004年1月 – 2007年10月11日に Wayback Machineにアーカイブされた投稿
- ^ 不明 (2009-07-30)。「BAML とは?」DOTNET Spider。BAML
は Binary Application Markup Language の略で、XAML のコンパイル バージョンです。XAML をコンパイルすると、BAML ファイルが作成されます。
- ^ Andrew, Paul (2006 年 1 月 25 日)。「xoml と xaml の 違いは?」。MSDN コミュニティ アーカイブ。Microsoft 。
ワークフロー プログラム (またはモデル) は、.NET タイプを XML としてシリアル化するために Avalon でよく使用される XAML 形式で保存されます。Avalon XAML は UI に関するもので、Workflow XAML はビジネス プロセスに関するものであるため、意味上の違いがかなりあります。ファイル形式は XAML ですが、XOML ファイル拡張子はワークフロー モデルでもそのまま使用されるようです。
[永久リンク切れ ] - ^ Guthrie, Scott (2008 年 2 月 22 日)。「Silverlight チュートリアル パート 7: コントロール テンプレートを使用してコントロールの外観と操作感をカスタマイズする」。ScottGu のブログ。
- ^ Avery, James; Holmes, Jim. 「3.3 XamlPad での XAML の記述 - Windows Developer Power Tools [書籍]」。www.oreilly.com。O'Reilly。
- ^ Microsoft XAML 概要ページ (XAML の概要 (ルート要素と xmlns))
- ^ 「Silverlight バージョンと WPF 間の XAML 処理の違い」。Silverlightアーカイブ。Microsoft。2011年 11 月 17 日 – Microsoft Docs 経由。Silverlightには
、Silverlight コア インストールの一部である XAML パーサーが含まれています。Silverlight は、アプリケーションが Silverlight 3 または Silverlight 4 のどちらをターゲットにしているかに応じて、異なる XAML パーサーを使用します。Silverlight 4 では、互換性のために 2 つのパーサーが共存しています。場合によっては、Silverlight での XAML 解析動作が Windows Presentation Foundation (WPF) での解析動作と異なります。WPF には独自の XAML パーサーがあります。
- ^ 「Silverlight バージョン間 のXAML 処理の違い」。Silverlightアーカイブ。Microsoft。2011年 11 月 17 日 – Microsoft Docs経由。
- ^ adegeo. 「XBAP のサポートに関する FAQ」. learn.microsoft.com . 2024 年 5 月 16 日閲覧。
- ^ nakarnam (2020-03-16). 「Silverlight のサポート終了 - Microsoft ライフサイクル」. learn.microsoft.com . 2024-05-16閲覧。
- ^ Beer, Stan (200 年 1 月 28 日). 「Microsoft が EU Vista の訴訟に巻き込まれる」. iTWire . 2013 年8 月 22 日閲覧。
- ^ ab Reimer, Jeremy (2007年1月26日). 「欧州委員会の議長がマイクロソフトをウェブのハイジャックと非難」Ars Technica . Condé Nast . 2013年8月22日閲覧。
外部リンク
- XAML 言語リファレンス
- UWP 向け XAML: 概要
- WPF 用 XAML: 概要
- System.Windows.Markup 名前空間
- System.Xaml 名前空間
