JavaTM 2
Platform
Std. Ed. v1.4.0

org.xml.sax
インタフェース EntityResolver

既知の実装クラスの一覧:
DefaultHandler, HandlerBase, XMLFilterImpl

public interface EntityResolver

エンティティを解決するための基本インタフェースです。

このモジュールは、ソースコード、文書ともに公開ドメインに置かれています。したがって、内容に関する保証は一切提供されません

外部エンティティのカスタム処理を実装する必要がある場合、SAX アプリケーションはこのインタフェースを実装し、setEntityResolver メソッドを使って SAX ドライバにインスタンスを登録する必要があります。

その後、XML リーダにより、アプリケーションは外部エンティティ (外部 DTD サブセット、外部パラメータエンティティを含む) を取り込む前に遮断できるようになります。

このインタフェースを実装しなければならない SAX アプリケーションはあまりありません。しかし、このインタフェースは、データベースやその他の特殊な入力ソースから XML 文書を構築するようなアプリケーション、あるいは URL 以外の URI 型を使用するアプリケーションにとって非常に有益です。

以下のリゾルバは、システム識別子 "http://www.myhost.com/today" を使って、アプリケーションにエンティティの特殊文字ストリームを提供します。

 import org.xml.sax.EntityResolver;
 import org.xml.sax.InputSource;

 public class MyResolver implements EntityResolver {
   public InputSource resolveEntity (String publicId, String systemId)
   {
     if (systemId.equals("http://www.myhost.com/today")) {
              // return a special input source
       MyReader reader = new MyReader();
       return new InputSource(reader);
     } else {
              // use the default behaviour
       return null;
     }
   }
 }
 

アプリケーションもまた、このインタフェースを使ってシステム識別子をローカル URI にリダイレクトしたり、カタログ内の交換値を検索したり (通常、公開識別子を使用) できます。

導入されたバージョン:
SAX 1.0
関連項目:
Parser.setEntityResolver(org.xml.sax.EntityResolver), InputSource

メソッドの概要
 InputSource resolveEntity(String publicId, String systemId)
          アプリケーションが外部エンティティを解決できるようにします。
 

メソッドの詳細

resolveEntity

public InputSource resolveEntity(String publicId,
                                 String systemId)
                          throws SAXException,
                                 IOException
アプリケーションが外部エンティティを解決できるようにします。

パーサは、トップレベルの文書エンティティを除くあらゆる外部エンティティ (外部 DTD サブセット、DTD 内で参照される外部エンティティ、文書要素内で参照される外部エンティティを含む) を開く前に、このメソッドを呼び出します。アプリケーションは、パーサにエンティティ自体の解決、代替 URI の使用、またはまったく異なった入力ソースの使用を要求できます。

アプリケーションの作成者は、このメソッドを使って外部システム識別子を安全なローカル URI にリダイレクトしたり、カタログ内の公開識別子を検索したり、データベースやその他の入力ソース (たとえばダイアログボックス) からエンティティを読み取ったりできます。

システム識別子が URL の場合、SAX パーサはこれをアプリケーションに報告する前に完全に解決する必要があります。

パラメータ:
publicId - 参照される外部エンティティの公開識別子。提供されなかった場合は null
systemId - 参照される外部エンティティのシステム識別子
戻り値:
新しい入力ソースを記述する InputSource オブジェクト。パーサにシステム識別子への正規 URI 接続を要求する場合は null
例外:
SAXException - SAX 例外。ほかの例外をラップしている可能性がある
IOException - Java 固有の入出力例外。通常、InputSource の新しい InputStream または Reader が生成されると発生する
関連項目:
InputSource

JavaTM 2
Platform
Std. Ed. v1.4.0

バグの報告と機能のリクエスト
これ以外の API リファレンスおよび開発者用ドキュメントについては、 Java 2 SDK SE 開発者用ドキュメントを参照してください。 開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、 およびコード実例が含まれています。

Java、Java 2D、および JDBC は米国ならびにその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.