文档格式转换系统的制作方法

文档序号:6520250阅读:192来源:国知局
文档格式转换系统的制作方法
【专利摘要】本发明提供了一种文档格式转换系统,包括:模板配置模块,用于将XML模板文件对应的DOM树中的每个节点的元素信息记录至配置表中,并将映射关系存储至所述配置表中;标识生成模块,用于为至少一个节点生成对应的位置标识,并关联地存储所述位置标识;格式转换模块,用于根据所述配置表,生成所述目标XML文件,其中,根据所述位置标识对所述XML模板文件中对应的节点进行寻址。本发明还提出了另一种文档格式转换系统。通过本发明的技术方案,可以在二维关系表与XML文件之间进行格式转换时,通过位置标识来加快对节点的寻址操作,从而尤其当XML文档的内容比较多、层次比较深及条件比较复杂时,有助于提高转换效率。
【专利说明】文档格式转换系统
【技术领域】
[0001]本发明涉及格式转换【技术领域】,具体而言,涉及文档格式转换系统。
【背景技术】
[0002]HL7 (Health Level Seven)是基于国际标准化组织ISO公布的网络开放系统互连模型OSI第七层(应用层)的医学信息交换协议。目前,HL7协议已经进展到了第三版,即HL7V3。
[0003]在基于HL7V3的医疗 系统之间实现医学信息的交互时,常常涉及到需要将本地生成的二维关系表转换为XML文件后发送至其他医疗系统,或将接收到的来自其他医疗系统的XML文件转换为二维关系表后存储至本地。在相关技术中,主要是采用XML映射法。其中,实现映射的过程一般分为两部分:配置映射和使用映射关系转换XML。
[0004]XML (Extensible Markup Language,可扩展标记语言)是一种结构化的描述数据语言,由于其开放性与可扩展性,目前被广泛应用于数据交互和数据存储方面;XML文档主要由标签、标签值、属性、属性值、特殊处理指令、注释等元素构成。目前,XML的解析技术主要有两种:SAX (Simple API for XML)和 DOM (Document Object Model),两种技术实现原理不同。SAX基于事件触发方式进行解析;D0M则将XML文档一次性的经过DOM解析器解析成一个保存在内存中的对象树,对XML的随机操作转化为对对象树的操作。因此,总体上目前DOM由于其操作的方便性,基本成为主流XML解析器方法。
[0005]在通过操作DOM树进行XML中的节点定位时,主要使用XPath技术。XPath使用路径表达式来选取XML文档中的节点或者节点集;这些路径表达式与常规操作系统中文件系统路径表达式非常相似。所述路径可以是绝对路径,也可以是相对路径。路径表达式可以具有谓词(predicate),通配符和运算符。XPath还含有超过100个内建标准函数,这些函数用于字符串值、数值、日期和时间比较,节点处理、序列处理、逻辑值等等。
[0006]然而,现有的DOM解析技术仍然存在性能缺陷,主要表现在=XPath主要根据节点路径及节点属性值等条件字符串表达式,来解析定位XML J^FXPath过程中,主要也是通过遍历节点比较元素名称及元素值的字符串来判断定位;因此,尤其当XML文档处理比较多,文档比较大,层次比较深及条件比较复杂时,其频繁的解析XPath表达式及遍历节点比较字符串会直接体现出解析定位性能慢的缺陷。
[0007]因此,如何加快对XML文件中节点的寻址(即定位),从而提高对XML文档的解析效率,成为目前亟待解决的技术问题。

【发明内容】

[0008]本发明正是基于上述问题,提出了一种新的技术方案,可以在二维关系表与XML文件之间进行格式转换时,通过位置标识来加快对节点的寻址操作,从而尤其当XML文档的内容比较多、层次比较深及条件比较复杂时,有助于提高转换效率。
[0009]有鉴于此,本发明提出了一种文档格式转换系统,包括:模板配置模块,用于获取与目标XML文件的格式相同的XML模板文件,以及与待处理的二维关系表的格式相同的标准二维关系表,将所述XML模板文件对应的DOM树中的每个节点的元素信息记录至配置表中,并将所述DOM树中的每个节点与所述标准二维关系表中的参数之间的映射关系存储至所述配置表中;标识生成模块,用于为所述DOM树中的至少一个节点生成对应的位置标识,并与对应的节点相关联地存储所述位置标识;格式转换模块,用于根据所述配置表,将所述待处理的二维关系表中的参数填充至所述XML模板文件中,以生成所述目标XML文件,其中,根据所述位置标识对所述XML模板文件中对应的节点进行寻址。
[0010]在该技术方案中,不同于直接使用XPath技术对XML文件进行解析时采用的路径信息,本发明通过单独为节点生成位置标识,使得该节点可以被依照位置标识来寻得,避免采用路径进行寻址时,对节点的反复遍历,尤其是对于很多节点具有相同的元素名称和甚至部分相同的属性值的情况,能够有效提升对节点的寻址速度,提高对XML的解析效率和对二维关系表的格式转换效率。
[0011 ] 在上述技术方案中,优选地,所述标识生成模块用于:根据所述DOM树中的任一节点与所述DOM树中的其他节点之间的层级关系,以及所述任一节点与所属层级内的其他节点之间的位置关系,生成所述位置标识,并将所述位置标识存储至所述配置表中。
[0012]在该技术方案中,通过将XML文件解析为DOM树结构,使得每个节点都能够由层级关系和位置关系进行定位,从而相对于XPath中根据节点路径和节点属性值等条件字符串表达式的定位方式,无需对节点反复遍历,能够有效提高对节点的定位速度和对XML文件的解析效率。
[0013]在上述任一技术方案中,优选地,所述位置标识包括由至少一个数字段组成的字符串,以表示从根节点至所述任一节点的路径;其中,每个所述数字段在所述字符串中的位置表示所述路径中的当前节点在所述DOM树中所处的层级数,所述每个数字段的数值表示所述当前节点在所属层级中所处的位置。
[0014]在该技术方案中,每个节点对应的层级关系和位置关系,可以使用具体的字符串来表示,比如字符串中的第一个数字段对应于DOM树的第一层级(根节点不计入,依次向下为第一层级等),该第一个数字段内的数值表示将当前节点和第一层级中的其他节点进行排列时,当前节点所处的位置,比如“06”表示当前节点在第一层级的所有节点中,从预设的起始节点开始,为第6个节点。基于字符串的记录方式,能够清楚明确地体现出每个节点在DOM树中的位置情况,有助于快速实现节点定位。
[0015]在上述任一技术方案中,优选地,所述标识生成模块还用于:在所述DOM树中的多个层级的节点之间存在嵌套关系时,为所述多个层级的节点中的父节点生成所述位置标识,并根据所述多个层级的节点中的其他节点与所述父节点之间的相对层级关系和相对位置关系,生成对应的相对位置标识,以作为所述多个层级的节点中的其他节点的位置标识。
[0016]在该技术方案中,对于存在嵌套关系的多个节点,通过生成相对位置标识,使得在解析该嵌套关系时,能够基于该相对位置关系,仅在这多个节点之间进行反复寻址,无需每次都从根节点开始定位,从而有助于提高对该嵌套关系的处理速度。
[0017]在上述任一技术方案中,优选地,所述标识生成模块用于:为所述至少一个节点生成唯一的注释标识符,以作为所述位置标识;以及将所述注释标识符插入到所述XML模板文件中对应于所述至少一个节点的位置,以建立与所述至少一个节点的关联关系。[0018]在该技术方案中,由于注释标识符是唯一的,使得在执行对节点的寻址时,若需要查找某个注释标识符,可以直接且仅查找到对应的一个节点,即查找结果不会由于存在多个名称相同或属性值相同的节点而受到影响,避免对XML文件的反复解析,从而有助于加速对节点的寻址速度,提高对XML文件的解析效率。
[0019]在上述任一技术方案中,优选地,所述模板配置模块还用于:生成对应于至少一种业务类型的所述XML模板文件及对应的配置表;以及所述格式转换模块还用于:读取所述待处理的二维关系表中的业务类型标记,获取对应于所述业务类型标记的XML模板文件和配置表,以用于对所述待处理的二维关系表进行格式转换。
[0020]在该技术方案中,当存在多种不同业务类型对应的二维关系表时,不同业务类型对应的二维关系表中包含的参数、参数格式等均可能存在不同,但同一种业务类型对应的二维关系表的格式是固定的,因而通过根据业务类型来生成对应的多种XML模板文件和配置表,即可实现对不同业务类型的兼容。
[0021]本发明还提出了一种文档格式转换系统,包括:模板配置模块,用于获取与待处理的XML文件格式相同的XML模板文件,以及与目标二维关系表的格式相同的标准二维关系表,将所述XML模板文件对应的DOM树中的每个节点的元素信息记录至配置表中,并将所述DOM树中的每个节点与所述标准二维关系表中的参数之间的映射关系存储至所述配置表中;标识生成模块,用于为所述DOM树中的至少一个节点生成对应的位置标识,并与对应的节点相关联地将所述位置标识存储至所述配置表中;格式转换模块,用于根据所述配置表,将所述待处理的XML文件中的每个节点的参数填充至所述标准二维关系表中,以生成所述目标二维关系表,其中,根据所述位置标识对所述待处理的XML文件中对应的节点进行寻址。
[0022]在该技术方案中,不同于直接使用XPath技术对XML文件进行解析时采用的路径信息,本发明通过单独为节点生成位置标识,使得该节点可以被依照位置标识来寻得,避免采用路径进行寻址时,对节点的反复遍历,尤其是对于很多节点具有相同的元素名称和甚至部分相同的属性值的情况,能够有效提升对节点的寻址速度,提高对XML的解析效率和对XML文件的格式转换效率。
[0023]在上述技术方案中,优选地,所述标识生成模块用于:为所述至少一个节点生成唯一的注释标识符,以作为所述位置标识;以及所述格式转换模块用于:根据所述配置表中的每个注释标识符,在所述待处理的XML文件中查找对应的元素。
[0024]在该技术方案中,由于注释标识符是唯一的,使得在执行对节点的寻址时,若需要查找某个注释标识符,可以直接且仅查找到对应的一个节点,即查找结果不会由于存在多个名称相同或属性值相同的节点而受到影响,避免对XML文件的反复解析,从而有助于加速对节点的寻址速度,提高对XML文件的解析效率。
[0025]在上述任一技术方案中,优选地,所述模板配置模块还用于:为所述DOM树中的每个节点生成对应的绝对路径,以及在所述DOM树中的多个层级的节点之间存在嵌套关系时,为所述多个层级的节点中的父节点生成所述绝对路径,并根据所述多个层级的节点中的其他节点与所述父节点之间的相对层级关系和相对位置关系,生成对应的相对路径;其中,所述格式转换模块用于:在对所述待处理的XML文件中的任一节点进行寻址时,优先使用对应的注释标识符;若没有对应的注释标识符,则优先使用对应的相对路径;若没有对应的相对路径,则使用对应的绝对路径。
[0026]在该技术方案中,当某个节点存在对应的注释标识符时,由于其对应于较高的解析速度,因而应当优先使用;而当某个节点不存在对应的注释标识符时,则需要直接使用XPath技术,但如果同时存在相对路径和绝对路径,仍应当优先选择相对路径,从而有助于提高对XML文件的格式转换效率。
[0027]在上述任一技术方案中,优选地,所述模板配置模块还用于:生成对应于至少一种业务类型的所述配置表;以及所述格式转换模块还用于:读取所述待处理的XML文件中的业务类型标记,获取对应于所述业务类型标记的配置表,以用于对所述待处理的XML文件进行格式转换。
[0028]在该技术方案中,当存在多种不同业务类型对应的XML文件时,不同业务类型对应的XML文件中包含的参数、参数格式等均可能存在不同,但同一种业务类型对应的XML文件的格式是固定的,因而通过根据业务类型来生成对应的多种XML模板文件和配置表,即可实现对不同业务类型的兼容。
[0029]通过以上技术方案,可以在二维关系表与XML文件之间进行格式转换时,通过位置标识来加快对节点的寻址操作,从而尤其当XML文档的内容比较多、层次比较深及条件比较复杂时,有助于提高转换效率。
【专利附图】

【附图说明】
[0030]图1示出了根据本发明的一个实施例的文档格式转换系统的示意框图;
[0031]图2示出了根据本发明的另一个实施例的文档格式转换系统的示意框图;
[0032]图3示出了根据本发明的实施例的HL7V3转换引擎的结构示意图;
[0033]图4为图3所示实施例的XML模板配置工具执行对XML模板的配置的示意流程图;
[0034]图5为图3所示实施例的CDS转XML模块执行对CDS文件的格式转换的示意流程图;
[0035]图6为图3所示实施例的XML转CDS模块执行对XML文件的格式转换的示意流程图。
【具体实施方式】
[0036]为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和【具体实施方式】对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
[0037]在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明并不限于下面公开的具体实施例的限制。
[0038]图1示出了根据本发明的一个实施例的文档格式转换系统的示意框图。
[0039]如图1所示,根据本发明的一个实施例的文档格式转换系统100,包括:模板配置模块102,用于获取与目标XML文件的格式相同的XML模板文件,以及与待处理的二维关系表的格式相同的标准二维关系表,将所述XML模板文件对应的DOM树中的每个节点的元素信息记录至配置表中,并将所述DOM树中的每个节点与所述标准二维关系表中的参数之间的映射关系存储至所述配置表中;标识生成模块104,用于为所述DOM树中的至少一个节点生成对应的位置标识,并与对应的节点相关联地存储所述位置标识;格式转换模块106,用于根据所述配置表,将所述待处理的二维关系表中的参数填充至所述XML模板文件中,以生成所述目标XML文件,其中,根据所述位置标识对所述XML模板文件中对应的节点进行寻址。
[0040]在该技术方案中,不同于直接使用XPath技术对XML文件进行解析时采用的路径信息,本发明通过单独为节点生成位置标识,使得该节点可以被依照位置标识来寻得,避免采用路径进行寻址时,对节点的反复遍历,尤其是对于很多节点具有相同的元素名称和甚至部分相同的属性值的情况,能够有效提升对节点的寻址速度,提高对XML的解析效率和对二维关系表的格式转换效率。
[0041]在上述技术方案中,优选地,所述标识生成模块104用于:根据所述DOM树中的任一节点与所述DOM树中的其他节点之间的层级关系,以及所述任一节点与所属层级内的其他节点之间的位置关系,生成所述位置标识,并将所述位置标识存储至所述配置表中。
[0042]在该技术方案中,通过将XML文件解析为DOM树结构,使得每个节点都能够由层级关系和位置关系进行定位,从而相对于XPath中根据节点路径和节点属性值等条件字符串表达式的定位方式,无需对节点反复遍历,能够有效提高对节点的定位速度和对XML文件的解析效率。
[0043]在上述任一技术方案中,优选地,所述位置标识包括由至少一个数字段组成的字符串,以表示从根节点至所述任一节点的路径;其中,每个所述数字段在所述字符串中的位置表示所述路径中的当前节点在所述DOM树中所处的层级数,所述每个数字段的数值表示所述当前节点在所属层级中所处的位置。
[0044]在该技术方案中,每个节点对应的层级关系和位置关系,可以使用具体的字符串来表示,比如字符串中的第一个数字段对应于DOM树的第一层级(根节点不计入,依次向下为第一层级等),该第一个数字段内的数值表示将当前节点和第一层级中的其他节点进行排列时,当前节点所处的位置,比如“06”表示当前节点在第一层级的所有节点中,从预设的起始节点开始,为第6个节点。基于字符串的记录方式,能够清楚明确地体现出每个节点在DOM树中的位置情况,有助于快速实现节点定位。
[0045]在上述任一技术方案中,优选地,所述标识生成模块104还用于:在所述DOM树中的多个层级的节点之间存在嵌套关系时,为所述多个层级的节点中的父节点生成所述位置标识,并根据所述多个层级的节点中的其他节点与所述父节点之间的相对层级关系和相对位置关系,生成对应的相对位置标识,以作为所述多个层级的节点中的其他节点的位置标识。
[0046]在该技术方案中,对于存在嵌套关系的多个节点,通过生成相对位置标识,使得在解析该嵌套关系时,能够基于该相对位置关系,仅在这多个节点之间进行反复寻址,无需每次都从根节点开始定位,从而有助于提高对该嵌套关系的处理速度。
[0047]在上述任一技术方案中,优选地,所述标识生成模块104用于:为所述至少一个节点生成唯一的注释标识符,以作为所述位置标识;以及将所述注释标识符插入到所述XML模板文件中对应于所述至少一个节点的位置,以建立与所述至少一个节点的关联关系。[0048]在该技术方案中,由于注释标识符是唯一的,使得在执行对节点的寻址时,若需要查找某个注释标识符,可以直接且仅查找到对应的一个节点,即查找结果不会由于存在多个名称相同或属性值相同的节点而受到影响,避免对XML文件的反复解析,从而有助于加速对节点的寻址速度,提高对XML文件的解析效率。
[0049]在上述任一技术方案中,优选地,所述模板配置模块102还用于:生成对应于至少一种业务类型的所述XML模板文件及对应的配置表;以及所述格式转换模块106还用于:读取所述待处理的二维关系表中的业务类型标记,获取对应于所述业务类型标记的XML模板文件和配置表,以用于对所述待处理的二维关系表进行格式转换。
[0050]在该技术方案中,当存在多种不同业务类型对应的二维关系表时,不同业务类型对应的二维关系表中包含的参数、参数格式等均可能存在不同,但同一种业务类型对应的二维关系表的格式是固定的,因而通过根据业务类型来生成对应的多种XML模板文件和配置表,即可实现对不同业务类型的兼容。
[0051]图2示出了根据本发明的另一个实施例的文档格式转换系统的示意框图。
[0052]如图2所示,根据本发明的另一个实施例的文档格式转换系统200,包括:模板配置模块202,用于获取与待处理的XML文件格式相同的XML模板文件,以及与目标二维关系表的格式相同的标准二维关系表,将所述XML模板文件对应的DOM树中的每个节点的元素信息记录至配置表中,并将所述DOM树中的每个节点与所述标准二维关系表中的参数之间的映射关系存储至所述配置表中;标识生成模块204,用于为所述DOM树中的至少一个节点生成对应的位置标识,并与对应的节点相关联地将所述位置标识存储至所述配置表中;格式转换模块206,用于根据所述配置表,将所述待处理的XML文件中的每个节点的参数填充至所述标准二维关系表中,以生成所述目标二维关系表,其中,根据所述位置标识对所述待处理的XML文件中对应的节点进行寻址。
[0053]在该技术方案中,不同于直接使用XPath技术对XML文件进行解析时采用的路径信息,本发明通过单独为节点生成位置标识,使得该节点可以被依照位置标识来寻得,避免采用路径进行寻址时,对节点的反复遍历,尤其是对于很多节点具有相同的元素名称和甚至部分相同的属性值的情况,能够有效提升对节点的寻址速度,提高对XML的解析效率和对XML文件的格式转换效率。
[0054]在上述技术方案中,优选地,所述标识生成模块204用于:为所述至少一个节点生成唯一的注释标识符,以作为所述位置标识;以及所述格式转换模块206用于:根据所述配置表中的每个注释标识符,在所述待处理的XML文件中查找对应的元素。
[0055]在该技术方案中,由于注释标识符是唯一的,使得在执行对节点的寻址时,若需要查找某个注释标识符,可以直接且仅查找到对应的一个节点,即查找结果不会由于存在多个名称相同或属性值相同的节点而受到影响,避免对XML文件的反复解析,从而有助于加速对节点的寻址速度,提高对XML文件的解析效率。
[0056]在上述任一技术方案中,优选地,所述模板配置模块202还用于:为所述DOM树中的每个节点生成对应的绝对路径,以及在所述DOM树中的多个层级的节点之间存在嵌套关系时,为所述多个层级的节点中的父节点生成所述绝对路径,并根据所述多个层级的节点中的其他节点与所述父节点之间的相对层级关系和相对位置关系,生成对应的相对路径;其中,所述格式转换模块206用于:在对所述待处理的XML文件中的任一节点进行寻址时,优先使用对应的注释标识符;若没有对应的注释标识符,则优先使用对应的相对路径;若没有对应的相对路径,则使用对应的绝对路径。
[0057]在该技术方案中,当某个节点存在对应的注释标识符时,由于其对应于较高的解析速度,因而应当优先使用;而当某个节点不存在对应的注释标识符时,则需要直接使用XPath技术,但如果同时存在相对路径和绝对路径,仍应当优先选择相对路径,从而有助于提高对XML文件的格式转换效率。
[0058]在上述任一技术方案中,优选地,所述模板配置模块202还用于:生成对应于至少一种业务类型的所述配置表;以及所述格式转换模块206还用于:读取所述待处理的XML文件中的业务类型标记,获取对应于所述业务类型标记的配置表,以用于对所述待处理的XML文件进行格式转换。
[0059]在该技术方案中,当存在多种不同业务类型对应的XML文件时,不同业务类型对应的XML文件中包含的参数、参数格式等均可能存在不同,但同一种业务类型对应的XML文件的格式是固定的,因而通过根据业务类型来生成对应的多种XML模板文件和配置表,即可实现对不同业务类型的兼容。
[0060]需要说明的是,对应本发明所提及的二维关系表,本领域技术人员应该理解,其是指任意形式的体现二维关系的表格或文件,会由于实际所采用的开发工具或技术手段的不同而有所差异;作为一种较为具体的表现形式,比如对于采用Delphi开发技术时,该二维关系表可以为⑶S (Client DataSet,客户端数据集)文件。
[0061]本发明的技术方案可以应用于HL7V3的格式转换引擎、集成平台、异构系统间的集成交互、二维关系表转XML、XML转二维关系表等各种领域中基于模板需要转换XML及XML快速定位方面的应用系统。以下以HL7V3转换引擎中CDS转XML为例,进一步说明本发明的实施方式。
[0062]在HL7V3引擎中,业务系统中的数据都是以二维关系表形式(即CDS文件)存储和使用的,为了便于异构数据消息交互,HL7V3引擎就必须将二维关系数据转换为HL7V3对应的XML标准格式的消息,从而与平台或者其他系统进行交互;HL7V3中,定义了大量的标准消息服务,每个消息服务都定义了标准的格式。
[0063]业务系统向外发消息时,将需要转换的CDS 二维关系表数据作为参数传入,调用转换引擎CDS转XML功能后,转换引擎会装载XML配置表与配置好的标准XML空模板文件(不含业务数据的完整标准结构XML文件),配置表中记录有XML各元素的映射及配置信息,转换引擎根据配置表信息中记录的位置编码或者注释标识符逐个定位空模板XML元素,将业务数据根据映射配置从CDS中读出写入节点元素中,最后返回转换完的XML文件。
[0064]在对接收到的XML文件转换为CDS文件时,同样是基于标准XML模板文件与CDS文件之间的映射关系(可以建立配置表)等,从而基于该映射关系实现对XML文件的格式转换。
[0065]下面结合图3至图6,对基于本发明的格式转换引擎进行详细说明。
[0066]图3示出了根据本发明的实施例的HL7V3转换引擎的结构示意图。
[0067]如图3所示,根据本发明的实施例的HL7V3转换引擎300包括:
[0068]XML模板配置工具302:用于进行标准的XML模板文件的配置,生成XML与⑶S的映射关系、包含注释标识符的新XML模板文件、位置编码等各种配套相关标记等信息,并保存为综合配置信息表(即配置表)。
[0069]进一步地,在对配置表进行配置时,自动顺序遍历标准的XML模版文件,为每个元素生成用于可快速定位的位置编码和注释标识符;位置编码保存在配置表中,注释标识符会插入到XML模板文件中,构成新的不影响原结构的新XML模板文件;在对映射关系进行配置时,对需要存储动态业务数据的每个节点元素通过配置工具,手工配置对应CDS的名称及其对应字段名,该映射关系是通过名称来匹配的,即在后续转换应用中必须构造初始化有对应名称的CDS实例及CDS实例的字段中必须有映射中的字段名,否则在转换过程中报配置异常;配置数据集节点时,会标记出循环标志:0..η或1..η,用来约束表达循环体内节点重复数,0., η表示该节点元素可选,可以没有,也可以有多条重复;如果没有时,应该删除该节点;1..η表示该节点元素不能为空,必须出现一次,也必须有值,节点也可以重复出现多次,表示含有多条业务记录。
[0070]⑶S转XML模块304:用于依据配置表,将业务系统中的⑶S或⑶S组中的业务数据二维关系表形式的内容转换成符合HL7V3标准模板XML结构的XML文件并输出,作为HL7V3格式消息应用。
[0071]进一步地,在⑶S转XML的过程中,如果配置表中配有位置编码,则优先使用。其中,位置编码中每两位为一段,每段对应DOM树中的一个层次(即层级),段的顺序对应层次数。如“010201”包括三段,第一段01表示第一层的第I个节点元素,第二段02,表示第二层的第2个节点元素,第三段01表示第三层的第I个节点元素。在对DOM节点进行定位时,直接将段数分解为子节点层次,将段中的两位位置编码转为对应层次子节点数组下标,快速直接定位节点,如:假定位置编码为01020302,则从根节点root开始进行解析操作:“root.1tem[01].1tem[02].1tem[03].1tem[02] ”直接定位,并根据配置表中映射的 CDS 名称及字段名称,读出同名CDS中对应字段值赋给节点元素。
[0072]XML转⑶S模块306:接收传入业务数据的XML文件,读取配置表,根据配置将XML文件中的业务数据读出并写入CDS的对应字段中,输出CDS文件。
[0073]进一步地,在XML转⑶S的过程中,依据配置表中绝对路径和相对路径及注释标识符,定位XML中节点元素。其中,如果XML中有注释标识符,优先使用,可快速定位JnXML中无注释标识符,则只能用XPath路径,其中如果有相对路径,优先使用,如果无相对路径,则只能使用绝对路径,即由XPath来解析定位。
[0074]1、XML模板配置工具302
[0075]图4为图3所示实施例的XML模板配置工具执行对XML模板的配置的示意流程图。
[0076]如图4所示,XML模板配置工具302执行对XML模板的配置的示意流程包括:
[0077]步骤402,装载XML标准模板文件,初始化为DOM树;由于本发明的方法是基于XML模板文件基础上的,所以如果不是有约定标准结构格式的动态结构XML的处理,不适用。
[0078]步骤404,遍历DOM树节点元素,配置工具在装载时会自动抽取出DOM结构及每个节点元素,包括标签、标签值、属性、属性值、特殊处理指令、注释等元素;对每个节点元素按树形结构层次展开,且每个元素保存为一条记录,工具自动依据DOM树型结构的层次及元素顺序,为每个元素生成绝对位置编码;抽取出每个元素的层次数、XPath全路径保存在各自对应元素的记录里。
[0079]步骤406,手工配置XML的数据集节点与字段节点,配置XML节点与⑶S间的映射关系,如果设置了数据集节点,则该节点的下级子节点都会自动生成相对于该数据集节点的相对位置编码及相对XPath路径,也保存在配置表记录里。
[0080]步骤408,设置数据集节点的循环标记,当设置了数据集节点时,要标注该数据集节点的循环标记,0., η表示该节点可选,可以重复多次,如果无内容时,应该删除该节点;
1..η表示该节点必选,可以重复多次;如果XML重名标签节点比较多,这在HL7V3标准XML中,标签重名比较普遍,由于标签名比较抽象,为了体现表达不同业务含义,往往通过属性值来约束定义,有时一个标签节点元素的业务含义还依赖有上下文标签及其属性值,这种复杂表达,采用在相应XML节点处,加入注释标识符,由于注释标识符命名要求唯一,这样即不影响原标准XML语意结构,又间接可以用注释标识符简化XPath及条件定位;当配置添加注释标识符后,因为会影响到原来的位置编码顺序,所以XML模板文件及配置表会自动刷新保存。
[0081]步骤410,保存配置表及新XML模板文件。
[0082]2、CDS 转 XML 模块 304
[0083]图5为图3所示实施例的CDS转XML模块执行对CDS文件的格式转换的示意流程图。
[0084]如图5所示,⑶S转XML模块304执行对⑶S文件的格式转换的示意流程包括: [0085]步骤502,初始化,加载配置表,缓存在内存中C,初始化堆栈DS、CS,±曾加列表、删除列表;堆栈CS用于保存嵌套节点指针的,堆栈DS用于保存嵌套CDS的记录位置标签;增加列表中用于暂存循环多记录时需要新增加的XML节点子树指针,删除列表用于暂存XML中应该删除的节点指针,以避免在过程中影响原XML模板结构顺序,两个列表中的节点处理,放在CDS转XML处理全部完成后,结束前,对处理后的XML将删除列表中的节点一一删除,将增加列表中的节点--增加近XML中。
[0086]步骤504,接收传人参数⑶S数组B,从B中读出业务类型,过滤C中对该业务类型相关的全部配置记录;以⑶S数组形式作为入参,是为了支持多个二维关系表⑶S,⑶S数组顺序是相关的,配置表中映射关系是按顺序号来对应入参CDS数组中的CDS的。
[0087]步骤506,从装载配置中对应业务类型的XML模板文件,实例化为DOM树D,移动配置表C到首条记录Cn (η=1)ο
[0088]步骤508,读取C当前记录Cn。
[0089]步骤510,判断Cn行是否结束,如果C行结束,执行步骤538,否则进入步骤512或步骤532。
[0090]步骤512,Cn为数据集节点类型,CS栈为空,则Cn位置标签入栈CS。
[0091]步骤514,判断DS栈是否为空。若DS为空,则转到步骤518,若DS不为空,则进入步骤516。
[0092]步骤516,判断当前数据集节点的层次数是否大于等于DS栈顶指针节点的层次数,若是,则转到步骤524,否则执行步骤518。
[0093]步骤518,读取Cn中节点位置编码与⑶S,定位D到对应节点元素,将节点元素指针入栈CS,⑶S移到首条记录位置,将⑶S及当前记录位置标签入栈DS。
[0094]步骤520,判断⑶S是否为空,如为空,则进入步骤522,如不为空,则进入步骤503,即移动C到下一条记录。[0095]步骤522,添加CS栈顶节点指针加入删除列表,DS、CS出栈,连续移动C到下一条记录,直到下一条层次数大于等于当前层次数的记录,转到步骤508。
[0096]步骤524,判断CS栈顶⑶S记录是否结束,如结束执行步骤528,否则执行步骤526。
[0097]步骤526,复制DS栈顶指针所指对象的新节点,添加新节点指针到增加列表中,移动C记录回到CS栈顶标签位置,然后进入步骤530。
[0098]步骤528,如DS、CS不为空,DS出栈,CS出栈,然后转到步骤530,即移动C到下一
条记录。
[0099]步骤530,移动C到下一条记录。
[0100]步骤532,Cn为记录集节点类型。
[0101]步骤534,优先取位置编码(相对位置编码、绝对位置编码)快速定位D对应节点元素,如没有位置编码,则取XPath路径(相对路径,绝对路径)定位。
[0102]步骤536,从Cn的配置中读取⑶S中字段值写入到D中定位到的节点元素或者属性值,然后转到步骤530,移动C到下一条记录。
[0103]步骤538,清空堆栈DS、CS ;处理删除列表、增加列表;如果删除列表不为空,则遍历增加列表,逐条将增加列表中指针节点增加到D中;如果删除列表不为空,逐条从D中删除对应节点;清空两列表,将D保存为XML输出,结束退出。
[0104]3、XML 转 CDS 模块 306
[0105]图6为图3所示实施例的XML转CDS模块执行对XML文件的格式转换的示意流程图。
[0106]如图6所示,XML转CDS模块306执行对XML文件的格式转换的示意流程包括:
[0107]步骤602,接收传入参数XML,初始化为DOM树,根据XML对应的业务类型,初始化相对应的⑶S。
[0108]步骤604,装载XML配置表,按业务类型过滤出配置表中相应的配置记录,从首条记录开始,遍历逐条读取配置记录信息。
[0109]步骤606,判断配置表记录中是否有注释标识符,如有则执行步骤608,如无则执行步骤612。
[0110]步骤608,判断DOM中有无注释标识符,如有则执行步骤610 ;如无则执行步骤612。
[0111]步骤610,按注释标识符检索出DOM节点元素,读出节点元素值,依据配置表记录中的映射关系,将值写入对应CDS中相应字段里,执行步骤614。
[0112]步骤612,按XPath路径定位DOM节点元素,如配有相对路径的优先使用相对路径定位,读出节点元素值写入对应的CDS中对应字段里,执行步骤614。
[0113]步骤614,保存⑶S输出返回,结束。
[0114]以上结合附图详细说明了本发明的技术方案,本发明提出了一种文档格式转换系统,可以在二维关系表与XML文件之间进行格式转换时,通过位置标识来加快对节点的寻址操作,从而尤其当XML文档的内容比较多、层次比较深及条件比较复杂时,有助于提高转换效率。
[0115]以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种文档格式转换系统,其特征在于,包括: 模板配置模块,用于获取与目标XML文件的格式相同的XML模板文件,以及与待处理的二维关系表的格式相同的标准二维关系表,将所述XML模板文件对应的DOM树中的每个节点的元素信息记录至配置表中,并将所述DOM树中的每个节点与所述标准二维关系表中的参数之间的映射关系存储至所述配置表中; 标识生成模块,用于为所述DOM树中的至少一个节点生成对应的位置标识,并与对应的节点相关联地存储所述位置标识; 格式转换模块,用于根据所述配置表,将所述待处理的二维关系表中的参数填充至所述XML模板文件中,以生成所述目标XML文件,其中,根据所述位置标识对所述XML模板文件中对应的节点进行寻址。
2.根据权利要求1所述的文档格式转换系统,其特征在于,所述标识生成模块用于: 根据所述DOM树中的任一节点与所述DOM树中的其他节点之间的层级关系,以及所述任一节点与所属层级内的其他节点之间的位置关系,生成所述位置标识,并将所述位置标识存储至所述配置表中。
3.根据权利要求2所述的文档格式转换系统,其特征在于,所述位置标识包括由至少一个数字段组成的字符串,以表示从根节点至所述任一节点的路径; 其中,每个所述数字段在所述字符串中的位置表示所述路径中的当前节点在所述DOM树中所处的层级数,所述每个数字段的数值表示所述当前节点在所属层级中所处的位置。
4.根据权利要求2所述的文档格式转换系统,其特征在于,所述标识生成模块还用于: 在所述DOM树中的多个层级的节点之间存在嵌套关系时,为所述多个层级的节点中的父节点生成所述位置标识,并根据所述多个层级的节点中的其他节点与所述父节点之间的相对层级关系和相对位置关系,生成对应的相对位置标识,以作为所述多个层级的节点中的其他节点的位置标识。
5.根据权利要求1所述的文档格式转换系统,其特征在于,所述标识生成模块用于: 为所述至少一个节点生成唯一的注释标识符,以作为所述位置标识;以及 将所述注释标识符插入到所述XML模板文件中对应于所述至少一个节点的位置,以建立与所述至少一个节点的关联关系。
6.根据权利要求1至5中任一项所述的文档格式转换系统,其特征在于,所述模板配置模块还用于:生成对应于至少一种业务类型的所述XML模板文件及对应的配置表;以及 所述格式转换模块还用于:读取所述待处理的二维关系表中的业务类型标记,获取对应于所述业务类型标记的XML模板文件和配置表,以用于对所述待处理的二维关系表进行格式转换。
7.一种文档格式转换系统,其特征在于,包括: 模板配置模块,用于获取与待处理的XML文件格式相同的XML模板文件,以及与目标二维关系表的格式相同的标准二维关系表,将所述XML模板文件对应的DOM树中的每个节点的元素信息记录至配置表中,并将所述DOM树中的每个节点与所述标准二维关系表中的参数之间的映射关系存储至所述配置表中; 标识生成模块,用于为所述DOM树中的至少一个节点生成对应的位置标识,并与对应的节点相关联地将所述位置标识存储至所述配置表中;格式转换模块,用于根据所述配置表,将所述待处理的XML文件中的每个节点的参数填充至所述标准二维关系表中,以生成所述目标二维关系表,其中,根据所述位置标识对所述待处理的XML文件中对应的节点进行寻址。
8.根据权利要求7所述的文档格式转换系统,其特征在于,所述标识生成模块用于:为所述至少一个节点生成唯一的注释标识符,以作为所述位置标识;以及 所述格式转换模块用于:根据所述配置表中的每个注释标识符,在所述待处理的XML文件中查找对应的元素。
9.根据权利要求7所述的文档格式转换系统,其特征在于,所述模板配置模块还用于:为所述DOM树中的每个节点生成对应的绝对路径,以及在所述DOM树中的多个层级的节点之间存在嵌套关系时,为所述多个层级的节点中的父节点生成所述绝对路径,并根据所述多个层级的节点中的其他节点与所述父节点之间的相对层级关系和相对位置关系,生成对应的相对路径; 其中,所述格式转换模块用于:在对所述待处理的XML文件中的任一节点进行寻址时,优先使用对应的注释标识符;若没有对应的注释标识符,则优先使用对应的相对路径;若没有对应的相对路径,则使用对应的绝对路径。
10.根据权利要求7至9中任一项所述的文档格式转换系统,其特征在于,所述模板配置模块还用于:生成对应于至少一种业务类型的所述配置表;以及 所述格式转换模块还用于:读取所述待处理的XML文件中的业务类型标记,获取对应于所述业务类型标 记的配置表,以用于对所述待处理的XML文件进行格式转换。
【文档编号】G06F17/30GK103559321SQ201310596617
【公开日】2014年2月5日 申请日期:2013年11月22日 优先权日:2013年11月22日
【发明者】李祺, 罗建军, 刘晓明, 孙婷婷 申请人:方正国际软件有限公司, 方正国际软件(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1