用于规范化模式对比的系统和方法与流程

文档序号:11333714阅读:294来源:国知局
用于规范化模式对比的系统和方法与流程

相关申请的交叉引用

本申请要求2014年11月6日提交的题为“systemsandmethodsfornormalizedschemacomparison(用于规范化模式对比的系统和方法)”的美国临时专利申请序列号62/076,053的权益,所述申请的全部公开内容通过引用结合在此。

本说明书总体上涉及用于对数据进行对比的方法、系统和介质,并且更具体地涉及生成规范化模式(normalizedschema)对比文件以用于对符合相关联的xml模式的xml文件中所允许的结构进行对比。



背景技术:

目前,可以采用一种或多种不同的模式语言来创建可扩展标记语言(xml)模式。尽管这些模式可以对xml文档施加相同的约束,但它们可以使用不同的语法(syntax)来实现这些约束。使用跨不同模式语言的不同语法或采用相同模式语言的不同语法使得难以利用自动区别工具对模式进行彼此对比。

相应地,存在对规范化模式对比文件的需要,所述规范化模式对比文件在将来自多个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属性中的每一个的定义来确定标准化结构以获得多个定义;提供采用规范化模式对比语法的所述标准化结构;按字母顺序来安排所述多个定义中的每一个以获得经安排的多个定义;消除存在于所述经安排的多个定义中的任何冗余定义;以及生成包含所述经安排的多个定义的规范化模式对比文件。

鉴于以下具体描述结合附图将更完整地理解由在此描述的实施例提供的这些和附加特征。

附图说明

附图中阐明的实施例在本质上是说明性的且示例性的并且并不旨在限制由权利要求书限定的主题。当结合以下附图阅读时,能够理解说明性实施例的以下详细描述,其中,相同的结构用相同的参考标号指示,并且在附图中:

图1a描绘了根据本文所示出和所描述的一个或多个实施例的说明性xsd模式;

图1b描绘了根据本文所示出和所描述的一个或多个实施例的说明性rng模式;

图2示意性地描绘了根据本文所示出和所描述的一个或多个实施例的针对用于规范化xml模式的系统的说明性计算网络;

图3示意性地描绘了来自图2的服务器计算设备,进一步展示了根据本文所示出和所描述的一个或多个实施例可以用于提供数据的硬件和软件;

图4示意性地描绘了根据本文所示出和所描述的一个或多个实施例的通过查询用于元素和属性的xml模式内容模型而生成规范化模式对比文件的说明性方法的流程图;

图5a描绘了根据本文所示出和所描述的一个或多个实施例的可以规范化到单个文件中的说明性模式模块;以及

图5b描绘了根据本文所示出和所描述的一个或多个实施例的已经被规范化的单个文件。

具体实施方式

本文所描述的方法、系统和存储介质涉及生成规范化模式对比文件,所述规范化模式对比文件可由自动区别工具用来将如由一个或多个相关联xml模式所定义的xml实例文件中所产生的可允许结构进行对比。无论用于每个xml模式所使用的模式语言如何,并且无论用在特定模式中用于结构化xml模式的语法如何,都可以完成这种对比。本文所描述的方法、系统和存储介质被配置成用于忽视所有内模式结构并且仅关注由每个xml模式所定义的元素的所产生的定义。也就是说,本文所描述的方法、系统和存储介质可以用于辨别以第一种方式定义xml文档元素的第一模式与以第二种方式定义相同xml文档元素的第二模式是否相同。这些方法、系统和存储介质提供优势,因为它们不要求对第一和第二xml模式进行逐行对比,逐行对比将是耗时的并且可能无法辨别由第一和第二xml模式施加的约束是相同的。

xml模式是用于表达有关xml文档的约束的语言。xml是标记语言,所述标记语言定义用于以人可读和机器(特别是计算设备)可读的格式来编码电子文档的一组规则。如此,由于xml文档整体上涉及编码电子文档以供计算机使用,因此xml文档(并因此xml模式)必然植根于计算机和计算机技术中。也就是说,使用xml模式来编码xml文档将不会存在于计算机技术之外。

xml模式可以用于例如提供词汇中元素和属性的列表,用于将类型(例如,整数、字符串和/或类似物、或者特定定义如“衬衫_尺寸”、“玻璃_颜色”或类似物)与在文档中找到的值进行关联,用于约束元素和属性可能出现的位置以及可能出现在那些元素内部的内容(例如,指定章节标题出现在章节内部和/或章节必须包括章节标题,随后是一个或多个文本段落),用于提供人可读的和机器可处理的文档资料,以及用于给出对一个或多个文档的形式描述。

存在xml模式以帮助定义基于xml的语言,并且因此定义定制的xml数据。然而,广泛应用若干不同模式语言,如例如,文档类型定义(dts)、relax-ng(rng)、schematron以及万维网联盟(w3c)xsd。不同的xml模式可以描述相同的、类似的或完全不同的xml数据结构。由于用于表示xml模式以及用于促进其被各种其他工具和软件使用的所有详细语法,经常很难将一种模式与另一种模式进行对比,并且因此符合xml模式的(多个)xml文档中所允许的所产生的结构也难以进行对比。即使由多种模式定义的最终有效xml数据结构相同,也可能会存在差异。例如,第一模式可以将元素z定义为包含2组子元素,组a和组b。在其它地方,xml模式可以将组a定义为包含子元素z1和子元素z2,并且组b包含子元素z3和子元素z4。相比而言,第二模式可以将元素z定义为子元素z1、子元素z2、子元素z3和子元素z4。第一模式和第二模式二者各自需要元素z以包含子元素z1、z2、z3和z4,但它们非常不同地被结构化。

在另一个示例中,图1a描绘了说明性xsd模式并且图1b描绘了说明性rng模式。两种模式提供对特定数据集相同的约束,但如图1a和图1b中所示,xml模式以不同的方式表达数据输出。定义相同值的多种不同方式引起制造不同模式的自动对比的困难。

图2是说明性计算网络,所述说明性计算网络描绘了根据本文所示出和所描述的实施例的用于查询用于元素和属性数据模型的xml内容模型的系统的部件,生成了规范化xml模式对比语法,并且输出用于对xml文档进行对比的规范化xml模式对比文档。如图2所展示的,计算机网络200可以包括广域网(wan)(如,互联网)、局域网(lan)、移动通信网络、公共服务电话网络(pstn)、个人局域网(pan)、城域网(man)、虚拟专用网络(vpn)和/或其他网络。计算机网络200通常可以被配置成用于电连接一个或多个计算设备和/或其部件。说明性计算设备可以包括但不局限于用户计算设备210a、服务器计算设备210b以及管理员计算设备210c。

用户计算设备210a通常可以用作用户与连接至计算机网络200的其他部件之间的接口。因此,用户计算设备210a可以用于执行一个或多个面向用户的功能,如,接收来自用户的一个或多个输入或者将信息提供给用户,如本文中更详细描述的。在一些实施例中,用户计算设备210a可以包含一个或多个软件程序和/或类似物以便对xml文档进行对比。

另外,包括在图2中的是管理员计算设备210c。在服务器计算设备210b需要监督、更新或校正的情况下,管理员计算设备210c可以被配置成用于提供所期望的监督、更新、和/或校正。管理员计算设备210c还可以用于将附加数据输入到存储在服务器计算设备210b上的语料库中。

服务器计算设备210b可以接收来自一个或多个源的数据、存储数据、将数据提供给一个或多个接收方(如,用户计算设备210a)、查询用于元素和属性数据模型的xml模式内容模型、生成规范化xml模式对比语法、并且输出规范化xml模式对比文档。

应当理解的是,虽然用户计算设备210a和管理员计算设备210c被描绘为个人计算机并且服务器计算设备210b被描绘为服务器,但是这些是非限制性示例。更确切地,在一些实施例中,任何类型的计算设备(例如,移动计算设备、个人计算机、服务器等)可以用于这些部件中的任何部件。另外,虽然这些计算设备中的每个计算设备在图2中被展示为单件硬件,但是这也仅是示例。更确切地,用户计算设备210a、服务器计算设备210b和管理员计算设备210c中的每一个可以表示多个计算机、服务器、数据库、部件和/或类似物。

另外,应当理解的是,虽然本文所描绘的实施例指的是计算设备网络,但是本公开不仅限于这一网络。例如,在一些实施例中,可以通过单个计算设备(如,不使用网络来完成本文所描述的各种处理的非联网计算设备或联网计算设备)来完成本文所描述的各种处理。

图3描绘了来自图2的服务器计算设备210b,进一步展示了一种系统,所述系统用于接收来自一个或多个源的数据、存储数据、将数据提供给一个或多个接收方、查询用于元素和属性数据模型的xml模式内容模型、生成规范化xml模式对比语法并且输出规范化xml模式对比文档。另外,根据本文所示出和所描述的实施例,服务器计算设备210b可以包括一种非瞬态计算机可读介质,所述非瞬态计算机可读介质用于查询用于元素和属性数据模型的xml模式内容模型、生成规范化xml模式对比语法并且输出规范化xml模式对比文档。虽然在一些实施例中,服务器计算设备210b可以被配置为具有必要硬件、软件、和/或固件的通用计算机,但是在一些实施例中,所述服务器计算设备210b还可以被配置为用于执行本文所描述的功能而专门设计的专用计算机。

还如图3所展示的,服务器计算设备210b可以包括处理器330、输入/输出硬件340、网络接口硬件350、数据存储部件320(其可以存储xml文档322、xml模式324以及规范化模式对比文件326)、以及非瞬态存储器部件310。存储器部件310可以被配置为易失性和/或非易失性计算机可读介质,并且如此,可以包括随机存取存储器(包括sram、dram、和/或其他类型的随机存取存储器)、闪存、寄存器、cd盘(cd)、数字通用盘(dvd)、和/或其他类型的存储部件。另外,存储器部件310可以被配置成用于存储操作逻辑312和规范化逻辑314(作为示例,所述逻辑中的每个逻辑可以被具体化为计算机程序、固件、或硬件)。本地接口300也包括在图3中并且可以被实现为总线或其他接口以便促进在服务器计算设备210b的部件之间的通信。

处理器330可以包括被配置成用于接收和执行指令(如,来自数据存储部件320和/或存储器部件310)的任何处理部件。输入/输出硬件340可以包括监视器、键盘、鼠标、打印机、相机、麦克风、扬声器、触摸屏、和/或用于接收、发送和/或呈现数据的其他设备。网络接口硬件350可以包括任何有线或无线联网硬件,如,调制解调器、lan端口、无线保真(wi-fi)卡、wimax卡、移动通信硬件、和/或用于与其他网络和/或设备进行通信的其他硬件。

应当理解的是,数据存储部件320可以在服务器计算设备210b本地和/或远离服务器计算设备而驻留并且可以被配置成用于存储一条或多条数据并且提供对所述一条或多条数据的访问。如图3中所展示的,数据存储部件320可以存储xml文档322以及与xml文档322相关的xml模式324,如本文中更详细描述的。另外,数据存储部件320还可以存储一个或多个规范化模式对比文件326,如本文中更详细描述的。

包括在存储器部件310中的是操作逻辑312和规范化逻辑314。操作逻辑312可以包括操作系统和/或用于管理服务器计算设备210b的部件的其他软件。规范化逻辑314可以被配置成用于创建用于规范化xml模式的模式对比文档,如以下详细描述的。

应当理解的是,图3中所展示的部件仅是说明性的并且不旨在限制本公开的范围。更具体地,虽然图3中的部件被展示为驻留在服务器计算设备210b内,但是这是非限制性示例。在一些实施例中,所述部件中的一个或多个部件可以驻留在服务器计算设备210b外部。类似地,虽然图3涉及服务器计算设备210b,但是其他部件(如,用户计算设备210a和管理员计算设备210c(图2))可以包括类似的硬件、软件和/或固件。

图4描绘了通过查询用于元素和属性的xml模式内容模型而生成规范化模式对比文件的说明性方法的流程图。这种查询通常可以被完成为第一步骤以便创建可以用于对从多个xml模式到一致性xml实例文件的xml文档结构的意义进行对比的文件。也就是说,相对于图4所描述的处理可以用于理解xml文档结构的意义,无论哪种模式用于定义xml文档结构的元素和属性。

如步骤402中所示,可以接收xml模式。可以从xml模式储存库(如例如,存储在数据存储部件320(图3)中的xml模式)中接收xml模式。在一些实施例中,所获得的xml模式可以是例如有待于与一个或多个其他xml模式进行对比的xml模式。xml模式通常可以包含内容模型,所述内容模型是一致性xml实例文件内所允许的各种xml元素和xml属性的规范,包括允许xml元素和xml属性的相关结构和布置,以及允许包含xml元素和xml属性的数据类型。如以上所描述的,图1a和图1b提供了xml模式内的内容模型的说明性示例。

在一些实施例中,xml模式可以包括多个模式模块。模式模块是提供各种结构元素的定义的xml模式部件。为了生成有效对比语法,xml模式可以被“平坦化”为单个模式模块,从而使得所有结构元素都出现在相同的模式模块中。因此,如步骤404中所示,如果xml模式是模块化的(即,包含多个模块,如,嵌套模块),则xml模式可以在步骤406中被规范化为单个文件。如果xml模式不包括多个模块,则可以跳过步骤406。将xml模式规范化为单个文件通常可以包括将存在于各个模块中的所有定义组合到单个文件中并且移除与这些模块的包含或导入相关的所有语法。在非限制性示例中,xml模式可以包括模块1,所述模块1包含用于包括模块2和模块3的语法。另外,模块2包含元素“a”的定义,并且模块3包含元素“b”的定义。将xml模式规范化为单个文件将产生包含模块1的内容的文件,但是具有用于包括被移除的模块2和模块3的语法。另外,单个文件还包含模块2和模块3的内容,所述内容包括但不局限于元素“a”和元素“b”的定义。图5a和图5b中描绘了规范化xml模式的另一个非限制性示例。如图5a中所示,第一模式模块502和第二模式模块504可以被规范化为单个文件506,所述单个文件在图5b中示出。单个文件506包含第一模式模块502和第二模式模块504的内容,但是省略了在第一模式模块502到第二模式模块504中所做的参考。

再次参照图4,在各个实施例中,xml模式可以包含与xml文档的结构有关但与对比目的无关的各种内部结构。例如,某些内部结构可以与如何安排xml模式本身有关,但是与最终由xml模式指定的所产生的xml实例文档结构无关。说明性内部结构包括分组、样式(pattern)、类型以及参考。然而,应当理解的是,内部结构不局限于这些,并且可以包括其他内部结构。分组通常可以指代xml模式如何内部地对数据进行分组。样式通常可以指代xml模式如何安排数据以便进行访问。类型通常可以指代如何在层级结构内将数据结构化。参考通常可以指代xml模式如何将参考与一个或多个其他定义进行关联。由于内部结构仅与如何将xml模式结构化有关并且与对由xml模式表示的内容模型进行对比的目的无关,因此可以对它们进行处理,从而使得可以在步骤408中对它们进行解析和/或移除。对内部结构进行解析和/或移除可以包括例如删除来自文档的内部结构信息并且将与内容模式信息相关联的相关内容插入到参照内部结构信息的数据伪像中。通常应当理解的是,在不脱离本公开的范围的情况下,可以使用对内部结构进行解析和/或移除的其他方法。

在步骤410中,确定标准化结构。通常应当理解的是,标准化结构定义在xml模式内存在并被参考的每个元素,其中,每个定义包括但不局限于所定义元素的特定数据类型和其他限制和扩展,元素属性的数据类型和其他限制和扩展,以及元素的子元素和文本内容的基数、次序性和/或其他限制和扩展。用于子元素和文本内容的规范包括对子元素的任何所需分组以及这些分组的次序性。相应地,确定标准化结构包括标识每个元素、元素的子元素和文本内容中的每一个以及与其相关联的定义。确定这一标准化结构确保了一个xml模式的内容模型内的元素的定义包含与任何其他xml模式的内容模型内的元素的定义相同类型的信息。

标准化结构的非限制性示例可以包括一种结构,所述结构指定元素“a”包含属性“日期”,所述属性是数据类型xs:日期(xs:date),并且包含对元素“b”或元素“c”的选择,随后恰好出现2次元素“d”。相同的标准化结构可以进一步指定元素“b”是空的,元素“c”仅包含数据类型xs:整数(xs:integer)的属性“refno(无需回复)”,并且元素d仅包含数据类型xs:布尔量(xs:boolean)的属性“replyneeded(需要回复)”。

对元素或属性的限制或扩展通常指的是如任何模式定义语法中所定义的元素和属性扩展和限制的概念,所述模式定义语法包括但不限于标准化语法,如例如,w3cxml模式定义或relaxng模式语言规范。在一些实施例中,标准化结构包括限制或扩展的类型的规范,以及用于完全描述由限制或扩展所表示的约束所需的所有相关信息,所述限制或扩展是针对xml模式中的元素或属性而定义的。

子元素的基数指的是可能的数量乘以必须出现在由xml模式所定义的元素内的特定元素,并且包括在标准化结构中。基数的非限制性示例可以是标准化结构指定元素“b”必须作为元素“a”的子元素恰好出现3次。

子元素的次序性指的是在由xml模式所定义的元素内其相对于其他子元素或元素分组的定位,并且包括在标准化结构中。也就是说,子元素的次序性可以是例如相对于xml模式中的其他元素而言的子元素的第二序列分组内的第一子元素、第二子元素、第三子元素等等。例如,标准化结构可以指定所定义的元素“a”内的子元素“b”、“c”和“d”的次序性必须是“a”,接着是“b”或“c”的分组选择,接着是“d”。

元素或属性的数据类型指的是那个元素或属性内所允许的内容的类型。数据类型值由针对如在w3cxml模式定义语言中所定义的元素和属性的所允许的数据类型所定义(http://www.w3.org/tr/xmlschema11-1/)。标准化结构中的数据类型值的说明性示例包括但不局限于“xs:日期”和“xs:整数”。

一旦已经确定了标准化结构,则可以从标准化结构中生成规范化模式对比语法。相应地,在步骤412中,可以基于它们的元素和属性定义在规范化xml模式对比语法中提供(表达)所发现的数据模型。也就是说,数据模型可以被规范化,其方式使得所使用的语法与可以被用来对比的xml模式的所有内容模型相同。一旦语法已经被规范化,每个数据模型的元素的定义就可以在步骤414中根据它们的名称按照字母顺序进行分类。类似地,在步骤416中,针对每个元素的属性的定义也可以按照字母顺序进行分类。

一旦在步骤414和416中完成了字母顺序分类,就可以开始进行清除处理,由此消除冗余伪像,如步骤418中所示。冗余伪像可以例如是某些数据模型或者其出现在多于一个xml模式中的元素和属性(包括其定义)。由于其数据模型元素和/或属性是相同的,因此可以从文件中移除或消除至少一个,从而使得仅呈现其数据模型元素和/或属性的单个列表。因此,所产生的文件可以在其表面上看似类似于xml模式,但通常被理解为不是xml模式。

在步骤420中,可以从规范化的分类的清洁数据模型中生成规范化模式对比文件。在步骤422中,可以保存和/或输出规范化模式xml文件以便使用。可以将所述文件输出到任何接收方,如例如,用户计算设备210a或管理员计算设备210c(图2)。在另一个示例中,可以将所述文件输出至储存库,如,数据存储部件320(图2)。可以出于对符合xml模式的xml实例文档中所允许的结构与符合不同xml模式的xml实例文件中所允许的结构进行对比的目的而使用所述文件。在一些实施例中,可以例如通过自动区别工具(如,由一个或多个软件模块实现的工具)来完成对比。自动区别工具通常可以是任何软件测试工具,所述软件测试工具可以用于确定多个对象(如,xml文档、文本文档和/或类似物)之间的差异。为了确保自动区别工具能够读取文件,可以采用合适的格式输出所述文件。由自动区别工具可读的特定格式通常应当被识别。应当理解的是,对所述文件的使用不局限于本公开中,并且可以出于任何对比目的而被使用,无论在本文中是否具体公开了这种对比。

在一些实施例中,可以针对多个xml模式中的每一个xml模式来完成关于图4所描述的步骤。例如,可以针对包含在数据存储部件320(图3)中的xml模式中的每一个xml模式来完成关于图4所描述的步骤。因此,在步骤424中,可以判定是否可以处理附加xml模式。如果可以,则可以在步骤402处重复所述过程。如果不可以,则可以结束所述过程。

现在应当理解的是,本文所描述的实施例创建并提供文件以便在对xml模式进行对比时,特别是对符合相关联的xml模式的xml文档的所得到的可允许结构进行对比时而使用。这一文件可以被自动区别工具和/或类似物使用以便对xml模式进行对比并且确定xml模式之间的差异,由此节省与手动对比相关联的时间。此外,所述文档可以用于对比,无论所使用的xml模式的类型、xml模式的编写语言以及xml模式本身的结构如何。

虽然在此已经展示和描述了特定实施例,但应当理解的是,在不脱离所要求保护的主题的精神和范围的情况下,可作出各种其他变化和修改。此外,尽管在此已经描述了所要求保护的主题的各方面,但这些方面无需以组合使用。因此,本发明旨在所附权利要求书涵盖所有此类落入所要求保护的主题的范围内的变化和修改。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1