简单的Java Xml到POJO映射/绑定?

vic*_*csz 10 java xml jibx

我正在试图找出将xml文件映射到普通旧java对象的最简单方法.

注意:在我的例子中,xml与我想要的POJO不完全匹配.

///////// THE XML
<?xml version="1.0" encoding="UTF-8"?>
<Animal>
  <standardName>
    <Name>Cat</Name>
  </standardName>
  <standardVersion>
    <VersionIdentifier>V02.00</VersionIdentifier>
  </standardVersion>
</Animal>


////// THE INTENDED POJO
class Animal
{
 private String name;
 private String versionIdentifier;
}
Run Code Online (Sandbox Code Playgroud)

常规JAXB(带注释)将无法工作,因为JAXM元素名称注释不允许我指定嵌套元素.(即standardName/Name).

我看过Jibx,但看起来过于复杂,并没有为我想做的事情提供完整的例子.

卡斯特罗似乎能够做我想做的事情(使用映射文件),但我想知道是否还有其他可能的解决方案.(可能这会让我跳过映射文件,只允许我在注释中指定所有内容).

谢谢

bdo*_*han 5

EclipseLink JAXB (MOXy)允许您执行您正在寻找的基于路径的映射:

@XmlRootElement 
class Animal 
{ 
 @XmlPath("standardName/Name/text()")
 private String name; 

 @XmlPath("standardVersion/VersionIdentifier/text()");
 private String versionIdentifier; 
} 
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请参阅:

EclipseLink 还允许使用外部配置文件指定元数据:


vtd*_*hor 3

这篇文章可能会帮助你......它只需要你知道xpath http://onjava.com/onjava/2007/09/07/schema-less-java-xml-data-binding-with-vtd-xml.html

  • 看起来这可能是我们最好的选择(没有映射文件或注释),但只有某种形式的使用 xpath 的翻译器方法,可能还有 vtdxml 或 dom。 (2认同)