モジュール java.xml
パッケージ org.xml.sax

インタフェースEntityResolver

既知のすべてのサブインタフェース:
CatalogResolver, EntityResolver2
既知のすべての実装クラス:
DefaultHandler, DefaultHandler2, 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にリダイレクトしたり、カタログ内の置換値を検索したり(通常、公開識別子を使用)できます。

導入されたバージョン:
1.4, SAX 1.0
関連項目: