秦 英,马永起,蒙立荣
(中国工程物理研究院 计算机应用研究所,四川 绵阳 621900)
一种基于XML的数据转换方法的设计与实现
秦 英,马永起,蒙立荣
(中国工程物理研究院 计算机应用研究所,四川 绵阳 621900)
交互式电子技术手册是综合保障领域的一次技术革命,在分析非结构化数据和结构化数据分类的基础上,采取“非结构化数据-XML-结构化数据”的转换方式,将非结构化技术资料的元数据信息转换为可存储在公共源数据库(CSDB)中的结构化数据,为IETM数据录入问题提供解决方法。
XML;非结构化数据;结构化数据;IETM
交互式电子技术手册(以下称IETM)是一种按标准数字格式编制,采用文字、图形、表格、音视频等多种形式,以人机交互方式提供装备基本原理、使用操作、技术维修等内容的技术出版物。公共源数据库(CSDB)作为IETM系统数据内容存储和管理的核心,包含了IETM系统使用过程中涉及的所有数据模块、插图及多媒体文件。
在部署IETM系统时,需要将原来的电子文档资料转存到CSDB中。随着几十年的军事技术发展,这些电子资料的数量也呈现出爆发式的增长,并且资料的内容多种多样,格式也不尽相同。如何有效地转换和处理这些资料并将其存储在CSDB中,就成为必须要面对的问题。目前,Word文档转化方面,文献[1]中可以使用XML应用程序来操作具有XML格式的Word文档;文献[2]中实现了一种转换机制,实现Word到XML的转换,同时实现了XML到Word的转换;文献[3]中利用Java实现了从Word文本向XML文本的转换。文献[4-7]中为非结构化数据向结构化数据转换提供思路,但是IETM平台下数据的转化需要进一步完善改进,使得满足IETM平台下将Microsoft Word格式的IETM军事技术等非结构化资料转化为XML半结构化文档,然后将XML半结构化文档转化为关系数据库表格存储到CSDB中,将军事技术文档通过数据库管理起来,以便数据查询、排序等。本文设计了XML的数据转换方法,实现了非结构化数据到半结构化数据再到结构化数据的转换,满足IETM平台对军事技术文档管理的需求。
管理和使用数据的第一步是对数据进行统一归纳。数据库是现在大型信息系统存储和管理数据的通用方法。经过十几年的发展,数据库的类型已经发展到关系型数据库。该型数据库都是基于某种关系数据模型建立起来的,其图形展示可视为一个个的二维表格,表格中存储的就是系统中的各种数据。现在一般将这类可存储在关系数据库中的数据称为结构化数据;与之相反的,不能直接存储在关系数据库中的数据被称为非结构化数据[8]。此外,也有部分研究者把结构化程度介于非结构化数据和结构化数据之间的数据(XML 文档、HTML 页面等)称之为半结构化数据[9-10]。IETM系统要导入的数据种类繁多,规格不一,大多不能直接存储在关系数据库中,为非结构化数据类型。
可扩展标记语言(Extensible Markup Language,XML)是由W3C 于1998 年发布的一种数据规范,用于Web上各个系统之间进行数据的交互,旨在消除各个系统间的数据格式壁垒,提高各系统间交互数据的兼容性。XML目前已成为网络数据交互格式的通用规范之一。
XML作为标准通用标记语言(SGML)的一个子集,具备以下几个特征:
(1)树形数据结构。文档中除了根元素,所有元素都对应有上级元素,文档以树形结构存储数据。
(2)可对数据进行标记。利用标签和属性两个构件,能对某个数据作进一步的说明。
(3)可自定义标签。除了规范内定的标签以外,用户可以自定义符合命名规则的任意标签。
(4)可自定义约束。利用XML Schema文件,可以对XML文档的结构和数据做出限定。
XML Schema是W3C制定的基于XML格式的XML文档结构描述标准,简称XSD(XML Schema Define)。它可以对XML文档的结构(上下文关系、标签、属性等)和数据(范围、类型等)进行约定,对XML文档作进一步的限制,使其满足约定要求,方便XML数据的解析和处理。
XSD文件可以用来创建符合该XSD要求的XML文档。这个特性为基于XML文档的非结构化数据到结构化数据的转换提供了技术基础。
非结构化军事资料多以Word文档、图片和多媒体文件的形式存在,这部分资料都符合国军标体系或各单位入档资料体系标准,文档具有一定的结构性,例如文档的发布单位、发布时间、版本、保密等级、技术标准、适用性等信息和文档章节的组织关系。本文根据这些特征,对Word文档、图片和多媒体文件分别进行提取和转换。
(1) 非结构化数据到XML的转换
从非结构化数据提取结构信息,需要借助XSD文件。根据上述信息,制定XSD文件对非结构化数据的结构信息进行定义,然后根据XSD文件,生成符合结构要求的XML文档(只有标签和属性,没有数据值),再提取非结构化数据中对应的元数据并存储在新建XML文档中,完成从非结构化技术资料到XML文档的转换。
XSD文件是进行非结构化数据和结构化数据转换的前提,在转换之前要根据具体的文件类别制定相应的XSD文件,对拟提取的元数据进行定义。数据模块是CSDB中的数据单元,是CSDB中数据的最小单位。按照数据模块的分类分别制定不同的XSD文件,其中包括描述类、程序类、故障类、维修计划类、过程类等XSD文件;图片和多媒体文件要提取的信息只有文件名和文件路径,较为简单,不需要提供单独的XSD文件生成XML。表1为某类XSD文档中的部分属性定义。
(2) XML到结构化数据的转换
文献[11]中分析了XML半结构化数据和关系数据库中结构化数据特点,提出一种XML半结构化数据在关系数据库中的存储方法。本文在XML向结构化数据转换阶段,根据XSD文档,将其所包含的树形结构转成关系型结构,并在关系数据库中生成二维表格库,然后将XML文档中相应的元数据填入到所生成的关系型表格中,完成从XML文档到结构化数据的转换,如图1所示。
表1 XSD文档拟提取元数据信息
图1 树形结构到关系型结构转换示意图
图2为非结构化数据到CSDB的完整转换过程。Word文档使用XSD来进行XML定制,然后提取Word的内容填充到XML当中。在CSDB中创建表库并将XML中的元数据填入到CSDB中对应的字段。图片和多媒体只需要提取文件名和路径信息,其他步骤与Word的转换步骤类似。本文在以上分析的基础上,采用Java技术实现转换功能。
图2 树形结构到关系型结构转换示意图
综合保障体系中常见的非结构化数据包括Word文档、图片和音视频多媒体文件,下面分别进行说明。
(1)对于Word文档,Microsoft Office软件已经全面支持Office系列文档向XML文档的转换,但是这种方式转换出来的XML文档比较庞大,造成了严重的代码冗余。本文提取Word文档使用了POI (解析Office文档的开放源代码)和DOM4J (解析XML文档的开放源代码)。读取完成后程序按照XML的语法要求将Word文档内容进行转换,最后再将转换得到的结果写入XML文档中就完成了Word文档到XML文档的转换[4]。
(2)图片和多媒体文件要提取的元数据信息只有两个:文件名和文件存储路径。
图3为提取XML信息的流程图。开始阶段,程序会先根据文件格式判断文件类型。如果是Word文档,就调用XSD文件,提取Word文档信息,生成XML文件,然后再转存在CSDB中;如果不是多媒体文件,就提取文件名和路径,存储在XML中,最后转存在CSDB中。
图3 非结构化数据转换为XML的流程图
图4 XML转CSDB的流程图
完成非结构化数据到XML文档的转换后,需要将产生的XML文档转存到CSDB中。本文采用模型驱动[4]的方式,根据XSD文件在关系数据库中生成对应的二维表库,并根据上下文关系确定各个表格之间的从属关系,然后将对应XML文档中的元数据填充到关系数据库中,完成XML文档到结构化数据的转换。图4为生成CSDB数据的流程图。
实验环境为Windows 7操作系统、MyEclipse 10.0 Java IDE工具、Oracle 11g数据库系统和SqlDeveloper 6.0数据库管理工具。
图5为非结构化数据转换系统界面。以下是该系统的操作步骤。
(1)首先选择拟提取信息的文件,然后选择要用到的XSD文件,最后填入生成的XML文件的路径。完成后,点击“开始生成XML文档”按钮,完成从非结构化数据到XML文档的提取过程。
(2)打开XML文档,对生成的结果进行必要的修改。
(3)点击“生成CSDB数据”按钮,完成从XML文档到CSDB数据的转换。
图5 非结构化数据转换系统界面图
(1)Word文档
本文使用中国工程物理研究院技术报告模板作为实验输入来验证输出结果是否达到预期。报告模板中包含了题目、密级、编写人、数据模块编码、发布日期、版本号等信息。
将上述文档作为输入,生成的XML文件的部分代码如下所示:
可以看到该转换方法已经将数据模块编码、题目、密级、发布日期、编写人等信息正确识别并提取了出来,按照固定的格式填写在XML文档中。
根据生成的XML文件,在CSDB中共生成了3个表:IDSTATUS、DMADDRES和STATUS。其中,IDSTATUS表包含了DMADDRES和STATUS表;DMADDRES表包含了数据模块编码、题目、发布日期等信息;STATUS表包含了密级、发布单位、适用性等信息。
(2)图片和多媒体
图片和多媒体文件要抽取的信息只有两项:文件名和文件存储路径。经过信息抽取,文件名和存储路径信息被正确识别并保存在CSDB中MULTIMEDIA表格里。
通过实验数据可以看到,Word文档和图片多媒体文件的属性信息已经被提取并存储在CSDB相关的表格中,实验结果符合要求。
本文针对IETM系统数据录入过程中出现的非结构化数据转换问题,提出采用“非结构化数据-XML文档-结构化数据”的方式,以XML和XSD文档为基础,提取非结构化资料的元数据信息并转存到CSDB中,为IETM系统数据录入问题提供一种解决方法。
[1] JONES B M, BISHOP A K, SNYDER D R, et al. Word-processing document stored in a single XML file that may be manipulated by applications that understand XML[P]. US: US7974991B2, 2011-07-05.
[2] PAVLOV J E. Mechanism for translating between word processing documents and XML documents[P].US:US6725426. 2004-04-20.
[3] Li Wenfeng, Duan Hongliang. Analysis of using Java to realize conversion from Word text to XML text[J]. Modern Computer, 2008(3).
[4] 万里鹏. 非结构化到结构化数据转换的研究与实现[D]. 成都:西南交通大学, 2013.
[5] 李晓丽. 异构数据集成技术在物联网中的研究与应用[D]. 北京:北京邮电大学, 2012.
[6] 文龙. XML与非结构化数据管理[J]. 电脑知识与技术, 2009, 5(6):1306-1308.
[7] 闫璐. 基于XML的非结构化数据管理的研究与应用[D]. 北京:首都师范大学, 2013.
[8] 胥昊. 基于地理信息系统的轨道交通数据集成方法研究[J]. 都市快轨交通, 2016, 29(2):44-47.
[9] 冯国臻, 白硕, 程学旗. 异构数据统一检索技术研究与系统实现[J]. 微电子学与计算机, 2001, 18(5):38-40.
[10] 张枝令. 结构化数据及非结构化数据的分类方法[J]. 宁德师范学院学报(自然科学版), 2007, 19(4):417-420.
[11] 裴松, 武彤. 扩展哈弗曼前缀编码实现XML数据与关系数据转换[J]. 微型机与应用, 2013, 32(17):56-59.
Design and implementation of data conversion method based on XML
Qin Ying, Ma Yongqi, Meng Lirong
(Institute of Computer Application, CAEP, Mianyang 621900, China)
IETM is a technological revolution in integrated support field. This paper, based on the analysis of unstructured data and structured data, adopts a translation method of unstructured data-XML-structured data to translate the unstructured technology information into the structured data that can be stored in CSDB. It exhibits a way to solve the problem of IETM unstructured data importing.
XML; unstructured data; structured data; IETM
P315.69
A
10.19358/j.issn.1674- 7720.2017.20.009
秦英,马永起,蒙立荣.一种基于XML的数据转换方法的设计与实现[J].微型机与应用,2017,36(20):30-33,38.
2017-03-30)
秦英(1986-),男,硕士,主要研究方向:交互式电子手册,装备综合保障。
马永起(1986-),男,硕士,主要研究方向:交互式电子手册,装备综合保障。
蒙立荣(1985-),男,硕士,主要研究方向:交互式电子手册,装备综合保障。