zoukankan      html  css  js  c++  java
  • XML实体解析器的作用

    XML实体解析器的作用

    什么是实体解析器

    如果一个sax解析器需要实现对外部实体的自定义处理,那么必须实现一个EntityResolver接口并且注册到SAX驱动上。

    从这段文字可以看出来,实体解析器是一个用户自定义的实现,并且注册到sax解析器上即可。

    什么情况下需要使用

    解析xml文件时,如果声明了publicID和systemId,那么解析器有责任对xml文件进行结构验证。

    什么是publicId和systemId

    publicId 是一个公共资源的知名标识,解析器可以根据这个名字得到一个资源(一般是DTD),如果根据这个名字没能找到一个资源,那么会根据systemId(一般是一个URL)来获取这个资源,如果还获取不到,那么会报错。也就是说,publicId和systemId是一个网络资源的标识,前者标识名字,后者标识URL,一般是成对出现。

    解析器获取publicId标识的资源,一般是通过网络下载,这会导致解析速度变慢,或者解析失败。因此,可以通过提供一个实体解析器,在实体解析器中控制器资源的获取,比如改成从本地查找,那么效率会提升很多。

    EntityResolver有如下方法,用来根据publicId和SystemId得到一个资源。

     public abstract InputSource resolveEntity (String publicId,
                                                   String systemId)
    
  • 相关阅读:
    java.lang.ClassCastException: android.widget.ImageButton异常处理
    24 Json、序列化
    27 window
    17 方法
    19 原型
    18 函数上下文
    16 构造方法
    15 对象
    13 高阶函数map,filter
    14 闭包
  • 原文地址:https://www.cnblogs.com/humc/p/6309047.html
Copyright © 2011-2022 走看看