2013-08-28 3 views
2

AXIOM의 OMNode와 OMElement의 차이점과 용도는 무엇입니까? 필자는 XML 파서를 구현했으며 두 객체를 모두 구현에 사용했습니다. OMElement는 OMNode의 하위 클래스입니까?AXIOM의 OMNode와 OMElement의 차이점

모두 같은 방식으로 동작하는 예를 들어 : 캐스팅이

//OMElement 
OMElement omElement = nodeElement; 
String attributeValue = ((OMElementImpl) omElement).getText(); 

//OMNode 
OMNode omNode = nodeElement; 
String attributeValue = ((OMElementImpl) omNode).getText(); 

모두 지원 봐와 같은 방법으로 모든

답변

2

첫째로, 당신의 코드는 OMElementImpl을 의미합니다. 너는 그렇게해서는 안된다. 클래스의 이름 (및 해당 클래스가 포함 된 패키지의 이름)이 나타내는대로 이것은 응용 프로그램 코드에서 직접 사용해서는 안되는 구현 클래스입니다. 어쨌든, getText 메서드가 OMElement 인터페이스에 정의되어 있기 때문에 OMElementImpl으로 캐스트하는 것은 쓸모가 없습니다. 이름이 표시

http://ws.apache.org/axiom/apidocs/org/apache/axiom/om/OMElement.html

으로 OMElement는 XML 요소를 나타내는 : 당신은 자바 독에 볼 수

는 질문에, 그래, OMElementOMNode 확장에 대답합니다. 한편, OMNode은 다른 정보 항목 (주석, 텍스트 노드, 처리 명령어 등)의 하위가 될 수있는 XML 정보 항목을 나타내는 모든 Axiom 클래스에 의해 구현됩니다.