專利名稱:不同語(yǔ)種xml文檔轉(zhuǎn)換的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種XML文檔多語(yǔ)種轉(zhuǎn)換的方法,特別是一種既可以轉(zhuǎn)換XML(eXtensible Markup Language)元素(E1ement)和屬性(Attribute)的名稱,也可以為元素內(nèi)容的轉(zhuǎn)換提供幫助的方法。屬于計(jì)算機(jī)信息交換(共享)技術(shù)領(lǐng)域。
背景技術(shù):
信息的國(guó)際化交換和本地化表示是一種信息處理技術(shù)發(fā)展中的長(zhǎng)期的需求。信息的國(guó)際化交換和本地化表示技術(shù)已從早期的字符集編碼轉(zhuǎn)換發(fā)展到更高的信息結(jié)構(gòu)和語(yǔ)義轉(zhuǎn)換的層次。支持結(jié)構(gòu)化信息表示的XML技術(shù)目前已經(jīng)成為全球信息共享的基礎(chǔ)之一。如何使XML的數(shù)據(jù)表示同時(shí)滿足國(guó)際化和本地化需求是亟待解決的、意義深遠(yuǎn)的課題。
在以往XML的數(shù)據(jù)表示國(guó)際化和本地化技術(shù)發(fā)展中,人們主要專注于通過(guò)良好的XML構(gòu)造習(xí)慣使之便于進(jìn)行多語(yǔ)種轉(zhuǎn)換,其重點(diǎn)是元素內(nèi)容的翻譯,而元素名稱和屬性名稱的轉(zhuǎn)換一直是使用中所有人都盡力回避的問(wèn)題。因此,業(yè)界目前還沒(méi)有形成一種完全并且通用的方法來(lái)實(shí)現(xiàn)XML最常見(jiàn)的也是最需要的元素名稱和屬性名稱的多語(yǔ)種轉(zhuǎn)換。
因此,會(huì)有這樣一種情況發(fā)生在現(xiàn)有技術(shù)條件下,一個(gè)制定和發(fā)布某種XML文檔類型的機(jī)構(gòu)發(fā)布的一個(gè)語(yǔ)種的文檔大綱(Schema)版本被多次翻譯之后,其中的元素名稱會(huì)偏離原始的含義。在這種情況下,如果要對(duì)日后來(lái)自任何語(yǔ)種使用人群的同類型文檔進(jìn)行處理,就需要很大的維護(hù)工作量。這種情況使得多語(yǔ)種的XML數(shù)據(jù)的處理和共享非常困難,經(jīng)過(guò)翻譯后XML文檔不能夠保持XML元素和屬性名稱所表達(dá)含義的精確性,也使XML的應(yīng)用受到語(yǔ)言的障礙,不具有通用性、靈活性和實(shí)用性。
發(fā)明內(nèi)容
本發(fā)明所要解決的主要技術(shù)問(wèn)題是提供一種支持XML文檔多語(yǔ)種轉(zhuǎn)換的方法,實(shí)現(xiàn)XML的元素名稱和屬性名稱的多語(yǔ)種轉(zhuǎn)換。
本發(fā)明所要解決的另一個(gè)技術(shù)問(wèn)題是提供一種支持XML文檔多語(yǔ)種轉(zhuǎn)換的方法,使得對(duì)于由一個(gè)制定和發(fā)布某種XML文檔類型的機(jī)構(gòu)發(fā)布的一個(gè)語(yǔ)種的Schema版本被多次翻譯之后,其元素名稱依然不會(huì)偏離原始的含義。且不同語(yǔ)種人群轉(zhuǎn)換同類型XML文檔的處理工作量極小。
本發(fā)明所要解決的又一個(gè)技術(shù)問(wèn)題是提供一種支持XML文檔多語(yǔ)種轉(zhuǎn)換的方法,使得XML的應(yīng)用突破語(yǔ)言的障礙,具有通用性、靈活性和實(shí)用性。
為實(shí)現(xiàn)上述各種問(wèn)題的解決,本發(fā)明主要包括如下的技術(shù)方案對(duì)于XML Schema中需要進(jìn)行不同語(yǔ)種轉(zhuǎn)換的元素,設(shè)置在實(shí)例中不可改變的、唯一的標(biāo)識(shí)符屬性,和屬性次序?qū)傩?;?dāng)需要進(jìn)行XML文檔實(shí)例轉(zhuǎn)換時(shí),依據(jù)事先設(shè)計(jì)的轉(zhuǎn)換規(guī)則,將第一語(yǔ)種的XML文檔實(shí)例轉(zhuǎn)換為第二語(yǔ)種的XML文檔實(shí)例;具體的轉(zhuǎn)換過(guò)程如下步驟1翻譯根元素,重置命名空間聲明;步驟2對(duì)第一語(yǔ)種的XML文檔實(shí)例中需要轉(zhuǎn)換的元素,按照事先設(shè)計(jì)的轉(zhuǎn)換規(guī)則,將相應(yīng)的元素轉(zhuǎn)換為第二語(yǔ)種的XML文檔實(shí)例中的元素(包括屬性名的轉(zhuǎn)換);直到所有的元素轉(zhuǎn)換完畢;步驟3結(jié)束轉(zhuǎn)換。
本發(fā)明的主要思想是采用唯一標(biāo)識(shí)符的方法來(lái)對(duì)應(yīng)不同語(yǔ)種表示的相同元素;采用預(yù)定義屬性次序的方法來(lái)確定實(shí)際出現(xiàn)的屬性的順序值,再根據(jù)屬性的次序值來(lái)對(duì)應(yīng)不同語(yǔ)種表示的相同屬性,以解決XML屬性出現(xiàn)次序不固定,且不能為屬性指定標(biāo)識(shí)(ID)從而無(wú)法通過(guò)ID對(duì)應(yīng)屬性的缺憾。由此定義的標(biāo)識(shí)符屬性和屬性次序?qū)傩钥梢再x予任何需要進(jìn)行語(yǔ)種翻譯的元素,其屬性值在Schema中被明確指定,在XML實(shí)例中不能改變。各元素的標(biāo)識(shí)符屬性值可以為任何數(shù)據(jù)類型,僅要求有唯一的取值。屬性次序采用有序列表來(lái)表示,其中羅列該元素允許出現(xiàn)的、需要進(jìn)行語(yǔ)種轉(zhuǎn)換的所有屬性。這些屬性應(yīng)該與所屬元素具有相同的命名空間。本發(fā)明限制元素使用其他命名空間的全局屬性,除非這些屬性不需要進(jìn)行語(yǔ)種轉(zhuǎn)換。
該過(guò)程包括在XML Schema中為要轉(zhuǎn)換的元素定義用于語(yǔ)種翻譯的標(biāo)識(shí)符屬性值和屬性次序?qū)傩灾担筙ML文檔在生成時(shí),每個(gè)需要轉(zhuǎn)換的元素具有特定的標(biāo)識(shí)符屬性值和特定順序的屬性次序?qū)傩灾怠.?dāng)XML文檔在不同語(yǔ)種之間翻譯時(shí),可以編寫(xiě)一套轉(zhuǎn)換程序,根據(jù)上述標(biāo)識(shí)符屬性值和屬性次序?qū)傩灾?,確定不同語(yǔ)種表示的元素和屬性之間的對(duì)應(yīng)關(guān)系,從而進(jìn)行準(zhǔn)確、有效的語(yǔ)種轉(zhuǎn)換。本發(fā)明主要可用于不同語(yǔ)種XML文檔(例如以XML表示的辦公文檔格式)之間的轉(zhuǎn)換,也可以用于確定數(shù)據(jù)元素之間的唯一對(duì)應(yīng)關(guān)系。
本發(fā)明與現(xiàn)有技術(shù)相比,具有明顯的優(yōu)點(diǎn)和有益的效果。本發(fā)明使以下情形變?yōu)榭赡芤粋€(gè)制定和發(fā)布某種XML文檔類型的機(jī)構(gòu),僅需維護(hù)一個(gè)語(yǔ)種的Schema版本。當(dāng)需要其他語(yǔ)種的版本時(shí),相關(guān)的機(jī)構(gòu)可以自行翻譯Schema并產(chǎn)生相應(yīng)語(yǔ)種的XML實(shí)例,僅要求保持元素的用于語(yǔ)種翻譯的標(biāo)識(shí)符屬性值和相同次序的元素次序?qū)傩灾?。這個(gè)文檔類型制定機(jī)構(gòu)便可以處理日后來(lái)自任何語(yǔ)種使用人群的同類型文檔,僅需設(shè)計(jì)一套轉(zhuǎn)換程序,便可以將任意語(yǔ)種的XML文檔轉(zhuǎn)換成原始的語(yǔ)種。
本發(fā)明也提供了一種機(jī)制,使得多語(yǔ)種的應(yīng)用可以通過(guò)標(biāo)識(shí)符來(lái)引用注冊(cè)庫(kù)中注冊(cè)的標(biāo)準(zhǔn)的數(shù)據(jù)元素,而數(shù)據(jù)元素標(biāo)準(zhǔn)制定機(jī)構(gòu)僅需發(fā)布和維護(hù)一個(gè)語(yǔ)種的版本,而不用擔(dān)心經(jīng)過(guò)多次翻譯之后,元素名稱會(huì)偏離原始的含義。
本發(fā)明大大方便了XML數(shù)據(jù)的處理和共享,能夠完全保持XML元素和屬性名稱所表達(dá)含義的精確性,也使XML的應(yīng)用突破了語(yǔ)言的障礙,具有較高的通用性、靈活性和實(shí)用性。
圖1為圖1是本發(fā)明的XML文檔轉(zhuǎn)換關(guān)系圖;
圖2是本發(fā)明的語(yǔ)種轉(zhuǎn)換過(guò)程框圖。
具體實(shí)施例方式
以下結(jié)合附圖和具體的實(shí)施例對(duì)本發(fā)明作進(jìn)一步的詳細(xì)說(shuō)明請(qǐng)參閱圖1,其為本發(fā)明的XML文檔轉(zhuǎn)換關(guān)系圖。首先,假定設(shè)計(jì)出中文版本的電子郵件XML Schema,其中的元素“收件人”的定義,具有如下表所列的屬性
屬性“toplocID”是元素“收件人”的用于語(yǔ)種翻譯的標(biāo)識(shí)符。它具有固定的屬性值“e1-4”。元素“收件人”有三個(gè)相同命名空間的屬性“發(fā)送”、“抄送”、“密送”。它們的次序由屬性“topattrList”的值“發(fā)送 抄送 密送”來(lái)指定。
然后,假定中文版本的電子郵件XML Schema被翻譯成英文,其中與中文版本的電子郵件XML Schema中元素“收件人”相對(duì)應(yīng)的元素“Receiver”的定義,其屬性如下
其用于語(yǔ)種翻譯的“l(fā)ocID”屬性值與“收件人”的“l(fā)ocID”屬性值相同,原來(lái)的三個(gè)屬性名稱“發(fā)送”、“抄送”、“密送”分別被翻譯成“sc”、“cc”、“bc”,表示屬性次序的“topattrList”屬性值所指明的上述三個(gè)屬性的出現(xiàn)次序與“收件人”的“topattrList”屬性值所指明的次序相同。
其次,根據(jù)上述翻譯的英文版本的電子郵件XML Schema生成一個(gè)英文的電子郵件XML實(shí)例,其中的元素“mailReceiver”其用于語(yǔ)種翻譯的“etoplocID”屬性值為“e1-4”,是由XML Schema規(guī)定的,其表示屬性次序的“etopattrList”屬性值為“sc cc bc”,也是由Schema規(guī)定的。實(shí)際出現(xiàn)的屬性為“sc”和“cc”,其屬性值均為“true”。
最后,設(shè)計(jì)一套程序,將上述實(shí)例轉(zhuǎn)換成中文實(shí)例。步驟如下(參見(jiàn)圖2)(1)翻譯根元素,重置命名空間聲明;(2)如果存在需要轉(zhuǎn)換的元素,則處理之;具體做法是(3)首先提取元素的“l(fā)ocID”屬性值;(4)判斷“l(fā)ocID”屬性值是否為已知的“l(fā)ocID”值(Schema中指定的值);(5)如果“el-4”不是已知的“l(fā)ocID”值;則按原樣復(fù)制元素,不做轉(zhuǎn)換;(6)用所要翻譯的語(yǔ)種的文字替代被翻譯語(yǔ)種的元素名;(7)提取該元素的“attrList”屬性值;(8)如果元素有實(shí)際出現(xiàn)的屬性,則分別處理之;具體的做法是(9)判斷該實(shí)際出現(xiàn)的屬性的命名空間是否與元素的命名空間相同;如果不屬于同一個(gè)命名空間,則原樣保留該屬性,轉(zhuǎn)(11);(10)查找該屬性的屬性名在“attrList”中的次序,根據(jù)該位置1,將相應(yīng)的屬性名進(jìn)行替換,即利用要翻譯的目標(biāo)語(yǔ)言替換被翻譯的相應(yīng)屬性名稱;(11)如果上述的步驟中未查到屬性名在“attrList”屬性值中的出現(xiàn)位置,則原樣保留該屬性;(12)繼續(xù)處理其他實(shí)際出現(xiàn)的屬性,轉(zhuǎn)(8);對(duì)于不進(jìn)行轉(zhuǎn)換的其他屬性(例如不屬元素命名空間的屬性),原樣拷貝不做轉(zhuǎn)換;(13)繼續(xù)處理其他元素,轉(zhuǎn)(2)。對(duì)于不進(jìn)行轉(zhuǎn)換的其他元素(如無(wú)“l(fā)ocID”屬性的元素),原樣拷貝不做轉(zhuǎn)換;(14)完成轉(zhuǎn)換。
本發(fā)明的兩個(gè)典型應(yīng)用場(chǎng)合為一個(gè)制定和發(fā)布某種XML文檔類型的機(jī)構(gòu),僅需維護(hù)一個(gè)語(yǔ)種的Schema版本。當(dāng)需要其他語(yǔ)種的版本時(shí),相關(guān)的機(jī)構(gòu)可以自行翻譯Schema并產(chǎn)生相應(yīng)語(yǔ)種的XML實(shí)例,僅要求保持元素的用于語(yǔ)種翻譯的標(biāo)識(shí)符屬性值和相同次序的元素次序?qū)傩灾?。這個(gè)文檔類型制定機(jī)構(gòu)便可以處理日后來(lái)自任何語(yǔ)種使用人群的同類型文檔,僅需設(shè)計(jì)一套轉(zhuǎn)換程序,便可以將任意語(yǔ)種的XML文檔轉(zhuǎn)換成原始的語(yǔ)種。
一個(gè)數(shù)據(jù)元素標(biāo)準(zhǔn)制定機(jī)構(gòu),使用本發(fā)明使得多語(yǔ)種的應(yīng)用可以通過(guò)標(biāo)識(shí)符來(lái)引用注冊(cè)庫(kù)中注冊(cè)的標(biāo)準(zhǔn)的數(shù)據(jù)元素,數(shù)據(jù)元素標(biāo)準(zhǔn)制定機(jī)構(gòu)僅需發(fā)布和維護(hù)一個(gè)語(yǔ)種的版本,而不用擔(dān)心經(jīng)過(guò)多次翻譯之后,元素名稱會(huì)偏離原始的含義。
在辦公文檔格式應(yīng)用領(lǐng)域,標(biāo)準(zhǔn)制定機(jī)構(gòu)采用第一語(yǔ)種元素名稱和屬性名稱設(shè)計(jì)XML Schema形式的文檔格式標(biāo)準(zhǔn)。這個(gè)Schema可以發(fā)布到其他語(yǔ)種的地區(qū),由相關(guān)機(jī)構(gòu)進(jìn)行翻譯,得到其他語(yǔ)種的Schema,再生成其他語(yǔ)種的XML實(shí)例。第一語(yǔ)種辦公文檔格式標(biāo)準(zhǔn)制定機(jī)構(gòu)設(shè)計(jì)一套通用的XSLT(Extensible Stylesheet Language Transformations)式樣單或轉(zhuǎn)換程序,將不同語(yǔ)種的XML實(shí)例文檔進(jìn)行轉(zhuǎn)換,得到符合第一語(yǔ)種XML Schema標(biāo)準(zhǔn)的第一語(yǔ)種XML實(shí)例,從而使符合第一語(yǔ)種辦公文檔格式標(biāo)準(zhǔn)的任何語(yǔ)種的XML文檔均可在支持該標(biāo)準(zhǔn)的第一語(yǔ)種辦公軟件中得到正確處理。既標(biāo)準(zhǔn)化了第一語(yǔ)種的文檔格式,又使得文檔可在使用不同語(yǔ)種的人群中交流,達(dá)到信息交換的目的。
最后應(yīng)說(shuō)明的是以上實(shí)施例僅用以說(shuō)明本發(fā)明而并非限制本發(fā)明所描述的技術(shù)方案;因此,盡管本說(shuō)明書(shū)參照上述的各個(gè)實(shí)施例對(duì)本發(fā)明已進(jìn)行了詳細(xì)的說(shuō)明,但是,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解,仍然可以對(duì)本發(fā)明進(jìn)行修改或者等同替換;而一切不脫離本發(fā)明的精神和范圍的技術(shù)方案及其改進(jìn),其均應(yīng)涵蓋在本發(fā)明的權(quán)利要求范圍當(dāng)中。
權(quán)利要求
1.一種不同語(yǔ)種XML文檔轉(zhuǎn)換的方法,其特征在于對(duì)于XML Schema中需要進(jìn)行不同語(yǔ)種轉(zhuǎn)換的元素,設(shè)置在實(shí)例中不可改變的、唯一的標(biāo)識(shí)符屬性,和屬性的次序?qū)傩?;?dāng)需要進(jìn)行XML文檔實(shí)例轉(zhuǎn)換時(shí),依據(jù)事先設(shè)計(jì)的轉(zhuǎn)換規(guī)則,將第一語(yǔ)種的XML文檔實(shí)例轉(zhuǎn)換為第二語(yǔ)種的XML文檔實(shí)例;具體的轉(zhuǎn)換過(guò)程如下步驟1翻譯根元素,重置命名空間聲明;步驟2對(duì)第一語(yǔ)種的XML文檔實(shí)例中需要轉(zhuǎn)換的元素,按照事先設(shè)計(jì)的轉(zhuǎn)換規(guī)則,將相應(yīng)的元素轉(zhuǎn)換為第二語(yǔ)種的XML文檔實(shí)例中的元素;直到所有的元素轉(zhuǎn)換完畢;步驟3結(jié)束轉(zhuǎn)換。
2.根據(jù)權(quán)利要求1所述的不同語(yǔ)種XML文檔轉(zhuǎn)換的方法,其特征在于所述的步驟2具體包括步驟21如果第一語(yǔ)種的XML文檔實(shí)例中存在需要轉(zhuǎn)換的元素,則執(zhí)行步驟22,否則執(zhí)行步驟28;步驟22提取當(dāng)前元素的唯一的標(biāo)識(shí)符屬性值;步驟23判斷該唯一的標(biāo)識(shí)符屬性值是否為已知;步驟24如果所述的唯一的標(biāo)識(shí)符屬性值不是已知的;則按原樣復(fù)制元素,不做轉(zhuǎn)換;否則按照事先設(shè)計(jì)的轉(zhuǎn)換規(guī)則用第二語(yǔ)種的相應(yīng)元素名替換所述第一語(yǔ)種的XML文檔實(shí)例中的相應(yīng)元素名;步驟25提取該元素的屬性次序?qū)傩灾?;步驟26判斷當(dāng)前元素是否有實(shí)際出現(xiàn)的屬性;步驟27如果有實(shí)際出現(xiàn)的屬性,則轉(zhuǎn)261。重復(fù)步驟26,直到所有的屬性都處理完畢;執(zhí)行步驟21;步驟28拷貝其他元素,以原樣保留不做轉(zhuǎn)換的元素。
3.根據(jù)權(quán)利要求2所述的不同語(yǔ)種XML文檔轉(zhuǎn)換的方法,其特征在于所述的步驟26具體包括步驟261判斷當(dāng)前元素中實(shí)際出現(xiàn)的屬性的命名空間與元素的命名空間是否相同;如果不同,則原樣保留該屬性,執(zhí)行步驟26;否則執(zhí)行步驟262;步驟262查找該屬性的屬性名在屬性次序?qū)傩灾抵械拇涡?,步驟263如果查到屬性名在屬性次序?qū)傩灾抵械某霈F(xiàn)位置,則依據(jù)事先設(shè)計(jì)的轉(zhuǎn)換規(guī)則,用第二語(yǔ)種的相應(yīng)屬性名替換該第一語(yǔ)種的XML文檔實(shí)例中的屬性名;步驟264如果未查到屬性名在屬性次序?qū)傩灾抵械某霈F(xiàn)位置,則原樣保留該屬性。
全文摘要
本發(fā)明公開(kāi)了一種不同語(yǔ)種XML文檔轉(zhuǎn)換的方法,它對(duì)XML Schema中需要進(jìn)行語(yǔ)種轉(zhuǎn)換的元素,設(shè)置在實(shí)例中不可改變的、唯一的標(biāo)識(shí)符屬性,和屬性次序?qū)傩?;?dāng)需要進(jìn)行XML文檔實(shí)例轉(zhuǎn)換時(shí),依據(jù)事先設(shè)計(jì)的轉(zhuǎn)換規(guī)則,將第一語(yǔ)種的XML文檔實(shí)例轉(zhuǎn)換為第二語(yǔ)種的XML文檔實(shí)例。本發(fā)明使以下情形變?yōu)榭赡芤粋€(gè)制定和發(fā)布某種XML文檔類型的機(jī)構(gòu),僅需維護(hù)一個(gè)語(yǔ)種的Schema版本。本發(fā)明使得多語(yǔ)種的應(yīng)用可通過(guò)標(biāo)識(shí)符引用,經(jīng)過(guò)多次翻譯之后,元素名稱不會(huì)偏離原始的含義。本發(fā)明方便了XML數(shù)據(jù)的處理和共享,能保持XML元素和屬性名稱含義的精確性,使XML應(yīng)用突破了語(yǔ)言障礙,具有通用性、靈活性和實(shí)用性。
文檔編號(hào)G06F9/44GK1719407SQ200410062398
公開(kāi)日2006年1月11日 申請(qǐng)日期2004年7月9日 優(yōu)先權(quán)日2004年7月9日
發(fā)明者李寧, 吳志剛, 丁蔚, 趙菁華 申請(qǐng)人:中國(guó)電子技術(shù)標(biāo)準(zhǔn)化研究所