一种数据库的XMLSchema约束文件生成方法和装置与流程

文档序号:11774548阅读:165来源:国知局
一种数据库的XML Schema约束文件生成方法和装置与流程

本发明涉及数据库技术领域,特别是涉及一种数据库的xmlschema约束文件生成方法和装置。



背景技术:

可扩展标记型(extensiblemarkuplanguage,xml)数据库被越来越多的应用到各种场景中,例如工厂系统自动化软件平台系统(factoryautomationsystem,fa)等。xml数据库以xml格式文件进行数据的存储和查询等操作。由于xml文件的文本属性,其容易被人为地错误编辑,如被误删字母、被重复创建节点等,因此,对xml文件的有效性进行约束就变得非常必要。

目前,对xml文件的有效性进行约束的方法是建立对应的xmlschema约束文件,在该schema文件中对xml文件中的节点及其属性进行规范约束,但是由于一个xml数据库通常涉及的xml文件数量非常庞大,因此由用户逐个编辑schema文件不但非常耗时,而且效率低下。



技术实现要素:

为了解决上述现有技术由用户手工编辑schema文件效率低下、容易出错的问题,本发明实施例提供了一种xml数据库的xmlschema约束文件生成方法和装置。

为了解决上述问题,本发明实施例公开了一种数据库的xmlschema约束文件生成方法,包括:

确定节点数据模型,所述节点数据模型包括以下信息至少其中之一:节点名、节点级别、节点数量限制、节点数据类型、是否允许为空和节点顺序;

根据所述节点数据模型确定节点实例,所述节点实例包括:第一节点和第一节点属性、第二节点和第二节点属性、第三节点和第三节点属性;其中, 所述第一节点为根节点;所述第二节点为第一节点的子节点;所述第三节点为所述第二节点的子节点;

按照所述节点实例生成xmlschema约束文件。

在本发明的一个可选实施例中,所述根据所述节点数据模型确定节点实例,包括:

获取用户输入的节点属性数据;

使用所述节点属性数据和所述节点数据模型生成对应的节点实例。

可选的,所述节点实例中包括:一个第一节点、至少一个第二节点和至少三个第三节点。

可选的,所述按照所述节点实例生成xmlschema约束文件,包括:

根据所述第一节点和第一节点属性生成对应的第一节点标记和第一节点属性标记;

根据所述第二节点和第二节点属性依次生成对应的第二节点标记和第二节点属性标记,直到完成对所有第二节点的处理;

确定各个第二节点对应的第三节点和第三节点属性并生成对应的第三节点标记和第三节点属性标记;

根据所述生成的第一节点标记和第一节点属性标记、第二节点标记和第二节点属性标记、第三节点标记和第三节点属性标记生成xmlschema约束文件。

本发明实施例还公开了一种数据库的xmlschema约束文件生成装置,包括:数据模型确定模块、节点实例确定模块和约束文件生成模块,其中,

数据模型确定模块,用于确定节点数据模型,所述节点数据模型包括以下信息至少其中之一:节点名、节点级别、节点数量限制、节点数据类型、是否允许为空和节点顺序;

节点实例确定模块,用于根据所述节点数据模型确定节点实例,所述节点实例包括:第一节点和第一节点属性、第二节点和第二节点属性、第三节点和第三节点属性;其中,所述第一节点为根节点;所述第二节点为第一节 点的子节点;所述第三节点为所述第二节点的子节点;

约束文件生成模块,用于按照所述节点实例生成xmlschema约束文件。

可选的,所述节点实例确定模块,包括:

节点属性确定子单元,用于获取用户输入的节点属性数据;

节点实例生成子单元,用于使用所述节点属性数据和所述节点数据模型生成对应的节点实例。

可选的,所述节点实例中包括:一个第一节点、至少一个第二节点和至少三个第三节点。

可选的,

所述约束文件生成模块,还用于根据所述第一节点和第一节点属性生成对应的第一节点标记和第一节点属性标记;根据所述第二节点和第二节点属性依次生成对应的第二节点标记和第二节点属性标记,直到完成对所有第二节点的处理;确定各个第二节点对应的第三节点和第三节点属性并生成对应的第三节点标记和第三节点属性标记;根据所述生成的第一节点标记和第一节点属性标记、第二节点标记和第二节点属性标记、第三节点标记和第三节点属性标记生成xmlschema约束文件。

本发明实施例至少包括以下优点:

通过实施本发明实施例提供的方法,按照实际业务需要预先设定节点数据模型并确定节点实例,然后依据该节点实例生成xmlschema文件,该schema文件包含了完整的第一节点标记和第一节点属性标记、第二节点标记和第二节点属性标记、第三节点标记和第三节点属性标记,使用该xmlschema文件即可对xml文件进行约束校验,避免因为用户误操作、编辑而导致的xml文件节点重复、属性错误等问题。

附图说明

图1是本发明实施例一提供的一种数据库的xmlschema约束文件生成 方法的步骤流程图;

图2是本发明实施例二提供的一种数据库的xmlschema约束文件生成方法的步骤流程图;

图3是本发明实施例提供的一种数据库的xmlschema约束文件生成装置的结构框图。

具体实施方式

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。

参照图1,示出了本发明的一种数据库的xmlschema约束文件生成方法实施例的步骤流程图,具体可以包括如下步骤:

步骤101,确定节点数据模型;

具体的,所述节点数据模型包括以下信息至少其中之一:节点名、节点级别、节点数量限制、节点数据类型和节点顺序。

需要说明的是,在实施本发明时可采用多种方式定义所述节点数据模型,为了便于本领域技术人员理解,下面以面向对象语言为例给出一个节点数据模型的示例,在该节点模型中包括定义的节点属性和方法:

步骤102,根据所述节点数据模型确定节点实例;

具体的,所述节点实例包括:第一节点和第一节点属性、第二节点和第 二节点属性、第三节点和第三节点属性。

其中,所述第一节点为根节点,所述第二节点为所述第一节点的子节点,所述第三节点为所述第二节点的子节点;第一节点的数量通常为一个,第二节点、第三节点的数量则可根据实际需要确定。在本发明的一个可选实施例中,所述节点实例包括至少一个第二节和至少三个第三节点。

步骤103,按照所述节点实例生成xmlschema约束文件。

由于节点实例确定了该节点以及对应的节点属性,如节点名、节点级别和节点类型等,因此,按照该节点实例即可生成xmlschema文件。

在本发明一个可选实施例中,所述按照所述节点实例生成xml约束schema文件,具体可以包括以下子步骤:

子步骤1,根据所述第一节点和第一节点属性生成对应的第一节点标记和第一节点属性标记;

子步骤2,根据所述第二节点和第二节点属性依次生成对应的第二节点标记和第二节点属性标记,直到完成对所有第二节点的处理;

子步骤3,确定各个第二节点对应的第三节点和第三节点属性并生成对应的第三节点标记和第三节点属性标记;

子步骤4,根据所述生成的第一节点标记和第一节点属性标记、第二节点标记和第二节点属性标记、第三节点标记和第三节点属性标记生成xmlschema约束文件。

由于所述第一节点、第二节点、第三节点在xml文件中以树形结构排列,即第一节点为根节点,第二节点为第一节点的子节点,第三节点为第二节点的子节点。

具体实现时,本领域技术人员可根据所使用程序设计语言的不同确定上述步骤的具体实现,下面通过设置schmea文件生成方法generateschema()实现上述步骤,该方法具体可以通过以下步骤实现:

假设参数xmlnodeinfo表示待生成的节点实例,参数xmlschemafile表示输出的xmlschema约束文件

子步骤a,获取xmlnodeinfo的根节点(第一节点)信息;

子步骤b,获取xmlnodeinfo的所有第二节点信息,对其中每一个第二节点执行以下步骤b1至b3:

子步骤b1,获取当前第二节点对应的所有第三节点信息,对其中每一个第三节点执行以下步骤b11至b12:

子步骤b11,解析当前第三节点的属性信息,该属性信息包括节点名、数据类型、数量限制、是否允许为空等属性;

子步骤b12,根据上述解析结果确定第三节点标记和第三节点属性标记;

具体的,按照schema约束文件的格式设置输出文件,示例如下:

子步骤b2,解析当前第二节点的属性信息,该属性信息包括节点名、数量限制、是否允许为空等属性。

子步骤b3,根据上述解析结果确定当前第二节点标记和第二节点属性标记;

具体的,该步骤基于子步骤b1的输出结果进一步设置xmlschemafile中的第二节点信息。

子步骤c,解析根节点(第一节点)属性信息,该属性信息包括节点名,以及根据该解析结果确定根节点标记和根节点属性标记;

具体的,该步骤基于子步骤b3的输出结果进一步设置xmlschemafile中的第一节点信息

子步骤d,输出xmlschema约束文件。

综上,本发明实施例提供的上述方法,通过预先设定的节点数据模型和实际业务需要确定节点实例,然后依据该节点实例生成xmlschema文件,该schema文件包含了完整的第一节点标记和第一节点属性标记、第二节点 标记和第二节点属性标记、第三节点标记和第三节点属性标记,使用该xmlschema文件即可对xml文件进行约束校验,避免因为用户误操作、编辑而导致的xml文件节点重复、属性错误等问题。

参照图2,图2为本发明实施例提供的一种数据库的xmlschema约束文件生成方法应用实施例的步骤流程图,假设当前xml文件的约束如下:

根节点为“hosts”;

二级节点为“host”,存在数量无限制;

在每个二级节点中,共有三级节点三个,分别是“hostid”、“name”和“modeid”;

所述方法包括:

步骤201,通过弹出窗口获取用户输入的节点属性数据;

在本发明的一个弹出窗口示例中,用户可添加/删除第二节点和对应的第三节点,并且对于其中每一个节点,用户可直接设置各节点的属性数据,包括节点名称、节点数值类型、是否允许为空等,设置完成后用户点击‘确定’按钮即可获得用户在该窗口中输入的节点属性数据。

需要说明的是,上述通过弹出窗口获取用户输入的节点属性数据只是本发明优选的方式,在具体实现时,本领域技术人员还可选择其它方式获取节点属性数据,本发明对此不做限制,例如通过网页、触摸操作等。

步骤202,根据用户输入的节点属性数据和节点数据模型生成节点实例xmlnodeinfo;

步骤203,解析节点实例xmlnodeinfo;

步骤204,使用循环语句逐个编写第三节点信息。

具体包括每个第三节点标记(即“hostid”、“name”和“modeid”)和对应的节点属性标记,包括:节点名、数量限制、数据类型、是否允许为空等。

步骤205,判断第三节点是否全部编写完成,若完成,则执行步骤206,否则执行步骤204;

步骤206,使用循环语句逐个编写第二节点信息。

具体包括每个第二节点标记(即“host”)和对应的属性标记,包括:节点名、数量限制、数据类型、是否允许为空等。

步骤207,判断第二节点是否全部编写完成,若完成,则执行步骤208,否则执行步骤206;

步骤208,编写第一节点信息;

编写第一节点标记(即根节点hosts”)和第一节点属性标记。

步骤209,生成schema文件。

综上,在上述实施例中使用弹出窗口获取用户输入的节点属性数据,使得用户能够以所见即所得的方式对xml数据文件的节点及其属性进行设置,可进一步减少生成节点实例所需的时间,提高生成schema文件的效率。

需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。

参照图3,示出了本发明的一种数据库的xmlschema约束文件生成装置实施例的结构框图,具体可以包括如下模块:数据模型确定模块310、节点实例确定模块320和约束文件生成模块330,其中,

数据模型确定模块310,用于确定节点数据模型,所述节点数据模型包括:节点名、节点级别、节点数量限制、节点数据类型、是否允许为空和节点顺序;

节点实例确定模块320,用于根据所述节点数据模型确定节点实例,所述节点实例包括:第一节点和第一节点属性、第二节点和第二节点属性、第三节点和第三节点属性;其中,所述第一节点为根节点;所述第二节点为第一节点的子节点;所述第三节点为所述第二节点的子节点;

约束文件生成模块330,用于按照所述节点实例生成xmlschema约束文件。

可选的,所述节点实例确定模块320,包括:

节点属性确定子单元,用于获取用户输入的节点属性数据;

节点实例生成子单元,用于使用所述节点属性数据和所述节点数据模型生成对应的节点实例。

可选的,所述节点实例中包括:一个第一节点、至少一个第二节点和至少三个第三节点。

在本发明的一个可选实施例中,所述约束文件生成模块,还用于根据所述第一节点和第一节点属性生成对应的第一节点标记和第一节点属性标记;根据所述第二节点和第二节点属性依次生成对应的第二节点标记和第二节点属性标记,直到完成对所有第二节点的处理;确定各个第二节点对应的第三节点和第三节点属性并生成对应的第三节点标记和第三节点属性标记;根据所述生成的第一节点标记和第一节点属性标记、第二节点标记和第二节点属性标记、第三节点标记和第三节点属性标记生成xmlschema约束文件。

对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一 个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。

以上对本发明所提供的一种数据库的xmlschema约束文件生成方法和装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

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