出力のエスケープ

www.altova.com すべてを展開/折りたたむ このトピックを印刷 前のページ 1つ上のレベル 次のページ

ホーム >  SPS ファイル: 表示方法 >

出力のエスケープ

テキスト文字列内にある文字が文字参照またはエンティティ参照として記述されている場合、その文字がエスケープされた状態となります。参照は(文字参照かエンティティ参照かに関わらず)アンパサンド (&) 文字で始まりセミコロン (;) にて終わります。例えば..

 

A という文字に対する16進数(または Unicode)の文字参照は A となります。
A という文字に対する10進数の文字参照は A となります。
& という文字に対する HTML(ならびに XML)エンティティ参照は & となります。
& という文字に対する16進数(または Unicode)の文字参照は & となります。
& という文字に対する10進数の文字参照は & となります。
< という文字に対する HTML(ならびに XML)エンティティ参照は &lt; となります。

 

出力のエスケープ

出力のエスケープとは入力にてエスケープされた文字を出力にて表示することを指し、出力にて文字参照またはエンティティ参照として表示される文字のことを出力エスケープされた文字といいます。入力にてエスケープされた文字だけが出力エスケープできるという点に注意してください(以下のテーブルにある例を参照ください)。SPS では以下のものに対して出力エスケープを有効にすることができます:

 

静的テキストのフラグメント
contents プレースホルダ
自動計算

 

プロパティのテキストグループにある disable-output-escaping 属性にて設定を行うことができます。プロパティのデフォルト値は「いいえ」になっており、出力のエスケープが行われることは無く、入力にてエスケープされた文字はデフォルトでエスケープされます(以下のテーブルにある例を参照ください)。

 

以下の操作により出力のエスケープを無効化することができます:

 

1.出力のエスケープの無効化を行う (i) 静的テキスト、または (ii) 静的テキストのフラグメント、(iii) コンテンツプレースホルダ、または (iv) 自動計算を選択します。
2.プロパティサイドバーにて、テキストアイテムのテキストグループを選択し、disable-output-escaping 属性の値として表示される個々の出力または全ての出力を選択します。選択可能な値を以下に示します:

 

HTML に: HTML 出力に対して disable-output-escaping の値が「はい」になります。
Authentic に: Authentic 出力に対して disable-output-escaping の値が「はい」になります。Authentic ビューに対する出力エスケープを無効にする機能は、Enterprise エディションの Authentic ビュー(つまり Enterprise エディションのStyleVision、Authentic Desktop、Authentic Browser、XMLSpy)でしか使用できない点に注意してください。.
RTF に: RTF 出力に対して disable-output-escaping の値が「はい」になります。
全てに: 全ての出力に対して disable-output-escaping の値が「はい」になります。

 

特定の出力(例えば HTML 出力)に対して出力エスケープが無効になっている場合、選択されたテキストはその出力フォーマットにてエスケープされず、その他の出力フォーマットにてエスケープされます。

 

出力エスケープが無効/有効になっている状態で、テキストがどのように表示されるかを以下のテーブルに示します。

 

静的テキスト

disable-output-escaping

出力テキスト

&amp;

いいえ

&amp;

&amp;

はい

&

&

いいえ

&

&

はい

&

&lt;

いいえ

&lt;

&lt;

はい

<

&#65;

いいえ

&#65;

&#65;

はい

A

&amp;lt;

いいえ

&amp;lt;

&amp;lt;

はい

<

&amp;amp;lt;

はい

&lt;

&amp;&lt;

はい

&<

 

メモ:disable-output-escaping は、Enterprise エディションの Authentic View でのみサポートされます。

 

出力フォーマットごとに出力エスケープを無効化する

出力エスケープを無効化したとしても、ある出力にとって意味のあるテキストが別の出力では意味を持たない場合も考えられます。例えば、(ハイライトされた)エスケープ文字が存在する、以下の入力テキストを考えてみましょう:

 

 &lt;b&gt;This text is bold.&lt;/b&gt;

 

出力エスケープが無効化されている場合、出力は以下のようになります:

 

 <b>This text is bold.</b>

 

HTML 出力に対して出力エスケープが無効化されている状態でこの出力がブラウザーにて閲覧されると、文字列のマークアップが HTML ブラウザーにより処理され、太字でテキストが表示されるようになります:

 

 This text is bold.

 

しかし、その他の出力フォーマット(例えば PDF)で同じ文字列が出力されても、HTML 出力では意味のあるマークアップが、その他のフォーマットでも意味を持つとは限りません。上記にある例の場合、(出力エスケープを無効にすることで得られる)エスケープされていないテキストは、PDF フォーマットで以下のように表示されます:

 

 <b>This text is bold.</b>

 

上記の例で見られるように、出力エスケープを無効にすることで得られる出力テキストは、ある出力フォーマットでコードとして読み取られる一方で、その他の出力では通常のテキストとして読み取られます。disable-output-escaping プロパティを使用する際には、この違いについて常に留意する必要があります。

 

 

 


(C) 2019 Altova GmbH