用于XPS和OpenXPS文檔的轉(zhuǎn)換工具的制作方法
【專利摘要】一種轉(zhuǎn)換工具,其使得XPS文檔能自動地轉(zhuǎn)換成開放式XPS格式,并且對于開放式XPS格式化的文檔,使其能自動地轉(zhuǎn)換成XPS格式。該轉(zhuǎn)換工具可以將內(nèi)容類型、包級別關(guān)系、部件級別屬性和圖像部件轉(zhuǎn)換成被任一種文檔格式支持的格式。
【專利說明】用于XPS和OpenXPS文檔的轉(zhuǎn)換工具
【背景技術(shù)】
[0001]XML紙張規(guī)范(XPS)是由微軟開發(fā)的一種分頁文檔格式,其規(guī)定電子文檔的內(nèi)容和外觀。開放式XML紙張規(guī)范(OpenXPS (開放式XPS))是基于XPS的一種分頁文檔格式,但其在某些方面不同于XPS中所使用的格式。OpenXPS是被歐洲計算機制造商協(xié)會(ECMA)采納為ECMA-388的一種標準。OpenXPS標準要求符合定義OpenXPS格式的模式(schema),而XPS規(guī)范要求符合定義XPS格式的模式。由于兩種格式之間的不同,或許不可能讓XPS和OpenXPS文檔互換地使用。
【發(fā)明內(nèi)容】
[0002]本概要被提供來以簡要形式介紹概念的選擇,這些概念還將在下面的詳細說明中進行描述。本概要既不打算標識所要求保護的主題的關(guān)鍵特征或必要特征,也不打算用來限制所要求保護的主題的范圍。
[0003]XPS文檔由部件(parts)和關(guān)系(relationships)組成。部件是類似于文件系統(tǒng)中的文件的數(shù)據(jù)流。關(guān)系是在一個部件和另一個部件或資源(例如,字體)之間的關(guān)聯(lián)。XPS文檔使用標記語言(例如,XML,XAML)來描述某個部件和某種關(guān)系。XPS規(guī)范描述了定義標記語言的語法的模式。語法定義了在描述部件和關(guān)系時所使用的元素、屬性和值的配置。
[0004]XPS文檔遵守在XML紙張規(guī)范版本1.0 (XPS規(guī)范)中所描述的模式,而OpenXPS遵守在OpenXPS標準中所描述的模式。盡管這兩種文檔格式相似,但它們?nèi)源嬖诓煌?,這些不同阻礙了它們互換地使用。提供了一種轉(zhuǎn)換工具,其識別在XPS規(guī)范的模式和OpenXPS標準的模式中的不同,并且自動地將按照一種格式而格式化的文檔轉(zhuǎn)換成遵守另一種格式的要求的文檔。
[0005]通過閱讀以下的詳細說明并參閱相關(guān)附圖,這些和其它特征及優(yōu)點將變得明顯。應當理解的是,前面的一般性說明和以下的詳細說明兩者都只是闡釋性的,且不限制所要求保護的方面。
【專利附圖】
【附圖說明】
[0006]圖1示出用于在XPS和OpenXPS文檔之間轉(zhuǎn)換的示范性系統(tǒng)。
[0007]圖2示出XPS和OpenXPS文檔的物理布局的示范性圖示。
[0008]圖3是示出用于在XPS和OpenXPS文檔之間轉(zhuǎn)換的示范性方法的流程圖。
[0009]圖4是示出用于轉(zhuǎn)換內(nèi)容類型的示范性方法的流程圖。
[0010]圖5是示出用于轉(zhuǎn)換包級別關(guān)系類型的示范性方法的流程圖。
[0011]圖6是示出用于轉(zhuǎn)換部件級別元素和屬性的示范性方法的流程圖。
[0012]圖7是示出用于轉(zhuǎn)換URI的示范性方法的流程圖。
[0013]圖8是示出轉(zhuǎn)換顏色通道值的流程圖。
[0014]圖9是示出示范性操作環(huán)境的框圖。【具體實施方式】
[0015]概述
各種實施例針對用于將XPS文檔轉(zhuǎn)換成OpenXPS文檔和用于將OpenXPS文檔轉(zhuǎn)換成XPS文檔的系統(tǒng)。XPS文檔遵守XML紙張規(guī)范版本1.0(XPS規(guī)范),其目前在http://www.microsoft.com/xps處可找到,并且通過引用被合并于此。OpenXPS標準遵守 ECMA-0388 (OpenXPS 標準),其目前在 http://www.ecma-1nternational.0rg/publications/standards/Ecma-388.htm處可找到,并且通過引用被合并于此。XPS文檔應當遵守在XPS規(guī)范中闡明的模式,而OpenXPS文檔應當遵守在OpenXPS標準中闡明的模式。盡管這兩種文檔格式類似,但是不同卻阻礙了它們互換地使用。本文所描述的技術(shù)識別在XPS規(guī)范和OpenXPS標準的要求中的不同,并且自動地對在一種格式中所找到的不同進行轉(zhuǎn)換,以便與遵從另一種格式所需的要求相匹配。
[0016]XPS和OpenXPS文檔利用在開放打包約定(OPC)標準中闡明的打包要求,OPC標準已經(jīng)被米納為 ECMA-376 (http://www.ecma-1nternational.0rg/publications/standards/Ecma-388.htm)和 IS0/IEC 29500:2008(http://standards, is0.0rg),ECMA-376通過引用被合并于此。OPC打包要求規(guī)定了 XPS和OpenXPS文檔兩者的結(jié)構(gòu)。照此,轉(zhuǎn)換工具并不修改OPC打包要求。
[0017]參照圖1,圖上示出具有轉(zhuǎn)換工具102的系統(tǒng)100,轉(zhuǎn)換工具102接受XPS文檔104,并創(chuàng)建具有為了遵守OpenXPS標準而做的修改或轉(zhuǎn)換的相應OpenXPS文檔106。同樣地,轉(zhuǎn)換工具102接受OpenXPS文檔108,并創(chuàng)建具有為了遵守XPS規(guī)范而做的轉(zhuǎn)換的相應XPS文檔110。轉(zhuǎn)換工具102可以執(zhí)行對簽名定義內(nèi)容類型(signature definitioncontent type) 112、對包級別關(guān)系類型(package-level relationship types) 114、對部件級別兀素和屬性(part-level elements and attributes) 116、以及對圖像格式(imageformats) 118的轉(zhuǎn)換。下文將更詳細地討論這些轉(zhuǎn)換?,F(xiàn)在將注意力轉(zhuǎn)向?qū)PS和OpenXPS文檔的概述。
[0018]XPS 和 OpenXPS f 檔
XPS和OpenXPS文檔是包含有打印和呈遞電子文檔所需要的數(shù)據(jù)和資源的包。數(shù)據(jù)可以由文本和/或二進制文件組成,它們定義了文檔的布局、文檔的每一頁的視覺外觀、以及包括在文檔中的內(nèi)容。資源可以由被用來分發(fā)、呈遞、打印和處理文檔的文件組成,諸如字體、樣式定義、位圖化的(bit-mapped)圖像、顏色配置文件、遠程資源字典等。
[0019]XPS和OpenXPS文檔被各自配置成部件和關(guān)系。在包中的每一個項目被視為一個部件。部件可以是類似于文件系統(tǒng)中的文件的數(shù)據(jù)流。部件可以是XML文件、XAML文件、JPEG文件等。XPS規(guī)范和OpenXPS標準各自定義一種模式,所述模式定義了部件的組織和結(jié)構(gòu),以及對于特定類型的文檔來說何時需要部件。
[0020]在包中的每一個部件被用唯一的部件名稱和內(nèi)容類型定義。部件名稱包含統(tǒng)一資源標識符(URI),其可被用來訪問在包內(nèi)的部件。URI可以是相對于包的根(即,絕對URI),或者相對于部件在包內(nèi)的布置(即,相對URI)。
[0021]內(nèi)容類型描述了部件中的內(nèi)容的類型。內(nèi)容類型可以使用多用途互聯(lián)網(wǎng)郵件擴展(MIME)內(nèi)容分類來描述部件中的內(nèi)容的性質(zhì)。內(nèi)容類型可以描述數(shù)據(jù)的類型(例如,圖像、音頻、視頻等)和數(shù)據(jù)的格式(例如,xml、png、tiff、jpeg等)。
[0022]關(guān)系定義一個部件到另一個部件之間或者一個部件和某個外部資源之間的關(guān)聯(lián)。存在包級別關(guān)系,其定義包和部件或者包和外部資源之間的關(guān)聯(lián)。還存在部件級別關(guān)系,其定義某個部件和另一個部件或者某個部件和某個外部資源之間的關(guān)聯(lián)。
[0023]XPS規(guī)范和OpenXPS標準使用文檔的共同邏輯表示。固定文檔序列(FixedDocumentSequence)部件描述文檔的序列。每一個固定文檔序列部件可以引用代表文檔的頁面的固定文檔(FixedDocument)部件。文檔的每一頁被稱為固定頁面(FixedPage)部件。每一個固定頁面部件包含頁面的文本標記和布局,其可以引用頁面中所使用的圖像、字體和其它資源。頁面中所涉及的資源被存儲在該部件的外部,這樣使得它們可以被其它頁面共享。
[0024]XPS規(guī)范使用標記語言(例如,XML、XAML)來描述某個部件。標記語言是基于模式,其使用元素、屬性和命名空間(namespace)。模式規(guī)定XPS文檔的語法、結(jié)構(gòu)和配置。每一個部件可以具有不同的模式。某些元素和屬性在XPS和OpenXPS模式中是必需的,而其它的是可選的。描述XPS文檔的模式不同于描述OpenXPS文檔的模式。
[0025]圖2示出XPS或OpenXPS文檔200 (其也被稱為包)的物理結(jié)構(gòu)的框圖。XPS或OpenXPS文檔具有文件夾和文件的層次結(jié)構(gòu)。在根級別202處,可能存在兩個部件或文件:[Content Types].xml 204 ;和 FixedDocumentSequence.fdseq 206。在根級別處,還可能存在三個文件夾:_rels 208 ;文檔210 ;和資源212。
[0026][Content_Types].xml部件204包含與每一個部件相關(guān)聯(lián)的所有內(nèi)容類型的列表。內(nèi)容類型描述部件中的內(nèi)容的類型,并且使用MME類型和擴展來描述該內(nèi)容。FixedDocumentSequence.fdseq部件206列出了包中的所有文檔。
[0027]文件夾_rels 208存儲了列出所有包級別關(guān)系的文件_rels.rels 214。文件夾文檔210是層次結(jié)構(gòu),其包含文檔中的所有固定頁面部件以及與每一個固定頁面相關(guān)聯(lián)的關(guān)系部件。圖2中的文檔文件夾210具有存儲在文件夾/I 218中的一個文檔(例如,F(xiàn)ixedDocument.fdoc 216),以及具有存儲在文件夾/pages 220中的兩個頁面1.fpage222 和 2.fpage 224。部件 / 文檔/l/Pages/_rels/l.fpage.rels 228 包含與固定頁面部件1.fpage 222相關(guān)聯(lián)的關(guān)系,并且部件/文檔/l/Pages/_rels/l.fpage.rels包含與固定頁面部件2.fpage相關(guān)聯(lián)的關(guān)系。文件夾資源212包含字體部件fontL odtff 232、圖像部件imagel.png 234以及ICC顏色配置文件colorprofilel.1cc,其可被用來打印文檔的兩個頁面。
[0028]盡管圖2所示的包200在某個配置中具有有限數(shù)量的文件夾和文件,但是應當理解的是,包200在替換的配置中可以包括更多或更少的文件夾和文件。
[0029]現(xiàn)在將注意力轉(zhuǎn)向參照各種示范性方法對系統(tǒng)中所使用的操作的各種實施例的討論??梢岳斫獾氖牵橇硗庵甘?,所表示的方法并不是必然地必須以所呈現(xiàn)的順序,或以任何特定順序來執(zhí)行。此外,相對于所述方法來描述的各種活動可以以串行或并行的方式,或者以串行和并行操作的任何組合來執(zhí)行。所述方法可以通過使用所描述實施例或替換實施例的一個或多個硬件單元和/或軟件單元,按對于給定的一組設計和性能約束所期望的那樣實施。例如,所述方法可以被實施為邏輯(例如,計算機程序指令),用于由邏輯設備(例如,通用或?qū)S玫挠嬎銠C)執(zhí)行。[0030]XPS 和 OpenXPS 轉(zhuǎn)換
參照圖3,圖上示出了用于將XPS文檔轉(zhuǎn)換成OpenXPS文檔和用于將OpenXPS文檔轉(zhuǎn)換成XPS文檔的示范性方法300。該方法通過以下方式開始:將一種格式的簽名定義內(nèi)容類型元素轉(zhuǎn)換成另一種格式(塊302),將一種格式的包級別關(guān)系類型轉(zhuǎn)換成另一種格式(塊304),將某些部件的部件級別元素和屬性從一種格式轉(zhuǎn)換成另一種格式(塊306),將某些圖像部件從一種圖像格式轉(zhuǎn)換成另一種圖像格式(塊308),以及產(chǎn)生新格式的新包(塊310)。
[0031]簽名定義內(nèi)容類型的轉(zhuǎn)換
圖4示出用于將簽名定義部件的內(nèi)容類型轉(zhuǎn)換成所轉(zhuǎn)換的格式的示范性方法的流程圖。
[0032]XPS支持數(shù)字地對XPS文檔簽名的能力,作為為XPS文檔提供真實性證明的一種手段。簽名定義部件被用來指示在數(shù)字簽名過程中所使用的具體信息,諸如簽名方、共同簽名要求等。
[0033]在表1中示出用于簽名定義部件的示范性XML標記。xml命名空間由簽名定義xmlns 兀素定義(例如,SignatureDefinitions xmlns = ^http://schemas, microsoft.com/xps/2011/01/signature_definitions〃)。XPS 文檔的簽名者在簽名者名稱(SignerName)屬性中被標識,并且點ID(SpotID)屬性是用于簽名點的全局唯一識別符(例如,SignatureDefinition SignerName = 〃某珍妮〃 SpotID = 〃1234〃)。點位置(SpotLocation)元素指示簽名點可被顯示在其上的頁面(例如,PageURI = 〃/Documents/2/Pages/3, fpage")和簽名點在頁面上的布置(例如,StartX = "0.0", StartY = 〃0.0〃)。
[0034]Intent元素規(guī)定在數(shù)字地對文檔簽名時簽名人的意向(例如,〈Intent〉我已閱讀條件,理解它們并同意它們〈Intent〉),SignBy元素規(guī)定簽名人要對文檔簽名的日期和時間(例如,<Signby> 2011年8月3日〈/Signby〉),并且SigningLocation元素規(guī)定文檔要被簽名的合法位置(〈SigningLocation〉紐約,NY〈/Signing Location〉)。
【權(quán)利要求】
1.一種計算機實施的方法,包括: 提供包含有以XPS兼容格式或OpenXPS兼容格式配置的數(shù)據(jù)的第一包; 當所述第一包包含有以XPS兼容格式配置的數(shù)據(jù)時,將所述第一包中的數(shù)據(jù)轉(zhuǎn)換成OpenXPS兼容格式;以及 當所述第一包包含有以OpenXPS兼容格式配置的數(shù)據(jù)時,將所述第一包中的數(shù)據(jù)轉(zhuǎn)換成XPS兼容格式。
2.權(quán)利要求1所述的方法,包括: 當所述第一包包含有以XPS兼容格式配置的數(shù)據(jù)時,產(chǎn)生以OpenXPS兼容格式包含該數(shù)據(jù)的第二包。
3.權(quán)利要求1所述的方法,包括: 當所述第一包包含有以OpenXPS兼容格式配置的數(shù)據(jù)時,產(chǎn)生以XPS兼容格式包含該數(shù)據(jù)的第二包。
4.權(quán)利要求1所述的方法,還包括: 將第一語法與XPS兼容格式相關(guān)聯(lián),并且將第二語法與OpenXPS兼容格式相關(guān)聯(lián);以及 將符合所述第一語法的數(shù)據(jù)轉(zhuǎn)換成所述第二語法。
5.權(quán)利要求1所述的方法,還包括: 將第一語法與XPS兼容格式相關(guān)聯(lián),并且將第二語法與OpenXPS兼容格式相關(guān)聯(lián);以及 將符合所述第二語法的數(shù)據(jù)轉(zhuǎn)換成所述第一語法。
6.一種計算機可讀存儲介質(zhì),在其上存儲有處理器可執(zhí)行的指令,包括: 以與XPS兼容格式相關(guān)聯(lián)的第一語法配置的指令;以及 接收以所述第一語法配置的所述指令、并將以所述第一語法配置的所述指令轉(zhuǎn)換成以第二語法配置的指令的指令,所述第二語法與OpenXPS兼容格式相關(guān)聯(lián)。
7.權(quán)利要求6所述的計算機可讀存儲介質(zhì),還包括: 用于將以所述第一語法配置的命名空間元素轉(zhuǎn)換成以所述第二語法配置的命名空間元素的指令。
8.權(quán)利要求6所述的計算機可讀存儲介質(zhì),還包括: 用于將以所述第一語法配置的內(nèi)容類型元素轉(zhuǎn)換成以所述第二語法配置的內(nèi)容類型元素的指令。
9.權(quán)利要求6所述的計算機可讀存儲介質(zhì),還包括: 用于將以所述第一語法配置的關(guān)系類型元素轉(zhuǎn)換成以所述第二語法配置的關(guān)系類型元素的指令。
10.權(quán)利要求6所述的計算機可讀存儲介質(zhì),還包括: 用于將以所述第一語法配置的URI轉(zhuǎn)換成以所述第二語法配置的URI的指令。
【文檔編號】G06F17/21GK103649909SQ201180072190
【公開日】2014年3月19日 申請日期:2011年10月10日 優(yōu)先權(quán)日:2011年7月8日
【發(fā)明者】D.波波夫, H.維德加加, L.布羅津斯基, H.伊娃諾夫 申請人:微軟公司