• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    一種復(fù)雜的XML格式之間轉(zhuǎn)換的解決方案

    2009-02-01 03:29:42梁廣吉宋曉慧
    軟件工程 2009年11期
    關(guān)鍵詞:文檔

    梁廣吉 宋曉慧

    摘要:隨著網(wǎng)絡(luò)技術(shù)的迅速發(fā)展,越來(lái)越多的信息被以XML文檔形式來(lái)交換。XML具有開(kāi)放性、自描述性和平臺(tái)無(wú)關(guān)性,近來(lái)己成為網(wǎng)上應(yīng)用系統(tǒng)間數(shù)據(jù)交換的標(biāo)準(zhǔn)。本文提出了一種復(fù)雜的XML格式之間轉(zhuǎn)換的通用解決方案,解決了商務(wù)通信系統(tǒng)中不同XML格式文檔的數(shù)據(jù)轉(zhuǎn)換問(wèn)題,使得行業(yè)數(shù)據(jù)傳輸和表達(dá)按照行業(yè)規(guī)范自動(dòng)分析和處理。

    關(guān)鍵詞:XML;格式轉(zhuǎn)換;文檔

    隨著互聯(lián)網(wǎng)應(yīng)用需求及其相關(guān)支撐技術(shù)的發(fā)展,XML[1]的元語(yǔ)言特性及其本身良好的結(jié)構(gòu)性使它成為互聯(lián)網(wǎng)異構(gòu)環(huán)境中各種不同類(lèi)型和不同領(lǐng)域數(shù)據(jù)相互交換的開(kāi)放標(biāo)準(zhǔn)。XML格式之間的轉(zhuǎn)換是XML技術(shù)領(lǐng)域內(nèi)的一個(gè)比較常見(jiàn),且又是一個(gè)很重要的題。即使是在同一個(gè)行業(yè)的內(nèi)部,數(shù)據(jù)文檔的XML Schema之間的差距也非常大。企業(yè)信息系統(tǒng)的集成,數(shù)據(jù)信息的交換等都需要進(jìn)行XML數(shù)據(jù)格式之間的轉(zhuǎn)換工作。本文提供一種更適合于解決復(fù)雜的XML格式之間轉(zhuǎn)換的解決方案。該方案成功的解決了PDF的XAF文件格式,FileNet表單文件格式到IBM Lotus Forms表單文件格式的轉(zhuǎn)換工作。

    1 一種XML格式之間轉(zhuǎn)換的構(gòu)架

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

    圖1 XML格式轉(zhuǎn)換框架

    原文件(XML格式)通過(guò)解析器(Parser)解析生成數(shù)據(jù)信息,并存儲(chǔ)在數(shù)據(jù)模型里。數(shù)據(jù)模型是整個(gè)構(gòu)架的核心部分。數(shù)據(jù)模型主要是基于目標(biāo)文件的XML Schema[2]而構(gòu)建的,也可以基于目標(biāo)XML文件的領(lǐng)域知識(shí)構(gòu)建。它可以是普通的數(shù)據(jù)模型,也可以是基于EMF(Eclipse Modeling Framework)的數(shù)據(jù)模型。在對(duì)原XML文件進(jìn)行解析的過(guò)程中,解析器要根據(jù)基于原文件和目標(biāo)文件的XML Schema文件而生成的映射表中的信息,做相應(yīng)的解析優(yōu)化處理。

    在輸出目標(biāo)XML文件之前,優(yōu)化器和轉(zhuǎn)換規(guī)則先后對(duì)數(shù)據(jù)模型中的數(shù)據(jù)信息進(jìn)行相應(yīng)處理。配置文件在構(gòu)架中的作用是用來(lái)管理優(yōu)化器和轉(zhuǎn)換規(guī)則的。用戶可以根據(jù)業(yè)務(wù)邏輯的需要通過(guò)配置文件來(lái)定制優(yōu)化器和轉(zhuǎn)換規(guī)則??梢钥闯鲞@種解決方案的簡(jiǎn)單靈活性,可復(fù)用性和可擴(kuò)展性。只需為不同的原文件提供一個(gè)解析器就擴(kuò)展了構(gòu)架的應(yīng)用。

    2 構(gòu)建XML格式轉(zhuǎn)換的數(shù)據(jù)模型

    2.1 模板及其性質(zhì)

    數(shù)據(jù)模型是用來(lái)存儲(chǔ)解析進(jìn)來(lái)的數(shù)據(jù)信息的,它是構(gòu)架的核心部分。目前有兩種構(gòu)建數(shù)據(jù)模型的辦法:普通的數(shù)據(jù)模型和基于EMF技術(shù)構(gòu)建的數(shù)據(jù)模型。

    普通的數(shù)據(jù)模型是應(yīng)用普通的Java類(lèi)來(lái)構(gòu)建,主要是基于目標(biāo)文件的領(lǐng)域知識(shí),通常是結(jié)構(gòu)化的數(shù)據(jù)模型。這種模型構(gòu)建的優(yōu)點(diǎn)是簡(jiǎn)單、通用,主要的缺點(diǎn)是需要構(gòu)建輸出模塊從而把模型中的信息輸出為滿足目標(biāo)XML Schema的XML文件。圖2顯示了在電子表單領(lǐng)域中應(yīng)用的結(jié)構(gòu)化數(shù)據(jù)模型片段。

    圖2 電子表單領(lǐng)域的結(jié)構(gòu)化數(shù)據(jù)模型片段

    基于EMF技術(shù)構(gòu)建數(shù)據(jù)模型的技術(shù)已經(jīng)相當(dāng)成熟。我們主要應(yīng)用目標(biāo)文件的XML Schema來(lái)構(gòu)建EMF數(shù)據(jù)模型?;贓MF的數(shù)據(jù)模型具有事件通知機(jī)制和持久化方面的支持。因此,模型帶來(lái)的最大的好處就是開(kāi)發(fā)者不必自己動(dòng)手構(gòu)建輸出模塊。

    模型的構(gòu)建是XML格式之間轉(zhuǎn)換的關(guān)鍵。構(gòu)建的模型應(yīng)當(dāng)滿足應(yīng)用程序的需求(對(duì)照映射表,模型要完全支持原文件中的可匹配信息),不要求模型囊括相關(guān)領(lǐng)域的所有通用知識(shí),但模型提供給原文件解析器的API應(yīng)該簡(jiǎn)單易用,模型要具有高可擴(kuò)展性和良好的可維護(hù)性。

    3 優(yōu)化器(Optimizers)在解析原XML文件中的應(yīng)用

    當(dāng)原XML文件中的信息被解析進(jìn)來(lái),并存儲(chǔ)在已經(jīng)建立的數(shù)據(jù)模型里,此時(shí)的數(shù)據(jù)模型稱為原始數(shù)據(jù)模型,模型里面的數(shù)據(jù)信息稱為原始數(shù)據(jù)信息。我們根據(jù)目標(biāo)XML文件的特性,需要對(duì)原始數(shù)據(jù)信息進(jìn)行優(yōu)化處理??梢愿鶕?jù)需要?jiǎng)?chuàng)建若干個(gè)Optimizers。

    根據(jù)電子表單領(lǐng)域的實(shí)際需要,我們創(chuàng)建了很多Optimizers。舉例如下:

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

    我們通過(guò)對(duì)以上Optimizers的應(yīng)用,使得PDF文件的轉(zhuǎn)換效果更佳。

    事實(shí)上,優(yōu)化器的開(kāi)發(fā)應(yīng)用取決于兩種格式文件之間的可匹配的程度。如果兩種文件的可匹配性很高,基本上不用開(kāi)發(fā)優(yōu)化器。反之,為了使數(shù)據(jù)平滑輸出,需要根據(jù)業(yè)務(wù)邏輯的需要進(jìn)行相應(yīng)的優(yōu)化處理。

    此外,如果某種原文件的解析器需要用戶通過(guò)UI配置一些解析參數(shù)的話,我們也可以提供Parser階段應(yīng)用的“Optimizers”。舉例來(lái)說(shuō),原XML文件的某個(gè)元素和可匹配的目標(biāo)XML文件的相應(yīng)元素是一對(duì)多的關(guān)系,那么Parser的解析就有了多種選擇。這時(shí)候,讓用戶進(jìn)行選擇似乎是最合理的解析策略了。

    4 轉(zhuǎn)換規(guī)則在生成目標(biāo)XML[3]文件格式中應(yīng)用

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

    5 應(yīng)用配置文件管理Optimizers和Rules

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

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

    xml version="1.0" encoding="UTF-8"?

    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

    version control is applied for developer

    2

    Sample .form Profile

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

    form

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

    FAlignOptimizer

    yes

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

    no

    猜你喜歡
    文檔
    淺談Matlab與Word文檔的應(yīng)用接口
    客聯(lián)(2022年3期)2022-05-31 04:28:08
    有人一聲不吭向你扔了個(gè)文檔
    基于RI碼計(jì)算的Word復(fù)制文檔鑒別
    Persistence of the reproductive toxicity of chlorpiryphos-ethyl in male Wistar rat
    Office Word文檔溯源方法研究
    不讓他人隨意下載Google文檔
    電腦迷(2012年4期)2012-04-29 06:12:13
    边坝县| 瓮安县| 九龙城区| 博罗县| 九龙县| 新津县| 辽宁省| 衡南县| 上饶县| 河南省| 繁昌县| 秦皇岛市| 冀州市| 岳普湖县| 新丰县| 株洲市| 客服| 上虞市| 贡嘎县| 凭祥市| 佳木斯市| 永仁县| 长汀县| 阆中市| 临桂县| 罗江县| 密云县| 巴林左旗| 隆子县| 思茅市| 东阿县| 嘉黎县| 房产| 莎车县| 娱乐| 土默特左旗| 新蔡县| 沅江市| 银川市| 瑞安市| 油尖旺区|