CN102262676A - 可扩展标记语言文件转换器及其转换方法 - Google Patents
可扩展标记语言文件转换器及其转换方法 Download PDFInfo
- Publication number
- CN102262676A CN102262676A CN2011102321450A CN201110232145A CN102262676A CN 102262676 A CN102262676 A CN 102262676A CN 2011102321450 A CN2011102321450 A CN 2011102321450A CN 201110232145 A CN201110232145 A CN 201110232145A CN 102262676 A CN102262676 A CN 102262676A
- Authority
- CN
- China
- Prior art keywords
- file
- node
- title
- field
- markup language
- 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
- Document Processing Apparatus (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明可扩展标记语言文件转换器涉及文件转换,尤其是在Unix平台下使用面向过程的计算机程序设计语言将Flat文件转换为XML文件的转换器及其转换方法。一种可扩展标记语言文件转换器,包括一个文件分割装置,用于按照属性将Flat文件的每条记录分割为独立字段并命名;一个文件解析装置,用于表示各字段的逻辑结构;一个文件映射装置,用于将分割、解析的结果映射到XML文件里;所述解析装置包括名称及相应的树形结构定义和层次,所述树形结构定义包括根节点、分支节点和叶节点三种;所述映射装置读取解析装置的内容,将所述字段按照所述树形结构和层次排列成目标XML文件。
Description
技术领域
本发明涉及文件转换,尤其是在Unix平台下使用面向过程的计算机程序设计语言将Flat文件转换为XML文件。
背景技术
目前,银行业的绝大部分文件都是以Flat文件为标准进行交互,Flat文件是一种包含没有相对关系结构的记录的文件。这个类型通常用来描述文字处理、其他结构字符或标记被移除了的文本。但是部分银行为了增强数据的可读性,采用XML文件(XML(Extensible MarkupLanguage即可扩展标记语言)存储数据,从而对数据交互提出了新的要求。传统转换方法是采用XSD来对目标XML数据文件的格式进行定义。XSD(XML Schemas Definition)是指XML结构定义,描述了XML文档的结构。在Unix平台下以java语言等面向对象的计算机程序语言已经有通过读取XSD文件将Flat文件转换为XML文件的现成转换器,但以C语言等面向过程的计算机程序语言还没有读取XSD文件来转换Flat文件到XML文件的转换器。
发明内容
本发明可扩展标记语言文件转换器目的在于提供一种面向过程的计算机程序语言读取XSD文件来转换Flat文件到XML文件的转换器及其转换方法。
本发明提供技术方案如下:
一种可扩展标记语言文件转换器,其特征在于包括一个文件分割装置,用于按照属性将Flat文件的每条记录分割为独立字段并命名;一个文件解析装置,用于表示各字段的逻辑结构;一个文件映射装置,用于将分割、解析的结果映射到XML文件里;
所述解析装置包括名称及相应的树形结构定义和层次,所述树形结构定义包括根节点、分支节点和叶节点三种;
所述映射装置读取解析装置的内容,将所述字段按照所述树形结构和层次排列成目标XML文件;所述映射装置读取时,当下一个名称的层次小于或等于上一个名称的层次时,写上一个名称的结束部分;每个名称入栈前先判断上一个名称是否结束,如果结束则上一个名称先出栈,当前名称再入栈,如果没有结束,则仅当前名称入栈。
所述解析装置还包括一个表明是否在根和分支的节点处是否填写属性值的值标记。
所述解析装置还包括一个表明字段数据类型的数据类型标记。
所述文件中的每条记录包括一个所述根节点,至少一个所述叶节点,且叶节点没有下属任何节点。
所述文件中的每条记录还包括至少一个所述分支节点,所述分支节点属于根节点或者其他分支节点,所述分支节点具有下属分支节点或者叶节点。
一种可扩展标记语言文件转换方法,包括以下步骤,
a利用文件分割装置按照属性将Flat文件的每条记录分割为独立字段;
b读取文件解析装置中的根节点,搜索所述字段中与根节点的名称相同的内容,并将所述字段的值填入目标XML文件中;
c读取文件解析装置中的下一节点,并按照所述名称相应的树形结构定义和层次找到节点位置,搜索所述字段中与此节点的名称相同的内容,并将所述字段的值填入目标XML文件中;
重复上述c步骤,完成一条记录的目标XML文件;
每条记录均按照上述方法进行转换,完成全部目标XML文件。
本发明的有益效果为:
提供一种面向过程的计算机程序语言读取XSD文件来转换Flat文件到XML文件的转换器及其转换方法。
众所周知采用XSD文件描述的XML文档,适合面向对象的计算机程序语言进行解析,而且国外公司如Sun公司提供了成熟的工具包给开发人员进行简单的调用即可根据XSD文件将Flat文件转换为XML文件,但无法适用于面向过程的计算机程序语言。
在银行业这种数据量极大的业务平台上,对数据处理的效率要求很高,对每一条记录处理速度提高哪怕快几个微秒的数量级,累计叠加到上百万千万条数据后,其提高的时间量是惊人的。而面向过程的计算机程序语言如C语言和面向对象的计算机程序语言如Java语言相比在Unix平台下对相同数据量的处理速度要快很多,因为C语言是直接编译生成可执行文件被机器执行的,而Java语言是经过Java虚拟机解析后生成可执行文件被机器执行。
采用面向过程的计算机程序语言结合本发明的可扩展标记语言文件转换器,可以实现最高效的运行速度,此发明已经在某些银行业的批处理系统上线运行,得到了满意的运行效果。
此外,可扩展标记语言文件转换器的文件解析装置可以根据各个银行业务需要的不同进行定制和扩展,满足日益增长的数据要求和业务要求。
附图说明
图1为本发明可扩展标记语言文件转换过程示意图。
具体实施方式
第一实施例
如图1,一种可扩展标记语言文件转换器,包括一个文件分割装置,用于按照属性将Flat文件的每条记录分割为独立字段并命名。如下Flat文件中的一条记录:“23020219600111166MRliujiashun”,分割为四个独立字段PID=23020219600111166,gender=MR,first_name=liu,last_name=jiashun。
一个文件解析装置,用于表示各字段的逻辑结构,解析装置包括名称及相应的树形结构定义和层次,所述树形结构定义包括根节点、分支节点和叶节点三种。解析装置还包括一个表明是否在根和分支的节点处是否填写属性值的值标记。叶节点没有下属任何节点,分支节点属于根节点或者其他分支节点,分支节点可以有下属分支节点或者叶节点。
如下解析装置的例子:
其中:第一列是字段名称;第二列是属性值的值标记,Y为必须填写属性值,N为不填写属性值;第三列是节点类型如R代表根节点,B代表分支节点,L代表叶节点;第四列是层次,1代表处于逻辑结构的第一层,2代表处于逻辑结构的第二层,3代表处于逻辑结构的第三层。
一个文件映射装置,用于将分割、解析的结果映射到XML文件里。映射装置读取解析装置的内容,将所述字段按照所述树形结构和层次排列成目标XML文件。
如第一个名称为Pid,值标记为Y,节点类型为R,节点层次为1。由于他的值标记为Y,则填写字段值。因为是根节点,所以只写起始部分,不写结束部分。最后,将此名称放入栈内(栈是允许在同一端进行插入和删除操作的特殊线性表栈也称为先进后出表)。当前栈内元素为1个,即pid。则在目标XML文件中第一行写为<pid=”23020219600111166”>
第二个名称为Gender,值标记为Y,节点类型为L,节点层次为3。由于值标记为Y,必须填写字段值。因为L为末端叶节点,所以直接挂在根节点Pid之下,且L为叶节点,写对应的结束部分。层次方面因为当前层数3大于上一条的层数1,所以根节点未结束,不为根节点写结束部分。最后,将此名称放入栈内,当前栈内元素为2个,即gender,pid。则在目标XML文件中写为:
<gender>
MR
第三个名称为Name,值标记为N,节点类型为B,节点层次为2。由于值标记为N,则此节点不填值。因为B为分支节点只能挂在R或B之下,向上找最近的R或B,则找到字段Pid(类型为R)为其上级。层次方面因为当前层数2小于上一条层数3,所以上一节点结束,为上一节点写结束部分,将栈顶的值出栈,即gender出栈,当前栈内元素剩一个,即pid。因为他不是叶节点,所以只写起始部分,不写结束部分。最后将此名称放入栈内,当前栈内元素为2个,即name,pid,则在目标XML文件中写为:
</gender>
<name>
第四个名称为First_name,值标记为Y,节点类型为L,节点层次为3。由于值标记为Y,必须填写字段值;因为L只能挂在R或B之下,向上找最近的R或B,则找到字段name(类型为B)为其上级。层次方面因为当前层数3大于上一条层数2,所以上一节点未结束,不为上一节点写结束部分。最后将此名称放入栈内,当前栈内元素为3个,即first_name,name,pid,则在目标XML文件中写为:
<first_name>
Liu
第五个名称为Last_name,值标记为Y,节点类型为L,节点层次为3。由于值标记为Y,必须填写字段值;因为L只能挂在R或B之下,向上找最近的R或B,则找到字段name(类型为B)为其上级。层次方面因为当前层数等于上一条层数3,所以上一节点结束,为上一节点写结束部分。将栈顶的值出栈,即first_name出栈,当前栈内元素剩2个,即name,pid。最后将此名称放入栈内,当前栈内元素为3个,及last_name,name,pid。则在目标XML文件中写为:
</first_name>
<last_name>
Jiashun
最后解析完毕,则栈内元素依次出栈,写结束部分:
</last_name>
</name>
</pid>
第二实施例
本实施例中的解析装置相比第一实施例,增加了一个表明字段数据类型的数据类型标记。如:
其中第二列为数据类型标记,Number是数值型,Char是字符型,NULL是空类型,即分支节点或者根节点不填写值的时候,设为NULL类型。
本发明的解析装置可以扩展各种标记,例如字段长度,校验规则等等。
Claims (6)
1.一种可扩展标记语言文件转换器,其特征在于包括一个文件分割装置,用于按照属性将Flat文件的每条记录分割为独立字段并命名;一个文件解析装置,用于表示各字段的逻辑结构;一个文件映射装置,用于将分割、解析的结果映射到XML文件里;
所述解析装置包括名称及相应的树形结构定义和层次,所述树形结构定义包括根节点、分支节点和叶节点三种;
所述映射装置读取解析装置的内容,将所述字段按照所述树形结构和层次排列成目标XML文件;所述映射装置读取时,当下一个名称的层次小于或等于上一个名称的层次时,写上一个名称的结束部分,每个名称入栈前先判断上一个名称是否结束,如果结束则上一个名称先出栈,当前名称再入栈,如果没有结束,则仅当前名称入栈。
2.如权利要求1所述的可扩展标记语言文件转换器,其特征在于,所述解析装置还包括一个表明是否在根和分支的节点处是否填写属性值的值标记。
3.如权利要求1或2所述的可扩展标记语言文件转换器,其特征在于,所述解析装置还包括一个表明字段数据类型的数据类型标记。
4.如权利要求1或2所述的可扩展标记语言文件转换器,其特征在于,所述文件中的每条记录包括一个所述根节点,至少一个所述叶节点,且叶节点没有下属任何节点。
5.如权利要求4所述的可扩展标记语言文件转换器,其特征在于,所述文件中的每条记录还包括至少一个所述分支节点,所述分支节点属于根节点或者其他分支节点,所述分支节点具有下属分支节点或者叶节点。
6.一种可扩展标记语言文件转换方法,包括以下步骤,
a利用文件分割装置按照属性将Flat文件的每条记录分割为独立字段;
b读取文件解析装置中的根节点,搜索所述字段中与根节点的名称相同的内容,并将所述字段的值填入目标XML文件中;
c读取文件解析装置中的下一节点,并按照所述名称相应的树形结构定义和层次找到节点位置,搜索所述字段中与此节点的名称相同的内容,并将所述字段的值填入目标XML文件中,
重复上述c步骤,完成一条记录的目标XML文件;
每条记录均按照上述方法进行转换,完成全部目标XML文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011102321450A CN102262676A (zh) | 2011-08-15 | 2011-08-15 | 可扩展标记语言文件转换器及其转换方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011102321450A CN102262676A (zh) | 2011-08-15 | 2011-08-15 | 可扩展标记语言文件转换器及其转换方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102262676A true CN102262676A (zh) | 2011-11-30 |
Family
ID=45009304
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011102321450A Pending CN102262676A (zh) | 2011-08-15 | 2011-08-15 | 可扩展标记语言文件转换器及其转换方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102262676A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104391796A (zh) * | 2014-12-05 | 2015-03-04 | 上海斐讯数据通信技术有限公司 | 一种测试用例解析方法 |
CN105867995A (zh) * | 2016-04-29 | 2016-08-17 | 无锡天脉聚源传媒科技有限公司 | 一种可扩展标记语言文件的编辑方法及装置 |
CN112199556A (zh) * | 2020-10-14 | 2021-01-08 | 深圳市元征科技股份有限公司 | 一种XML Schema文件格式自动转换方法、系统及相关设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1497473A (zh) * | 2002-09-30 | 2004-05-19 | 用于使文本结构化的方法和装置 | |
CN101055577A (zh) * | 2006-04-12 | 2007-10-17 | 龙搜(北京)科技有限公司 | 可扩展标记语言集中器 |
WO2007115501A1 (en) * | 2006-04-12 | 2007-10-18 | Lonsou (Beijing) Technologies Co., Ltd. | Method and system for facilitating rule-based document content mining |
CN101464874A (zh) * | 2007-12-17 | 2009-06-24 | 金宝电子(上海)有限公司 | 使用xml表示电子字典目录数据的方法 |
-
2011
- 2011-08-15 CN CN2011102321450A patent/CN102262676A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1497473A (zh) * | 2002-09-30 | 2004-05-19 | 用于使文本结构化的方法和装置 | |
CN101055577A (zh) * | 2006-04-12 | 2007-10-17 | 龙搜(北京)科技有限公司 | 可扩展标记语言集中器 |
WO2007115501A1 (en) * | 2006-04-12 | 2007-10-18 | Lonsou (Beijing) Technologies Co., Ltd. | Method and system for facilitating rule-based document content mining |
CN101464874A (zh) * | 2007-12-17 | 2009-06-24 | 金宝电子(上海)有限公司 | 使用xml表示电子字典目录数据的方法 |
Non-Patent Citations (1)
Title |
---|
张宏展 等: "一种Flat XML 转换工具的研究与实现", 《计算机应用研究》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104391796A (zh) * | 2014-12-05 | 2015-03-04 | 上海斐讯数据通信技术有限公司 | 一种测试用例解析方法 |
CN105867995A (zh) * | 2016-04-29 | 2016-08-17 | 无锡天脉聚源传媒科技有限公司 | 一种可扩展标记语言文件的编辑方法及装置 |
CN112199556A (zh) * | 2020-10-14 | 2021-01-08 | 深圳市元征科技股份有限公司 | 一种XML Schema文件格式自动转换方法、系统及相关设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Sevilla Ruiz et al. | Inferring versioned schemas from NoSQL databases and its applications | |
US7962524B2 (en) | Computer program, device, and method for sorting dataset records into groups according to frequent tree | |
EP2057557B1 (en) | Joint optimization of wrapper generation and template detection | |
US20020147711A1 (en) | Apparatus, method, and program for retrieving structured documents | |
US9626368B2 (en) | Document merge based on knowledge of document schema | |
CN101763255B (zh) | 一种专用界面工具的格式转换方法及装置 | |
CN103729337B (zh) | 报表转换方法及装置 | |
US8676863B1 (en) | Maintaining a relational database and its schema in response to a stream of XML messages based on one or more arbitrary and evolving XML schemas | |
CA2500422A1 (en) | Annotated automaton encoding of xml schema for high performance schema validation | |
AU2003262290A1 (en) | Method and computer-readable medium for importing and exporting hierarchically structured data | |
EP1973044A1 (en) | Method for accessing the data in xml file | |
CN101872350A (zh) | 网页正文抽取方法和装置 | |
Haider et al. | CSV2RDF: Generating RDF data from CSV file using semantic web technologies | |
US8266188B2 (en) | Method and system for extracting structural information from a data file | |
CN102262676A (zh) | 可扩展标记语言文件转换器及其转换方法 | |
CN113608903A (zh) | 一种基于xml语言的故障管理方法 | |
CN102411602A (zh) | 一种基于 fpga 实现的xml 并行投机解析方法 | |
CN102662948A (zh) | 一种快速发现效用模式的数据挖掘方法 | |
CN113704575B (zh) | 解析XML与Java文件的SQL方法、装置、设备及存储介质 | |
CN102087666B (zh) | 一种基于节点与关键字覆盖关系的索引及其构建方法和查询方法 | |
CN102622432B (zh) | 一种xml文档结构概要间的相似性度量方法 | |
CN102760173A (zh) | 一种自下而上的xml分支模式匹配方法 | |
US20090248716A1 (en) | Hierarchy creation and management tool | |
CN105335160B (zh) | 一种基于jsf的web端组件敏捷开发方法 | |
CN110955658A (zh) | 一种基于Java智能合约的数据组织和存储方法 |
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 |
Application publication date: 20111130 |