一种xml格式嵌入式设备特征信息解析方法

文档序号:6609517阅读:165来源:国知局
专利名称:一种xml格式嵌入式设备特征信息解析方法
技术领域
本发明涉及嵌入式软件,具体涉及一种XML格式嵌入式设备特征信息 解析方法。
背景技术
在嵌入式设备中处理的相关信息中, 一些信息是与设备本身特性相关的 固定特征数据,例如生产日期等。这些信息与具体的某个设备相关,而不 是某一类设备的公共信息。 一般的设备管理控制系统保存的信息是针对某一 类设备的信息,将设备的特征信息保存到设备管理控制系统中是不合理的, 体现不出不同设备在某些特征上的差异性。随着嵌入式设备的日益复杂,设 备的特征信息量越来越大。因此这类特征信息需要保存到非易失存储器中 (例如FLASH),这样既能存储信息量较大的信息,又保证设备掉电不会 丢失。存储方式上一般采用某种固定格式进行存储,以方便读取和修改。XML是W3C定义的一种标准语言,具有可扩展性、平台独立性、并且 支持国际化和地区化的特点,因此目前很多嵌入式设备采用XML作为设备 信息保存的格式。但是XML的标准规范比较庞杂,如果严格按照XML的 标准规范进行解析和验证,对软硬件资源要求较高,从而难以满足软硬件资 源相对紧张的嵌入式设备。发明内容本发明需要解决的技术问题是提供一种XML格式嵌入式设备特征信息 解析方法,能够简化解析,降低解析对嵌入式系统对软硬件资源的要求。本发明的上述技术问题这样解决,提供一种XML格式嵌入式设备特征 信息解析方法,包括以下步骤 1.1) 根据需要解析的XML格式嵌入式设备特征信息长度位于其对应长 度范围选择进行解析;1.2) 将被解析的XML格式嵌入式设备特征信息简化为节点集合并按声 明类型、元素类型和不明类型进行区分;1.3) 根据节点类型分类解析或处理各节点并链接各节点,主要链接元素 类型节点,为了一致也可将声明类型节点一起链接;1.4) 将各节点信息映射到预先设定的数据结构中并从该数据结构获取信息。按照本发明提供的解析方法,该解析方法还包括根据所述预先设定的数 据结构已经写入信息且未重写直接从所述数据结构获取信息;所述需要解析 即所述预先设定的数据结构未写入或需要重新写入信息。按照本发明提供的解析方法,所述步骤l.l)还包括根据XML格式嵌入 式设备特征信息长度超出对应长度范围直接退出解析。按照本发明提供的解析方法,所述长度范围由预先设定的数据结构及其 允许扩展范围决定,即所述预先设定的数据结构可以扩展变化但不允许无 限制扩展;扩展变化时需要修订该数据结构。按照本发明提供的解析方法,所述步骤1.2)中的简化包括遍历所述XML 格式嵌入式设备特征信息和查找对应关键字。按照本发明提供的解析方法,所述关键字包括"<"和"? xml"。按照本发明提供的解析方法,所述步骤1.3)包括忽略或不解析不明类型 节点,如果全部是不明类型节点才退出解析。按照本发明提供的解析方法,所述步骤1.3)包括通过遍历节点和查找 对应关键字对声明类型或元素类型节点进行解析或处理。按照本发明提供的解析方法,所述关键字包括"? >" 、 "version"、 ">"或与"<v>"对应的"</v>";其中v代指任意字符。按照本发明提供的解析方法,所述元素类型节点一般为多个,包括一个 ^f艮节点和若干子节点或子子节点。 按照本发明提供的解析方法,所述声明类型节点为 一 个。 本发明提供的一种XML格式嵌入式设备特征信息解析方法,只对限定范围内的XML文档解析并利用三种节点类型简化解析,从而能在软硬件资 源较紧张的嵌入式设备中、较好地解析以XML为格式保存的设备特征信息, 满足实际需要。


下面结合附图和具体实施例进一步对本发明进行详细说明。 图1是是本发明解析方法处理流程示意图。 图2是本发明具体实施例处理流程示意图。
具体实施方式
首先,说明本发明主要思想根据设备的现有资源对设备特征信息的规模进行限定,只对限定范围内 的XML文档解析,从而尽可能使用最少资源来解析信息;解析时采用简单 的XML解析规则,即将XML文档简化为几种简单类型的节点集合,将这 几种类型的节点使用统一的数据结构进行保存,只是类型上进行区分,然后 利用各个节点之间的在XML中的位置关系通过链表进行链接;解析完成后, 将解析结果映射到预先设定好的数据结构中,在特征信息已写入且无须重新 写入时,可直接从该数据结构中获取信息,而不需要再次解析。第二步,说明本发明XML格式嵌入式设备特征信息解析方法的主要步 骤,如图1所示,包括第一步从非易失存储器中读取XML字符流,并获取字符流长度值, 比较预先限定值,若超出限定范围则退出解析,反之则转入第二步;第二步设置一个文档节点作为节点链表L的头节点,简化XML节点 定义类型,定义节点类型有声明类型D、元素类型E、不明类型U三种, 遍历XML字符流,定义当前字符的节点类型,进入第三步;第三步根据节点类型,继续遍历查找字符,分类解析或处理节点;其
中如果D节点存在,则有且只有一个,并且是整个文档的第一个节点;如 果是E节点,则可以嵌套子元素节点;如果是U节点则退出解析;处理E 节点时对元素名称、元素值、属性名称、属性值等分别进行-验证;将当前节 点链接到L尾端,同时转入第四步;第四步设置一个针对设备特征信息的数据结构T,将链表中的当前节 点信息适配到该数据结构中;遍历结束后,转入第五步;第五步如果设备特征信息未发生改变,则第一步到第四步只需进行一 次,每次只从T中获取信息,直至特征信息发生改变,则将转入第一步。最后,结合具体实施例详细说明本发明SDH设备单板的单板信息有生产条码、生产日期、PCB编码等。例 如以下格式表示单板信息< xml version="1.0" encoding="UTF-8" > <BDINFO><SN〉 100000000000000000</SN><DT>2006-01-01</DT><PCBNO>OL 16-111111111 </PCBNO><BDNAME>OL 16PAX</BDNAME><PORTNO=T><SV>1.222</SV></PORT></BDINFO>其中〈 xml version="1.0" encoding二"UTF-8" 〉表示XML的声明部分,通 常声明该文档的版本(version),编码方式(encoding)等等。从〈BDINFO 〉到〈/BDINFO >是单板信息的主体部分。其中〈SN〉表示单板生产条码, 〈DT〉表示单板生产曰期,〈PCBNO表示PCB编码,〈BDNAME〉表示单板名称。通过XML写入软件将XML文档写入单板FLASH中。解析和验证FLASH中的单板信息,其具体处理步骤,如图2所示,包括第一步从单板FLASH中读取单板信息,首先验证字符流长度是否在 规定的长度范围内,如果超出范围则退出解析,反之转入第二步;第二步设置一个文档节点作为节点链表L的头节点,遍历XML字符, 获取节点类型2.1) 查找XML字符流的第一个字符,判断第一个字符是否为"<",如 果不是则将节点类型置为不明类型UNKOWN,并置不明类型标志,如果是 则继续查找后面的字符,判断后面字符是否为空,为空则退出解析,不为空 则判断后面的字符是否与" xml"匹配,如果是转入步骤2.2),反之转入步 骤2.3);2.2) 将节点类型置为声明类型DECLARATION,同时判断是否置过声明 类型或其他类型标志,如果置过则退出解析,反之置声明类型标志;2.3) 将节点类型置为元素类型ELEMENT; 获取节点类型后,进入第三步;第三步根据节点类型,继续遍历查找字符流,分类解析或处理该节点 3.1 )如果该节点为UNKOWN,忽略或不解析该节点;3.2) 如果该节点为DECLARATION,查找是否有"?>"字符,如果有则 记录"< xml"与" >,,之间的字符,同时判断这些字符中是否与声明属性 关键字匹配(例如"version" 、 "encoding"等),如果有则验证关键字 对应的值是否超出属性值长度范围,没有超出则记录关键字和对应的关键字 的值(例如version的值为"1.0")到该节点数据结构中,反之退出解析; 处理完成后将该节点链接到L尾端,转入第二步;3.3) 如果该节点为ELEMENT,查找是否有">"字符,如果有则记录"<" 和">"之间的字符串为V(例如"SN"),继续往后查找是否有字符"</V>" 与"<V>"匹配,不匹配则退出解析,匹配则验证V是否超出元素名称长度 范围,没有超出范围则将V记录至节点数据结构的元素名称中,反之退出 解析;如果有V中有属性(例如NO= 'T,),验证和解析属性名称和属 性值;记录"〈V〉,,与"々V〉,,之间的字符串S(例如"100000000000000000"),
判断S的第一个字符是否为"<",如果是则置新节点为ELEMENT并记录 该节点为前一个节点的子节点关系(例如〈PORTNC^ "1"〉是〈BDINFO 的子节点),转入3,反之验证S是否超出元素值长度范围,没有超出范围 则将S记录至节点数据结构的元素值中,反之退出解析;处理完成后将该节 点链接到L尾端,同时将该节点与前一个节点的节点关系记录下来,转入第 二步;每生成一个节点,根据节点关系记录该节点的路径信息(从根节点到 该节点需要经过的节点,例如从根节点〈BDINF0〉到<SV>的路径为 "BDINFO->PORT->SV,,),同时转入第四步;第四步设置一个针对单板信息的数据结构T,将节点中的信息适配到 T中;完成适配后,转入第五步;第五步如果单板信息未发生改变,即已写入且无需重新写入,则第 一步到第四步只需进行一次,每次只从T中获取信息,如果单板信息发生变 化,即需要重新写入,将通知解析器转入第一步重新解析。
权利要求
1、 一种XML格式嵌入式设备特征信息解析方法,其特征在于,包 括以下步骤1.1) 根据需要解析的XML格式嵌入式设备特征信息长度位于其对应 长度范围选择进行解析;1.2) 将被解析的XML格式嵌入式设备特征信息简化为节点集合并按 声明类型、元素类型和不明类型进行区分;1.3) 根据节点类型分类解析或处理各节点并链接各元素类型节点;1.4) 将各节点信息映射到预先设定的数据结构中并从该数据结构获 取信息。
2、 根据权利要求1所述解析方法,其特征在于,该解析方法还包括 根据所述预先设定的数据结构已经写入信息且未重写直接从所述数据结构 获取信息。
3、 根据权利要求1所述解析方法,其特征在于,所述步骤l.l)还包 括根据XML格式嵌入式设备特征信息长度超出对应长度范围直接退出解 析。
4、 根据权利要求1或3所述解析方法,其特征在于,所述长度范围 由预先设定的数据结构及其允许扩展范围决定,所述预先设定的数据结构可 以扩展。
5、 根据权利要求1所述解析方法,其特征在于,所述步骤1.2)中的 简化包括遍历所述XML格式嵌入式设备特征信息和查找对应关键字。
6、 根据权利要求5所述解析方法,其特征在于,所述关键字包括"<" 和"? xml"。
7、 根据权利要求1所述解析方法,其特征在于,所述步骤1.3)包括 忽略或不解析不明类型节点。
8、 根据权利要求1所述解析方法,其特征在于,所述步骤1.3)包括通过遍历节点和查找对应关键字对声明类型或元素类型节点进行解析或处 理。
9、 根据权利要求8所述解析方法,其特征在于,所述关键字包括"?>"、"version"、">,,或与"<v>,,对应的"</v>,,。
10、 根据权利要求1所述解析方法,其特征在于,所述元素类型节点 包括一个根节点和若干子节点或子子节点。
全文摘要
本发明涉及一种XML格式嵌入式设备特征信息解析方法,包括根据XML格式嵌入式设备特征信息长度位于其对应长度范围选择进行解析;将被解析的XML格式嵌入式设备特征信息简化为节点集合并按声明类型、元素类型和不明类型进行区分;根据节点类型分类解析或处理各节点并通过链接各节点;将各节点信息映射到预先设定的数据结构中并从该数据结构获取信息。这种方法仅对限定范围内的XML文档解析并利用三种简单节点类型进行简化,从而能在软硬件资源较紧张的嵌入式设备中获得很好使用。
文档编号G06F17/30GK101145157SQ20071010846
公开日2008年3月19日 申请日期2007年6月14日 优先权日2007年6月14日
发明者杨宇曦 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1