2013-04-12 2 views
3

구성 파일을 저장할 때 루트 요소의 xmlns (기본값 : <configuration>)를 지정해야합니다. 그 이유는 나중에 구성 파일을로드 할 때 스키마를 사용하여 유효성을 검사하기 때문입니다.apache commons configuration : 루트 요소의 xml 네임 스페이스 설정

이 기능을 공용 설정에서 제공하는 방법을 찾을 수 없습니다. 어떤 아이디어? 감사!

+1

가있다가 ['setRootNode (ConfigurationNode rootNode를)'(http://commons.apache.org/proper/commons- configuration/apidocs/org/apache/commons/configuration/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;