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