2015-01-26 2 views
1

안녕 자식을 생성 "THEN 요소 내부는 큰 문제입니다.공리 OMElement 클래스는 이것이 XML 코드를 생성하기 위해 내가 무엇을 비어 기본 이름 공간

axiom-api 1.2.14를 사용하고 있습니다 ... 어딘가에이 문제 (버그)가 다른 사람 (어쩌면 이미 해결사일까요?)이 경험했습니다. 깨끗한 XML 코드를 얻기 위해이 문제를 해결할 수있는 방법이 있습니까? 또는 그것을 해결하기 위해 더 나은가?

+0

해결 방법은 네임 스페이스를 특성으로 추가하는 것입니다. OMAttribute ns = factory.createOMAttribute ("xmlns : ns", null, "http : //org.apache.synapse/xsd"); filter.addAttribute (ns); ...이 방법은 작동합니다 ... 그러나 나는 그것이보고되어야하는 버그라고 생각합니다. – Alex

답변

0

당신은 네임 스페이스없이 then 요소를 만드는 :

OMElement then = factory.createOMElement("then", null); 

따라서 공리는 요소가 네임 스페이스가없는 xmlns="" 그래서 생성, 사용자가 요청한대로 정확하게. 실제로 xmlns=""이 없으면 요소의 기본 네임 스페이스 http://ws.apache.org/ns/synapse이 잘못되었습니다.

네임 스페이스 선언이 잘못되었다고 생각하면 요소가 실제로 문서에 사용 된 다른 네임 스페이스 중 하나에 속해야 함을 의미합니다. 이 경우 올바른 네임 스페이스의 요소를 요청하도록 코드를 수정해야합니다.

+0

정말 부모 노드에서 선언 된 기본 네임 스페이스를 무시하지 않아야합니다. 쓰기 xmlns = ""않습니다. 이 동작은 여기에 쓰여있는 이전 공리 api 릴리즈에서 존재합니다 : setDefaultNamespace 메소드를 다루는 https : //issues.apache.org/jira/browse/AXIOM-28입니다. 공리가 기본 네임 스페이스없이 요소를 생성 할 수 있다면 요점입니다 사양. 위의 jira 링크에서 설명한 것처럼이 문제를 해결할 수있는 방법은 네임 스페이스를 특성으로 지정하는 것입니다. – Alex

+0

내가 말했듯이 이것은 버그가 아닙니다. 공리는 엄격하게 코드가 요구하는 것을 수행하고 있습니다. 결과가 예상 한 것과 다를 경우 코드를 수정하십시오. –

+0

이것을 얻기 위해 샘플 코드를 작성할 수 있습니까? ... 나는 무엇을 고쳐야하는지 알아 내려고하고 있습니다. – Alex

관련 문제