|
JavaTM 2 Platform Std. Ed. v1.4.0 |
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
エンティティを解決するための基本インタフェースです。
このモジュールは、ソースコード、文書ともに公開ドメインに置かれています。したがって、内容に関する保証は一切提供されません。
外部エンティティのカスタム処理を実装する必要がある場合、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 にリダイレクトしたり、カタログ内の交換値を検索したり (通常、公開識別子を使用) できます。
Parser.setEntityResolver(org.xml.sax.EntityResolver)
,
InputSource
メソッドの概要 | |
InputSource |
resolveEntity(String publicId,
String systemId)
アプリケーションが外部エンティティを解決できるようにします。 |
メソッドの詳細 |
public InputSource resolveEntity(String publicId, String systemId) throws SAXException, IOException
パーサは、トップレベルの文書エンティティを除くあらゆる外部エンティティ (外部 DTD サブセット、DTD 内で参照される外部エンティティ、文書要素内で参照される外部エンティティを含む) を開く前に、このメソッドを呼び出します。アプリケーションは、パーサにエンティティ自体の解決、代替 URI の使用、またはまったく異なった入力ソースの使用を要求できます。
アプリケーションの作成者は、このメソッドを使って外部システム識別子を安全なローカル URI にリダイレクトしたり、カタログ内の公開識別子を検索したり、データベースやその他の入力ソース (たとえばダイアログボックス) からエンティティを読み取ったりできます。
システム識別子が URL の場合、SAX パーサはこれをアプリケーションに報告する前に完全に解決する必要があります。
publicId
- 参照される外部エンティティの公開識別子。提供されなかった場合は nullsystemId
- 参照される外部エンティティのシステム識別子
SAXException
- SAX 例外。ほかの例外をラップしている可能性がある
IOException
- Java 固有の入出力例外。通常、InputSource の新しい InputStream または Reader が生成されると発生するInputSource
|
JavaTM 2 Platform Std. Ed. v1.4.0 |
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
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.