999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

一種復雜的XML格式之間轉換的解決方案

2009-04-29 00:00:00梁廣吉宋曉慧
軟件工程 2009年11期

摘要:隨著網絡技術的迅速發展,越來越多的信息被以XML文檔形式來交換。XML具有開放性、自描述性和平臺無關性,近來己成為網上應用系統間數據交換的標準。本文提出了一種復雜的XML格式之間轉換的通用解決方案,解決了商務通信系統中不同XML格式文檔的數據轉換問題,使得行業數據傳輸和表達按照行業規范自動分析和處理。

關鍵詞:XML;格式轉換;文檔

隨著互聯網應用需求及其相關支撐技術的發展,XML[1]的元語言特性及其本身良好的結構性使它成為互聯網異構環境中各種不同類型和不同領域數據相互交換的開放標準。XML格式之間的轉換是XML技術領域內的一個比較常見,且又是一個很重要的題。即使是在同一個行業的內部,數據文檔的XML Schema之間的差距也非常大。企業信息系統的集成,數據信息的交換等都需要進行XML數據格式之間的轉換工作。本文提供一種更適合于解決復雜的XML格式之間轉換的解決方案。該方案成功的解決了PDF的XAF文件格式,FileNet表單文件格式到IBM Lotus Forms表單文件格式的轉換工作。

1 一種XML格式之間轉換的構架

不同XML格式之間的轉換工作是常見而又非常重要的。在IT領域,為了解決這一問題,各種新方法、新技術層出不窮。比如利用XSLT[4]等技術進行XML數據格式的轉換,XSLT(Extensible Stylesheet Language Transformations)是一種基于XML的一種語言,用以將一種XML格式數據轉換為另一種XML格式數據,也可以轉換成任意其它格式的數據。而對于復雜轉換經常是困難的,甚至是不可能的。又比如RDF/RDFS/OWL技術(XML Schema是用來定義XML文檔結構,而RDFS/OWL(本體描述語言)則定義了文檔詞匯,提供了一種共同的理解)。本文提出了一種XML格式之間轉換的方案構架。如圖1所示。

圖1 XML格式轉換框架

原文件(XML格式)通過解析器(Parser)解析生成數據信息,并存儲在數據模型里。數據模型是整個構架的核心部分。數據模型主要是基于目標文件的XML Schema[2]而構建的,也可以基于目標XML文件的領域知識構建。它可以是普通的數據模型,也可以是基于EMF(Eclipse Modeling Framework)的數據模型。在對原XML文件進行解析的過程中,解析器要根據基于原文件和目標文件的XML Schema文件而生成的映射表中的信息,做相應的解析優化處理。

在輸出目標XML文件之前,優化器和轉換規則先后對數據模型中的數據信息進行相應處理。配置文件在構架中的作用是用來管理優化器和轉換規則的。用戶可以根據業務邏輯的需要通過配置文件來定制優化器和轉換規則。可以看出這種解決方案的簡單靈活性,可復用性和可擴展性。只需為不同的原文件提供一個解析器就擴展了構架的應用。

2 構建XML格式轉換的數據模型

2.1 模板及其性質

數據模型是用來存儲解析進來的數據信息的,它是構架的核心部分。目前有兩種構建數據模型的辦法:普通的數據模型和基于EMF技術構建的數據模型。

普通的數據模型是應用普通的Java類來構建,主要是基于目標文件的領域知識,通常是結構化的數據模型。這種模型構建的優點是簡單、通用,主要的缺點是需要構建輸出模塊從而把模型中的信息輸出為滿足目標XML Schema的XML文件。圖2顯示了在電子表單領域中應用的結構化數據模型片段。

圖2 電子表單領域的結構化數據模型片段

基于EMF技術構建數據模型的技術已經相當成熟。我們主要應用目標文件的XML Schema來構建EMF數據模型。基于EMF的數據模型具有事件通知機制和持久化方面的支持。因此,模型帶來的最大的好處就是開發者不必自己動手構建輸出模塊。

模型的構建是XML格式之間轉換的關鍵。構建的模型應當滿足應用程序的需求(對照映射表,模型要完全支持原文件中的可匹配信息),不要求模型囊括相關領域的所有通用知識,但模型提供給原文件解析器的API應該簡單易用,模型要具有高可擴展性和良好的可維護性。

3 優化器(Optimizers)在解析原XML文件中的應用

當原XML文件中的信息被解析進來,并存儲在已經建立的數據模型里,此時的數據模型稱為原始數據模型,模型里面的數據信息稱為原始數據信息。我們根據目標XML文件的特性,需要對原始數據信息進行優化處理。可以根據需要創建若干個Optimizers。

根據電子表單領域的實際需要,我們創建了很多Optimizers。舉例如下:

(a)線(Line)的對齊、連接,如圖4所示:

我們通過對以上Optimizers的應用,使得PDF文件的轉換效果更佳。

事實上,優化器的開發應用取決于兩種格式文件之間的可匹配的程度。如果兩種文件的可匹配性很高,基本上不用開發優化器。反之,為了使數據平滑輸出,需要根據業務邏輯的需要進行相應的優化處理。

此外,如果某種原文件的解析器需要用戶通過UI配置一些解析參數的話,我們也可以提供Parser階段應用的“Optimizers”。舉例來說,原XML文件的某個元素和可匹配的目標XML文件的相應元素是一對多的關系,那么Parser的解析就有了多種選擇。這時候,讓用戶進行選擇似乎是最合理的解析策略了。

4 轉換規則在生成目標XML[3]文件格式中應用

數據模型里面的信息經過優化后,就可以輸出或者序列化為滿足目標XML Schema的數據文件。在這個過程中,我們又可以根據用戶的轉換要求執行一些通用的轉換規則。比如在電子表單領域,用戶經常有這樣的轉換要求:對轉換后的電子表單文件,要求統一更改標簽(Label)的前景顏色(Font color),統一更改頁面(Page)的背景顏色(background color),所有轉換后的文件都要加入一個標準的包含企業標志(Logo)的Toolbar模版等等。這些轉換要求可以以轉換規則的形式存在。用戶可以開發定制并應用自己的轉換規則來批量轉換原文件。對比Optimizers,我們知道轉換規則主要是針對目標文件的通用操作的。用戶對目標文件的常用的操作都可以以Rules的形式存在于轉換框架里,極大的豐富了格式轉換的框架。

5 應用配置文件管理Optimizers和Rules

配置文件就是一個XML格式的文件,用以持久化管理所有的Optimizers和Rules。用戶可以通過定制Optimizers和Rules來配置自己的Profile(通常情況下,每一種原文件的解析器都對應一個缺省默認的Profile。系統還為所有解析器(包括用戶定制的解析器,既第三方解析器)提供了一個可擴展的通用的 Profile)。在轉換的過程中,需要加載Profile,進而應用里面的優化器和轉換規則來對數據模型進行深入處理,從而完成轉換工作。

清單1. 給出了 Profile 文件的示例片段。

http://sample.com.cn/profile

xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"

xsi:schemaLocation=\"http://sample.com.cn/profile ProfileSchema.xsd \">

com.ibm.conversion.demo.eform.form

2

Sample .form Profile

< !-- 假定有一個后綴名為 .form 的基于 XML 格式的電子表單文件 -->

form

com.ibm.conversion.demo.eform.optimizer.

FAlignOptimizer

yes

com.ibm.coversion.demo.eform.rule.ChangeAppearance

no

XML使得不同應用系統間能夠方便地交換數據,從而實現異構系統的集成。本文提供了一種復雜的XML格式之間轉換的通用解決方案。該方案的主要特點是構架靈活、可擴展,可以用來解決復雜文件格式的轉換問題。用戶只要為非XML格式的文件寫一個解析器,XML格式轉換的問題就會迎刃而解。用戶根據模型里的數據信息,為某一特殊文件格式寫一個輸出器(Output Writer),任何兩種文件格式的轉換問題都可以基于文中框架來解決了。由于以XML為基礎的數據轉換大大降低了數據轉換的復雜程度,因此其應用領域將會隨著英特網技術和XML技術的發展而不斷得以推廣,XML 也將成為在Internet上的信息交換的重要工具。

參考文獻

[1]Deutsh A,et al.A query language for XML[J].Computer Networks 31(May),1155-1169.

[2]XMLSehema1.1 Partl:Structures, W3C Working Draft 31August2006, http://www.w3.org/TR/xmlschemal1-1,2006.

[3]W3C, Extensible Markup Language(XML)1.0, (Second Edition), http://www.w3.org/TR/REC-XML-20001006,2000.

[4]John E.SirnPson. XSL技術實踐[M],北京:機械工業出版社,2002.

主站蜘蛛池模板: 欧美国产精品拍自| 99在线免费播放| a天堂视频| 国产精品内射视频| 热这里只有精品国产热门精品| 国产美女免费| 正在播放久久| 99久久国产综合精品2020| 永久免费精品视频| av在线5g无码天天| 日韩专区第一页| 青青草原国产| 色婷婷天天综合在线| 国产一级在线播放| 91 九色视频丝袜| 日韩在线第三页| 国产农村精品一级毛片视频| 一区二区三区四区日韩| 国产精品亚洲αv天堂无码| 香蕉国产精品视频| 欧美精品成人一区二区视频一| 免费无遮挡AV| 99视频在线免费| 999精品色在线观看| 国产精品lululu在线观看| 99无码中文字幕视频| 国产在线第二页| 久久成人免费| 国产精品成人不卡在线观看| 亚洲成a∧人片在线观看无码| 久久精品国产91久久综合麻豆自制| 国产欧美精品一区二区| 国产欧美一区二区三区视频在线观看| 天天摸天天操免费播放小视频| 无码日韩视频| 亚洲中文字幕在线精品一区| 日本人妻一区二区三区不卡影院| 欧洲精品视频在线观看| 9cao视频精品| 亚洲一欧洲中文字幕在线| 国产肉感大码AV无码| 中文无码影院| 影音先锋丝袜制服| 丰满人妻中出白浆| 精品无码国产一区二区三区AV| 亚洲IV视频免费在线光看| 日本黄色不卡视频| 国产丝袜精品| 丁香婷婷激情网| 欧美精品成人一区二区视频一| 久久96热在精品国产高清| 国产精品亚洲αv天堂无码| 超薄丝袜足j国产在线视频| 日韩欧美中文在线| 免费观看男人免费桶女人视频| 国产网站免费看| 欧美一区二区自偷自拍视频| 日本爱爱精品一区二区| 国产女人18水真多毛片18精品 | 精品成人免费自拍视频| 成年女人18毛片毛片免费| 久久久精品无码一区二区三区| 国产成人免费观看在线视频| 在线观看网站国产| 国产sm重味一区二区三区| 久久精品国产精品国产一区| 亚洲区欧美区| 久久视精品| 亚洲区欧美区| 欧美亚洲日韩中文| av在线手机播放| 成人午夜免费观看| 久夜色精品国产噜噜| 四虎AV麻豆| 91福利一区二区三区| 欧美日韩亚洲国产主播第一区| 欧美成在线视频| 日本欧美精品| 久久精品无码一区二区国产区| 特级aaaaaaaaa毛片免费视频| 亚洲高清免费在线观看| 中国一级特黄大片在线观看|