模块  java.xml
软件包  javax.xml.catalog

Interface CatalogResolver

    • 方法详细信息

      • resolveEntity

        InputSource resolveEntity​(String publicId,
                                  String systemId)
        实现EntityResolver 该方法搜索主目录和备用目录中的商品,以尝试查找与指定的publicId或systemId的匹配项。
        Specified by:
        resolveEntity接口 EntityResolver
        参数
        publicId - 要引用的外部实体的公共标识符,如果未提供,则为null
        systemId - 被引用的外部实体的系统标识符。 所有外部实体都需要系统标识符。 XML需要所有外部实体上的系统标识符,因此始终指定此值。
        结果
        如果找到映射,则为InputSource对象。 如果没有找到映射,返回一个InputSource含有一个空对象Reader如果javax.xml.catalog.resolve属性设置为ignore ; 如果javax.xml.catalog.resolve属性设置为continue则返回null。
        异常
        CatalogException - 如果未找到映射且 javax.xml.catalog.resolve指定为 strict
        另请参见:
        InputSource
      • resolve

        Source resolve​(String href,
                       String base)
        实现URIResolver。 该方法搜索主目录和备用目录中的商品,以尝试查找与指定的href属性匹配的href href属性将按字面意思使用,不会尝试对base进行绝对base

        如果该值为URN,则href属性将被识别为publicId ,并用于搜索public条目。 如果该值是URI,则将其视为systemId ,并用于搜索systemuri条目。

        Specified by:
        resolve接口 URIResolver
        参数
        href - 指定样式表URI的href属性,可以是相对的或绝对的
        base - 如果需要绝对URI,则href属性将作为绝对值的基URI
        结果
        如果找到映射,则为Source对象。 如果未找到映射,则在javax.xml.catalog.resolve属性设置为ignore返回空的Source对象; 如果javax.xml.catalog.resolve属性设置为continue ,则返回Source对象,其中包含原始URI(href,或者如果base不为null,则使用base解析href)。
        异常
        CatalogException - 如果未找到映射且 javax.xml.catalog.resolve指定为 strict
      • resolveEntity

        InputStream resolveEntity​(String publicId,
                                  String systemId,
                                  String baseUri,
                                  String namespace)
        实现XMLResolver 出于解析publicIdsystemId的目的,此方法等效于resolveEntity(java.lang.String, java.lang.String)

        systemId将按字面意思使用,不会尝试对baseUri绝对。 baseUrinamespace不用于搜索目录中的匹配项。 但是,xml源中的相对systemId可能已由解析器使用baseURI进行绝对,因此无法找到system条目。 在这种情况下,一个systemSuffix项建议在system条目。

        Specified by:
        resolveEntity接口 XMLResolver
        参数
        publicId - 正在引用的外部实体的公共标识符,如果未提供,则为null
        systemId - 被引用的外部实体的系统标识符。 所有外部实体都需要系统标识符。 XML需要所有外部实体上的系统标识符,因此始终指定此值。
        baseUri - CatalogResolver未使用的绝对基URI
        namespace - 要解析的实体的名称空间,而不是CatalogResolver使用的名称空间。
        结果
        如果找到映射,则为InputStream对象; 如果未找到映射且javax.xml.catalog.resolve属性设置为continueignore ,则continue ignore 请注意,对于XMLResolver,不可能忽略引用,因此ignore被视为与continue相同。
        异常
        CatalogException - 如果未找到映射且 javax.xml.catalog.resolve指定为 strict
      • resolveResource

        LSInput resolveResource​(String type,
                                String namespaceUri,
                                String publicId,
                                String systemId,
                                String baseUri)
        实现LSResourceResolver 出于解析publicIdsystemId的目的,此方法等效于resolveEntity(java.lang.String, java.lang.String)

        systemId将在字面上使用,不会试图对baseUri绝对。 baseUrinamespaceUritype在寻求一种产品目录中的比赛没有被使用。 但是,解析器使用baseURI可能已使源中的相对systemId成为绝对,因此无法找到system条目。 在这种情况下,一个systemSuffix项建议在system条目。

        Specified by:
        resolveResource接口 LSResourceResolver
        参数
        type - 正在解析的资源的类型,CatalogResolver不使用
        namespaceUri - 正在解析的资源的名称空间,而不是CatalogResolver使用的名称空间
        publicId - 正在引用的外部实体的公共标识符,如果未提供公共标识符或资源不是实体, null
        systemId - 系统标识符,被引用的外部资源的URI引用
        baseUri - CatalogResolver未使用的绝对基URI
        结果
        如果找到映射,则为LSInput对象; 如果未找到映射且javax.xml.catalog.resolve属性设置为continueignore ,则continue ignore 请注意,对于LSResourceResolver ,无法忽略引用,因此ignore被视为与continue相同。
        异常
        CatalogException - if no mapping is found and javax.xml.catalog.resolve is specified as strict