Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 具有相似元素和前缀名称的JAXB_Java_Xml_Jaxb - Fatal编程技术网

Java 具有相似元素和前缀名称的JAXB

Java 具有相似元素和前缀名称的JAXB,java,xml,jaxb,Java,Xml,Jaxb,今天,我尝试用JAXB将以下结构映射到Java代码。问题是,XML结构是给定的,并且有以下缺点: 对象详细信息数据1、数据2。。。对于不同的对象都是相同的,所以创建一个超类会非常好。不幸的是,这些元素的前缀是dog、cat等类型的名称 有没有一种优雅的方法可以在不重复代码的情况下使用JAXB注释来映射这一点 <objects> <dog> <dog_data1>...</data1> <dog_data2>...&l

今天,我尝试用JAXB将以下结构映射到Java代码。问题是,XML结构是给定的,并且有以下缺点:

对象详细信息数据1、数据2。。。对于不同的对象都是相同的,所以创建一个超类会非常好。不幸的是,这些元素的前缀是dog、cat等类型的名称

有没有一种优雅的方法可以在不重复代码的情况下使用JAXB注释来映射这一点

<objects>
  <dog>
    <dog_data1>...</data1>
    <dog_data2>...</data2>
    <dog_data3>...</data3>
  </dog>
  <cat>
    <cat_data1>...</data1>
    <cat_data2>...</data2>
    <cat_data3>...</data3>
  </cat>
</objects>

...
...
...
...
...
...

请参阅我的答案,它应该在这里对您有所帮助,即使具体问题与斯卡夫曼不同!我还考虑过在JAXB映射之前进行XSLT转换。如果没有其他解决方案,这将起作用,而且可能是一条出路。XSLT的问题是,它远远不够优雅,而且很快就会变得非常复杂。此外,我们还必须创建这些XML文件,因此需要重新转换。