2012-03-07 123 views
1

我需要以不同的方式配置應用程序。配置採用XML。不同的配置將主要具有通用部分。例如,兩種配置之間的差異將是電子郵件地址的差異。生成從其他XML文件繼承的XML文件

因此,不是重複我想要的通用部分,而是有一種方法可以獲得基本的XML文件並覆蓋/添加到其中的一部分並生成結果XML文件。

我已經在Maven中看到過這個功能 - 你有一個父pom和子pom繼承它。最後使用的是有效的pom。

1)有沒有庫(對於任何編程語言,但最好是用於Java)這樣做? 2)如果不是什麼將是一個很好的方法來實現這一點?我不是很熟悉XML技術,如XSD和XSLT。所以顯而易見的方式對我來說可能不那麼明顯。

任何幫助,非常感謝。

回答

1

我可能會用XInclude。似乎在Java中有一些支持,所以我會搜索「xinclude for java」,併爲您的特定堆棧添加限定符。

xerces copes well with it;默認情況下關閉,所以你必須打開featurehttp://apache.org/xml/features/xinclude

import javax.xml.parsers.DocumentBuilderFactory; 
import javax.xml.parsers.DocumentBuilder; 

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); 
dbf.setNamespaceAware(true); 

try { 
    dbf.setFeature("http://apache.org/xml/features/xinclude", true); 
} 
catch (ParserConfigurationException e) { 
    System.err.println("could not set parser feature"); 
} 

有關的XInclude一般的讀,this article顯示在工作這個概念。