共通 DOM API

org.w3c.dom.ls
インタフェース LSResourceResolver


public interface LSResourceResolver

LSResourceResolver には、アプリケーションで外部リソースへの参照をリダイレクトする方法が用意されています。

外部リソースの独自の処理を実装する必要があるアプリケーションでは、このインタフェースを実装し、LSParserLSSerializer に接続された DOMConfiguration の resource-resolver パラメータを設定して実装を登録できます。LS 機能がサポートされている場合、Document に接続された DOMConfiguration オブジェクトに実装を登録することもできます。

次に、LSParser により、アプリケーションは外部 DTD サブセットや外部パラメータエンティティなどの外部エンティティを含む前に外部エンティティを遮断することが可能になります。トップレベルのドキュメントエンティティは、resolveResource メソッドに渡されることはありません。

多くの DOM アプリケーションでは、このインタフェースを実装する必要はありませんが、データベースやその他の特別な入力ソースから XML ドキュメントを構築するアプリケーションや URN を使用するアプリケーションでは特にこのインタフェースが役に立ちます。

注: LSResourceResolver は SAX2 [SAX] EntityResolver インタフェースに基づいています。

「Document Object Model (DOM) Level 3 Load and Save Specification」も参照してください。


メソッドの概要
 LSInput resolveResource(String type, String namespaceURI, String publicId, String systemId, String baseURI)
          アプリケーションによる外部リソースの解決を可能にします。
 

メソッドの詳細

resolveResource

LSInput resolveResource(String type,
                        String namespaceURI,
                        String publicId,
                        String systemId,
                        String baseURI)
アプリケーションによる外部リソースの解決を可能にします。
LSParser は、外部 DTD サブセット、DTD 内で参照される外部エンティティ、およびドキュメント要素内で参照される外部エンティティなどの外部リソースを開く前にこのメソッドを呼び出します。ただし、トップレベルのドキュメントエンティティがこのメソッドに渡されることはありません。次に、アプリケーションは LSParser が外部ソース自体を解決する、代替 URI を使用する、あるいはまったく異なる入力ソースを使用するといった要求を行うことができます。
アプリケーション作成者は、このメソッドを使って外部システム識別子を安全な URI やローカル URI にリダイレクトしたり、カタログの公開識別子を検索したり、データベースまたはほかの入力ソース (ダイアログボックスなど) からエンティティを読み込んだりすることができます。

パラメータ:
type - 解決されているリソースの種類。XML [XML 1.0] リソース (エンティティ) の場合、アプリケーションは値「http://www.w3.org/TR/REC-xml」を使用しなければならない。XML スキーマ [XML Schema Part 1] の場合、アプリケーションは値「http://www.w3.org/2001/XMLSchema」を使用しなければならない。その他の種類のリソースはこの仕様の範囲外である。したがって、このメソッドを使用するには絶対 URI を推奨する必要がある
namespaceURI - 解決中のリソースの名前空間、たとえばXML スキーマリソースを解決している場合は、XML スキーマ [XML Schema Part 1] のターゲット名前空間
publicId - 参照されている外部エンティティの公開識別子、または公開識別子が指定されていない場合やリソースがエンティティでない場合は null
systemId - 参照されている外部リソースのシステム識別子、URI 参照 [IETF RFC 2396]、あるいはシステム識別子が指定されなかった場合は null
baseURI - 解析中のリソースの絶対基底 URI、あるいは基底 URI がない場合は null
戻り値:
新規入力ソースを記述している LSInput オブジェクト、あるいはパーサがリソースへの通常の URI 接続を開くように要求する場合は null

共通 DOM API

バグや機能要求の報告
Java は、米国およびその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 2004 Sun Microsystems, Inc. 4150 Network Circle
Santa Clara, California, 95054, U.S.A. All Rights Reserved.