2013-04-12 97 views
3

保存配置文件时,我需要为根元素指定xmlns(默认<configuration>)。原因是,我稍后在加载配置文件时验证(使用模式)。apache commons配置:为根元素设置xml名称空间

我似乎无法找到commons-configuration如何公开此功能。有任何想法吗?谢谢!

+1

有一个['setRootNode(ConfigurationNode根节点)'](http://commons.apache.org/proper/commons-配置/ apidocs/org/apache/commons /配置/ HierarchicalConfiguration.html#setRootNode(org.apache.commons.configuration.tree.ConfigurationNode))可能工作。您可以在['ConfigurationNode'](http://commons.apache.org/proper/commons-configuration/apidocs/org/apache/commons/configuration/tree/ConfigurationNode.html)上设置属性(在这种情况下为xmlns) )。 – maba

+0

@maba发表回答这个效果? –

+0

@maba是的,请随时这样做。我发布了一个备案,但我宁愿你得到信用 – Miquel

回答

3

@maba的建议起作用。这并不美观,但似乎没有更好的方法来做到这一点。下面的代码:

private void setNameSpace(XMLConfiguration conf) { 
    HierarchicalConfiguration.Node root = new HierarchicalConfiguration.Node(
      "configuration"); 
    root.addAttribute(new HierarchicalConfiguration.Node("xmlns", 
      "http://namespace.com")); 
    conf.setRootNode(root); 
} 

凡有关进口:

import org.apache.commons.configuration.ConfigurationException; 
import org.apache.commons.configuration.HierarchicalConfiguration; 
import org.apache.commons.configuration.XMLConfiguration;