管理コンソール・オンライン・ヘルプ

前 次 新規ウィンドウで目次を開く
ここから内容の開始

外部エンティティ解決の構成

始める前に

XMLレジストリを作成して、WebLogic Serverインスタンスと関連付けます。詳細は、XMLレジストリの作成を参照してください。


外部エンティティとは、XMLドキュメント内に記述されていないものの、XMLドキュメント内で参照される様々なテキストのことです。実際のテキストは、同じコンピュータの他のファイル内、あるいはWeb上など、どこにあってもかまいません。パーサーは、ドキュメントの解析中に外部エンティティの参照に遭遇すると、参照先のテキストをフェッチして、そのテキストをXMLドキュメント内に配置してから解析を続行します。外部エンティティの例としてDTDがあります。XMLドキュメントではDTDのテキストがすべて記述されているのではなく、別のファイルに格納されているDTDを参照します。

WebLogic Serverで外部エンティティ解決を構成する場合、WebLogic管理サーバーからアクセス可能なディレクトリにエンティティ・ファイルを物理的にコピーして、XMLドキュメントで外部エンティティへの参照があるときは、管理サーバーでローカル・コピーが使用されるように指定します。

このトピックの手順では、サンプルとして次のXMLファイルを使用します。

<?xml version="1.0"?> 
<!-- This XML document describes a car --> 
<!DOCTYPE CAR PUBLIC "-//Oracle//DTD for cars//EN" "http://www.oracle.com/dtds/car.dtd">
<CAR> 
   <MAKE>Toyota</MAKE> 
   <MODEL>Corrolla</MODEL> 
   <YEAR>1998</YEAR> 
   <ENGINE>1.5L</ENGINE> 
   <HP>149</HP> 
</CAR>

外部エンティティ解決エントリを構成するには:

  1. まだ行っていない場合、管理コンソールのチェンジ・センターで「ロックして編集」をクリックします(チェンジ・センターの使用を参照)。
  2. 左ペインで、「サービス」を展開し、「XMLレジストリ」を選択します。
  3. XMLレジストリ」表で、外部エンティティ解決のエントリを作成するXMLレジストリをクリックします。
  4. XMLレジストリ名の設定」ページで、「コンテンツ」→「エンティティ・スペックのエントリ」を選択します。
  5. 「新規作成」をクリックします。
  6. 「パブリックID」フィールドに、XMLドキュメントで外部エンティティの参照に使用するパブリックIDを入力します。たとえば、このページの前述のサンプルXMLドキュメントのパブリックIDは、-//Oracle//DTD for cars//ENになります。
  7. 「システムID」フィールドに、XMLドキュメントで外部エンティティの参照に使用するシステムIDを入力します。サンプルXMLドキュメントのシステムIDは、http://www.oracle.com/dtds/car.dtdになります。
  8. 外部エンティティのローカル・コピーを構成する場合、XMLレジストリ・エンティティのディレクトリDOMAIN/xml/registries/reg_nameが存在することを確認してください。DOMAINは、ドメイン・ディレクトリ、reg_nameは、XMLレジストリの名前です。ディレクトリが存在しない場合は作成します。
  9. エンティティURI」フィールドに、次の2つのエンティティ・パスのいずれかを入力します。
    1. 管理サーバーにあるエンティティ・ファイルのコピーのパス名。このパス名は、レジストリ・エントリのディレクトリDOMAIN/xml/registries/reg_nameを基準とした相対パス名とします。

      たとえば、car.xmlファイルの場合、「エンティティURI」フィールドにdtds/car.dtdと入力できます。

    2. Webに公開される外部エンティティ、またはリポジトリに格納されているエンティティを示すURL。たとえば、Java EEエンタープライズ・アプリケーションの記述に使用されるapplication.xmlファイル用のDTDを参照するにはhttp://java.sun.com/j2ee/dtds/application_1_2.dtdと入力します。また、データベースのエンティティを参照するにはjdbc:と入力します。

      外部エンティティを指定するには、http://file://jdbc:、またはftp://のプロトコル宣言を使用します。

  10. キャッシュのタイミング」リスト・ボックスから次のオプションのうち1つを選択します。
    1. 参照時」: URLによって参照される外部エンティティが、XMLドキュメントで最初に参照されるときにそのエンティティをキャッシュします。
    2. 初期化時」: サーバーの起動時に外部エンティティをキャッシュします。
    3. レジストリの設定に従う」: デフォルトのキャッシュ設定を使用します。
    4. キャッシュしない」: 外部エンティティをキャッシュしません。
  11. キャッシュ・タイムアウト間隔」フィールドに、キャッシュされた外部エンティティが古くなる(期限切れになる)までの秒数を入力します。WebLogic Serverでは、キャッシュされたコピーがこの秒数よりも長くキャッシュ内に存在する場合、管理サーバーを基準とした相対パス名または指定のURLから、外部エンティティを再取得します。

    このフィールドのデフォルト値は -1です。これは、WebLogic Serverに対しグローバル・タイムアウト値が使用されることを意味します。

  12. 「OK」をクリックします。
  13. Webのエンティティをキャッシュするのではなく、エンティティのローカル・コピーが使用されるように指定した場合、エンティティ・ディレクトリにエンティティ・ファイルをコピーします。

    たとえば、ディレクトリDOMAIN/xml/registries/reg_name/dtdsに、car.dtdファイルをコピーします。DOMAINは、ドメイン・ディレクトリ、reg_nameはXMLレジストリの名前です。

  14. これらの変更をアクティブにするには、管理コンソールのチェンジ・センターで「変更のアクティブ化」をクリックします。
    すべての変更が即座に有効になるわけではありません。再起動が必要なものもあります(チェンジ・センターの使用を参照)。

完了した後に

XMLエンティティ・キャッシュを作成して、WebLogic Serverインスタンスと関連付けます。XMLエンティティ・キャッシュの作成を参照してください。


先頭に戻る