ConfigHandler API

<span style="font-size:24px;">public class ConfigHandler extends DefaultHandler
本类是在sphinx-sax读取xml配置文件时的事件处理操作类,其主要作用是把才配置文件中的components和global property分布放入Map<String, RawPropertyData> rpdMap,Map<String, String> globalProperties中,每个RawPropertyData存储了一个component的内容,rpdMap存储了所有的components。
本类有一个URL属性表示配置文件存储的路径,即代表了所要解析的配置文件。
本类有两个构造方法:ConfigHandler(Map<String, RawPropertyData> rpdMap, Map<String, String> globalProperties, boolean replaceDuplicates, URL baseURL)和ConfigHandler(Map<String, RawPropertyData> rpdMap, Map<String, String> globalProperties)都需Map<String, RawPropertyData> rpdMap, Map<String, String> globalProperties做为参数,来初始化本类。本类有4个重要的方法:
startElement(String uri, String localName, String qName, Attributes attributes),其中qName为正在读取的内容。Attribute为xml element的属性,当解析器读取到xml的任意startelement时发触发该方法。
characters(char ch[], int start, int length)处理的是<item>与</item>之间的字符串。
endElement(String uri, String localName, String qName)对读到endElement的处理。
mergeConfigs(String configFileName, boolean replaceDuplicates) 的主要作用是看配置文件中得到config标记的extends属性和include及extendwith标记进行处理。其主要功能是载入与本配置文件相关的配置文件,并进行读取,同时根据extends属性和include及extendwith标记设置replaceDuplicates的值。读取完相关的配置文件后在接着解析本配置文件根据replaceDuplicates。读取完所有的配置文件后,所有配置文件中的components和global property都放入同一个Map<String, RawPropertyData> rpdMap,Map<String, String> globalProperties中。
我们一般只有一个配置文件。所以一般在startelement触发的方法中是不会调用mergeConfigs方法的,如果有则在startelement方法中会调用mergeConfigs方法。</span>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值