public interface LSResourceResolver
LSResourceResolver
提供了一种应用程序将引用重定向到外部资源的方法。
需要为外部资源实现自定义处理的应用程序可以通过设置LSParser
和LSSerializer
附带的DOMConfiguration
对象的“资源解析器”参数来实现该接口并注册其LSSerializer
。 它也可以是上注册DOMConfiguration
附着在物体上Document
是否支持“LS”功能。
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
将会调用此方法。
然后,应用程序可以请求LSParser
解析外部资源本身,它使用替代URI,或者使用完全不同的输入源。
type
- 正在解析的资源类型。
对于XML [ XML 1.0 ]资源(即实体),应用程序必须使用值"http://www.w3.org/TR/REC-xml"
。
对于XML Schema [ 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
对象描述新的输入源,或
null
以请求解析器打开一个定期URI连接到资源。