Java 用jaxb解析包装属性
假设:Java 用jaxb解析包装属性,java,xml,jaxb,Java,Xml,Jaxb,假设: <root> <wrapper> <wrapped id="..."/> <wrapped id="..."/> </wrapper> </root> 如何将其映射到此POJO: public class Root { public Set<UUID> myIds = new LinkedHashSet(); } 公共类根目录{ public
<root>
<wrapper>
<wrapped id="..."/>
<wrapped id="..."/>
</wrapper>
</root>
如何将其映射到此POJO:
public class Root {
public Set<UUID> myIds = new LinkedHashSet();
}
公共类根目录{
public Set myid=new LinkedHashSet();
}
我想知道,既然@xmlement(name=“wrapped”)@xmlementwrapper(name=“wrapper”)
的工作原理与我想要的有点类似,那么有什么东西可以获得该属性吗
注意:据我所知,我没有使用moxy,我不能使用XPath。我试图避免使用
@XmlJavaTypeAdapter
路由。您需要稍微修改一下根类,
因此,它将包含一个集
,而不是集
我已经用这个XML输入文件检查了上述内容
<root>
<wrapper>
<wrapped id="550e8400-e29b-11d4-a716-446655440000"/>
<wrapped id="550e8400-e29b-11d4-a716-446655440001"/>
</wrapper>
</root>
您需要稍微修改一下根类, 因此,它将包含一个
集
,而不是集
我已经用这个XML输入文件检查了上述内容
<root>
<wrapper>
<wrapped id="550e8400-e29b-11d4-a716-446655440000"/>
<wrapped id="550e8400-e29b-11d4-a716-446655440001"/>
</wrapper>
</root>
可能的重复是一个不同的模式。可能的重复是一个不同的模式。嘿,谢谢你花时间研究这个。获取
Set
而不是Set
是我所寻找的,因此无需编写代码来在UUID
和包装的
对象之间进行转换。现在,我正在使用基本上您所拥有的+@XmlJavaAdapter
在UUID
和Wrapped
对象之间进行转换,因此pojo仍然有Set
嘿,感谢您花时间研究这个问题。获取Set
而不是Set
是我所寻找的,因此无需编写代码来在UUID
和包装的
对象之间进行转换。现在,我正在使用基本上您所拥有的+@XmlJavaAdapter
在UUID
和Wrapped
对象之间进行转换,这样pojo仍然有集合
<root>
<wrapper>
<wrapped id="550e8400-e29b-11d4-a716-446655440000"/>
<wrapped id="550e8400-e29b-11d4-a716-446655440001"/>
</wrapper>
</root>
public static void main(String[] args) throws Exception {
JAXBContext context = JAXBContext.newInstance(Root.class);
Unmarshaller unmarshaller = context.createUnmarshaller();
File file = new File("root.xml");
Root root = (Root) unmarshaller.unmarshal(file);
Marshaller marshaller = context.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
marshaller.marshal(root, System.out);
}