В чем разница между 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, который может быть дочерним элементом другого информационного элемента (такого как комментарий, текстовый узел, инструкция обработки и т. д.).

Другие вопросы по тегам