專利名稱:用于處理xml表格中的輸入的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及用于處理XML表格中的輸入的方法和系統(tǒng)。
背景技術(shù):
基于內(nèi)容的路由是信息技術(shù)的許多情形中的重要方面。例如,如果用 戶將一些數(shù)據(jù)輸入到經(jīng)由因特網(wǎng)而在他的瀏覽器的屏幕上出現(xiàn)的表格中, 則該數(shù)據(jù)的進(jìn)一步處理通常取決于用戶所輸入的內(nèi)容。數(shù)據(jù)庫的元素例如 可以被修改、刪除,或者新的元素可以基于用戶輸入而被加入到這樣所出 現(xiàn)的表格中。
在基于內(nèi)容的路由的現(xiàn)有技術(shù)方法中,在第一步驟中發(fā)送表格到客戶 端,該發(fā)送可能響應(yīng)于來自客戶端的相應(yīng)請求。在等待了一定量的時(shí)間或 者等待到來自用戶的提交命令之后,取回響應(yīng)表格,即具有用戶所進(jìn)行的 修改的表格。隨后,通常是XML文檔的響應(yīng)表格被基于其內(nèi)容而處理。
為此,用絕對選擇路徑來處理響應(yīng)表格中的條目。例如,無論某個(gè)條 件是否滿足,都可以調(diào)查包含在響應(yīng)表格的某行中的用戶地址,這確定表 格的所取回?cái)?shù)據(jù)的以一種方式或者以另一種方式的進(jìn)一步處理。如果整個(gè) 響應(yīng)表格將被評估,則所有的條目都必須被以這種方式調(diào)査。可以提供響 應(yīng)表格的缺省處理,但是,這將僅在響應(yīng)表格的所有相關(guān)條目被順序地處 理并且與此有關(guān)的條件都未達(dá)到的情況下正確地工作。但是,主要缺點(diǎn)是 表格結(jié)構(gòu)已經(jīng)發(fā)生的小變化以及因此響應(yīng)表格將需要處理邏輯的實(shí)質(zhì)性修 正,這是因?yàn)榻^對選擇路徑將不再與改變后的表格的希望條目相匹配。
因此,本發(fā)明的技術(shù)問題是提供基于內(nèi)容的路由的更加靈活的方法和 系統(tǒng),尤其用于處理XML表格中的輸入,這克服了現(xiàn)有技術(shù)的上述缺 占。
發(fā)明內(nèi)容
在本發(fā)明的一個(gè)技術(shù)方案中,該問題由一種用于處理XML表格中的 輸入的方法來解決,該方法包括提供模板XML表格、接收經(jīng)修改的XML 表格、識別模板XML表格和經(jīng)修改的XML表格之間的差別以及基于所識 別出的差別而進(jìn)一步處理經(jīng)修改的XML表格的步驟。
因此,模板用作參考。填寫表格的用戶或web服務(wù)應(yīng)用程序的輸入被 通過跟蹤經(jīng)修改的表格和參考表格之間的差別而處理。考慮已經(jīng)包含在模 板表格中的信息,而不是分析整個(gè)文檔,以使得僅兩個(gè)表格之間的差別或 者增量確定表格的進(jìn)一步處理。因此,減少了所需要的處理時(shí)間。此外, 如果表格的模式改變,則經(jīng)修改的XML表格的模式也將以類似的方式改 變,以使得兩個(gè)表格之間所產(chǎn)生的差別不受該變化的影響。因此,評估邏 輯不必適應(yīng)于改變后的模式卻仍然可以用于處理輸入,這減少了總的配置 努力并且允許解決方案的快速原型制作(prototyping)。
在優(yōu)選的實(shí)施例中,識別模板XML表格和經(jīng)修改的XML表格之間的 差別的步驟被限制于與模板XML表格和/或所述經(jīng)修改的XML表格中的 預(yù)定條目有關(guān)的差別,其中優(yōu)選地,使用涉及一個(gè)或多個(gè)事件偵聽器的可 配置的比較器。因此,不是可以跟蹤模板表格和經(jīng)修改的表格之間的所有 差別,而是僅可以跟蹤由比較器的合適的事件偵聽器所識別的差別,所述 合適的事件偵聽器例如是識別經(jīng)修改的XML表格中的一個(gè)或多個(gè)增加的 條目的增加事件偵聽器、識別經(jīng)修改的XML表格中的一個(gè)或多個(gè)經(jīng)修改 的條目的修改事件偵聽器和/或識別經(jīng)修改的XML表格中的一個(gè)或多個(gè)刪 除的條目的刪除事件偵聽器。因此,選擇合適的事件偵聽器是配置比較器 的一種方式。
在一個(gè)實(shí)施例中,另外存在缺省偵聽器,該缺省偵聽器識別模板 XML表格和經(jīng)修改的XML表格之間的不被任何其他任何事件偵聽器所識 別的差別。缺省偵聽器增加了所述方法的可靠性,這是因?yàn)槠浯_保任何差 別都被以預(yù)定方式處理。
由于事件偵聽器優(yōu)選地彼此獨(dú)立操作,因此它們可以并行處理經(jīng)修改 的XML表格以增大總的處理速度。
在本發(fā)明當(dāng)前優(yōu)選的實(shí)施例中,識別模板XML表格和經(jīng)修改的XML 表格之間差別的步驟包括使用識別兩個(gè)XML表格的差別的XML差別跟蹤 器,其中,XML差別跟蹤器選擇性地意識到命名空間和/或意識到留白和/ 或選擇性地意識到將要比較的兩個(gè)XML文檔的元素的不同順序。
根據(jù)本發(fā)明的另一個(gè)技術(shù)方案,本發(fā)明涉及一種用于將輸入處理成適 應(yīng)于執(zhí)行上述方法的XML表格的系統(tǒng)。
在下面的詳細(xì)描述中,參考附圖,進(jìn)一步描述本發(fā)明當(dāng)前優(yōu)選的實(shí)施
例
圖1:本發(fā)明的一個(gè)用于處理XML表格中的輸入的實(shí)施例的示意
圖2:可以用于圖1的實(shí)施例中的示例性XML模板表格;
圖3:由用戶、web服務(wù)應(yīng)用程序等進(jìn)行修改之后的圖2的XML表
格;
圖5:圖1中的比較器的示例性輸出,該示例性輸出顯示圖4的表中 結(jié)果。
具體實(shí)施例方式
圖1給出了根據(jù)本發(fā)明一當(dāng)前優(yōu)選實(shí)施例的方法和系統(tǒng)的示意圖。鑒 于工作流程的優(yōu)選順序在圖1中用實(shí)線示出,影響XML表格的處理的配 置數(shù)據(jù)用虛線示出。
在步驟10中,XML表格被例如經(jīng)由因特網(wǎng)發(fā)送給用戶。盡管本發(fā)明 將通常在這樣的情形中使用其中,用戶在上面進(jìn)行其輸入的計(jì)算機(jī)系統(tǒng) 不同于評估和處理輸入的計(jì)算機(jī)系統(tǒng),但是所有步驟也可以在單個(gè)機(jī)器上 執(zhí)行,該機(jī)器不僅接收用戶輸入還根據(jù)本發(fā)明的方法處理輸入。此外,在 下面的描述中,術(shù)語用戶不僅包括操作用戶界面的人類用戶,還包括用于
填寫XML表格的任何一種軟件或者自動(dòng)化過程,例如SOA (面向服務(wù)的 體系結(jié)構(gòu))中的web服務(wù)應(yīng)用程序。
在步驟10中發(fā)送給用戶的XML表格已在前一步驟5中配置,以使得 可以從用戶獲得希望的信息。在步驟20中,系統(tǒng)等待來自用戶的響應(yīng)。 在一定量的時(shí)間之后或者當(dāng)用戶指出輸入完成時(shí),經(jīng)修改的表格被轉(zhuǎn)發(fā)給 比較器30。
比較器30對經(jīng)修改的XML表格的操作由許多事件偵聽器來確定。例 如,可以存在事件偵聽器31,其驗(yàn)證用戶是否已經(jīng)向包含在最初的XML 表格中的列表中加入一項(xiàng)目。換句話說,事件偵聽器31對最初的XML表 格和經(jīng)修改的XML表格之間的差別進(jìn)行的分析限于識別用戶向列表中加 入的任何項(xiàng)目??偟腦ML表格的任何其他變化將不被事件偵聽器31所登 記。
以類似的方式,可以存在另一事件偵聽器32,其被限制于分析XML 表格中所載明的用戶地址的變化。此外,事件偵聽器32將忽略最初的 XML表格和從用戶接收到的經(jīng)修改的XML表格之間的任何其他差別。
事件偵聽器31和32兩者可以另外包括如何進(jìn)一步處理從用戶接收到 的經(jīng)修改的XML表格中的各個(gè)數(shù)據(jù)的指令。在圖1中,這由從各個(gè)事件 偵聽器31、 32延伸到相應(yīng)處理步驟41、 42的虛線示出。清楚的是,這兩 個(gè)事件偵聽器31和32僅是各種不同的事件偵聽器(未示出)的示例,這 些不同的事件偵聽器中的每個(gè)都可以用于識別經(jīng)修改的XML表格與最初 的XML表格相比的一個(gè)或多個(gè)差別。例如,可以存在檢測任何已被從訂 單列表中刪除的項(xiàng)目的另一個(gè)事件偵聽器,或者識別己被修改的項(xiàng)目的另 一事件偵聽器??偟膩碚f,事件偵聽器為比較器30的配置提供非常靈活 的手段,以使得用戶輸入的實(shí)際處理可以容易地適應(yīng)于變化的要求。
另外,可以存在缺省事件偵聽器35,其識別其他事件偵聽器所不處理 的、用戶對最初的XML表格所進(jìn)行的所有修改。提供缺省事件偵聽器35 將確保所有來自用戶的輸入都被處理。缺省事件偵聽器35例如可以提供 錯(cuò)誤處置,即在不允許的用戶條目的情況下所執(zhí)行的處理步驟,例如顯示 錯(cuò)誤消息或者返回到步驟10以將最初的XML表格再次提供給用戶以供修改。
圖1中處理步驟41、 42和45的并行安排反映了各種事件偵聽器31、 32和35的操作可以同時(shí)發(fā)生,從而減少全面分析經(jīng)修改的XML表格所必 需的處理時(shí)間。與現(xiàn)有技術(shù)相比,并行處理將不會(huì)影響缺省事件偵聽器35 對其他事件偵聽器所不識別的所有差別進(jìn)行跟蹤的可靠性。
下面,將參考圖2所示的示例性XML文檔100來進(jìn)一步說明上面參 考圖l所一般描述的系統(tǒng)的操作。如圖可見,XML文檔100是包括銀行細(xì) 節(jié)、地址以及起初為空的訂單列表的訂單模板。這樣的XML文檔例如可 以用作處理在線商店(未示出)的顧客訂單的技術(shù)手段。
但是,要注意到,本發(fā)明不針對或者局限于特定的商業(yè)模型或商業(yè)規(guī) 則。相反,XML文檔100和200僅是示例,本發(fā)明也可以用于分析其他類 型的XML文檔,所述其他類型的XML文檔例如指示裝配線上將被裝配的 機(jī)器部件。此外,盡管XML文檔100已經(jīng)包含許多文本節(jié)點(diǎn),但是也可 以存在空的模板用于本發(fā)明的方法和系統(tǒng)的所述實(shí)施例。
圖3給出了從用戶對最初的XML文檔IOO進(jìn)行的修改得到的XML文 檔200的示例。如圖可見,地址已被改變并且兩個(gè)項(xiàng)目被加入到訂單列表 中。本發(fā)明的方法和系統(tǒng)使用對XML文檔100和200進(jìn)行的結(jié)構(gòu)化且可 配置的比較來識別來自用戶的相關(guān)輸入,而不是獨(dú)自地分析經(jīng)修改的 XML文檔200。
該比較的結(jié)果在圖4的表中示出。因此,上述事件偵聽器31識別出 訂單列表中的兩個(gè)新項(xiàng)目,并且事件偵聽器32注意到顧客的地址變化。 取決于這些數(shù)據(jù)變化,在進(jìn)一步的處理步驟期間將觸發(fā)不同的動(dòng)作。例 如,新項(xiàng)目的發(fā)現(xiàn)可以啟動(dòng)用于收集和包裝這些項(xiàng)目的過程,以使得它們 可被發(fā)送給顧客。所識別出的地址變化可以用于更新顧客數(shù)據(jù)庫。這兩個(gè) 過程顯然不相關(guān),因此可以并行執(zhí)行。
要注意到,比較器30對XML文檔100和200的分析結(jié)果在很大程度 上與XML模板文件IOO的具體結(jié)構(gòu)無關(guān)。例如,如果XML文檔100包含 指示顧客生日的另外標(biāo)簽,則事件偵聽器31和32的處理邏輯將不必被適 應(yīng)性修改,但仍將得到上述結(jié)果。這較之基于絕對選擇路徑對經(jīng)修改的XML文檔200進(jìn)行的分析有很大優(yōu)勢。這里,XML文檔的結(jié)構(gòu)變化在多 數(shù)情況下將需要處理邏輯的適應(yīng)性修改。
圖5給出了如何可以在比較器的HTML報(bào)告中突出圖4的表中結(jié)果的 示例。如圖可見,該報(bào)告指示所有的變化,即新的街道地址以及兩個(gè)增加 的項(xiàng)目。如圖5的上部所示,該報(bào)告另外可以指示用于對兩個(gè)XML文檔 進(jìn)行比較的工具的具體配置設(shè)置,這將在下面更詳細(xì)地進(jìn)行描述。
在本發(fā)明的一個(gè)實(shí)施例中,比較器30利用工具XML差別跟蹤器 (Difference Tracker)來比較兩個(gè)XML文檔100和200, XML差別跟蹤 器當(dāng)前從申請人處可得到并且在下面進(jìn)行描述。
XML差別跟蹤器使得可以比較XML文檔和樹。其提供各種選項(xiàng),例 如高級命名空間處置,即用于區(qū)分駐留在不同的命名空間中的元素和屬性 的命名空間意識、前綴意識以及用于區(qū)分具有相同內(nèi)容但具有不同編排的 XML文檔的留白(whitespace)意識。此外,可以用XPATH語句來選擇 或丟棄XML文檔內(nèi)的子樹。
另外,XML差別跟蹤器可以被配置為區(qū)分具有相同文本節(jié)點(diǎn)但是順 序不同的XML文檔?;蛘撸容^工具可以被設(shè)置為忽略所比較的XML文 檔的節(jié)點(diǎn)順序。
XML差別跟蹤器可以產(chǎn)生具有高亮并使用定制模板的HTML輸出。 其他選項(xiàng)是XML輸出,其中差別被報(bào)告為XPATH語句或者布爾輸出, 其中發(fā)現(xiàn)兩個(gè)XML文檔或者是相同的(真)或者是不相同的(假)。 XML差別跟蹤器的輸入XML文檔可以作為URL、文件或者流而可用。
因此,XML差別跟蹤器具有上述適于用在本發(fā)明一實(shí)施例的上述比 較器中的各種可能設(shè)置,以使得經(jīng)修改的XML文檔200的處理可以被修 整為符合實(shí)現(xiàn)所述方法和系統(tǒng)的機(jī)構(gòu)的處理要求。
權(quán)利要求
1.一種用于處理XML表格中的輸入的方法,該方法包括以下步驟a.提供模板XML表格(100);b.接收經(jīng)修改的XML表格(200);c.識別所述模板XML表格(100)和所述經(jīng)修改的XML表格(200)之間的差別;以及d.基于所識別出的差別而進(jìn)一步處理所述經(jīng)修改的XML表格(200)。
2. 如權(quán)利要求1所述的方法,其中,步驟c.被限制于與所述模板XML 表格(100)和/或所述經(jīng)修改的XML表格(200)中的預(yù)定條目有關(guān)的差 別。
3. 如權(quán)利要求1或2所述的方法,其中,步驟c.由涉及一個(gè)或多個(gè)事 件偵聽器(31、 32)的可配置比較器GO)執(zhí)行。
4. 如權(quán)利要求3所述的方法,其中,所述比較器(30)涉及事件偵聽 器組中的至少一個(gè),所述事件偵聽器組包括識別所述經(jīng)修改的XML表格(200)中的一個(gè)或多個(gè)增加的條目的增加事件偵聽器(31)、識別所述 經(jīng)修改的XML表格(200)中的一個(gè)或多個(gè)經(jīng)修改的條目的修改事件偵聽 器(32)和識別所述經(jīng)修改的XML表格(200)中的一個(gè)或多個(gè)刪除的條 目的刪除事件偵聽器。
5. 如權(quán)利要求3或4所述的方法,其中,所述一個(gè)或多個(gè)事件偵聽器 包括缺省偵聽器(35),該缺省偵聽器(35)識別所述模板XML表格(100)和所述經(jīng)修改的XML表格(200)之間的不被任何其他事件偵聽 器(31、 32)所識別的差別。
6. 如在前的權(quán)利要求3-5中任一項(xiàng)所述的方法,其中,兩個(gè)事件偵聽 器(31、 32)并行地處理所述經(jīng)修改的XML表格(200)。
7. 如在前的權(quán)利要求中任一項(xiàng)所述的方法,其中,所述步驟c.包括使 用識別兩個(gè)XML表格(100、 200)的差別的XML差別跟蹤器。
8. 如權(quán)利要求7所述的方法,其中,所述XML差別跟蹤器選擇性地意識到命名空間。
9. 如權(quán)利要求7或8所述的方法,其中,所述XML差別跟蹤器選擇 性地意識到留白。
10. 如在前的權(quán)利要求7-9中任一項(xiàng)所述的方法,其中,所述XML差 別跟蹤器選擇性地意識到將要比較的兩個(gè)XML表格中的元素的不同順 序。
11. 一種用于將輸入處理成適應(yīng)于執(zhí)行權(quán)利要求i-io中任一項(xiàng)所述的 方法的XML表格的系統(tǒng)。
全文摘要
本發(fā)明涉及一種用于處理XML表格中的輸入的方法和系統(tǒng),所述方法和系統(tǒng)包括向用戶提供模板XML表格(100)、從用戶處接收經(jīng)修改的XML表格(200)、識別模板XML表格和經(jīng)修改的XML表格之間的差別以及基于所識別出的差別而進(jìn)一步處理經(jīng)修改的XML表格的步驟。
文檔編號G06F17/30GK101196899SQ20071015130
公開日2008年6月11日 申請日期2007年9月24日 優(yōu)先權(quán)日2006年9月25日
發(fā)明者彼得·克里格斯曼 申請人:軟件股份公司