В чем разница между OMNode и OMElement в АКСИОМЕ
Каковы различия и их использование между OMNode и OMElement в AXIOM? Я реализовал синтаксический анализатор XML и использовал оба объекта в реализации. Является ли OMElement подклассом OMNode?
Как пример, оба ведут себя одинаково: посмотрите на это
//OMElement
OMElement omElement = nodeElement;
String attributeValue = ((OMElementImpl) omElement).getText();
//OMNode
OMNode omNode = nodeElement;
String attributeValue = ((OMElementImpl) omNode).getText();
Оба поддерживают литье и одинаково
1 ответ
Прежде всего, ваш код относится к OMElementImpl
, Ты не должен этого делать. Как указывает имя класса (а также имя пакета, содержащего этот класс), это класс реализации, который не должен использоваться непосредственно в коде приложения. В любом случае, актерский состав OMElementImpl
бесполезно, потому что getText
Метод определяется OMElement
интерфейс.
Чтобы ответить на вопрос, да, OMElement
продолжается OMNode
, как вы можете видеть в Javadoc:
http://ws.apache.org/axiom/apidocs/org/apache/axiom/om/OMElement.html
Как видно из названия, OMElement
представляет элемент XML. OMNode
с другой стороны, реализуется всеми классами Axiom, которые представляют информационный элемент XML, который может быть дочерним элементом другого информационного элемента (такого как комментарий, текстовый узел, инструкция обработки и т. д.).