Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.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 XMLElement与XMLAttribute组合以创建新对象_Java_Xml_Jaxb - Fatal编程技术网

Java XMLElement与XMLAttribute组合以创建新对象

Java XMLElement与XMLAttribute组合以创建新对象,java,xml,jaxb,Java,Xml,Jaxb,我有一个简单的XML: <Tag> <Preferences type="NumberPreferences"> <Name>Number</Name> </Preferences> <Preferences type="TagPrefenreces"> <Name>Tag1</Name> </Preferenc

我有一个简单的XML:

<Tag>
   <Preferences type="NumberPreferences">
     <Name>Number</Name>
   </Preferences>
   <Preferences type="TagPrefenreces">
     <Name>Tag1</Name>
   </Preferences>
</Tag>
有没有简单的方法通过将xml元素与xml属性相结合来实现这一点


我对任何不是超级复杂的解决方案都很满意。在另一种情况下,我将解决此问题,可能只是将此对象重新映射到不同的对象。

如果您将首选项设置为一个抽象类和两个实现类,其中将包含每个元素的默认映射行为,则可以使用
@XmlJavaTypeAdapter
。但是,如果您的文件很简单,那么我只需要使用JDOM或类似工具读取它,然后像您所说的那样手动将其映射到您的域对象。使用xml类型适配器基本上是手动映射。如果您将首选项设置为一个抽象类和两个实现类,其中将包含每个元素的默认映射行为,则可以使用
@XmlJavaTypeAdapter
。但是,如果您的文件很简单,那么我只需要使用JDOM或类似工具读取它,然后像您所说的那样手动将其映射到您的域对象。无论如何,使用xml类型适配器基本上是手动映射。
@XmlRootElement
class Tag {
   @XmlElement(name = "Preferences")
   private List<Preferences> preferences;
}
@XmlRootElement
class Tag {
   // any annotation
   private Preferences numberPreferences;
   // any annotation
   private Preferences tagPreferences;
}