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)
アプリケーションが外部リソースを解決できるようにします。
|
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, 2014, Oracle and/or its affiliates. All rights reserved.