В чем разница между OMNode и OMElement в аксиоме
Каковы различия и их использования между OMNode и OMElement в аксиому ? Я реализовал синтаксический анализатор XML и использовал оба объекта в реализации. Является ли Омелемент подклассом Омнода ?
В качестве примера оба ведут себя одинаково: посмотрите на это
//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с другой стороны, реализуется всеми классами аксиом, которые представляют информационный элемент XML, который может быть дочерним элементом другого информационного элемента (например, комментарий, текстовый узел, инструкция обработки и т. д.).