Module  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)
        实施URIRsolver。 该方法搜索主目录和备用目录中的目录条目,以尝试找到与指定的href属性的匹配。 href属性将被字面上使用,绝对不会对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或href用base解析,如果base不为null)。
        异常
        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相对于systemId的解析器可能已被绝对地baseURI ,因此无法找到system条目。 在这种情况下,一个systemSuffix项建议在system条目。

        Specified by:
        resolveEntity在接口 XMLResolver
        参数
        publicId - 被引用的外部实体的公共标识符,如果没有提供,则为null
        systemId - 被引用的外部实体的系统标识符。 所有外部实体都需要系统标识符。 XML需要所有外部实体上的系统标识符,因此始终指定此值。
        baseUri - CatalogResolver未使用的绝对基本URI
        namespace - 要解析的实体的名称空间,不被CatalogResolver使用。
        结果
        一个InputStream对象,如果找到一个映射; 如果没有找到映射并且javax.xml.catalog.resolve属性设置为continueignorecontinue 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在寻求一种产品目录中的比赛没有被使用。 但是,源代码中的相对值systemId可能已由baseURI的解析器确定为baseURI ,因此无法找到system条目。 在这种情况下,一个systemSuffix项建议在system条目。

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