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