2013-08-28 8 views
2

Каковы различия и их использование между OMNode и OMElement в AXIOM? Я реализовал XML-синтаксический анализатор, и я использовал оба объекта в реализации. Является ли OMElement подклассом OMNode?В чем разница между OMNode и OMElement в AXIOM

В качестве примера, как ведет себя таким же образом: Посмотрите на это

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

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

Обе опоры для литья и таким же образом

ответ

2

Прежде всего, ваш код относится к OMElementImpl. Вы не должны этого делать. Как указывает имя класса (а также имя пакета, содержащего этот класс), это класс реализации, который не должен использоваться непосредственно в коде приложения. В любом случае, листинг до OMElementImpl бесполезен, потому что метод getText определяется интерфейсом OMElement.

Чтобы ответить на этот вопрос, да, OMElement распространяется OMNode, как вы можете видеть в Javadoc:

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

Как видно из названия, OMElement представляет собой элемент XML. OMNode, с другой стороны, реализуется всеми классами Axiom, которые представляют собой элемент информации XML, который может быть дочерним элементом другого информационного элемента (например, комментарий, текстовый узел, команда обработки и т. Д.).