生成从其他XML文件继承的XML文件

时间:2012-03-07 16:50:36

标签: xml xslt inheritance xsd

我需要以不同的方式配置应用程序。配置是XML格式。不同的配置主要有共同的部分。例如,两种配置之间的差异将是电子邮件地址的差异。

因此,不是复制我想到的公共部分,而是有一种方法可以获得基本XML文件,只覆盖/添加部分文件并生成结果XML文件。

我在Maven中看到过这个功能 - 你有一个父pom,而pom继承了它。最终使用的是有效的pom。

1)是否已经存在库(对于任何编程语言,但最好是Java)?

2)如果不是一个很好的方法来实现它?我不熟悉XSD和XSLT等XML技术。所以显而易见的方式对我来说可能并不那么明显。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

我可能会使用XInclude。在Java中似乎有一些支持,所以我会用特定堆栈的限定符搜索“xinclude for java”。

xerces copes well with it;默认情况下,如果关闭,则必须打开feature http://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显示了这个概念在起作用。