首先,讓我首先告訴你我想解決的問題的細節。以編程方式區分/合併Xml文檔
我們有第三方應用程序使用Xml文檔來存儲它的所有業務邏輯並查找表等。該應用程序具有一組基本的Xml文件,並使用一種繼承模型來顯示我們要編輯的繼承的Xml文件以定製業務邏輯。由於其使用的繼承的可怕實現,我說「有點」。
目前有超過3000個獨立的Xml文件,從1k到5000k不等,總共大小約600MB。迄今爲止唯一的好處是,它們都使用相同的Xsd。
我們的問題是,我們每個月都會收到核心Xml文件的更新,我們應該把它們放到位,並升級我們的自定義文檔以與新版本的基礎文檔保持一致。我們目前正在使用DiffDog手動執行此操作,並將這些文檔拼湊在一起以創建新文檔,但我正試圖圍繞以編程方式執行此操作的可能性。讓我看看我是否可以爲你想像這種情況:
我們從下面的結構類型開始,使用基本模板,以及我們可以定義自定義規則的自定義模板(其中我們做了很多)
.. \ LineOfBusiness \ BaseTemplates \ BaseXml_1_0_0_0.xml
.. \ LineOfBusiness \ CustomTemplates \ Document_1_0_0_0.xml
我們則給予每月升級所以現在我們有像這樣的結構:
.. \ LineOfBusiness \ BaseTemplates \ BaseXml_1_0_0_0.xml
.. \ LineOfBusiness \ BaseTemplates \ BaseXml_1_1_0_0.xml
.. \ LineOfBusiness \ CustomTemplates \ Document_1_0_0_0.xml
我們的工作主要是創建
.. \ LineOfBusiness \ CustomTemplates \ Document_1_1_0_0.xml
文檔自己每個月,帶來我們在以前的版本中所做的更改,到新版本的邏輯。
我知道這個系統很荒謬,但我今天無法改變。如何解決這個問題的任何想法都會很棒。我可以告訴你我所想的那麼遠,
反序列化基地和自定義舊版本的文件,以獲得特定的差異列表中,把這些差異對新基地的反序列化版本並將差異應用於它,然後reserialize到XML。
對自定義模板應用某種註解過程,以便我們可以在升級時以編程方式提取差異。
外包升級過程...
你使用什麼語言? – 2009-10-23 12:38:51
雖然我們有兩個Java開發人員,但我們這裏主要是微軟的一個商店。但是,除了語言,任何想法,或思想,將不勝感激。 – 2009-10-23 15:16:31