CN105446983B - 用于生成数据格式描述语言模型的方法和装置 - Google Patents
用于生成数据格式描述语言模型的方法和装置 Download PDFInfo
- Publication number
- CN105446983B CN105446983B CN201410306019.9A CN201410306019A CN105446983B CN 105446983 B CN105446983 B CN 105446983B CN 201410306019 A CN201410306019 A CN 201410306019A CN 105446983 B CN105446983 B CN 105446983B
- Authority
- CN
- China
- Prior art keywords
- annotation
- sample data
- model
- dfdl
- rule
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 46
- 238000004458 analytical method Methods 0.000 claims description 10
- 238000010586 diagram Methods 0.000 description 15
- 238000012545 processing Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 11
- 230000008569 process Effects 0.000 description 9
- 239000008186 active pharmaceutical agent Substances 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 241001269238 Data Species 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 238000013499 data model Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/80—Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/80—Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
- G06F16/84—Mapping; Conversion
- G06F16/88—Mark-up to mark-up conversion
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/14—Tree-structured documents
- G06F40/143—Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/169—Annotation, e.g. comment data or footnotes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/205—Parsing
- G06F40/221—Parsing markup language streams
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Multimedia (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Document Processing Apparatus (AREA)
Abstract
公开一种用于生成数据格式描述语言DFDL模型的方法,包含:获取按照注释规则对样本数据添加的注释;根据所述注释规则和所获取的对样本数据添加的注释,创建逻辑模型和配置文件,其中,所述逻辑模型表示样本数据中数据元素的树状结构,所述配置文件定义在所述逻辑模型中添加所述注释对应的DFDL注释的计算机可执行操作;和根据所述逻辑模型和所述配置文件生成样本数据对应的DFDL模型。
Description
技术领域
本发明涉及数据格式描述语言(DFDL),尤其涉及DFDL模型(Schema)的生成工具。
背景技术
数据格式描述语言是描述文本(text)数据格式和二进制数据格式的一种规范。
目前已经出现了能利用DFDL模型将非结构化数据转换为符合DFDL规范(DFDLspecification)的结构化数据或将符合DFDL规范的结构化数据转换为非结构化数据的技术实现,随着DFDL的更多应用,DFDL模型的生成,变得越来越重要。DFDL模型由逻辑模型和DFDL注释构成。现有技术中存在用于手工生成DFDL模型的工具,这种工具对使用者的要求较高,例如要求使用者根据样本数据手工地创建逻辑模型,并向逻辑模型添加相应的DFDL注释,因此要求使用者既要熟悉样本数据的语义,又要熟悉DFDL规范。这对使用者提出极大的挑战。
发明内容
本发明的一个目的是提供一种简化DFDL模型的生成的方法和装置。
一方面,提供一种用于生成数据格式描述语言DFDL模型的方法,包含:
获取按照注释规则对样本数据添加的注释;
根据所述注释规则和所获取的对样本数据添加的注释,创建逻辑模型和配置文件,其中,所述逻辑模型表示样本数据中数据元素的树状结构,所述配置文件定义在所述逻辑模型中添加所述注释对应的DFDL注释的计算机可执行操作;和
根据所述逻辑模型和所述配置文件生成样本数据对应的DFDL模型。
另一方面,提供一种用于生成数据格式描述语言DFDL模型的装置,包含:
注释获取模块,被配置用于获取按照注释规则对样本数据添加的注释;
分析工具,被配置用于根据所述注释规则和对样本数据添加的注释,创建逻辑模型和配置文件,其中,所述逻辑模型表示样本数据中数据元素的树状结构,所述配置文件定义在所述逻辑模型中添加所述注释对应的DFDL注释的计算机可执行操作;和
DFLDL模型生成器,被配置用于根据所述逻辑模型和所述配置文件生成样本数据对应的DFDL模型。
采用本发明,用户只需熟悉样本数据的结构和语义,即使不熟悉DFDL规范,也能自动地生成样本数据对应的DFDL模型。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的框图;
图2例示DFDL模型、DFDL文档和非结构化数据之间的关系;
图3示意性表示按照发明实施例的用于生成DFDL模型的方法的流程图;
图4A示出一个样本数据的例子;
图4B示出一个用于标注样本数据的语义的人机界面的局部;
图4C表示按照发明实施例产生的标注了语义的样本数据;
图5示意性地表示按照发明实施例的分析标注了语义的样本数据的树状结构的过程;
图6A和6B例示按照发明实施例创建的逻辑模型和配置文件;
图6C例示按照发明实施例根据图6A和6B所示逻辑模型和配置文件生成的DFDL模型。
图7示意性表示按照发明实施例的用于生成DFDL模型的装置的简略框图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
图1示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的框图。图1显示的计算机系统/服务器12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图1所示,计算机系统/服务器12以通用计算设备的形式表现。计算机系统/服务器12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
计算机系统/服务器12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机系统/服务器12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。计算机系统/服务器12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图1未显示,通常称为“硬盘驱动器”)。尽管图1中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括——但不限于——操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
计算机系统/服务器12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器12交互的设备通信,和/或与使得该计算机系统/服务器12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,计算机系统/服务器12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机系统/服务器12的其它模块通信。应当明白,尽管图中未示出,可以结合计算机系统/服务器12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
图1所示的计算机系统/服务器12,适于用来实现本发明的各种实施方式。
首先参看图2,图2例示DFDL模型、DFDL文档和非结构化数据之间的关系。具体来说,图2中显示了一个非结构化的数据流“Intval=5;fltval=-7.1E8”210、一个DFDL处理器220、一个DFDL文档230和一个事先生成的DFDL模型255。
如所属技术领域的技术人员知道的那样,DFDL模型255由逻辑模型和DFDL注释(annotation)组成。逻辑模型也称“DFDL逻辑”或“逻辑实例”,用树状结构的XML文档来描述非结构化数据流的结构。DFDL注释用于按照DFDL规范描述非结构化数据流中除逻辑模型之外的数据格式定义的信息。如图所示,DFDL模型255中带下划线的部分表示逻辑模型,无下划线的部分表示DFDL注释。
如在背景技术部分所述的那样,利用DFDL模型可以将非结构化数据转换为结构化数据或将结构化数据转换为非结构化数据。如图所示,DFDL处理器220根据DFDL模型255,可以将数据流210转换成DFDL文档230,反之亦然。
为了简化DFDL模型的生成,本发明的总体构思是,首先按照预定的注释规则,标注(mark)一个样本数据的语义(semantics),再自动地根据注释规则和对样本数据的注释(annotation),分析样本数据,按照DFDL规范创建计算机可读的样本数据的描述,从而可以自动地生成DFDL模型。
参看图3,该图示意性表示按照本发明一个实施例的用于生成DFDL模型的方法300的流程图。如图所示,该方法包含步骤310、320和330。下面参照其它附图,详细说明各个步骤。
如图所示,方法300可以在收到用户提供的样本数据451时开始。
图4A示出一个样本数据451的例子。样本数据451,是一个十六进制的数据流,表示一个方法调用(method invocation)的消息(message)。样本数据451的结构是“Start”(开始)-“Message”(消息)-“End”(结束),其中,“Message”的结构是“Method”(方法名)-“Parameters”(参数)-“Input”(输入)。“Length”(长度)定义消息的长度。
更具体来说,样本数据451包含的各字段由下面的表1定义。
表1
字段号 | 内容(十六进制) | 语义 | 含义 |
1 | 6320006d | Start Delimiter(开始定界符) | |
2 | 000c | Length Delimiter(长度定界符) | 12(个字符) |
3 | 68656c6c6f | Method(方法名) | hello |
4 | 5f | Separator(分隔符) | |
5 | 737472696e67 | Parameters(参数) | string |
6 | 53 | Separator(分隔符) | S |
7 | 0004 | Length Delimiter(长度定界符) | 4(个字符) |
8 | 74657374 | Input(输入) | test |
9 | 7a | End(结束定界符) |
表1中的字段“68656c6c6f”、“737472696e67”和“74657374”,都是样本数据451的数据元素或元素。
首先,在步骤310,获取按照注释规则对样本数据461添加的注释。
在本发明的上下文中,样本数据指的是某一类数据的样本,用来为该类数据生成对应的DFDL模型。按照本发明一个实施例,提供用于按照注释规则标注样本数据461的语义的注释工具(annotation tool),以产生样本数据各字段的注释。用于按照注释规则标注样本数据的语义的注释工具,也称人机界面(“User Interface”,未予示出),其中定义了注释规则,并提供编辑手段。用户可以利用所提供的编辑手段,按照注释规则标注样本数据461的语义,即为样本数据的各字段(field)添加注释,产生标注的样本数据461。
按照本发明一个实施例,步骤310可以从用于按照注释规则标注样本数据的语义的注释工具中获取按照注释规则对样本数据添加的注释。
按照本发明的一个实施例,注释工具可以用一个图形编辑器(Graphical Editor)实现。所述图形编辑器提供注释规则,并提供按照注释规则标注样本数据的语义的编辑手段。用户可以利用图形编辑器提供的编辑手段,为样本数据各字段添加注释。图形编辑器提供的注释规则,也称缺省的注释规则。
参看图4B,该图示出一个用于标注样本数据的语义的人机界面的局部。具体来说,图形编辑器通过一个选项菜单420,向用户呈现用于标注样本数据的语义的注释规则。
选项菜单420中列出了颜色图标421与注释422之间的对应关系。本例中,蓝色图标对应于“Element Annotation”(元素注释,表示用于标注一个元素)。
例如,若要把样本数据451的第3个字段“68656c6c6f”的语义标注为“元素”,用户可以先用鼠标选定“68656c6c6f”,再点击选项菜单420上显示的蓝色图标,则“68656c6c6f“的背景变为蓝色。
选项菜单420中的不同的颜色图标421的颜色不同,从中可以直观地显示颜色与注释之间的对应关系。例如:
绿色对应于“Start Delimiter”(开始定界符);
桔黄色对应于“End Delimiter”(结束定界符);
红色对应于“Separator”(分隔符);
紫色对应于“Length Delimiter”(长度定界符)。
按照本发明一个实施例,所述图形编辑器提供由用户定义额外的注释规则的工具。
例如,可以在选项菜单420提供一个“Customize Annotation”(定制注释)选项423,以允许操作图形编辑器用户定义额外的注释规定。
例如,用户可以通过“Customize Annotation”选项423,额外地定义用黄色代表用户自定义的定长元素的注释规则。额外定义的注释规则将被包括在图形编辑器的注释规则中。
按照标注第3个字段“68656c6c6f”的同样方式,标注其它字段的语义,从而生成如图4C所示的标注了语义的样本数据461。
标注了语义的样本数据461中,第1个字段“6302006d”的背景色是绿色,表示“Start”(开始定界符);第2个字段“000c”的背景色是紫色,表示“Length”(长度),其十进制值是12;第3个字段“6865656c6c6f”的背景色是蓝色,表示一个元素,即字符串“hello”;第4个字段“5f”的背景色是红色,表示“Separator”(分隔符),用于分隔不同的参数类型定义;第5个字段“737472696e67”的背景色是蓝色,表示一个元素,即字符串“string”;第6个字段“53”的背景色是黄色,这是用户自定义的(customized)注释,表示一个定长的元素,这里是字符“S”(“String”的缩写);第7个字段“0004”的背景色是紫色,表示“Length”(长度),其十进制值是4;第8个字段“74657374”的背景色是蓝色,表示一个元素,即长度为4的第一个输入参数的值“test”;第9个字段“7a”的背景色是桔黄色,表示“End”(结束定界符)。
需要指出的是,以上示例中,注释规则采用颜色作为标记来区分样本数据中不同字段的语义,但是,这种注释方式仅仅是示例性的。在其它实施例中,可以采用计算机可读的任何其它标记来注释样本数据,例如,可以用字体作为标记来区分样本数据中不同字段的语义,例如,用斜体字形代表开始定界符,用下划线代表元素注释,等等。
因此,按照本发明一个实施例,可以采用以下形式的任何一种或者它们的组合来区分样本数据中不同字段的语义:颜色和字体的组合。
需要指出的是,图4C所示的标注了语义的样本数据461中,注释“0.*”表示可重复,即以分隔符“5f”起始的输入参数“5f37472696e67”是一个可重复的单元;同样,输入参数类型的缩写、长度和具体的值“53000474657374””也是一个可重复的单元。显然,可以采用各种形式来标注这种可重复的单元,在此无须赘述。
在步骤310提供用于按照注释规则标注样本数据461的语义的人机界面后,如果用户通过人机界面产生了样本数据各字段的注释,则方法300的执行过程前进到步骤320。
在步骤320,根据所述注释规则和所获取的对样本数据添加的注释,创建逻辑模型和配置文件,其中,所述逻辑模型表示样本数据中数据元素的树状结构,所述配置文件定义在所述逻辑模型中添加所述注释规则对应的DFDL注释的计算机可执行操作。
可以从首先从所述人机界面中获取标注了语义的样本数据461,其中带有对样本数据添加的注释。
按照本发明一个实施例,所述根据所述注释规则和所获取的对样本数据添加的注释创建逻辑模型和配置文件包含:根据所述注释规则和所获取的对样本数据添加的注释,导出对应的树状结构,所述树状结构的节点包含样本数据中的元素和注释。
图5示意性地表示按照发明实施例的分析标注了语义的样本数据的树状结构的过程。
首先,根据注释规则和样本数据461中的有关注释,可以得出样本数据461对应的树状结构510。树状结构510中包含节点511、512和513。节点511和513分别表示对应于开始定界符(“6302006d”)和结束定界符(“7a”)。节点512代表对应于开始定界符与结束定界符之间的消息(“message”),其中,根据长度定界符"000c"(16个字符),节点512的一个子节点512a代表"000c"及其之后长度为12的字符串,另一个子节点512b代表之后的字符串,即从分隔符“53”到结束定界符(不含)之间的字符串。
对节点512a和512b进一步分解,可以得到代表节点512的树状结构520。在树状结构520中,节点512有三个子节点521、522和523。
节点521代表节点512a中的长度定界符。
节点522被自动命名为“L1_Field1”,其一个子节点522b代表分隔符“5f”,其它两个子节点522a和522c分别代表分隔符“5f”之前和之后的两部分,其中子节点522a代表方法名定义,节点522c代表参数定义。
节点523被自动命名为“L1_Field2”,其子节点523a代表用户自定义的定长元素,用来表示输入参数类型的缩写,子节点523c代表实际的输入的参数的值,子节点523b用于表示523c的长度。
节点523a,523b,523c一起用来表示一个输入参数的实际类型和具体的值,如果有多个输入参数,他们三个作为一个可重复的单元,所以在L1-Field2上添加表示可重复的注释“0.*”。
由树状结构520可以进一步得到不能进一步分解的树状结构530。其中,将节点521自动命名为“L1-Length”531,将节点522a命名为“L2_Method Name”533a;将节点522b和522c合并成一个节点533b,命名为L2-parameter types 533b,L2-parameter types是一个可以重复的单元,所以添加表示可重复的“0.*”注释;将节点523a命名为“L2-type”,将节点命名为“L2-value”。
树状结构530中将关键的长度分隔符抽取出来作为单独的元素,用于解析和记录产长度的值,从而可以用于后续节点的解析,节点521代表一个长度定义,其值为“000c”相当于十进制的“12”,表示后续的元素的长度为12个字符;类似地,节点523b也代表一个长度定义,其值为“0004”相当于十进制的“4”,表示后续的元素的长度为4个字符,此处将其自动命名为“L2-Length”533b。需要指出的是,采用命名规则自动命名树状结构中的节点元素,例如,“L2_Method Name”533a等,是为了使图示更加清晰明了。
以上说明了分析标注了语义的样本数据的树状结构的过程。需要指出的是,上述分析过程中的表示方法,仅仅是示例性的,所属技术领域的技术人员明白,可以采用其它计算机可读的形式,例如采取表示上述分析过程产生的结果。
根据所分析的树状结构后,可以创建相应的计算机可读的逻辑模型和配置文件。
按照本发明一个实施例,可以创建与所述树状结构对应的XML模型,作为所述逻辑模型。
为了说明的简要,以下仅以树状结构530中的一个子树541为例,说明逻辑模型和配置文件的创建。
如图所示,子树541包含父节点522及其两个子节点532a和532b,可以将这个结构记录在XML格式的文档中,作为该子树541对应的逻辑模型。
参看图6A,该图示意性地表示按照发明实施例创建的子树541的对应逻辑模型631,逻辑模型631中的三个元素632、632a和632b,分别对应于图5所示的子树541的父节点522及其两个子节点532a和532b。
按照本发明一个实施例,所创建的配置文件包含以下定义:
涉及样本数据的元素和属性的操作;和
所述操作涉及的样本数据的元素和属性在XML模型中的位置。
参看图6B,该图示意性地表示按照发明实施例创建的子树541的对应配置文件。图6B所示的配置文件610,包含两个部分:
—第一部分用于声明操作和生成过程,其内容在名为“GenerationConfig.xml”的xml文档610a中表达。xml文档610a中的“AddAttribute”声明611和612,表示“添加属性”的操作。
—第二部分用于输入第一部分所声明的操作的参数,其内容在文件名为“GenerationInput.xml”的xml文档610b中表达。xml文档610b中的语句621中,“/xsd:schema/xsd:element[@name=‘L1_Field1’]”(意思为“名字为L1_Field1的元素”)描述了元素L1_Field1(图5,522)在逻辑模型631中的位置,的“dfdl:length”描述了需要添加的属性的名称“length”(长度),“{/Message/L1-Length}”描述了添加的属性具体的取值,该属性对应于树状结构530中代表长度定界符的节点531。
类似地,语句622描述了需要添加的属性的名称“separator”(分隔符)及其具体的取值,该属性对应于树状结构530的节点532b中代表代表分隔符(“5f”)的节点522b。
如箭头601所示,第一个“添加属性“的操作的声明611中,规定了所要添加的属性在文档GenerationInput.xml 610b中的位置621。
如箭头602所示,第二个“添加属性“的操作的声明中,规定了所要添加的属性在文档GenerationInput.xml 610b中的位置622。
在步骤320后,执行步骤330。
在步骤330,根据所述逻辑模型631和所述配置文件610生成样本数据对应的DFDL模型。
按照本发明一个实施例,所述根据所述逻辑模型和所述配置文件生成样本数据对应的DFDL模型包含执行对XML模型中的元素添加与元素的语义相对应的DFDL注释的操作。
在具体实现中,可以执行一个以配置文件和逻辑模型作为输入的生成程序。该生成程序在运行时,扫描GenerationConfig.xml 610a中定义的操作(例如由”action-id=AddAttribute”定义的“添加属性“操作),在GenerationInput.xml 610b中获得对应的在逻辑模型631中的位置、需要添加的属性或元素的名称和取值,然后在逻辑模型631中的适当位置添加与在步骤310中添加的注释相应的DFDL注释。调用相应的XML解析、修改、保存的API,生成样本数据对应的DFDL模型。API的调用过程被封装在文档GenerationConfig.xml610a的“添加属性”(AddAttribute)操作中。由于文档GenerationInput.xml 610b中描述了样本数据中的元素(例如L1_Field1)在逻辑模型631中的位置、需要添加的属性的名称和取值,因此,生成程序执行相应的API,可以在逻辑模型631中的适当位置添加与在步骤310中添加的注释相应的DFDL注释,结果如图6C所示。图6C表示步骤330生成的DFDL模型661。与图6A所示的逻辑模型631相比,DFDL模型661增加了DFDL注释662、664和666。
例如,生成程序首先加载并解析GenerationConfig.xml 610a,获取需要执行的操作,例如“AddAttribute”,然后根据input属性的值“configv25/GenerationInput:/tns:InputConfig/tns:AddAttributeList[@I D='length']”,加载并解析GenerationInput.xml 610b,获取操作AddAttribute的详细的输入定义,包括添加属性的位置“/xsd:schema/xsd:element[@name='L1_Field1']”,属性的名字“Length”,属性的取值“{/Message/L1-Length}”。然后,生成程序加载并解析逻辑模型631,根据位置的定义找到名字为“L1_Field1”的元素,并在该元素上添加属性“Length”及其取值。
在具体实现中,生成程序可以是DFDL引擎的一部分,也可以是独立的运行程序。生成程序执行过程中文件的加载、解析、元素的查找、属性修改等操作均可利用现有的API实现。所属技术领域技术人员按照本发明实施创建的逻辑模型和配置文件,可以设计的生成程序的细节,在此无需赘述。
以上描述了针对树状结构530中的子树541生成了DFDL模型的过程。所属技术领域的技术人员应当明白,如果针对树状结构530执行上述过程,则可以生成整个树状结构530对应的DFDL模型。
前面已经参考附图描述了实现本发明的方法各个实施例。本领域技术人员可以理解的是,上述方法既可以以软件方式实现,也可以以硬件方式实现,或者通过软件与硬件相结合的方式实现。并且,本领域技术人员可以理解,通过以软件、硬件或者软硬件相结合的方式实现上述方法中的各个步骤,可以提供一种基于相同发明构思的用于生成DFDL模型的装置。即使该装置在硬件结构上与通用处理设备相同,由于其中所包含的软件的作用,使得该装置表现出区别于通用处理设备的特性,从而形成本发明的各个实施例的装置。
基于同一发明构思,本发明还提出一种用于生成DFDL模型的装置,图7示意性表示按照发明实施例的用于生成DFDL模型的装置的简略框图。
如图7所示的一种用于生成数据格式描述语言DFDL模型的装置,包含:
注释获取模块710,被配置用于获取按照注释规则对样本数据451添加的注释461;
分析工具720,被配置用于根据所述注释规则和对样本数据添加的注释461,创建逻辑模型631和配置文件610,其中,所述逻辑模型表示样本数据中数据元素的树状结构,所述配置文件定义在所述逻辑模型中添加DFDL注释的操作;和
DFLDL模型生成器730,被配置用于根据所述逻辑模型和所述配置文件生成样本数据对应的DFDL模型662。
按照本发明一个实施例,所述注释获取模块被配置用于从所述用于按照注释规则标注样本数据的语义的注释工具中获取按照所述注释规则对样本数据添加的注释。
按照本发明一个实施例,所述注释工具是一个图形编辑器,所述图形编辑器提供注释规则,并提供按照注释规则标注样本数据的语义的编辑手段。
按照本发明一个实施例,所述图形编辑器提供由用户定义额外的注释规则的工具。
按照本发明一个实施例,所述分析工具被配置得用于根据所述注释规则和所获取的对样本数据添加的注释,导出对应的树状结构,所述树状结构的节点包含样本数据中的元素和注释。
按照本发明一个实施例,所述分析工具进一步被配置得用于创建与所述树状结构对应的XML模型,作为所述逻辑模型。
按照本发明一个实施例,所述配置文件包含以下定义:
涉及样本数据的元素和属性的操作;和
所述操作涉及的样本数据的元素和属性在XML模型中的位置。
按照本发明一个实施例,所述DFLDL模型生成器被配置得用于执行对XML模型中的元素添加与元素的语义相对应的DFDL注释的操作。
以上说明了本发明的用于生成DFDL模型的装置的实施例。在对用于生成DFDL模型的装置的实施例的描述中,省略了与对用于生成DFDL模型的方法的描述中重复的内容,或者能够从上述描述中导出的内容。
本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (16)
1.一种用于生成数据格式描述语言DFDL模型的方法,包含:
获取按照注释规则对样本数据添加的注释;
根据所述注释规则和所获取的对样本数据添加的注释,创建逻辑模型和配置文件,其中,所述逻辑模型表示样本数据中数据元素的树状结构,所述配置文件定义在所述逻辑模型中添加所述注释对应的DFDL注释的计算机可执行操作;和
根据所述逻辑模型和所述配置文件生成样本数据对应的DFDL模型。
2.按照权利要求1的方法,其中,从用于按照所述注释规则标注样本数据的语义的注释工具中获取按照所述注释规则对样本数据添加的注释。
3.按照权利要求2的方法,其中,所述注释工具是用一个图形编辑器实现的,所述图形编辑器提供注释规则,并提供按照注释规则标注样本数据的语义的编辑手段。
4.按照权利要求3的方法,所述图形编辑器提供由用户定义额外的注释规则的工具。
5.按照权利要求1或2的方法,其中,所述根据所述注释规则和所获取的对样本数据添加的注释创建逻辑模型和配置文件包含:
根据所述注释规则和所获取的对样本数据添加的注释,导出对应的树状结构,所述树状结构的节点包含样本数据中的元素和注释。
6.按照权利要求5的方法,所述根据所述注释规则和所获取的对样本数据添加的注释创建逻辑模型和配置文件进一步包含:
创建与所述树状结构对应的XML模型,作为所述逻辑模型。
7.按照权利要求6的方法,其中,所述配置文件包含以下定义:
涉及样本数据的元素和属性的操作;和
所述操作涉及的样本数据的元素和属性在XML模型中的位置。
8.按照权利要求7的方法,其中,所述根据所述逻辑模型和所述配置文件生成样本数据对应的DFDL模型包含:
执行对XML模型中的元素添加与元素的语义相对应的DFDL注释的操作。
9.一种用于生成数据格式描述语言DFDL模型的装置,包含:
注释获取模块,被配置用于获取按照注释规则对样本数据添加的注释;
分析工具,被配置用于根据所述注释规则和对样本数据添加的注释,创建逻辑模型和配置文件,其中,所述逻辑模型表示样本数据中数据元素的树状结构,所述配置文件定义在所述逻辑模型中添加所述注释对应的DFDL注释的计算机可执行操作;和
DFDL模型生成器,被配置用于根据所述逻辑模型和所述配置文件生成样本数据对应的DFDL模型。
10.按照权利要求9的装置,其中,所述注释获取模块被配置用于从所述用于按照注释规则标注样本数据的语义的注释工具中获取按照所述注释规则对样本数据添加的注释。
11.按照权利要求10的装置,其中,所述注释工具是一个图形编辑器,所述图形编辑器提供注释规则,并提供按照注释规则标注样本数据的语义的编辑手段。
12.按照权利要求11的装置,所述图形编辑器提供由用户定义额外的注释规则的工具。
13.按照权利要求9或10的装置,其中,所述分析工具被配置得用于根据所述注释规则和所获取的对样本数据添加的注释,导出对应的树状结构,所述树状结构的节点包含样本数据中的元素和注释。
14.按照权利要求13的装置,所述分析工具进一步被配置得用于创建与所述树状结构对应的XML模型,作为所述逻辑模型。
15.按照权利要求14的装置,其中,所述配置文件包含以下定义:
涉及样本数据的元素和属性的操作;和
所述操作涉及的样本数据的元素和属性在XML模型中的位置。
16.按照权利要求15的装置,其中,所述DFDL模型生成器被配置得用于执行对XML模型中的元素添加与元素的语义相对应的DFDL注释的操作。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410306019.9A CN105446983B (zh) | 2014-06-30 | 2014-06-30 | 用于生成数据格式描述语言模型的方法和装置 |
US14/724,851 US10019426B2 (en) | 2014-06-30 | 2015-05-29 | Generating data format description language schema |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410306019.9A CN105446983B (zh) | 2014-06-30 | 2014-06-30 | 用于生成数据格式描述语言模型的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105446983A CN105446983A (zh) | 2016-03-30 |
CN105446983B true CN105446983B (zh) | 2019-09-10 |
Family
ID=54930740
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410306019.9A Expired - Fee Related CN105446983B (zh) | 2014-06-30 | 2014-06-30 | 用于生成数据格式描述语言模型的方法和装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10019426B2 (zh) |
CN (1) | CN105446983B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9858299B2 (en) * | 2015-06-24 | 2018-01-02 | Oracle International Corporation | System and method for generating a JSON schema from a JSON stream |
US10223085B2 (en) * | 2017-04-28 | 2019-03-05 | International Business Machines Corporation | Discovering high-level language data structures from assembler code |
CN108984550B (zh) * | 2017-05-31 | 2022-08-26 | 西门子公司 | 确定数据的信号规则以对数据标注的方法、装置和系统 |
CN107766304A (zh) * | 2017-10-23 | 2018-03-06 | 国电南瑞科技股份有限公司 | 一种基于xml的二进制配置文件生成方法 |
CN107608704A (zh) * | 2017-11-02 | 2018-01-19 | 金蝶软件(中国)有限公司 | 一种xml配置文件更新方法、系统、介质及装置 |
US11176364B2 (en) | 2019-03-19 | 2021-11-16 | Hyland Software, Inc. | Computing system for extraction of textual elements from a document |
CN110795080A (zh) * | 2019-10-21 | 2020-02-14 | 山东舜知信息科技有限公司 | 一种基于数据库注释的代码自动生成系统及构建方法 |
US11461541B2 (en) * | 2020-06-24 | 2022-10-04 | Kyndryl, Inc. | Interactive validation of annotated documents |
CN113641335B (zh) * | 2021-06-29 | 2024-01-19 | 汉纳森(厦门)数据股份有限公司 | 机器语言自动生成方法及装置 |
CN114860998A (zh) * | 2022-06-08 | 2022-08-05 | 中国邮政储蓄银行股份有限公司 | 数据检索的方法、装置、计算机可读存储介质和服务器 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1862541A (zh) * | 2005-04-29 | 2006-11-15 | 国际商业机器公司 | 丰富数据源的方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8655939B2 (en) * | 2007-01-05 | 2014-02-18 | Digital Doors, Inc. | Electromagnetic pulse (EMP) hardened information infrastructure with extractor, cloud dispersal, secure storage, content analysis and classification and method therefor |
US8468244B2 (en) * | 2007-01-05 | 2013-06-18 | Digital Doors, Inc. | Digital information infrastructure and method for security designated data and with granular data stores |
US8589866B2 (en) * | 2007-08-29 | 2013-11-19 | Ricoh Company, Ltd. | Automatically generating capability-based computer peripheral device drivers |
US9922096B2 (en) * | 2011-07-08 | 2018-03-20 | Yahoo Holdings, Inc. | Automated presentation of information using infographics |
US20140006980A1 (en) * | 2012-06-27 | 2014-01-02 | International Business Machines Corporation | Interactive development and testing message models |
-
2014
- 2014-06-30 CN CN201410306019.9A patent/CN105446983B/zh not_active Expired - Fee Related
-
2015
- 2015-05-29 US US14/724,851 patent/US10019426B2/en not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1862541A (zh) * | 2005-04-29 | 2006-11-15 | 国际商业机器公司 | 丰富数据源的方法 |
Also Published As
Publication number | Publication date |
---|---|
US10019426B2 (en) | 2018-07-10 |
CN105446983A (zh) | 2016-03-30 |
US20150379049A1 (en) | 2015-12-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105446983B (zh) | 用于生成数据格式描述语言模型的方法和装置 | |
Denney et al. | AdvoCATE: An assurance case automation toolset | |
CN112149399B (zh) | 基于rpa及ai的表格信息抽取方法、装置、设备及介质 | |
CN105335133B (zh) | 用于生成业务规则模型的方法和装置 | |
US20080255997A1 (en) | Enterprise integrated business process schema | |
CN105335137B (zh) | 用于处理源文件的方法和装置 | |
US9733901B2 (en) | Domain specific language design | |
CN110447035A (zh) | 结构化用户数据文件中用户内容模糊 | |
CN110506271A (zh) | 针对隐私敏感用户内容的可配置注释 | |
CN105138575B (zh) | 语音文本串的解析方法和装置 | |
US20060136194A1 (en) | Data semanticizer | |
US20060161890A1 (en) | Application-generic sequence diagram generator driven by a non-proprietary language | |
CN107168762A (zh) | 一种基于本体的rucm模型一致性检查方法 | |
US11537799B2 (en) | Creating apps from natural language descriptions | |
US9053450B2 (en) | Automated business process modeling | |
CN114168149A (zh) | 一种数据转换方法及装置 | |
Telea et al. | Visualisation of RDF (S)-based Information | |
Savic et al. | Use case specification at different levels of abstraction | |
CN101788977A (zh) | 一种医学检查报告编辑修改实现方法 | |
US20050177788A1 (en) | Text to XML transformer and method | |
Chen et al. | Mindbench: A comprehensive benchmark for mind map structure recognition and analysis | |
WO2023206267A1 (zh) | 调整自然语言语句的方法、装置及存储介质 | |
WO2023206261A1 (zh) | 生成描述工作流的自然语言语句的方法、装置及存储介质 | |
Seppälä et al. | SmaRT visualisation of legal rules for compliance | |
CN111737409B (zh) | 辅助系统及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20190910 |