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 Schema 资源时 XML Schema [
XML Schema Part 1] 的目标名称空间。
publicId
- 被引用的外部实体的公共标识符,如果没有提供公共标识符或者资源不是实体,则为
null
。
systemId
- 公共标识符,它是被引用的外部资源的 URI 引用 [
IETF RFC 2396],如果没有提供系统标识符,则为
null
。
baseURI
- 被解析资源的绝对基 URI,如果没有基 URI,则为
null
。
LSInput
对象,或者返回
null
以请求解析器打开到该资源的规则 URI 连接。