Module  java.xml
软件包  org.w3c.dom.ls

Interface LSResourceResolver

  • All Known Subinterfaces:
    CatalogResolver


    public interface LSResourceResolver
    LSResourceResolver提供了一种应用程序将引用重定向到外部资源的方法。

    需要实现外部资源的自定义处理的应用程序可以通过设置LSParserLSSerializer所附的DOMConfiguration对象的“资源解析器”参数来实现该接口并注册其实现。 它也可以是上注册DOMConfiguration附着在物体上Document是否支持“LS”功能。

    然后, LSParser将允许应用程序在包含外部实体(包括外部DTD子集和外部参数实体)之前拦截它们。 顶级文档实体永远不会传递给resolveResource方法。

    许多DOM应用程序不需要实现此接口,但对于从数据库或其他专门的输入源构建XML文档的应用程序或使用URN的应用程序来说,这将非常有用。

    注意: 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)
        允许应用程序解决外部资源。
        在打开任何外部资源(包括外部DTD子集,DTD中引用的外部实体)以及在文档元素中引用的外部实体(但是,顶层文档实体未传递给此方法)之前, LSParser将调用此方法。 然后,应用程序可以请求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 Schema [ XML Schema Part 1 ]解析XML Schema资源时的目标命名空间。
        publicId - 被引用的外部实体的公共标识符,如果没有提供公共标识符,或者资源不是实体, null
        systemId - 如果没有提供系统标识符,系统标识符是引用的外部资源的URI引用[ IETF RFC 2396 ],或 null
        baseURI - 要解析的资源的绝对基本URI,如果没有基本URI, null
        结果
        描述新输入源的 LSInput对象,或 null请求解析器打开与资源的常规URI连接。