Java AXIOM中OMNode和OmeElement之间的区别是什么

Java AXIOM中OMNode和OmeElement之间的区别是什么,java,axiom,ixmldomelement,Java,Axiom,Ixmldomelement,AXIOM中OMNode和OmeElement之间的区别及其用法是什么?我已经实现了一个XML解析器,并且在实现中使用了这两个对象。OmeElement是OMNode的子类吗 作为一个例子,两者的行为方式相同:看看这个 //OMElement OMElement omElement = nodeElement; String attributeValue = ((OMElementImpl) omElement).getText(); //OMNode OMNode omNode = node

AXIOM中OMNode和OmeElement之间的区别及其用法是什么?我已经实现了一个XML解析器,并且在实现中使用了这两个对象。OmeElement是OMNode的子类吗

作为一个例子,两者的行为方式相同:看看这个

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

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

既支持强制转换,又以同样的方式

首先,您的代码引用了
OMElementImpl
。你不应该那样做。正如类的名称(以及包含该类的包的名称)所示,这是一个不应直接在应用程序代码中使用的实现类。无论如何,转换到
OMElementImpl
是没有用的,因为
getText
方法是由
OMElement
接口定义的

要回答这个问题,是的,
OMElement
扩展了
OMNode
,正如您在Javadoc中看到的:

正如名称所示,
OMElement
表示一个XML元素<另一方面,code>OMNode由表示XML信息项的所有Axiom类实现,该XML信息项可以是另一个信息项的子项(如注释、文本节点、处理指令等)