Dreamweaver での XSLT の文字エンティティの追加

最終更新日 : 2021年12月20日

この記事では、Dreamweaver で特殊文字を置き換える XSLT の存在しない文字エンティティを指定する方法について説明します。

Dreamweaver 以降では、ユーザーインターフェイスが簡素化されています。 そのため、この記事で説明されているオプションの一部が Dreamweaver 以降には存在しない場合があります。 詳しくは、こちらの記事を参照してください。

存在していない文字エンティティを指定する

XSLT では、特定のコンテキストで使用できない文字があります。たとえば、タグ間のテキストや属性値では、小なり記号(<)とアンパサンド(&)を使用できません。これらの文字が正しく使用されていない場合、XSLT 変換エンジンはエラーを表示します。この問題を解決するには、特殊文字を置き換える文字エンティティを指定することができます。

文字エンティティは、他の文字を表す文字列です。文字エンティティには、名前付きと番号付きがあります。名前付きエンティティは、アンパサンド(&)で始まり、その後に名前または文字が続き、セミコロン(;)で終わります。たとえば、< は左角度ブラケット文字(<)を表します。番号付きエンティティも同じように開始および終了しますが、ハッシュ記号(#)と数字で文字を指定します。

XSLT には次の 5 つの定義済みエンティティがあります:

文字

エンティティコード

<(より小さい)

<

&(アンパサンド)

&

>(より大きい)

>

"(二重引用符)

&quot;

‘(アポストロフィー)

&apos;

XSL ファイルで他の文字エンティティを使用する場合は、XSL ファイルの DTD セクションで定義する必要があります。Dreamweaver では、Dreamweaver で作成された XSL ファイルの上部に表示される、いくつかのデフォルトエンティティ定義が提供されています。これらのデフォルトエンティティは、最も一般的に使用される文字を幅広く対象としています。

ブラウザーで XSL ファイルをプレビューすると、Dreamweaver は XSL ファイルで未定義のエンティティをチェックし、未定義のエンティティが見つかった場合に通知します。

XSLT ファイルに添付された XML ファイルをプレビューするか、XSLT 変換を含むサーバーサイドページをプレビューする場合、(Dreamweaver ではなく)サーバーまたはブラウザーが未定義のエンティティを通知します。エンティティ定義が欠落している XSL ファイルによって変換された XML ファイルを要求したときに Internet Explorer で表示される可能性があるメッセージの例を次に示します:未定義のエンティティ 'auml' への参照。Error processing resource 'http://localhost/testthis/list.xsl'. 行 28、位置 20 <p class=''test''>&auml;</p> -------------------^

ページのエラーを修正するには、エンティティ定義を手動でページに追加する必要があります。

未定義のエンティティ「auml」への参照。Error processing resource 'http://localhost/testthis/list.xsl'. 行 28、位置 20

<p class=''test''>&auml;</p>

-------------------^

存在していないエンティティ定義を指定する

www.w3.org/TR/REC-html40/sgml/entities.html の W3C web サイトの文字エンティティ参照ページで、欠落している文字を検索してください。

この web ページには、HTML 4 および XHTML 1.0 で許可されている 252 のエンティティが含まれています。

たとえば、文字エンティティ Egrave が欠落している場合は、W3C web ページで「Egrave」を検索します。次のエントリが見つかります:

<!ENTITY Egrave CDATA "&#200;" -- latin capital letter E with grave, U+00C8 ISOlat1 -->

エントリでエンティティ名とエンティティコードをメモしてください。

例では、Egraveがエンティティ名で、&#200がエンティティコードです。

この情報を使用して、コードビューに切り替え、XSLファイルの上部(Doctype宣言の後、他のエンティティタグと一緒に)に次のエンティティタグを入力します:

<!ENTITY entityname "entitycode;">

例では、次のエンティティタグを入力します:<!ENTITY Egrave "&#200;">

<!ENTITY Egrave "&#200;">

ファイルを保存します。

同じ文字エンティティを繰り返し使用する場合は、「ファイル」>「新規」を使用したときにDreamweaverがデフォルトで作成するXSLファイルに定義を永続的に追加することをお勧めします。

Dreamweaverがデフォルトで作成するXSLファイルにエンティティ定義を追加する

Dreamweaver アプリケーションフォルダー内の次の設定ファイルを見つけて、任意のテキストエディターで開きます。

Configuration/DocumentTypes/MMDocumentTypeDeclarations.xml

mm_xslt_1: という宣言を見つけます。

<documenttypedeclaration id="mm_xslt_1">

次のように、エンティティタグのリストに新しいエンティティタグを入力します:

<!ENTITY entityname "entitycode;">

ファイルを保存して Dreamweaver を再起動します。