CN101789013A - 一种用于描述关系数据的增强型csv文件格式 - Google Patents
一种用于描述关系数据的增强型csv文件格式 Download PDFInfo
- Publication number
- CN101789013A CN101789013A CN201010105986A CN201010105986A CN101789013A CN 101789013 A CN101789013 A CN 101789013A CN 201010105986 A CN201010105986 A CN 201010105986A CN 201010105986 A CN201010105986 A CN 201010105986A CN 101789013 A CN101789013 A CN 101789013A
- Authority
- CN
- China
- Prior art keywords
- field
- data
- type
- csv
- file format
- 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.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种用于描述关系数据的增强型CSV文件格式,采用CSV的基本标记方式,根据元数据的自描述能力,把一个关系型记录集完整的进行序列化,文件格式把记录集的一行序列化为一个不包含回车换行符号的字符序列,本发明的格式是以字符序列描述关系型数据的文件格式,特点是:方便异构信息系统间的数据交换;结构自描述;平台无关性;结构紧凑、健壮;语法简单、严谨;人机可读性;支持Unicode。
Description
技术领域
本发明涉及的是信息系统数据交换过程中的一种人机可读的高效的字符串编码方法和文件格式,具体地说是一种用于描述关系数据的增强型CSV文件格式。
背景技术
当代软件开发技术日新月异,数据访问技术林立,不同的系统之间进行关系型数据交换是一种极为常见的应用。
XML是信息交换的一种标准,但是它作为一种通用标记语言,如果要描述关系型数据需要进行深度扩展,结构较为复杂,而且冗余字符较多,不够精简。因此,开发人员常采用CSV文件格式。
逗号分隔型取值格式(英文全称为Comma Separated Values,简称CSV),是一种纯文本格式,用来存储数据。在CSV中,数据的字段由逗号分开,程序通过读取文件重新创建正确的字段,方法是每次遇到逗号时开始新一段数据。由于它是一种常见而简单的文件格式,CSV文件通常用于不同的计算机软件或同一软件不同的模块间进行数据传递交换。很多数据库程序和电子表格程序都支持CSV文件格式。
CSV文件用来做数据存储容量比XML小,功能比TXT强,但是CSV文件仍不具备完整描述关系型数据的能力,它不包含关系型数据中的数据域信息,仅仅保存了数据域的名称信息,这样就难以精确从CSV文件中反序列化成一个关系型记录集。
发明内容
关系型数据的序列化包括二进制和字符串两种,二进制序列化不便于信息交换。字符串序列化则便于数据交换。常见的字符串序列化技术有XML、CSV等。XML序列化较为复杂,而CSV格式则较为简单。但是CSV序列化是一种“有损”序列化。
本发明的目的是提供一种改进型的CSV文件,克服CSV文件格式的弱点,精确描述一个关系型记录集,为计算机软件之间进行表格数据传递提供一个统一的、简单的标准的用于描述关系数据的增强型CSV文件格式。
本发明的目的是按以下方式实现的,采用CSV的基本标记方式,根据元数据的自描述能力,把一个关系型记录集完整的进行序列化,文件格式把记录集的一行序列化为一个不包含回车换行符号的字符序列,具体步骤如下:
文件格式包含两个部分:1)元数据段;2)数据段;其中:
1)元数据段定义字段信息,元数据部分每行都是一个简短的CSV文件,其中字段定义,根据具体情况存在多行,字段定义采用如下语法:
<字段名称=数据类型>,<字段长度>,<显示标签>,<编辑掩码>,<显示长度>,<字段类型>,<缺省值>,字段长度规则:字符串型字段的长度为最大字符数;数值型和二进制型字段长度统一为零;
数据类型包括:Autoinc,Integer,Float,String,WideString,DateTime,Blob,Memo,Currency,Boolean;
2)数据段包含两部分:字段排列顺序信息行、数据行,其中字段排列顺序信息行以逗号分隔各标题,每个字段名放在两个引号中间,格式为:
″<Field1Caption>″,[″<Field2Caption>″],[……]
数据行列出对应的字段值,字段值放在双引号之间,字段值之间用逗号分隔:格式为:
″<Field1Value>″,″<Field2Value>″,<……>,数据行中的编码规则是:
(1)″转为″″(两个引号表示一个引号);
(2)%转为%%(两个%表示一个);
(3)回车用%c表示;
(4)换行用%n表示;
(5)Unicode用UTF-8编码;
(6)二进制数据用MIME编码;
(7)时间类型用MM/DD/YYYY/HH/mm/SS/sss格式表示。
本发明的优异效果是:与现有技术相比,本发明采用上述编码格式的文件具有人机可读性,避免歧义,可以被支持CSV格式的程序解析,解码算法简单,便于数据流读取,可广泛应用于各类系统进行表格数据交换。
附图说明
图1是关系型数据转增强型CSV文件算法流程图;
图2是一份完整的增强型CSV文件。
具体实施方式
本发明的一种用于描述关系数据的增强型CSV文件格式,含两个部分:1)元数据段2)数据段。
1)元数据段定义字段信息。
元数据部分每行都是一个简短的CSV文件。其中字段定义根据具体情况可能存在多行。字段定义采用如下语法,
<字段名称=数据类型>,<字段长度>,<显示标签>,<编辑掩码>,<显示长度>,<字段类型>,<缺省值>,字段长度规则:字符串型字段的长度为最大字符数;数值型和二进制型字段长度统一为零。
数据类型包括:Autoinc,Integer,Float,String,WideString,DateTime,Blob,Memo,Currency,Boolean。
2)数据段包含两部分:字段排列顺序信息行、数据行(多行)。
其中字段排列顺序信息行以逗号分隔各标题,每个字段名放在两个引号中间,格式为:
″<Field1Caption>″,[″<Field2Caption>″],[……]
数据行列出对应的字段值,字段值放在双引号之间,字段值之间用逗号分隔:
″<Field1Value>″,″<Field2Value>″,<……>,
数据行中的编码规则是:
1)″转为″″(两个引号表示一个引号)
2)%转为%%(两个%表示一个)
3)回车用%c表示
4)换行用%n表示
5)Unicode用UTF-8编码
6)二进制数据用MIME编码
7)时间类型用MM/DD/YYYY/HH/mm/SS/sss格式表示
实施例
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
以一个员工信息表为例,其字段数据类型如下表
字段名 | 数据类型 | 长度 | 主键 |
员工编号 | String | 50 | 是 |
姓名 | String | 50 | |
性别 | String | 6 | |
出生日期 | DateTime | 0 | |
工资 | Currency | 0 |
源数据是下关系型数据
员工编号 | 姓名 | 性别 | 出生日期 | 工资 |
001 | 张刚 | 男 | 1977-12-26 | 3000 |
002 | 李梅 | 女 | 1978-07-07 | 4000 |
第一步生成文件头如下(包括版本标识)
″@@FILE VERSION@@″,″300″
第二步生成元数据定义节如下所示
″@@TABLEDEF START@@″
″员工编号=String,50,″″员工编号″″,″″″″,20,Data,″″″″″
″姓名=String,50,″″姓名″″,″″″″,20,Data,″″″″″
″性别=String,6,″″性别″″,″″″″,6,Data,″″″″″
″出生日期=DateTime,0,″″出生日期″″,″″″″,6,Data,″″″″″
″工资=Currency,0,″″性别″″,″″工资″″,6,Data,″″″″″
第三步生成索引定义节
@@INDEXDEF START@@″
″员工编号″,″ASC″
″@@INDEXDEF END@@″
第四步结束元数据段,添加如下内容
″@@TABLEDEF END@@″
第五步生成数据段
″员工编号″,″姓名″,″性别″,″出生日期″,″工资″,
″001″,″张刚″,″男″,″12/26/1977″,″01/01/2001″,″3000″,
″002″,″李梅″,″女″,″07/07/1978″,″01/01/1990″,″4000″。
Claims (1)
1.一种用于描述关系数据的增强型CSV文件格式,其特征在于,采用CSV的基本标记方式,根据元数据的自描述能力,把一个关系型记录集完整的进行序列化,文件格式把记录集的一行序列化为一个不包含回车换行符号的字符序列,具体步骤如下:
文件格式包含两个部分:1)元数据段;2)数据段;其中:
1)元数据段定义字段信息,元数据部分每行都是一个简短的CSV文件,其中字段定义,根据具体情况存在多行,字段定义采用如下语法:
<字段名称=数据类型>,<字段长度>,<显示标签>,<编辑掩码>,<显示长度>,<字段类型>,<缺省值>,字段长度规则:字符串型字段的长度为最大字符数;数值型和二进制型字段长度统一为零;
数据类型包括:Autoinc,Integer,Float,String,WideString,DateTime,Blob,Memo,Currency,Boolean;
2)数据段包含两部分:字段排列顺序信息行、数据行,其中字段排列顺序信息行以逗号分隔各标题,每个字段名放在两个引号中间,格式为:
″<Field1Caption>″,[″<Field2Caption>″],[……]
数据行列出对应的字段值,字段值放在双引号之间,字段值之间用逗号分隔:格式为:
″<Field1Value>″,″<Field2Value>″,<……>,数据行中的编码规则是:
(1)″转为″″(两个引号表示一个引号);
(2)%转为%%(两个%表示一个);
(3)回车用%c表示;
(4)换行用%n表示;
(5)Unicode用UTF-8编码;
(6)二进制数据用MIME编码;
(7)时间类型用MM/DD/YYYY/HH/mm/SS/sss格式表示。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010105986A CN101789013A (zh) | 2010-02-04 | 2010-02-04 | 一种用于描述关系数据的增强型csv文件格式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010105986A CN101789013A (zh) | 2010-02-04 | 2010-02-04 | 一种用于描述关系数据的增强型csv文件格式 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101789013A true CN101789013A (zh) | 2010-07-28 |
Family
ID=42532227
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010105986A Pending CN101789013A (zh) | 2010-02-04 | 2010-02-04 | 一种用于描述关系数据的增强型csv文件格式 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101789013A (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102571282A (zh) * | 2012-01-17 | 2012-07-11 | 航天科工深圳(集团)有限公司 | 一种网络数据封包处理器及其方法 |
CN102750268A (zh) * | 2012-06-19 | 2012-10-24 | 山东中创软件商用中间件股份有限公司 | 一种对象序列化方法、对象反序列化方法、装置及系统 |
CN104077335A (zh) * | 2013-05-07 | 2014-10-01 | 腾讯科技(深圳)有限公司 | 一种结构化数据的序列化、反序列化方法、装置和系统 |
CN104850565A (zh) * | 2014-02-19 | 2015-08-19 | 北京京东尚科信息技术有限公司 | 一种基于k-v存储系统的元数据管理方法 |
CN107102973A (zh) * | 2017-03-15 | 2017-08-29 | 中国互联网络信息中心 | 一种csv格式文件的数据提取方法及系统 |
CN107861885A (zh) * | 2017-11-07 | 2018-03-30 | 浪潮软件股份有限公司 | 一种数据传输方法及传输装置 |
CN108763175A (zh) * | 2018-06-26 | 2018-11-06 | 中国银行股份有限公司 | 一种csv文件处理方法及系统 |
CN110764777A (zh) * | 2019-10-17 | 2020-02-07 | 北京东土科技股份有限公司 | 一种elf文件生成方法、elf文件、设备及存储介质 |
CN111460128A (zh) * | 2019-11-14 | 2020-07-28 | 临沂市拓普网络股份有限公司 | 一种基于认知诊断的计算机化自适应测验方法 |
CN111666327A (zh) * | 2020-06-10 | 2020-09-15 | 山东汇贸电子口岸有限公司 | 一种基于文本的结构化数据描述方法及其系统 |
-
2010
- 2010-02-04 CN CN201010105986A patent/CN101789013A/zh active Pending
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102571282A (zh) * | 2012-01-17 | 2012-07-11 | 航天科工深圳(集团)有限公司 | 一种网络数据封包处理器及其方法 |
CN102750268A (zh) * | 2012-06-19 | 2012-10-24 | 山东中创软件商用中间件股份有限公司 | 一种对象序列化方法、对象反序列化方法、装置及系统 |
CN104077335A (zh) * | 2013-05-07 | 2014-10-01 | 腾讯科技(深圳)有限公司 | 一种结构化数据的序列化、反序列化方法、装置和系统 |
CN104077335B (zh) * | 2013-05-07 | 2017-05-03 | 腾讯科技(深圳)有限公司 | 一种结构化数据的序列化、反序列化方法、装置和系统 |
CN104850565B (zh) * | 2014-02-19 | 2018-05-22 | 北京京东尚科信息技术有限公司 | 一种基于k-v存储系统的元数据管理方法 |
CN104850565A (zh) * | 2014-02-19 | 2015-08-19 | 北京京东尚科信息技术有限公司 | 一种基于k-v存储系统的元数据管理方法 |
CN107102973A (zh) * | 2017-03-15 | 2017-08-29 | 中国互联网络信息中心 | 一种csv格式文件的数据提取方法及系统 |
CN107861885A (zh) * | 2017-11-07 | 2018-03-30 | 浪潮软件股份有限公司 | 一种数据传输方法及传输装置 |
CN108763175A (zh) * | 2018-06-26 | 2018-11-06 | 中国银行股份有限公司 | 一种csv文件处理方法及系统 |
CN110764777A (zh) * | 2019-10-17 | 2020-02-07 | 北京东土科技股份有限公司 | 一种elf文件生成方法、elf文件、设备及存储介质 |
CN111460128A (zh) * | 2019-11-14 | 2020-07-28 | 临沂市拓普网络股份有限公司 | 一种基于认知诊断的计算机化自适应测验方法 |
CN111460128B (zh) * | 2019-11-14 | 2023-09-12 | 临沂市拓普网络股份有限公司 | 一种基于认知诊断的计算机化自适应测验方法 |
CN111666327A (zh) * | 2020-06-10 | 2020-09-15 | 山东汇贸电子口岸有限公司 | 一种基于文本的结构化数据描述方法及其系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101789013A (zh) | 一种用于描述关系数据的增强型csv文件格式 | |
Schmidt | The inadequacy of embedded markup for cultural heritage texts | |
CN102096787B (zh) | 一种基于word2007文本切分的信息隐藏方法及其装置 | |
CN102122280B (zh) | 一种智能提取内容对象的方法及系统 | |
US7370060B2 (en) | System and method for user edit merging with preservation of unrepresented data | |
CN102937949B (zh) | 一种在富文本编辑器内实现英文拼写检查的方法及系统 | |
CN112671734B (zh) | 面向多数据源的报文处理方法及其相关设备 | |
CN104464422A (zh) | 一种基于信息工程的互动教学方法及系统 | |
Felicetti et al. | CIDOC CRM and Epigraphy: a Hermeneutic Challenge. | |
Chen et al. | Text watermarking algorithm based on semantic role labeling | |
Burnard | What is SGML and how does it help? | |
CN113297831B (zh) | 一种Excel生成可校验报表网页的方法和系统 | |
CN105608137A (zh) | 一种提取身份标识的方法和装置 | |
CN110008807A (zh) | 一种合同内容识别模型的训练方法、装置及设备 | |
CN103885765A (zh) | 一种xbrl元素的编码方法 | |
CN102567796A (zh) | 数据导入方法和装置 | |
CN102063416A (zh) | 向pdf文件内嵌双字节字体的方法及其系统 | |
CN104317935B (zh) | 一种xml账单文件批量生成html页面的方法及系统 | |
CN101587470A (zh) | 文档的编辑方法及装置 | |
CN103870439A (zh) | 一种维哈柯文显示方法及应用 | |
Bruckschen et al. | Named entity recognition in the legal domain for ontology population | |
US8719693B2 (en) | Method for storing localized XML document values | |
CN102708206A (zh) | 一种数据格式的描述方法 | |
Paulheim | A robust number parser based on conditional random fields | |
CN101739389A (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 | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20100728 |