從一份電子發(fā)票認識OFD和XML格式
當前位置:點晴教程→知識管理交流
→『 企業(yè)管理交流 』
/引言/ OFD(Open Fixed-layout Document)是我國自主研發(fā)的一種版式文檔格式,相比于市場上流行的PDF(Portable Document Format)格式,是一種更自主、更創(chuàng)新、更可靠的選擇。 從國家標準方面看,OFD格式正式開始于《電子文件存儲與交換格式 版式文檔》(GB/T 33190-2016),在此基礎(chǔ)上,根據(jù)電子文件長期保存、自包含、自描述等檔案管理需求,《信息技術(shù) OFD檔案應(yīng)用指南》(GB/T 42133-2022)對OFD進一步提出標準化要求。 目前OFD格式在黨政機關(guān)電子公文歸檔和電子發(fā)票方面應(yīng)用較為廣泛,備受行政辦公、公共事務(wù)辦理等業(yè)務(wù)從業(yè)人員關(guān)注。 下面,筆者以一份電子發(fā)票為例,對OFD文件結(jié)構(gòu)及內(nèi)容進行概括性描述,以期幫助非專業(yè)讀者更為具象地認識到OFD的獨特之處。在此基礎(chǔ)上,從OFD文件格式框架“XML+ZIP”出發(fā),進一步引導(dǎo)非專業(yè)讀者探知XML(Extensible Markup Language)領(lǐng)域。 01 獲取OFD格式電子發(fā)票 國家稅務(wù)總局電子發(fā)票服務(wù)平臺中,一份電子發(fā)票對應(yīng)了3種格式的電子文件,分別是PDF、OFD、XML,可以直接下載至本地保存。 如果需要對電子發(fā)票進行離線閱覽,PDF可以使用通用瀏覽器、國內(nèi)外版式文件閱讀器打開閱覽,OFD可以使用國內(nèi)版式文件閱讀器打開閱覽(如金山WPS等),XML可以使用通用瀏覽器打開閱覽。PDF和OFD顯示一致,呈現(xiàn)為符合通俗習(xí)慣的、易于普通人閱讀理解的書面表格樣式,這也是PDF、OFD被稱之為“版式”格式的主要原因。而XML與前兩者不同,呈現(xiàn)為多層級的結(jié)構(gòu)化數(shù)據(jù)排列樣式,易于機器解析,相比之下,對于自然人而言,XML的閱讀理解難度遠遠大于版式文檔。 02 解壓電子發(fā)票看OFD文件結(jié)構(gòu) 兩步呈現(xiàn)OFD電子發(fā)票的“XML+ZIP” 現(xiàn)代文件格式框架。 # 第一步:解壓。 直接將OFD電子文件后綴名“.ofd”修改為“.ZIP”,便得到一個ZIP壓縮包,使用解壓工具對壓縮包進行解壓,便得到一個文件夾。 # 第二步:逐層查看文件結(jié)構(gòu)。 進入文件夾,便可依次查看各層文件夾和XML文件。 通過上述簡單的兩步操作,可以清晰地感受到OFD現(xiàn)代文件格式框架的涵義,多層文件夾結(jié)構(gòu)顯得既簡煉又清晰,讓人感覺十分干凈。 03 版式呈現(xiàn)內(nèi)容數(shù)據(jù)結(jié)構(gòu)化組織 OFD文件結(jié)構(gòu)打開后,對照GB/T 33190-2016和GB/T 42133-2022,便可進一步認識各個文件夾及XML的內(nèi)容及作用。 GB/T 42133-2022給出的OFD文件的包內(nèi)結(jié)構(gòu)如下圖所示: # 第一層: 含文件夾“文檔夾(Doc_0)”和XML“主入口OFD.xml”。主入口XML提供了文檔的結(jié)構(gòu)和內(nèi)容的入口點,是訪問和解析整個文檔內(nèi)容的起點,其內(nèi)容結(jié)構(gòu)如下圖所示: # 第二層: 含文件夾“注釋(Annots)”、“頁樹(Pages)”、“資源(Res)”、“標引(Tags)”和 XML“文檔入口Document.xml”、“文檔資源DocumentRes.xml”、“公共資源PublicRes.xml”。OFD文件結(jié)構(gòu)第二層將文檔內(nèi)容按照功能或特性進行分組,以便更好地管理和訪問內(nèi)容,同時也可以提高OFD文件的可維護性。 # 第三層及更深層: 以“頁樹(Pages)”為例,第三層為文件夾“頁面(Page N)”,第四層為XML“頁面描述Content.xml”,描述文檔頁面信息。 XML(Content.xml)中,Area描述頁面區(qū)域, Content描述頁面內(nèi)容;在Content下,Layer描述層對象;在Layer下,TextObject描述文字對象,PathObject描述圖形對象,ImageObject描述圖像對象。 TextObject文字對象依次描述了編號標識(ID)、區(qū)域(Boundary)、字體(Font)、大小(Size)、定位(TextCode)、字間距(DeltaX)、值。 PathObject圖形對象依次描述了編號標識(ID)、區(qū)域(Boundary)、線寬(LineWidth)、線型(Fill)、圖形輪廓(AbbreviatedData),M、B、L分別指代不同的路徑方式。 ImageObject圖像對象依次描述了編號標識(ID)、圖像變換矩陣(CTM)、區(qū)域(Boundary)、引用資源編號標識(ResourceID)。 通過對OFD中文件夾和XML的逐層拆解,可以看出OFD文檔自包含、自描述的嚴謹和細致,在國家標準的規(guī)定下,任意數(shù)據(jù)在XML內(nèi)、XML與XML之間均能實現(xiàn)相互引用、相互解釋。 相比之下,PDF則難以在通用環(huán)境下呈現(xiàn)出結(jié)構(gòu)化的數(shù)據(jù)形態(tài),若將PDF電子文件后綴“.pdf”修改為“.txt”,再使用記事本打開,將呈現(xiàn)為具有一定規(guī)律但難以被自然人閱讀理解的字符塊。 04 回看XML文件數(shù)據(jù)結(jié)構(gòu)與內(nèi)容 回看從官網(wǎng)中直接下載的電子發(fā)票XML,對照《電子發(fā)票基礎(chǔ)信息規(guī)范》(GB/T 36609-2018),在XML結(jié)構(gòu)樹中,首先是EInvoice描述電子發(fā)票;在EInvoice下, EInvoiceData描述電子發(fā)票數(shù)據(jù),SellerAuthentication描述賣方認證信息等;在SellerAuthentication下,SellerIdNum描述銷售方識別號,SellerName描述銷售方名稱,SellerAddr描述銷售方地址等。 對比OFD中的XML和電子發(fā)票XML,可以分析出兩者的相同之處和不同之處。 相同之處 主要體現(xiàn)為兩點,一是XML中的數(shù)據(jù)項以層級樹狀結(jié)構(gòu)組織在一起,二是XML中數(shù)據(jù)項的基本形式為<屬性>值,數(shù)據(jù)值被對尖括號標簽<>所包含。清晰明了的結(jié)構(gòu)設(shè)定本身就是XML描述語言的優(yōu)勢所在。 不同之處 主要體現(xiàn)為兩點,一是XML中數(shù)據(jù)項的定義不同,二是XML中<屬性>值的基本形式可以被說明、擴充。靈活且包容的自定義特性正是XML擴展性的體現(xiàn)。 05 結(jié)語 基于上文的闡述,我想大家對于OFD文件格式有了比較深入的了解,可以說OFD是由XML組合而成的版式文檔,OFD的特點在于自主可控、現(xiàn)代文件格式框架;而XML的特點在于結(jié)構(gòu)簡單清晰、應(yīng)用靈活擴展、便于計算機程序訪問和處理;當然,PDF格式也有其優(yōu)勢,比如應(yīng)用更為廣泛,生態(tài)更為豐富等,各種文件格式之間的轉(zhuǎn)換也更為方便,對于普通用戶來說更通用、更易用、更實用。 我想這也是國家稅務(wù)總局官網(wǎng)為什么要提供PDF、OFD、XML三種格式電子發(fā)票的原因吧! 該文章在 2024/7/25 0:15:54 編輯過 |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |