2013-03-19 4 views
1

자식 및 해당 하위에도 네임 스페이스를 설정해야하지만 동일한 네임 스페이스를 특성으로 지정할 때 하위 자식은 네임 스페이스가 없습니다.하위 및 하위 자식 (JDOM2)의 동일한 네임 스페이스

나는 그런 일이 필요합니다

<?xml version="1.0" encoding="UTF-8"?> 
<nfeProc xmlns="http://www.portalfiscal.inf.br/nfe" versao="2.00"> 
    <NFe xmlns="http://www.portalfiscal.inf.br/nfe"> 
     <infNFe versao="2.00" Id="NFe35120810609770000190550010000011151000011155"> 
      ... 

을하지만 내 코드는이 생성된다

<?xml version="1.0" encoding="UTF-8"?> 
<nfeProc xmlns="http://www.portalfiscal.inf.br/nfe" versao="2.00"> 
    <NFe> 
     <infNFe versao="2.00" Id="NFe35120810609770000190550010000011151000011155"> 
      ... 

는 XML의이 부분을 생성하는 코드는 다음과 같습니다

Document doc = new Document(); 
Namespace portal = Namespace.getNamespace("http://www.portalfiscal.inf.br/nfe"); 

Element tagNfeProc = new Element("nfeProc", portal); 
tagNfeProc.setAttribute("versao", "2.00"); 

Element tagNFe = new Element("NFe", portal); 

... 

tagNfeProc.getChildren().add(tagNFe); 

doc.setRootElement(tagNfeProc); 
+0

당신이 봤어 단순히 사용 tagNFe.setAttribute ("의 xmlns", "http://www.portalfiscal.inf.br/nfe")? – drewich

답변

0

을 정말로 추가하고 싶다면 수동으로해야하며, 앞서 언급 한 'setAttribute'메소드를 사용하십시오.

그렇지 않으면 :
는 해당 네임 스페이스가 이미 높은 수준 (귀하의 예제에서 최상위 레벨)에 선언되어 있기 때문에 네임 스페이스를 필요로하지 않는다 'NFE'태그가 다시 속성, 그것이 사용되는 내 (상속) 전체 블록은 선언 한 위치에 있습니다. 약간의 검색 후

, 간단한 설명에 대한 XML namespaces :