可扩展标记语言编码方法、解码方法和客户端技术

技术编号:4307955 阅读:252 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供一种可扩展标记语言编码方法、解码方法和客户端,所述编码方法包括以下步骤:客户端获取待编码数据结构对应的二叉树,所述二叉树的节点与所述数据结构中的数据结构成员一一对应,所述节点中存储有与所述节点对应的数据结构成员的相关信息;所述客户端遍历所述二叉树,根据当前遍历到的节点存储的数据结构成员的相关信息,从所述数据结构中获取与所述当前遍历到的节点对应的数据结构成员的值作为XML元素;所述客户端根据所述XML元素,生成XML文本。本发明专利技术能够有效提高XML编码和解码的效率。

【技术实现步骤摘要】

本专利技术涉及XML (Extensible Markup Language,可扩展标记语言)编解码技术领 域,尤其涉及一种可扩展标记语言编码方法编码方法、解码方法和客户端。
技术介绍
XML是由World Wide Web Consortium(W3C) XML工作组定义的,是一套定义语义标 记的规则,这些标记将文本分成许多部件并对这些部件加以标识。XML提供一种描述结构 化数据的方法,用于定义数据本身的结构和数据类型,与主要用于控制数据显示和外观的 HTML (Hyper Text MarkupLanguage,超文本置标语言)标记不同。 XML的若干优越性如下 (1)XML格式是基于文本的,更容易读、更便于存储,有时也更便于调试。 (2) XML文本可使用已为HTML建立的很多基础结构,包括HTTP协议和某些浏览器,HTTP允许穿过防火墙传输XML。 (3)XML分析已有完善的定义,且已广泛应用,使得在各种环境中从XML文本检索 信息成为可能。 (4)当使用架构时,应用程序可依赖XML分析器进行某些结构验证以及数据类型 检查。 (5) XML建立在Unicode (统一码)基础上,使得创建国际化文本更容易。 鉴于XML的诸多优点,很多应用程序都采用XML作为数据表示方式。 应用程序采用XML作为数据表示方式时,在发送XML文本前,需要对数据结构进行 编码生成XML文本,在接收到XML文本后,需要对XML文本进行解码,对数据结构进行赋值。 现有技术中的XML编码方法是为应用程序的每个XML模式编写对应的XML编码 函数,根据该XML编码函数对XML模式对应的数据结构进行编码。相应的XML解码方法是 为每个XML模式编写对应的XML赋值函数,根据该XML赋值函数对XML模式对应的数据结 构进行赋值。上述编解码方法非常笨重,尤其是在XML模式非常多的情况下,函数代码量将 会很大,影响编码和解码的效率。
技术实现思路
0012] 有鉴于此,本专利技术提供一种可扩展标记语言编码方法编码方法、解码方法和客户 端,能够有效提高XML编码和解码的效率。 为解决上述问题,本专利技术提供一种XML编码方法,包括以下步骤 客户端获取待编码数据结构对应的二叉树,所述二叉树的节点与所述数据结构中的数据结构成员一一对应,所述节点中存储有与所述节点对应的数据结构成员的相关信息; 所述客户端遍历所述二叉树,根据当前遍历到的节点存储的数据结构成员的相关 信息,从所述数据结构中获取与所述当前遍历到的节点对应的数据结构成员的值作为XML元素; 所述客户端根据所述XML元素,生成XML文本。 所述客户端获取待编码数据结构对应的二叉树,之前还包括 所述客户端根据与所述数据结构对应的XML模式构建所述二叉树。 所述数据结构成员的相关信息中包括所述数据结构成员的偏移量; 所述客户端遍历所述二叉树,根据当前遍历到的节点存储的数据结构成员的相关信息,从所述数据结构中获取与所述当前遍历到的节点对应的数据结构成员的值作为XML元素,具体包括 所述客户端遍历所述二叉树,根据当前遍历到的节点存储的数据结构成员的偏移 量,获取与所述当前遍历到的节点对应的数据结构成员的存储地址; 所述客户端根据与所述当前遍历到的节点对应的数据结构成员的存储地址,获取 与所述当前遍历到的节点对应的数据结构成员的值作为XML元素。 所述客户端采用先序遍历的方法遍历所述二叉树。 本专利技术还提供一种XML解码方法,包括以下步骤 客户端获取待解码XML文本的数据结构对应的二叉树,所述二叉树的节点与所述 数据结构中的数据结构成员一一对应,所述节点中存储有与所述节点对应的数据结构成员 的相关信息; 所述客户端扫描所述XML文本,从所述二叉树中获取与当前扫描到的XML元素对 应的节点; 所述客户端根据与当前扫描到的XML元素对应的节点中存储的数据结构成员的 相关信息,将当前扫描到的XML元素的值赋给与当前扫描到的XML元素对应的节点对应的 数据结构成员。 所述客户端获取待解码XML文本的数据结构对应的二叉树,之前还包括 所述客户端根据与所述数据结构对应的XML模式构建所述二叉树。 所述客户端根据与当前扫描到的XML元素对应的节点中存储的数据结构成员的相关信息,将当前扫描到的XML元素的值赋给与当前扫描到的XML元素对应的节点对应的数据结构成员,具体包括 所述客户端获取与当前扫描到的XML元素对应的节点中存储的数据结构成员的 偏移量; 所述客户端根据所述偏移量,获取与当前扫描到的XML元素对应的节点对应的数 据结构成员的存储地址; 所述客户端根据所述存储地址,将当前扫描到的XML元素的值赋给与当前扫描到 的XML元素对应的节点对应的数据结构成员。 本专利技术还提供一种客户端,包括 获取模块,用于获取待编码数据结构对应的二叉树,所述二叉树的节点与所述数 据结构中的数据结构成员一一对应,所述节点中存储有与所述节点对应的数据结构成员的 相关信息; 遍历模块,用于遍历所述二叉树,根据当前遍历到的节点存储的数据结构成员的 相关信息,从所述数据结构中获取与所述当前遍历到的节点对应的数据结构成员的值作为XML元素; 生成模块,用于根据所述XML元素,生成XML文本。 所述客户端还包括 构建模块,用于根据与所述数据结构对应的XML模式构建所述二叉树。 本专利技术还提供一种客户端,包括 获取模块,用于获取待解码XML文本的数据结构对应的二叉树,所述二叉树的节点与所述数据结构中的数据结构成员一一对应,所述节点中存储有与所述节点对应的数据结构成员的相关信息; 扫描模块,用于扫描所述XML文本,从所述二叉树中获取与当前扫描到的XML元素对应的节点; 赋值模块,用于根据与当前扫描到的XML元素对应的节点中存储的数据结构成员的相关信息,将当前扫描到的XML元素的值赋给与当前扫描到的XML元素对应的节点对应的数据结构成员。 所述客户端还包括 构建模块,用于根据与所述数据结构对应的XML模式构建所述二叉树。 本专利技术具有以下有益效果 根据XML模式构建二叉树,所述二叉树的节点与根据所述XML模式定义的数据结构中的数据结构成员一一对应,节点中存储有与所述节点对应的数据结构成员的相关信息,可以通过遍历所述二叉树对所述数据结构进行XML编码,无需为每个XML模式编写编码函数;另外,还可以通过定位扫描到的XML文本中的XML元素在二叉树中对应的节点,完成待解码XML文本的数据结构的赋值,无需为每个XML模式编写赋值函数,从而有效提高了XML编解码效率。附图说明 图1为本专利技术实施例的XML编码方法的一流程示意图; 图2为本专利技术实施例的二叉树的一结构示意图; 图3为本专利技术实施例的二叉树遍历方法的流程示意图; 图4为本专利技术实施例的XML解码方法的一流程示意图; 图5为本专利技术实施例的XML解码方法的另一流程示意图; 图6为本专利技术实施例的客户端的一结构示意图; 图7为本专利技术实施例的客户端的另一结构示意图。具体实施例方式下面结合附图和实施例,对本专利技术的具体实施方式作进一步详细描述。 如图1所示为本专利技术实施例的XML编码方法的一流程示意图,所述XML编码方法包括以下步骤 步骤IOI,客户端根据待编码数据结构对应的XML模式构建二叉树,所述本文档来自技高网
...

【技术保护点】
一种可扩展标记语言XML编码方法,其特征在于,包括以下步骤:客户端获取待编码数据结构对应的二叉树,所述二叉树的节点与所述数据结构中的数据结构成员一一对应,所述节点中存储有与所述节点对应的数据结构成员的相关信息;所述客户端遍历所述二叉树,根据当前遍历到的节点存储的数据结构成员的相关信息,从所述数据结构中获取与所述当前遍历到的节点对应的数据结构成员的值作为XML元素;所述客户端根据所述XML元素,生成XML文本。

【技术特征摘要】

【专利技术属性】
技术研发人员:张桂兰
申请(专利权)人:中兴通讯股份有限公司
类型:发明
国别省市:94[中国|深圳]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1