2012-03-07 128 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显示在工作这个概念。