(19)中华人民共和国国家知识产权局
*CN102708206A*
(10)申请公布号 CN 102708206 A(43)申请公布日 2012.10.03
(12)发明专利申请
(21)申请号 201210159900.1(22)申请日 2012.05.21
(71)申请人南京师范大学
地址210046 江苏省南京市栖霞区文苑路1
号(72)发明人闾国年 胡迪 温永宁 盛业华(74)专利代理机构南京知识律师事务所 32207
代理人李媛媛(51)Int.Cl.
G06F 17/30(2006.01)
权利要求书 2 页 说明书 6 页 附图 1 页权利要求书2页 说明书6页 附图1页
(54)发明名称
一种数据格式的描述方法(57)摘要
本发明公开一种数据格式的描述方法,属于计算机和信息技术领域。针对计算机数据交换与共享过程中,数据格式多样、异构的问题,克服现有数据格式描述方法对格式细节描述能力不足的缺陷,本发明提出一种新的数据格式描述方法,该方法以数据位置为中心,以数据类型和分隔符为核心,对数据的类型、结构和布局等格式信息进行统一描述,生成数据格式标记文档。本发明主要用于计算机数据交换与共享,提高了计算机软件与数据、数据与格式的性,解决了数据格式的描述问题。
CN 102708206 ACN 102708206 A
权 利 要 求 书
1/2页
1.一种数据格式的描述方法,其特征在于,包括以下步骤:(1)从数据格式的文字说明或数据中获取数据格式信息;(2)采用数据格式标记语言对数据格式信息进行统一描述;(3)生成数据格式标记文档。
2.根据权利要求1所述的一种数据格式的描述方法,其特征在于:所述步骤(1)中,数据格式信息包括数据的数据类型、结构和布局信息。
3.根据权利要求1所述的一种数据格式的描述方法,其特征在于:所述步骤(2)中,数据格式标记语言采用标记元素对数据格式信息进行描述,标记元素包括根元素、导入元素、位置元素、数据类型元素、分隔符元素和组元素;其中,数据类型元素包括综合数据类型元素和基本数据类型元素;分隔符元素包括综合分隔符元素和基本分隔符元素。
4.根据权利要求3所述的一种数据格式的描述方法,其特征在于:所述基本数据类型元素包括字符串类型、整数类型、实数类型、布尔类型、日期类型、时间类型、日期时间类型和路径类型;所述基本分隔符元素包括空格分隔符、制表符分隔符、逗号分隔符、分号分隔符、换行分隔符和空行分隔符。
5.根据权利要求1、3或4所述的一种数据格式的描述方法,其特征在于:所述采用数据格式标记语言对数据格式信息进行描述的过程包括以下步骤:
(1)新建数据格式标记文档;(2)添加根元素,设置其名称、命名空间和模式属性来描述数据格式的名称、标识符和模式信息;
(3)根据数据格式的结构信息,将其划分为若干个组成部分,确定每一部分的名称和位置范围;
(4)采用组元素描述每一部分,设置其名称和位置属性来描述每一部分的名称和位置范围;
(5)对每一部分,识别其布局信息,包括每个数据项的数据类型或分隔符类型、起始位置和结束位置、数据类型的表现格式;
(6)判断每一部分的布局信息是否存在有规律的重复结构,如果存在,则将其归结为部分中的部分,构成部分的内部结构;
(7)根据步骤(5)和(6)中的结构和布局信息,采用组元素、数据类型元素和分隔符元依次描述各数据项;当部分中含有部分时,采用组元素内部嵌套组元素的方式进行描述;当数据项为数据时,使用基本数据类型元素或者使用综合数据类型元素进行描述,数据类型的表现格式通过格式属性来描述;当数据项为分隔符时,使用基本分隔符元素或者使用综合分隔符元素进行描述。
6.根据权利要求1所述的一种数据格式的描述方法,其特征在于:在所述步骤(3)生成数据格式标记文档之前对其进行语法检查,使其符合XML文档的基本语法,同时满足数据格式标记语言的语法,包括以下要求:
(1)数据格式标记文档有且仅有一个根元素; (2)导入元素必须是所述根元素的直接子元素; (3)位置元素的value属性的值与所述根元素的mode属性的值相对应; (4)组元素可以嵌套组元素、数据类型元素和分隔符元素,最外层的组元素必须是
2
CN 102708206 A
权 利 要 求 书
2/2页
所述根元素的直接子元素。
3
CN 102708206 A
说 明 书
一种数据格式的描述方法
1/6页
技术领域
[0001]
本发明属于计算机和信息技术领域,特别涉及一种数据格式的描述方法。
背景技术
[0002]
数据格式问题自计算机诞生时就产生了。在计算机数据交换与共享过程中,解决
数据格式问题的方法主要有标准格式转换法和数据格式描述法两种。标准格式转换法是人为的规定一种适应较广的数据格式作为标准格式,强制数据以标准格式存储,并将其他数据格式的数据转换为标准格式。该方法强调数据与软件的可移植性、数据文件内容组织的灵活性,具有一定的灵活性和可扩展性,缺点在于任何一种标准格式都不可能对所有类型的数据通用、标准格式往往较为复杂。数据格式描述法采用描述机制直接对各种数据格式进行描述。该方法无需进行数据格式转换,只需采用数据描述语言对数据进行描述,可扩展性强。目前,已经有ASN-I、EAST、ODL、FREEFORM、DFDL等多种数据格式描述语言的方案,并得到了一定的应用,但是这些数据格式描述语言本质上都以数据为中心的描述方法,存在数据格式的描述能力不足的问题。因此,本发明提出一种新的数据格式描述的方法,以数据位置为中心,以数据类型和分隔符为核心,对数据的类型、结构和布局等格式信息进行统一描述。
发明内容
[0003] 为了解决数据交换与共享过程中,数据格式多样、异构的问题,克服标准格式复杂、不可能适用于所有数据格式的缺点,针对现有的数据格式描述语言以数据为核心,格式的描述依附于数据,而难以描述数据格式的细微特征的缺陷,本发明的目的是提供一种数据格式的描述方法,能够对各种数据格式进行描述,解决了数据交换与共享过程中的数据格式问题。
[0004] 本发明解决其技术问题所采用的技术方案是: [0005] 一种数据格式的描述方法,包括以下步骤:
[0006] (1)从数据格式的文字说明或数据中获取数据格式信息; [0007] (2)采用数据格式标记语言对数据格式信息进行统一描述; [0008] (3)生成数据格式标记文档。
[0009] 数据格式信息包括数据的数据类型、结构和布局信息;数据类型信息是指具 有某些共同格式特征的数据的统称;结构信息是指数据的有规律的重复排列;布局信息是指数据和分隔符的位置或位置范围,两者之间的排列关系;
[0010] 数据格式标记语言采用标记元素对数据格式信息进行描述,标记元素包括根元素(dfml)、导入元素(import)、位置元素(location)、数据类型元素、分隔符元素和组元素(group)6大类元素;
[0011] 根元素(dfml)用于描述数据格式的基本信息;主要属性有name、namespace、version和mode;
4
CN 102708206 A[0012]
说 明 书
2/6页
导入元素(import)用于将其他数据格式标记文档中定义的元素导入当前文档
中,使得当前文档可以引用其他文档中定义好的元素;只有一个必选的link属性; [0013] 位置元素(location)用于描述数据项在数据中的位置或位置范围;主要属性有name和value;
[0014] 数据类型元素用于描述数据项的类型和格式信息,包括综合数据类型元素(datatype)和基本数据类型元素(string、integer、real、boolean、date、time、datetime和path),主要属性有name、type、value、format、default、domain、number、separator、和location,只有综合数据类型元素具有type和value属性;综合数据类型元素用于描述任何数据项的类型和格式信息,同时提供数据类型的可扩展性;基本数据类型元素用于描述某类具体的数据项的类型和格式信息;
[0015] 分隔符元素用于描述数据项的分隔符类型和格式信息,包括综合分隔符元素(separator)和基本分隔符元素(space、tab、comma、semicolon、cr和br),主要属性有name、type、value、number和location,只有综合分隔符元素具有type和value属性;综合分隔符元素用于描述所有数据项的分隔符类型和格式信息;基本分隔符元素用于描述某类具体的数据项的分隔符类型和格式信息;
[0016] 组元素(group)将若干个元素归为一组,通过元素的组合来描述数据的结构信息,主要属性有name、location和number。
[0017] 采用数据格式标记语言对数据格式信息进行描述的过程,包括以下步骤: [0018] (1)新建数据格式标记文档; [0019] (2)添加根元素dfml,设置其name、namespace和mode属性描述数据格式的名称、标识符和模式信息;
[0020] (3)根据数据格式的结构信息,将其划分为若干个组成部分,确定每一部分的名称和位置范围;
[0021] (4)采用group元素描述每一部分,设置其name和location属性描述每一部分的名称和位置范围;
[0022] (5)对每一部分,识别其布局信息,包括每个数据项的数据类型或分隔符类型、起始位置和结束位置、数据类型的表现格式;
[0023] (6)判断每一部分的布局信息是否存在有规律的重复结构,如果存在,则将其归结为部分中的部分;
[0024] (7)根据步骤(5)和(6)中的结构和布局信息,采用组元素、数据类型元素和分隔符元依次描述各数据项;当部分中含有部分时,采用组元素内部嵌套组元素的方式进行描述;当数据项为数据时,可以使用基本数据类型元素,也可以使用综合数据类型元素进行描述;使用基本数据类型元素进行描述可以使数据格式标记文档在内容上更加清楚、直观;使用综合数据类型元素进行描述可以使数据格式标记文档在形式上显得整齐、一致;数据类型的表现格式通过format属性来描述,format属性值的格式如表1所示。 [0025] 表1数据类型元素的format属性值的格式
[0026]
5
CN 102708206 A
说 明 书
3/6页
当数据项为分隔符时,可以使用基本分隔符元素,也可以使用综合分隔符元素描
述;使用基本分隔符元素进行描述可以使数据格式标记文档在内容上更加清楚、直观;使用综合分隔符元素进行描述可以使数据格式标记文档在形式上显得 整齐、一致;对于不能用基本分隔符元素描述的分隔符,使用综合分隔符元素进行描述。
[0027]
生成数据格式标记文档之前对其进行语法检查,使其符合XML文档的基本语法,同时满足数据格式标记语言的语法,包括:
[0029] (1)数据格式标记文档有且仅有一个根元素(dfml);dfml元素的mode属性的取值范围为{“char”,“byte”}。当mode=“char”时,表示字符模式,数据项的位置以字符为单位;当mode=“byte”时,表示字节模式时,数据项的位置以字节为单位; [0030] (2)import元素必须是dfml元素的直接子元素,link属性的取值可以是本地位置,也可以是网络位置;
[0031] (3)location元素的value的取值与dfml元素的mode属性相对应;当dfml元素的mode属性为“char”时,location元素的value属性的取值为起始行、起始列、结束行和结束列的字符位置,格式为value=“起始行号 起始列号,结束行号 结束列号”;当dfml元素的mode属性为“byte”即字符模式时,location元素的value属性的取值为起始字节、结束字节的位置,格式为value=“起始字节,结束字节”。 [0032] 对于字符模式的位置描述,有以下特殊位置的表示方法: [0033] ①某一行的起始列位置为1; [0034] ②某一行的结束列位置为-1; [0035] ③“00”表示未知位置,常用作占位符;如果只关心数据项的起始位置或结束位置时,则可以将location元素中的结束或起始位置的行号、列号设置为“00”; [0036] ④“-1-1”表示文件结束位置,常用作表示从某一位置开始至文件结尾。 [0037] 对于字节模式的位置描述,字节位置从1开始编码。 [0038] (4)group元素可以嵌套group元素、数据类型元素和分隔符元素,最外层的group元素必须是dfml元素的直接子元素。在对数据格式信息进行描述时,将数据格式划分为若
[0028]
6
CN 102708206 A
说 明 书
4/6页
干个部分,每一部分分别采用group元素进行描述。若部分之间无明显的界线,一般文本数据以行为单位划分为若干部分,二进制数据以字节为单位划分为若干部分;也可以不进行部分划分,直接采用数据类型和分隔符 元素进行描述,则生成的数据格式标记文档不具有层次结构。
[0039] 本发明一种数据格式的描述方法,广泛适用于各种数据格式的描述,采用数据格式标记语言对数据格式信息进行描述,生成统一的数据格式标记文档,使得数据与格式互相。
附图说明
[0040] 图1为本发明一种数据格式的描述方法的核心步骤流程图。
[0041] 图2为采用数据格式标记语言对数据格式信息进行描述的详细步骤流程图。 具体实施方式
[0042] 下面对本发明实例中的技术方案进行清楚、完整的描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。 [0043] 本发明提供一种数据格式的描述方法,具体实施时,针对某一具体的数据格式,采用数据格式标记语言对其进行描述,生成数据格式标记文档。 [0044] 具体实施步骤包括: [0045] 1、从数据格式的文字说明或数据中获取数据格式信息 [0046] 本实施例以DCBAH水文气象数据为例,该水文气象数据的文件格式说明如下: [0047] 表2某水文气象数据文件的格式说明
[0048]
[0049] [0050]
示例文件JKSlrData.txt的内容如下:
7
CN 102708206 A
说 明 书
5/6页
该数据格式的名称为DCBAH气象水文数据格式,模式为字符模式,包括描述行和
数据行两部分。描述行位于第1行,由若干个字符串组成,数据之间以制表符进行分隔;数据行从第2行开始至文件结束,由一个日期类型和若干个双精度浮点类型的据组成,数据之间以制表符进行分隔,日期类型的分隔符为“-”。 [0052] 2、采用数据格式标记语言对数据格式信息进行统一描述 [0053] (1)新建数据格式标记文档“DCBAH气象水文数据格式.xml”; [0054] (2)添加根元素dfml,name属性设置为“DCBAH气象水文数据格式”,namespace属性设置为“com.vge.DCBAH”,mode属性设置为“char”;
[0051]
(3)根据数据格式的说明及示例数据,该数据格式可划分为两部分。第一部分为描述行,位于第1行;第二部分为数据行,位置范围为从第2行至文件结束。 [0056] (4)在根元素dfml下,添加两个group元素,设置第一个group元素的name属性为“描述行”,location属性为“1 1,1-1”;设置第一个group元素的name属性为“数据行”,location属性为“2 1,-1-1”。 [0057] (5)对每一部分,识别其布局信息。在描述行内部,由若干个字符串组成,数据之间以制表符进行分隔;在数据行内部,由若干个行组成,每一行由一个日期类型和若干个双精度浮点类型的数据组成,数据之间以制表符进行分隔,日期类型的分隔符为“-”。
[0058] (6)判断每一部分的布局信息是否存在有规律的重复结构。数据行部分中的布局信息中,每一行的布局都相同数据类型和分隔符的排列,是重复结构,将其归结为数据行部分中部分。
[0059] (7)根据步骤(5)和(6)中的结构和布局信息,采用组元素、数据类型元素和分隔符元依次描述各数据项。 [0060] 在name属性为“描述行”的group元素内部依次添加string、tab、string和cr元素;
[0061] 第一个string元素,设置其value属性为“DATE”,description属性为“日期”; [0062] 第二个string元素,设置其value属性为“DATASET1 DATASET2 [0063] DATASET3...”,number属性为“unknown”,separator属性为“tab”,description属性为“站点1数据 站点2数据站点3数据...”; [00] 在name属性为“数据行”的group元素内部添加一个group元素,设置其number属性为“unkown”,在该group元素内部依次添加date、tab、real和cr元素; [0065] 设置date元素的format属性为“xxxx-xx-xx”;设置real元素的number属性为“unknown”,separator属性为“tab”。
[0055]
8
CN 102708206 A[0066] [0067]
说 明 书
6/6页
(3)生成数据格式标记文档“DCBAH气象水文数据格式.xml”,如下所示。
9
CN 102708206 A
说 明 书 附 图
1/1页
图1
图2
10