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)
    
  • 相关阅读:
    Android5.0录屏方案
    Android点阵屏效果的控件
    Android绘制View相关的几个问题
    AndroidStudio导入第三方开源库
    第六百二十三天 how can I坚持
    第六百二十二天 how can I 坚持
    第六百二十一天 how can I 坚持
    第六百二十天 how can I 坚持
    第六百一十九天 how can I 坚持
    第六百一十八天 how can I 坚持
  • 原文地址:https://www.cnblogs.com/humc/p/6309047.html
Copyright © 2011-2022 走看看