2013-04-12 130 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;