国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種利用xml內(nèi)存樹實(shí)現(xiàn)多種文件兼容的方法

      文檔序號:6613703閱讀:206來源:國知局
      專利名稱:一種利用xml內(nèi)存樹實(shí)現(xiàn)多種文件兼容的方法
      技術(shù)領(lǐng)域
      本發(fā)明屬于計(jì)算機(jī)印刷排版技術(shù)領(lǐng)域,具體涉及一種利用XML內(nèi)存樹 實(shí)現(xiàn)多種文件兼容的方法。
      背景技術(shù)
      隨著計(jì)算機(jī)軟件的發(fā)展,許多的軟件都不可避免的進(jìn)行不斷的升級, 有些是一些對文件結(jié)構(gòu)影響不大的變更,有些卻是根本的變化。由于軟件 升級過程中需要兼容早期版本制作的文件。所謂文件兼容,是指使用當(dāng)前 程序能夠打開第三方程序或者該程序早期版本制作的文件,以保障用戶對 已有資源的可重用性。
      目前的文件兼容的方法主要是基于二進(jìn)制流進(jìn)行文件兼容的,通過 對二進(jìn)制格式進(jìn)行解析直接生成新格式的文檔。如果需要對多種文件進(jìn)行 兼容則需要多個(gè)解析模塊,并且包含類似的轉(zhuǎn)換代碼。

      發(fā)明內(nèi)容
      針對現(xiàn)有技術(shù)中存在的缺陷,本發(fā)明的目的是提供一種可以方便地對 多種文檔結(jié)構(gòu)進(jìn)行兼容,同時(shí)也能夠?qū)崿F(xiàn)低版本程序?qū)Ω甙姹境绦蛑谱鞯?文件的進(jìn)行兼容的方法。
      為達(dá)到以上目的,本發(fā)明采用的技術(shù)方案是 一種利用XML內(nèi)存樹實(shí) 現(xiàn)多種文件兼容的方法,包括如下步驟
      (1 )針對當(dāng)前程序中所有需要保存的數(shù)據(jù)內(nèi)容定義一個(gè)完整Schema;
      (2 )按照步驟(1 )中得到Schema定義一 系列的數(shù)據(jù)結(jié)構(gòu),即對于Schema 中的每一個(gè)節(jié)點(diǎn)定義一個(gè)數(shù)據(jù)結(jié)構(gòu),對于所有的屬性都定義到相應(yīng)數(shù)據(jù)結(jié)
      構(gòu)中的成員變量;
      (3)將需要兼容的文件轉(zhuǎn)換成步驟(2)中的數(shù)據(jù)結(jié)構(gòu),形成樹型數(shù)據(jù) 結(jié)構(gòu)即XML內(nèi)存樹結(jié)構(gòu);(4)將步驟(3)中生成的XML內(nèi)存樹結(jié)構(gòu)導(dǎo)入到當(dāng)前程序中,從而實(shí) 現(xiàn)文件的兼容。
      進(jìn)一步,步驟(l)中定義一個(gè)完整的Schema,首先需要分析當(dāng)前程序 中所有需要存儲(chǔ)到文檔中的數(shù)據(jù),按照程序中數(shù)據(jù)的層次結(jié)構(gòu)定義具有相 同層次結(jié)構(gòu)的Schema,以DocRoot節(jié)點(diǎn)作為文檔的#^節(jié)點(diǎn),對于程序中復(fù) 雜的數(shù)據(jù)定義為Schema中的一個(gè)節(jié)點(diǎn),對于程序中簡單的數(shù)據(jù)定義為 Schema中的節(jié)點(diǎn)的屬性,另外還需要結(jié)合數(shù)據(jù)的語義來最終確定程序中的 數(shù)據(jù)是作為Schema中的節(jié)點(diǎn)還是屬性。
      進(jìn)一步,步驟(3)中,如果要兼容Office文件,則利用微軟提供的API 函數(shù)把Office文檔中的各個(gè)部分轉(zhuǎn)換生成步驟(2)中的各個(gè)數(shù)據(jù)結(jié)構(gòu), 同時(shí)將各個(gè)對象掛接到各自所屬的父節(jié)點(diǎn)之下,形成一棵XML內(nèi)存樹結(jié)構(gòu)。
      進(jìn)一步,步驟(3)中,如果要兼容早期版本的歷史文件,則先把這種歷 史文件按照自己的數(shù)據(jù)格式直接輸出一個(gè)XML文件,然后通過DOM和XSLT 技術(shù)把這個(gè)XML文件轉(zhuǎn)換成符合步驟(1 )中要求的標(biāo)準(zhǔn)XML文件,最后再 通過步驟(2)中各個(gè)數(shù)據(jù)結(jié)構(gòu)的Parser解析代碼,生成對應(yīng)的XML內(nèi)存 樹結(jié)構(gòu)。
      進(jìn)一步,步驟(3)中,如果要實(shí)現(xiàn)低版本程序兼容高版本程序制作的 XML文件,則直接讀入該XML文件,然后通過步驟(2)中各個(gè)數(shù)據(jù)結(jié)構(gòu)的 Parser解析代碼,生成對應(yīng)的XML內(nèi)存樹結(jié)構(gòu)。
      進(jìn)一步,步驟(4)中,將XML內(nèi)存樹結(jié)構(gòu)導(dǎo)入到當(dāng)前程序中的方法包括 以下步驟
      首先,針對文件的每個(gè)部分構(gòu)建一個(gè)導(dǎo)入引擎ImportEngine,所述的 導(dǎo)入引擎ImportEngine —方面要導(dǎo)入對應(yīng)節(jié)點(diǎn)的屬性,另 一方面還要完成 其子節(jié)點(diǎn)的導(dǎo)入,如果子節(jié)點(diǎn)是簡單節(jié)點(diǎn)就直接導(dǎo)入,如果是復(fù)雜節(jié)點(diǎn), 就需要調(diào)用該子節(jié)點(diǎn)的導(dǎo)入引擎;
      然后,從根節(jié)點(diǎn)DocRoot開始調(diào)用DocRoot的導(dǎo)入引擎DocRootlmportEngine的Import ()函凄t,該函凄史中首先完成i亥節(jié)點(diǎn)的屬寸生 導(dǎo)入,然后調(diào)用ImportChildren(),實(shí)現(xiàn)導(dǎo)入引擎的遞歸調(diào)用;
      最后,各個(gè)節(jié)點(diǎn)的Import ()函數(shù),主要是完成程序中與該節(jié)點(diǎn)對應(yīng)的 對象的創(chuàng)建及其屬性的設(shè)置,同時(shí)需要設(shè)置好新創(chuàng)建的對象與其父對象的 關(guān)聯(lián)關(guān)系,然后就是調(diào)用ImportChildren()函數(shù)從而實(shí)現(xiàn)整個(gè)文檔數(shù)據(jù) 的導(dǎo)入。
      進(jìn)一步,在實(shí)現(xiàn)低版本程序兼容高版本程序制作的文件的過程中,在 進(jìn)行步驟(2)之前先將高版本程序中的當(dāng)前文檔導(dǎo)出生成一個(gè)標(biāo)準(zhǔn)XML文件。
      本發(fā)明的效果在于采用本發(fā)明的方法,可以方便的對多種文檔結(jié)構(gòu) 進(jìn)行兼容,也能夠?qū)崿F(xiàn)低版本程序?qū)Ω甙姹境绦蛑谱鞯奈募募嫒?,同時(shí) 也最大程度的重用代碼,對未來需要兼容新的第三方文件也具有良好的擴(kuò) 展性。


      圖1是本發(fā)明所述具體實(shí)施方式
      中的數(shù)據(jù)流轉(zhuǎn)示意圖; 圖2是一個(gè)XML Schema數(shù)據(jù)結(jié)構(gòu)的簡單示意圖; 圖3是本發(fā)明所述方法的流程圖。
      具體實(shí)施例方式
      下面結(jié)合附圖及具體實(shí)施對本發(fā)明作進(jìn)一步詳細(xì)說明 如圖l和圖3所示, 一種利用XML內(nèi)存樹實(shí)現(xiàn)多種文件兼容的方法, 包括如下步驟
      (1)針對當(dāng)前程序中所有需要保存的數(shù)據(jù)內(nèi)容(包括程序環(huán)境設(shè)置) 定義一個(gè)完整Schema (步驟S31),這個(gè)Schema就是后續(xù)生成標(biāo)準(zhǔn)XML的規(guī) 范。所謂完整就是要求對所有需要存儲(chǔ)的數(shù)據(jù)定義到Schema中。
      定義一個(gè)完整的Schema,首先需要分析當(dāng)前程序中所有需要存儲(chǔ)到文 檔中的數(shù)據(jù),按照程序中數(shù)據(jù)的層次結(jié)構(gòu)定義具有相同層次結(jié)構(gòu)的Schema,以DocRoot節(jié)點(diǎn)作為文檔的根節(jié)點(diǎn),對于程序中復(fù)雜的數(shù)據(jù)定義 為Schema中的一個(gè)節(jié)點(diǎn),對于程序中筒單的數(shù)據(jù)定義為Schema中的節(jié)點(diǎn) 的屬性,另外還需要結(jié)合數(shù)據(jù)的語義來最終確定程序中的數(shù)據(jù)是作為 Schema中的節(jié)點(diǎn)還是屬性。定義后的Schema的簡單示意圖如圖2所示。
      XML Schema是用來描述和約束XML文檔的一種XML語言,從功能上看, 它和早期的DTD是非常類似的,^旦是它比DTD的更加強(qiáng)大。
      本實(shí)施例中,文檔對象Cv_Doc是一個(gè)復(fù)雜數(shù)據(jù)類型,對應(yīng)定義上述定 義的Schema是以DocRoot節(jié)點(diǎn)作為文檔的才艮節(jié)點(diǎn),vers ion是Cv一Doc的 一個(gè)屬性,對應(yīng)定義為DocRoot節(jié)點(diǎn)的一個(gè)屬性,Cv_Doc下一級是 Cv-DocEnv、 Cv — Article、 Cv—Tables也是復(fù)雜節(jié)點(diǎn),對應(yīng)定義到DocRoot 的子節(jié)點(diǎn),依次類推定義一個(gè)完整的Schema。
      (2 )按照步驟(1 )中得到Schema定義一系列的數(shù)據(jù)結(jié)構(gòu)(步驟SM), 參看圖1中的"XML內(nèi)存樹結(jié)構(gòu),,。
      在面向?qū)ο蟮腃+ +語言中,對于Schema中的每一個(gè)節(jié)點(diǎn)定義一個(gè) 數(shù)據(jù)結(jié)構(gòu),對于所有的屬性都定義到相應(yīng)數(shù)據(jù)結(jié)構(gòu)中的成員變量。利用 設(shè)計(jì)模式中的Composite模式,對于Schema中的中間節(jié)點(diǎn)都應(yīng)該從 CompositeObject類派生,對于Schema中的葉子節(jié)點(diǎn)都應(yīng)該從 Compos i teLeaf Object派生。 示意代碼如下 class CDocRoot
      :public CompositeObject :public Iv-Import :public Iv_Export :public Iv_Parser :public Iv_Dump
      Public:
      //用于實(shí)現(xiàn)導(dǎo)入的Import函數(shù) Bool Import(CXMLNode* pNode);Bool ImportChildren(CXMLNode* pNode); 〃用于實(shí)現(xiàn)導(dǎo)出的Export函數(shù) Bool Export(CXMLNode* pNode); Bool ExportChildren(CXMLNode* pNode); //用于實(shí)現(xiàn)XML文件到內(nèi)存樹的解析 Bool Parser (CXNOode* pNode); Bool ParserChildren (CXMLNode* pNode) , //用于實(shí)現(xiàn)內(nèi)存樹到XML文件的輸出 Bool Dump(CXMLNode* pNode); Bool D卿Childern (CXMLNode* pNode); Pr i va te:
      〃DocRoot中的屬性 String strVer;
      (3)將需要兼容的文件轉(zhuǎn)換成步驟(2)中的數(shù)據(jù)結(jié)構(gòu),形成樹型數(shù) 據(jù)結(jié)構(gòu)(步驟S33),具體方法如下
      1 )如果要兼容Office文件,則需要利用微軟提供的API函數(shù)把Office 文檔中的各個(gè)部分轉(zhuǎn)換生成步驟(2)中的各個(gè)數(shù)據(jù)結(jié)構(gòu)。同時(shí)都需要掛接 到各自所屬的父節(jié)點(diǎn)之下,形成一棵XML內(nèi)存樹。參看圖l中"Office文 檔,,到"FantArt XML文件"的步驟。
      2) 如果要兼容早期版本的歷史文件,由于格式很可能跟現(xiàn)在版本的數(shù) 據(jù)結(jié)構(gòu)相差甚大。所以應(yīng)該先把這種歷史文件按照自己的數(shù)據(jù)格式直接輸 出 一個(gè)XML文件,然后通過DOM和XSLT技術(shù)把這個(gè)XML文件轉(zhuǎn)換成符合步 驟(1)中要求的標(biāo)準(zhǔn)XML文件,最后再通過步驟(2)中各個(gè)數(shù)據(jù)結(jié)構(gòu)的 Parser解析代碼,生成對應(yīng)的XML內(nèi)存樹。參看圖1中"老飛騰文檔"到
      "XML文件"再到"FantArt XML文件"的步驟。
      3) 如果是要實(shí)現(xiàn)低版本程序兼容高版本程序制作的文件,因?yàn)楦甙姹?的程序存儲(chǔ)的兼容格式已經(jīng)是基于標(biāo)準(zhǔn)XML擴(kuò)展的XML文件,這時(shí)就可以 直接Load該XML文件,然后通過步驟(2 )中各個(gè)數(shù)據(jù)結(jié)構(gòu)的Parser解析代碼,生成對應(yīng)的XML內(nèi)存樹,在這個(gè)過程中可能會(huì)丟失一些擴(kuò)展的屬性, 但是已經(jīng)能夠完成低版本程序兼容高版本程序制作的文件的要求。參看圖 l中"兼容格式文檔"到"FantArt XML文件"的步驟。
      (4)將步驟(3)中生成的XML內(nèi)存樹導(dǎo)入到當(dāng)前程序中,從而實(shí)現(xiàn) 文件的兼容并能夠展現(xiàn)給客戶(步驟S34),參看圖1中"XML內(nèi)存樹結(jié)構(gòu)" 到"FantArt對象"步驟。具體方法如下
      l)這個(gè)模塊會(huì)復(fù)雜一些,需要從總體上把握整個(gè)文檔結(jié)構(gòu),把文檔分 解為幾個(gè)大的部分,比如排版軟件——飛騰創(chuàng)意中DocRoot代表整個(gè)文 檔結(jié)構(gòu),可以分解為DocEnv(文檔參數(shù))部分、Articles (文章、內(nèi)容)部 分、Tables (表格)部分等等。
      2 )針對文檔的每個(gè)部分構(gòu)建一個(gè)導(dǎo)入引擎——ImportEngine, —方面 需要導(dǎo)入對應(yīng)節(jié)點(diǎn)的屬性(即實(shí)現(xiàn)其Import ()函數(shù)),另一方面還需要完 成其子節(jié)點(diǎn)的導(dǎo)入(即實(shí)現(xiàn)其ImportChildren()函數(shù)),如果子節(jié)點(diǎn)是簡 單就直接導(dǎo)入;如果是復(fù)雜節(jié)點(diǎn),就需要調(diào)用該子節(jié)點(diǎn)的導(dǎo)入引擎。
      示意代碼如下
      CDocRoot:: Import (CXMLNode* pNode) doc0bj = CreatNewDocument ();
      string strVer = pNode->GetAttribute (,6131011,,); docObj. SetVersion(strVer); 〃導(dǎo)入自身的屬性 //"….
      ImportChildren(pNode);
      3 )從根節(jié)點(diǎn)DocRoot開始調(diào)用DocRoot的導(dǎo)入引擎—— DocRootlmportEngine的Import()函數(shù),該函數(shù)中首先完成該節(jié)點(diǎn)的屬性 導(dǎo)入,然后調(diào)用Impor tChi ldren (),實(shí)現(xiàn)導(dǎo)入引擎的遞歸調(diào)用。
      4)各個(gè)節(jié)點(diǎn)的Import ()函數(shù),主要是完成程序中與該節(jié)點(diǎn)對應(yīng)的對 象的創(chuàng)建及其屬性的設(shè)置,同時(shí)需要設(shè)置好新創(chuàng)建的對象與其父對象的關(guān) 聯(lián)關(guān)系。比如排版軟件——飛騰創(chuàng)意中DocRoot的導(dǎo)入函數(shù)首先會(huì)創(chuàng) 建一個(gè)文檔,然后設(shè)置該文檔的相關(guān)屬性。然后就是依次調(diào)用DocEnv、Articles, Tables等等的導(dǎo)入引擎的Import ()函數(shù)從而實(shí)現(xiàn)整個(gè)文檔數(shù) 據(jù)的導(dǎo)入。
      (5 )另外,在實(shí)現(xiàn)低版本程序兼容高版本程序制作的文件的過程中需 要完成高版本程序另存為"兼容格式文檔"的功能,其實(shí)就是把當(dāng)前文檔 導(dǎo)出生成一個(gè)標(biāo)準(zhǔn)XML文件,參看圖1中"FantArt對象"到"XML內(nèi)存樹 結(jié)構(gòu)"步驟。其實(shí)就是第(4)點(diǎn)中的各個(gè)部分另外需要實(shí)現(xiàn)一個(gè)跟導(dǎo)入引 擎功能相反的導(dǎo)出引擎——ExportEngine。其內(nèi)部實(shí)現(xiàn)的機(jī)理完全類似。 所不同的是導(dǎo)入引擎是完成XML內(nèi)存樹結(jié)構(gòu)到文檔對象的轉(zhuǎn)換,而導(dǎo)出 引擎剛好相反是完成文檔對象到XML內(nèi)存樹結(jié)構(gòu)的轉(zhuǎn)換。然后這個(gè)XML內(nèi) 存樹輸出相應(yīng)的XML文件。參看圖1中"XML內(nèi)存樹"到"兼容格式文檔" 步驟。
      示意代碼如下
      CDocRoot: : Export (CXMLNode* pNode)
      string strVer = GetVersion ();
      pNode->SetAttribute ("Version", strVer); 〃導(dǎo)出自身的屬性
      術(shù)人員根據(jù)本發(fā)明的技術(shù)方案得出其他的實(shí)施方式,同樣屬于本發(fā)明的技 術(shù)創(chuàng)新范圍。
      ,本領(lǐng)域技
      權(quán)利要求
      1. 一種利用XML內(nèi)存樹實(shí)現(xiàn)多種文件兼容的方法,包括如下步驟(1)針對當(dāng)前程序中所有需要保存的數(shù)據(jù)內(nèi)容定義一個(gè)完整Schema;(2)按照步驟(1)中得到Schema定義一系列的數(shù)據(jù)結(jié)構(gòu),即對于Schema中的每一個(gè)節(jié)點(diǎn)定義一個(gè)數(shù)據(jù)結(jié)構(gòu),對于所有的屬性都定義為相應(yīng)數(shù)據(jù)結(jié)構(gòu)中的成員變量;(3)將需要兼容的文件轉(zhuǎn)換成步驟(2)中的數(shù)據(jù)結(jié)構(gòu),形成一個(gè)樹型數(shù)據(jù)結(jié)構(gòu)即XML內(nèi)存樹結(jié)構(gòu);(4)將步驟(3)中生成的XML內(nèi)存樹結(jié)構(gòu)導(dǎo)入到當(dāng)前程序中,從而實(shí)現(xiàn)文件的兼容。
      2. 如權(quán)利要求1所述的一種利用XML內(nèi)存樹實(shí)現(xiàn)多種文件兼容的方 法,其特征是步驟(l)中定義一個(gè)完整的Schema,首先需要分析當(dāng)前程 序中所有需要存儲(chǔ)到文檔中的數(shù)據(jù),按照程序中數(shù)據(jù)的層次結(jié)構(gòu)定義具有 相同層次結(jié)構(gòu)的Schema,以DocRoot節(jié)點(diǎn)作為文檔的才艮節(jié)點(diǎn),對于程序中 復(fù)雜的數(shù)據(jù)定義為Schema中的一個(gè)節(jié)點(diǎn),對于程序中簡單的數(shù)據(jù)定義為 Schema中的節(jié)點(diǎn)的屬性,另外還需要結(jié)合數(shù)據(jù)的語義來最終確定程序中的 數(shù)據(jù)是作為Schema中的節(jié)點(diǎn)還是屬性。
      3. 如權(quán)利要求2所述的一種利用XML內(nèi)存樹實(shí)現(xiàn)多種文件兼容的方 法,其特征是步驟(3)中,如果要兼容Office文件,則利用微軟提供的 API函數(shù)把Office文檔中的各個(gè)部分轉(zhuǎn)換生成步驟(2)中的各個(gè)數(shù)據(jù)結(jié) 構(gòu),同時(shí)將各個(gè)對象掛接到各自所屬的父節(jié)點(diǎn)之下,形成一棵XML內(nèi)存樹結(jié)構(gòu)。
      4. 如權(quán)利要求2所述的一種利用XML內(nèi)存樹實(shí)現(xiàn)多種文件兼容的方 法,其特征是步驟(3)中,如果要兼容早期版本的歷史文件,則先把這種 歷史文件按照自己的數(shù)據(jù)格式直接輸出一個(gè)XML文件,然后通過DOM和 XSLT技術(shù)把這個(gè)XML文件轉(zhuǎn)換成符合步驟(1 )中要求的標(biāo)準(zhǔn)XML文件, 最后再通過步驟(2)中各個(gè)數(shù)據(jù)結(jié)構(gòu)的Parser解析代碼,生成對應(yīng)的XML 內(nèi)存樹結(jié)構(gòu)。
      5. 如權(quán)利要求2所述的一種利用XML內(nèi)存樹實(shí)現(xiàn)多種文件兼容的方 法,其特征是步驟(3)中,如果要實(shí)現(xiàn)低版本程序兼容高版本程序制作的 XML文件,則直接讀入該XML文件,然后通過步驟(2)中各個(gè)數(shù)據(jù)結(jié)構(gòu)的Parser解析代碼,生成對應(yīng)的XML內(nèi)存樹結(jié)構(gòu)。
      6. 如權(quán)利要求1、 2、 3、 4或5所述的一種利用XML內(nèi)存樹實(shí)現(xiàn)多種 文件兼容的方法,其特征是步驟(4)中,將XML內(nèi)存樹結(jié)構(gòu)導(dǎo)入到當(dāng)前程 序中的方法包括以下步驟首先,針對文件的每個(gè)部分構(gòu)建一個(gè)導(dǎo)入引擎ImportEngine,所述的 導(dǎo)入引擎ImportEngine —方面要導(dǎo)入對應(yīng)節(jié)點(diǎn)的屬性,另 一方面還要完成 其子節(jié)點(diǎn)的導(dǎo)入,如果子節(jié)點(diǎn)是簡單節(jié)點(diǎn)就直接導(dǎo)入,如果是復(fù)雜節(jié)點(diǎn), 就需要調(diào)用該子節(jié)點(diǎn)的導(dǎo)入引擎;然后,從根節(jié)點(diǎn)DocRoot開始調(diào)用DocRoot的導(dǎo)入引擎 DocRootlmportEngine的Import()函凄t,該函lt中首先完成該節(jié)點(diǎn)的屬性 導(dǎo)入,然后調(diào)用ImportChildren(),實(shí)現(xiàn)導(dǎo)入引擎的遞歸調(diào)用;最后,各個(gè)節(jié)點(diǎn)的Import ()函數(shù),主要是完成程序中與該節(jié)點(diǎn)對應(yīng)的 對象的創(chuàng)建及其屬性的設(shè)置,同時(shí)需要設(shè)置好新創(chuàng)建的對象與其父對象的 關(guān)聯(lián)關(guān)系,然后就是調(diào)用ImportChindren()函數(shù)從而實(shí)現(xiàn)整個(gè)文檔數(shù)據(jù) 的導(dǎo)入。
      7. 如權(quán)利要求6所述的一種利用XML內(nèi)存樹實(shí)現(xiàn)多種文件兼容的方 法,其特征是在實(shí)現(xiàn)低版本程序兼容高版本程序制作的文件的過程中, 在進(jìn)行步驟(2)之前先將高版本程序中的當(dāng)前文件導(dǎo)出生成一個(gè)標(biāo)準(zhǔn)XML 文件。
      全文摘要
      本發(fā)明涉及一種利用XML內(nèi)存樹實(shí)現(xiàn)多種文件兼容的方法,屬于計(jì)算機(jī)印刷排版技術(shù)領(lǐng)域?,F(xiàn)有的文件兼容方法大部分是基于二進(jìn)制流進(jìn)行文件兼容的,通過對二進(jìn)制格式進(jìn)行解析直接生成新格式的文檔。如果需要對多種文件進(jìn)行兼容則需要多個(gè)解析模塊,并且包含類似的轉(zhuǎn)換代碼。本發(fā)明所述的方法通過引入XML內(nèi)存樹作為中間結(jié)構(gòu),然后僅僅對這種XML結(jié)構(gòu)進(jìn)行兼容。采用本發(fā)明所述的方法,可以方便的對多種文檔結(jié)構(gòu)進(jìn)行兼容,同時(shí)也能夠?qū)崿F(xiàn)低版本程序?qū)Ω甙姹境绦蛑谱鞯奈募募嫒荨?br> 文檔編號G06F17/30GK101436185SQ20071017720
      公開日2009年5月20日 申請日期2007年11月12日 優(yōu)先權(quán)日2007年11月12日
      發(fā)明者余忠華, 閻國龍, 魏超鵬 申請人:北大方正集團(tuán)有限公司;北京北大方正電子有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
      1