从一份电子发票认识OFD和XML格式 您所在的位置:网站首页 OFD文件怎么转换成XML 从一份电子发票认识OFD和XML格式

从一份电子发票认识OFD和XML格式

2024-07-12 20:02| 来源: 网络整理| 查看: 265

0 分享至

用微信扫码二维码

分享至好友和朋友圈

关注我们 -数字罗塞塔计划-

/引言/

OFD(Open Fixed-layout Document)是我国自主研发的一种版式文档格式,相比于市场上流行的PDF(Portable Document Format)格式,是一种更自主、更创新、更可靠的选择。

从国家标准方面看,OFD格式正式开始于《电子文件存储与交换格式 版式文档》(GB/T 33190-2016),在此基础上,根据电子文件长期保存、自包含、自描述等档案管理需求,《信息技术 OFD档案应用指南》(GB/T 42133-2022)对OFD进一步提出标准化要求。

目前OFD格式在党政机关电子公文归档和电子发票方面应用较为广泛,备受行政办公、公共事务办理等业务从业人员关注。

下面,笔者以一份电子发票为例,对OFD文件结构及内容进行概括性描述,以期帮助非专业读者更为具象地认识到OFD的独特之处。在此基础上,从OFD文件格式框架“XML+ZIP”出发,进一步引导非专业读者探知XML(Extensible Markup Language)领域。

01、获取OFD格式电子发票

国家税务总局电子发票服务平台中,一份电子发票对应了3种格式的电子文件,分别是PDF、OFD、XML,可以直接下载至本地保存。

如果需要对电子发票进行离线阅览,PDF可以使用通用浏览器、国内外版式文件阅读器打开阅览,OFD可以使用国内版式文件阅读器打开阅览(如金山WPS等),XML可以使用通用浏览器打开阅览。PDF和OFD显示一致,呈现为符合通俗习惯的、易于普通人阅读理解的书面表格样式,这也是PDF、OFD被称之为“版式”格式的主要原因。而XML与前两者不同,呈现为多层级的结构化数据排列样式,易于机器解析,相比之下,对于自然人而言,XML的阅读理解难度远远大于版式文档。

02、解压电子发票看OFD文件结构

两步呈现OFD电子发票的“XML+ZIP” 现代文件格式框架。

第一步:解压。

直接将OFD电子文件后缀名“.ofd”修改为“.ZIP”,便得到一个ZIP压缩包,使用解压工具对压缩包进行解压,便得到一个文件夹。

第二步:逐层查看文件结构。

进入文件夹,便可依次查看各层文件夹和XML文件。

通过上述简单的两步操作,可以清晰地感受到OFD现代文件格式框架的涵义,多层文件夹结构显得既简炼又清晰,让人感觉十分干净。

03、版式呈现内容数据结构化组织

OFD文件结构打开后,对照GB/T 33190-2016和GB/T 42133-2022,便可进一步认识各个文件夹及XML的内容及作用。

GB/T 42133-2022给出的OFD文件的包内结构如下图所示:

第一层:

含文件夹“文档夹(Doc_0)”和XML“主入口OFD.xml”。主入口XML提供了文档的结构和内容的入口点,是访问和解析整个文档内容的起点,其内容结构如下图所示:

第二层:

含文件夹“注释(Annots)”、“页树(Pages)”、“资源(Res)”、“标引(Tags)”和 XML“文档入口Document.xml”、“文档资源DocumentRes.xml”、“公共资源PublicRes.xml”。OFD文件结构第二层将文档内容按照功能或特性进行分组,以便更好地管理和访问内容,同时也可以提高OFD文件的可维护性。

第三层及更深层:

以“页树(Pages)”为例,第三层为文件夹“页面(Page N)”,第四层为XML“页面描述Content.xml”,描述文档页面信息。

XML(Content.xml)中,Area描述页面区域, Content描述页面内容;在Content下,Layer描述层对象;在Layer下,TextObject描述文字对象,PathObject描述图形对象,ImageObject描述图像对象。

TextObject文字对象依次描述了编号标识(ID)、区域(Boundary)、字体(Font)、大小(Size)、定位(TextCode)、字间距(DeltaX)、值。

PathObject图形对象依次描述了编号标识(ID)、区域(Boundary)、线宽(LineWidth)、线型(Fill)、图形轮廓(AbbreviatedData),M、B、L分别指代不同的路径方式。

ImageObject图像对象依次描述了编号标识(ID)、图像变换矩阵(CTM)、区域(Boundary)、引用资源编号标识(ResourceID)。

通过对OFD中文件夹和XML的逐层拆解,可以看出OFD文档自包含、自描述的严谨和细致,在国家标准的规定下,任意数据在XML内、XML与XML之间均能实现相互引用、相互解释。

相比之下,PDF则难以在通用环境下呈现出结构化的数据形态,若将PDF电子文件后缀“.pdf”修改为“.txt”,再使用记事本打开,将呈现为具有一定规律但难以被自然人阅读理解的字符块。

04、回看XML文件数据结构与内容

回看从官网中直接下载的电子发票XML,对照《电子发票基础信息规范》(GB/T 36609-2018),在XML结构树中,首先是EInvoice描述电子发票;在EInvoice下, EInvoiceData描述电子发票数据,SellerAuthentication描述卖方认证信息等;在SellerAuthentication下,SellerIdNum描述销售方识别号,SellerName描述销售方名称,SellerAddr描述销售方地址等。

对比OFD中的XML和电子发票XML,可以分析出两者的相同之处和不同之处。

相同之处

主要体现为两点,一是XML中的数据项以层级树状结构组织在一起,二是XML中数据项的基本形式为值,数据值被对尖括号标签所包含。清晰明了的结构设定本身就是XML描述语言的优势所在。

不同之处

主要体现为两点,一是XML中数据项的定义不同,二是XML中值的基本形式可以被说明、扩充。灵活且包容的自定义特性正是XML扩展性的体现。

05、结 语

基于上文的阐述,我想大家对于OFD文件格式有了比较深入的了解,可以说OFD是由XML组合而成的版式文档,OFD的特点在于自主可控、现代文件格式框架;而XML的特点在于结构简单清晰、应用灵活扩展、便于计算机程序访问和处理;当然,PDF格式也有其优势,比如应用更为广泛,生态更为丰富等,各种文件格式之间的转换也更为方便,对于普通用户来说更通用、更易用、更实用。

我想这也是国家税务总局官网为什么要提供PDF、OFD、XML三种格式电子发票的原因吧!

数字罗塞塔计划公众号致力于作为中立的第三方客观公正地表达自己对于档案信息化领域的看法和观点。真理越辩越明,我们也衷心欢迎越来越多的人投身到档案数字资源管理和保存这一领域的研究中来并发表真知灼见,共同为人类文明的传承而努力奋斗!

关注我们 -数字罗塞塔计划-

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

/阅读下一篇/ 返回网易首页 下载网易新闻客户端


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有