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

注意:

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

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

XSLT では、特定の状況で一部の文字を使用することができません。例えば、タグ内のテキストまたは属性値では、より小さい(<)およびアンパサンド(&)を使用できません。これらの文字が間違って使用されている場合は、XSLT 変換エンジンでエラーが発生します。この問題を解決するには、文字エンティティを指定して特殊文字を置き換えます。

文字エンティティは、他の文字を表す文字のストリングです。文字エンティティには名前または番号が付けられます。名前エンティティはアンパサンド(&)で始まり、名前または文字が続き、セミコロン(;)で終わります。例えば &lt; は、より小さい(<)を表します。番号エンティティも同じ方法で始まって終わりますが、シャープ記号(#)と数字によって文字を指定することが異なります。

XSLT には、事前に定義された次の 5 つのエンティティが用意されています。

文字

エンティティコード

<(より小さい)

&lt;

&(アンパサンド)

&amp;

>(より大きい)

&gt;

"(二重引用符)

&quot;

‘(アポストロフィー)

&apos;

XSL ファイルで他の文字エンティティを使用する場合は、XSL ファイルの DTD セクションで文字エンティティを定義する必要があります。Dreamweaver には、Dreamweaver で作成された XSL ファイルの最上部に表示される、デフォルトのエンティティ定義がいくつか用意されています。このデフォルトエンティティには、頻繁に使用される文字が含まれています。

XSL ファイルをブラウザーでプレビューすると、Dreamweaver によって XSL ファイル内に未定義のエンティティがないかが確認され、未定義のエンティティが見つかった場合は通知されます。

XSLT ファイルに適用された XML ファイルをプレビューするか、XSLT 変換を持つサーバーサイドページをプレビューすると、Dreamweaver ではなくサーバーまたはブラウザーによって、定義されていないエンティティに関するメッセージが通知されます。次の例では、XSL ファイルによって変換された XML ファイルを要求し、エンティティ定義が存在しない場合に Internet Explorer で表示されることのあるメッセージを示します。Reference to undefined entity 'auml'.Error processing resource 'http://localhost/testthis/list.xsl'. Line 28, Position 20 <p class=''test''>&auml;</p> -------------------^

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

Reference to undefined entity 'auml'. Error processing resource 'http://localhost/testthis/list.xsl'. Line 28, Position 20 
<p class=''test''>&auml;</p> 
-------------------^

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

  1. WC Web サイトの文字エンティティ参照ページ(www.w3.org/TR/REC-html40/sgml/entities.html)で、存在していない文字を検索します。

    この Web ページには、HTML 4 および XHTML 1.0 で使用できる 252 個のエンティティが記載されています。

    例えば、文字エンティティ Egrave が存在していない場合は、W3C Web ページで「Egrave」を検索します。次のエントリが見つかります。

    <!ENTITY Egrave CDATA "&#200;" -- latin capital letter E with grave, U+00C8 ISOlat1 -->
  2. エントリのエンティティ名とエンティティコードをメモします。

    この例では、Egrave がエンティティ名で &#200 がエンティティコードになります。

  3. この情報を使用して、コードビューに切り替え、XSL ファイルの先頭の、Doctype 宣言の後に、他のエンティティタグと共に、次のエンティティタグを入力します。
    <!ENTITY entityname "entitycode;">

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

    <!ENTITY Egrave "&#200;">
  4. ファイルを保存します。

    同じ文字エンティティを繰り返して使用する場合、ファイル/新規作成を選択した際に Dreamweaver によってデフォルトで作成される XSL ファイルに対して、こうした文字エンティティの定義を永続的に追加することができます。

Dreamweaver で初期設定で作成される XSL ファイルにエンティティ定義を追加する

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

    Configuration/DocumentTypes/MMDocumentTypeDeclarations.xml

  2. mm_xslt_1: という宣言を見つけます。
    <documenttypedeclaration id="mm_xslt_1">
  3. 次のように、エンティティタグのリストに新しいエンティティタグを入力します。
    <!ENTITY entityname "entitycode;">
  4. ファイルを保存して Dreamweaver を再起動します。

本作品は Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License によってライセンス許可を受けています。  Twitter™ および Facebook の投稿には、Creative Commons の規約内容は適用されません。

法律上の注意   |   プライバシーポリシー