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」も参照してください。
LSInput resolveResource(String type, String namespaceURI, String publicId, String systemId, String baseURI)
LSParser
は、外部 DTD サブセット、DTD 内で参照される外部エンティティー、文書要素内で参照される外部エンティティーなどを含む任意の外部リソースを開く前に、このメソッドを呼び出します (ただし、トップレベルの文書エンティティーはこのメソッドには渡されません)。その後、アプリケーションは、LSParser
が外部リソース自体を解決すること、代替 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
。 バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.