XML 文字エンティティと XAML
XAML は、特殊文字に、XML で定義される文字エンティティを使用します。 ここでは、いくつかの特定の文字エンティティ、および XAML における他の XML の概念に関する一般的な考慮事項について説明します。
XAML に固有の文字エンティティとエスケープの問題
一般に、XAML マークアップでは、XML で定義されているものと同じ文字エンティティおよびエスケープ シーケンスを使用します。
大きな違いは、XAML では中かっこ ({}) が意味を持つ点です。中かっこで囲まれた文字シーケンスは、マークアップ拡張機能として解釈する必要があることを XAML プロセッサに伝える意味になります。 マークアップ拡張機能の詳細については、「XAML のマークアップ拡張機能の概要」を参照してください。
ただし、XML ではなく XAML に固有のエスケープ シーケンスを使用すると、中かっこをリテラル文字として表示できます。 詳細については、「{} エスケープ シーケンス/マークアップ拡張機能」を参照してください。
円記号 (\) は、文字列として処理される場合、エスケープ シーケンスは必要ありません。
XML 文字エンティティ
前に述べたように、XAML マークアップを記述するときに一般的に使用する文字エンティティおよびエスケープ シーケンスの大半は、XML で定義されています。 このトピックでは、こうしたエンティティの一覧は示しません。エンティティの詳細なリファレンスについては、XML 仕様などの外部ドキュメントを参照してください。 代わりに、このトピックでは、便宜を考えて、XAML マークアップでよく使用する XML 文字エンティティを抜粋した一覧を示します。
文字 |
エンティティ |
説明 |
---|---|---|
& (アンパサンド) |
& |
属性値および要素のコンテンツの両方に対して使用する必要があります。 |
> (大なり記号) |
> |
属性値に対しては使用する必要がありますが、要素のコンテンツに対しては、前に < がない場合には > も使用できます。 |
< (小なり記号) |
< |
属性値に対しては使用する必要がありますが、要素のコンテンツに対しては、後ろに > がない場合には < も使用できます。 |
" (二重引用符) |
" |
属性値に対しては使用する必要がありますが、要素のコンテンツとしても使用できます。 属性値自体は、単一引用符 (') と二重引用符 (") のどちらで囲むこともできます。先に使用した方の引用符は、属性値を囲む文字を表すことになり、もう一方の引用符は、値の中でリテラルとして使用できます。 |
' (単一引用符) |
' |
属性値に対しては使用する必要がありますが、要素のコンテンツとしても使用できます。 属性値自体は、単一引用符 (') と二重引用符 (") のどちらで囲むこともできます。先に使用した方の引用符は、属性値を囲む文字を表すことになり、もう一方の引用符は、値の中でリテラルとして使用できます。 |
(数値と文字の対応付け) |
&#[integer]; または &#x[hex]; |
XAML では、アクティブなエンコーディングに応じた数値と文字の対応付けがサポートされています。 |
(非区切りスペース) |
  (UTF-8 エンコーディングの場合) |
フロー ドキュメントの要素、または WPF の TextBox などのテキストを受け取る要素では、マークアップからの非区切りスペースの正規化は行われません。これには、xml:space="default" の場合も含まれます (詳細については、「XAML での空白の処理」を参照してください)。 |
XML のコメントの書式
XAML では、XML のコメントの書式を使用します。つまり、コメントの先頭は <!-- で表し、コメントの末尾は -->, で表します。コメントの中に -- というシーケンスを含めることはできません。
XML 処理命令
XAML では、XML 仕様に従って XML 処理命令が処理されます。つまり、命令は必ず素通しされます。 .NET Framework XAML サービスの XAML 処理では、処理命令は使用されません。 XAML を使用する他の既存のフレームワークでも、XAML の処理命令は使用されません。