復(fù)雜文檔分離組織方法以及復(fù)雜文檔自動(dòng)生成方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及文檔生成領(lǐng)域,更具體地說,本發(fā)明涉及一種復(fù)雜文檔分離組織方法以及基于XML (Extensible Markup Language,可擴(kuò)展標(biāo)記語言)描述的復(fù)雜文檔自動(dòng)生成方法。
【背景技術(shù)】
[0002]一直以來,文檔都是承載信息的重要工具之一,是人與人之間互通信息的重要手段。因所要描述信息內(nèi)容的不同,文檔的種類繽紛多彩,有以文字信息為主的文本文件(TXT)、富文本文件(RTF、DOC),有以圖表數(shù)據(jù)為主的電子表格文件(Excel),有以圖像演示為主的演示文件(PPT),有以圖形繪制為主的繪圖文件(Vis1)。并且,因各種存儲(chǔ)方式和各種工具解析方式的不同,文檔及其信息的格式也存在著千差萬別。
[0003]隨著政府、企業(yè)辦公自動(dòng)化步伐的逐步推進(jìn),對信息內(nèi)容的多樣性要求越來越高,同時(shí)對信息格式的規(guī)范性要求也越來越嚴(yán)格,同樣對信息向文檔自動(dòng)化轉(zhuǎn)化的需求也越來越復(fù)雜。如何既能滿足文檔內(nèi)容的豐富多樣性,又能滿足文檔格式的規(guī)范化和標(biāo)準(zhǔn)化,同時(shí)又保證較高效的性能輸出,是文檔自動(dòng)生成技術(shù)不懈探索和努力的目標(biāo)。
[0004]現(xiàn)有的文檔生成技術(shù)一般依賴于特定的工具或組件,例如利用Microsoft Office的DCOM組件進(jìn)行Word、Excel、PowerPoint等文檔的生成,利用Office OpenXml SDK進(jìn)行Word、Excel、PowerPoint等文檔的生成,利用iText java類庫生成PDF文檔,利用各種編程語言的基礎(chǔ)庫函數(shù)生成Html、RTF、Text等格式要求較簡單的文檔。
[0005]傳統(tǒng)的文檔自動(dòng)生成技術(shù),受文檔查看工具和文檔編碼格式的限制,對文檔自動(dòng)生成開發(fā)工具和文檔查看工具的依賴性較大。簡單文檔對格式要求不高,自動(dòng)生成的手段也比較靈活。但對于復(fù)雜文檔而言,其內(nèi)容信息的描述受到文檔模板格式、樣式的約束,同時(shí)文檔模板格式、樣式也反制于文檔內(nèi)容信息。
[0006]隨著Office OpenXml標(biāo)準(zhǔn)的確立,對于Word、Excel、PowerPoint等復(fù)雜文檔而言,無論是文檔內(nèi)容信息,還是文檔模板格式、樣式,都可以統(tǒng)一地使用Xml語言進(jìn)行描述,這就給復(fù)雜文檔的內(nèi)容和樣式的分離帶來了可能性。
[0007]然而,Office OpenXml標(biāo)準(zhǔn)主要是由Microsoft公司提出的,其提供的OfficeOpenXml SDK開發(fā)工具,依賴于Windows操作系統(tǒng)環(huán)境及Visual Stud1編程開發(fā)環(huán)境,不利于Office OpenXml標(biāo)準(zhǔn)的推廣和跨平臺(tái)使用。
【發(fā)明內(nèi)容】
[0008]本發(fā)明所要解決的技術(shù)問題是針對現(xiàn)有技術(shù)中存在上述缺陷,提供一種復(fù)雜文檔分離組織方法以及復(fù)雜文檔的自動(dòng)生成技術(shù),其能夠?qū)崿F(xiàn)文檔大綱、文檔數(shù)據(jù)和文檔樣式分離,并且不受操作系統(tǒng)環(huán)境和文檔工具限制自動(dòng)生成復(fù)雜文檔。
[0009]根據(jù)本發(fā)明的第一方面,提供了一種復(fù)雜文檔分離組織方法,包括:將復(fù)雜文檔分解成文檔大綱、文檔數(shù)據(jù)和文檔樣式;其中將復(fù)雜文檔的文檔大綱定義為對文檔結(jié)構(gòu)的宏觀描述,是按照文檔內(nèi)容對文檔的層次化分解、定義和管理,是對文檔數(shù)據(jù)和文檔樣式模板的統(tǒng)一組織;復(fù)雜文檔的文檔數(shù)據(jù)是對文檔元數(shù)據(jù)的組織和描述;復(fù)雜文檔的文檔樣式是對文檔樣式的組織和描述。
[0010]優(yōu)選地,文檔大綱包括文檔架構(gòu)描述、文檔關(guān)聯(lián)索引、文檔數(shù)據(jù)模板定義、文檔樣式模板定義和文檔屬性定義;文檔架構(gòu)描述是按照內(nèi)容對整個(gè)文檔進(jìn)行層次化分解和組織,為文檔主體框架的靜態(tài)展現(xiàn);文檔關(guān)聯(lián)索引定義文檔層次與元素間的引用和關(guān)聯(lián)關(guān)系,將文檔架構(gòu)的各個(gè)組成部分進(jìn)行有機(jī)融合;文檔數(shù)據(jù)模板定義是文檔數(shù)據(jù)模板的入口,描述了文檔數(shù)據(jù)相關(guān)模板的獲取方法;文檔樣式模板定義是文檔樣式模板的入口,描述了文檔樣式相關(guān)模板的獲取方法;文檔屬性定義包含文檔的全局的、通用的屬性描述,可以在文檔的相關(guān)數(shù)據(jù)和樣式模板中進(jìn)行引用。
[0011]優(yōu)選地,文檔數(shù)據(jù)包括文檔具體內(nèi)容、文檔內(nèi)容分組、文檔內(nèi)容與樣式關(guān)聯(lián);文檔具體內(nèi)容是文檔需要實(shí)際展現(xiàn)的數(shù)據(jù),是對原始數(shù)據(jù)的處理和組織;文檔內(nèi)容分組是在文檔大綱的宏觀組織下,進(jìn)一步細(xì)化對文檔內(nèi)容的組織,或者是粗粒度的文檔內(nèi)容;文檔內(nèi)容分組包括封面、目錄頁、正文、附錄;文檔內(nèi)容與樣式關(guān)聯(lián)是確定文檔具體內(nèi)容最終輸出的樣式;文檔內(nèi)容與樣式關(guān)聯(lián)具有間接關(guān)系,文檔內(nèi)容所屬的文檔內(nèi)容分組與一個(gè)文檔內(nèi)容樣式索引進(jìn)行關(guān)聯(lián),文檔具體內(nèi)容通過引用文檔內(nèi)容樣式索引的序號間接地與文檔具體內(nèi)容樣式進(jìn)行關(guān)聯(lián)。
[0012]優(yōu)選地,文檔樣式包括文檔整體樣式、文檔結(jié)構(gòu)樣式、文檔內(nèi)容樣式和文檔內(nèi)容樣式索引;文檔整體樣式針對于整個(gè)文檔設(shè)置的樣式,包括文字處理類文檔中的頁眉頁腳、演示文稿類文檔中的母版設(shè)置;文檔結(jié)構(gòu)樣式針對于文檔結(jié)構(gòu)層次設(shè)置的樣式,包括文字處理類文檔中的分節(jié);文檔內(nèi)容樣式針對于上文提到的文檔具體內(nèi)容設(shè)置的樣式,包括表格樣式、段落樣式、編號樣式、字體樣式;文檔內(nèi)容樣式索引分組地對文檔內(nèi)容樣式進(jìn)行編排,文檔內(nèi)容通過引用內(nèi)容樣式序號間接地與內(nèi)容樣式進(jìn)行關(guān)聯(lián)。
[0013]根據(jù)本發(fā)明的第一方面,提供了一種基于本發(fā)明第一方面的復(fù)雜文檔分離組織方法的復(fù)雜文檔自動(dòng)生成方法,其特征在于包括:
[0014]首先,執(zhí)行第一步驟以獲取文檔大綱模板描述;隨后,執(zhí)行第二步驟以便對文檔大綱模板進(jìn)行解析;其中在第二步驟中,根據(jù)文檔數(shù)據(jù)和文檔樣式模板定義信息控制進(jìn)行第三步驟、第四步驟和第五步驟以完成文檔相關(guān)數(shù)據(jù)和樣式模板的獲取;隨后,根據(jù)文檔架構(gòu)描述和關(guān)聯(lián)索引信息控制第六步驟、第七步驟和第八步驟以完成文檔數(shù)據(jù)獲取及其格式的轉(zhuǎn)換;接著,根據(jù)文檔內(nèi)容與樣式關(guān)聯(lián)信息執(zhí)行第九步驟和第十步驟以完成文檔數(shù)據(jù)與樣式的匹配及組裝,最后根據(jù)文檔的完成情況進(jìn)入第十一步驟以完成最終文檔的輸出;其中,第三步驟用于獲取文檔數(shù)據(jù)組模板,數(shù)據(jù)組模板描述了文檔內(nèi)容的組合和獲取方法以及文檔內(nèi)容分組的樣式索引;第四步驟用于獲取文檔樣式組模板,文檔樣式組模板定義了文檔內(nèi)容樣式索引,并且對文檔內(nèi)容樣式的具體標(biāo)識(shí)進(jìn)行了編排;第五步驟用于獲取文檔的屬性模板。
[0015]優(yōu)選地,第六步驟用于根據(jù)文檔大綱模板中文檔架構(gòu)描述和關(guān)聯(lián)索引信息涉及的宏觀的文檔內(nèi)容分組信息,從第三步驟獲取到的文檔數(shù)據(jù)組模板中提取相應(yīng)的文檔內(nèi)容分組描述并進(jìn)行解析,獲取文檔內(nèi)容數(shù)據(jù)的模板信息。
[0016]優(yōu)選地,第七步驟用于根據(jù)第六步驟獲取到的文檔內(nèi)容數(shù)據(jù)的模板信息,獲取文檔數(shù)據(jù)模板。
[0017]優(yōu)選地,第八步驟用于根據(jù)第七步驟獲取到的文檔數(shù)據(jù)模板,獲取原始數(shù)據(jù),并將原始數(shù)據(jù)進(jìn)行格式轉(zhuǎn)換。
[0018]優(yōu)選地,第九步驟用于將第八步驟格式轉(zhuǎn)換后的文檔數(shù)據(jù)與第四步驟獲取到文檔內(nèi)容樣式索引進(jìn)行關(guān)聯(lián)分析,根據(jù)文檔內(nèi)容分組關(guān)聯(lián)的文檔內(nèi)容樣式索引,以及文檔具體內(nèi)容關(guān)聯(lián)的文檔內(nèi)容樣式索引序號,將格式轉(zhuǎn)換后的文檔數(shù)據(jù)中的文檔具體內(nèi)容與具體的文檔內(nèi)容樣式標(biāo)識(shí)進(jìn)行匹配。
[0019]優(yōu)選地,第十步驟用于將第九步驟樣式匹配后的文檔數(shù)據(jù)與第五步獲取到的各類文檔樣式進(jìn)行組裝,第十一步驟用于根據(jù)文檔格式需求,將組裝好的帶樣式的文檔數(shù)據(jù)進(jìn)行格式化輸出,形成最終文檔。
【附圖說明】
[0020]結(jié)合附圖,并通過參考下面的詳細(xì)描述,將會(huì)更容易地對本發(fā)明有更完整的理解并且更容易地理解其伴隨的優(yōu)點(diǎn)和特征,其中:
[0021]圖1示意性地示出了根據(jù)本發(fā)明優(yōu)選實(shí)施例的基于Xml描述的復(fù)雜文檔模板結(jié)構(gòu)示意圖。
[0022]圖2示意性地示出了根據(jù)本發(fā)明優(yōu)選實(shí)施例的基于Xml描述的復(fù)雜文檔的自動(dòng)生成方法的流程圖。
[0023]圖3示意性地示出了根據(jù)本發(fā)明優(yōu)選實(shí)施例的基于Xml描述的復(fù)雜文檔模板關(guān)系示意圖。
[0024]圖4示意性地示出了根據(jù)本發(fā)明優(yōu)選實(shí)施例的復(fù)雜文檔大綱模板的Xml描述示例。
[0025]圖5示意性地示出了根據(jù)本發(fā)明優(yōu)選實(shí)施例的復(fù)雜文檔數(shù)據(jù)組模板的Xml描述示例。
[0026]圖6示意性地示出了根據(jù)本發(fā)明優(yōu)選實(shí)施例的復(fù)雜文檔樣式組模板的Xml描述示例。
[0027]圖7示意性地示出了根據(jù)本發(fā)明優(yōu)選實(shí)施例的復(fù)雜文檔數(shù)據(jù)模板的Xml描述示例。
[0028]圖8示意性地示出了根據(jù)本發(fā)明優(yōu)選實(shí)施例的復(fù)雜文檔分節(jié)模板的Xml描述示例。
[0029]圖9示意性地示出了根據(jù)本發(fā)明優(yōu)選實(shí)施例的基于Xml描述的文檔數(shù)據(jù)與樣式模板轉(zhuǎn)換成Office OpenXml過程示例。