论文部分内容阅读
XML(Extensible Markup Language,可扩展标记语言)是一种使用标记标记内容以传输信息的简单方法,由于它的可扩展性和跨平台特征,在web服务器和数据库系统中得到了广泛的应用,已经成为了数据描述和交换的标准。然而,相对于现在企业级服务器GB级的数据吞吐量,基于软件的XML解析无法达到所要求的吞吐量,对网络性能来说,这已成为一个严重的瓶颈。如今,开发一种能够替代软件解析XML的方法已成为必须。本文通过对XML解析的理论分析以及四种解析模型的对比,最后提出了一种基于DOM解析模型的硬件解析XML的方法。它主要包括四个重要的模块:词法分析模块、格式良好检查模块、DOM树构建模块和Schema验证模块。词法分析主要是对输入的XML字符做出相应的标记,从而识别出元素名、属性名以及文本内容,通过使用一个FSM实现。格式良好检查主要是对XML文档进行语法检查,包括元素名检查和属性名检查,在元素名检查中,主要使用栈结构对元素名字符进行匹配,而属性名检查主要是检查同一元素的属性名唯一性,本文使用一种名为布隆过滤器的高效随机存储结构,可以快速的判断当前的元素是否已经出现过。DOM树构建模块独立于格式良好检查模块和Schema验证模块,它是对整个XML文档的信息建立一棵树形结构,主要包括元素名节点、属性名节点、元素内容节点和属性内容节点四种节点类型。Schema验证是对XML文档中的元素和属性与Schema文档中所定义的规则进行匹配来验证XML文档的合法性,由于Schema文档定义的规则比较固定,在解析之前,首先对Schema文档进行预处理,将它定义的规则制作成一个静态表存储在本地内存中,这样在进行解析的过程中可以直接通过查询表寻找相应的规则。最后通过大量的实验,验证了本文的硬件解析方法较软件解析方法拥有很高的加速比,此系统的吞吐量可以达到1.2Gbps。所有的实现都是在FPGA硬件环境下测试与仿真的。