-
- All Known Subinterfaces:
-
CatalogResolver
public interface LSResourceResolver
LSResourceResolver
为应用程序提供了一种将引用重定向到外部资源的方法。需要为外部资源实现自定义处理的应用程序可以通过设置附加到
LSParser
和LSSerializer
的DOMConfiguration
对象的“resource-resolver”参数来实现此接口并注册其实现。 如果支持“LS”功能,它也可以在附加到Document
DOMConfiguration
对象上注册。然后,
LSParser
将允许应用程序在包含它们之前拦截任何外部实体,包括外部DTD子集和外部参数实体。 顶级文档实体永远不会传递给resolveResource
方法。许多DOM应用程序不需要实现此接口,但对于从数据库或其他专用输入源或使用URN的应用程序构建XML文档的应用程序尤其有用。
注意:
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,在目录中查找公共标识符,或从数据库或其他输入源(包括,例如,对话框)中读取实体。- 参数
-
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 Schema [ XML Schema Part 1 ]的目标名称空间。 -
publicId
- 正在引用的外部实体的公共标识符,如果未提供公共标识符或资源不是实体,null
。 -
systemId
- 正在引用的外部资源的系统标识符,URI引用[ IETF RFC 2396 ],如果未提供系统标识符,null
。 -
baseURI
- 正在解析的资源的绝对基URI,如果没有基URI,null
。 - 结果
-
描述新输入源的
LSInput
对象,或请求解析器打开与资源的常规URI连接的null
。
-
-