- 既知のすべてのサブインタフェース:
CatalogResolver
public interface LSResourceResolver
LSResourceResolver
を使用すると、アプリケーションは外部リソースに対する参照をリダイレクトできます。
外部リソースのカスタム処理を実装する必要があるアプリケーションは、このインタフェースを実装し、LSParser
とLSSerializer
に接続された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」も参照してください。
- 導入されたバージョン:
- 1.5
-
メソッドのサマリー
-
メソッドの詳細
-
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
。
-