关于如何使用注释解析JAXB中此XML的特定方面,我有2个问题。
假设我定义了一个FosterHome类......
1)对于“Children”标签,是否有办法在“Children”类中包含属性而无需创建单独的“Info”类?
2)由于“Info”标签的性能也与“ChildList”相关,我应该有两个Child类,一个没有Info,另一个有Info吗?或者有更好的方法吗?
我试图找到解析它的最佳方法。有关当前的课程集,请参阅此帖子:How do I parse this XML in Java with JAXB?
<FosterHome>
<Orphanage>Happy Days Daycare</Orphanage>
<Location>Apple Street</Location>
<Families>
<Family>
<ParentID>Adams</ParentID>
<ChildList>
<ChildID>Child1</ChildID>
<ChildID>Child2</ChildID>
</ChildList>
</Family>
<Family>
<ParentID>Adams</ParentID>
<ChildList>
<ChildID>Child3</ChildID>
<ChildID>Child4</ChildID>
</ChildList>
</Family>
</Families>
<Children>
<ChildID>Child1</ChildID>
<Info>
<Age>6</Age>
<FavColor>Blue</FavColor>
</Info>
<ChildID>Child2</ChildID>
<Info>
<Age>8</Age>
<FavColor>Red</FavColor>
</Info>
...
</Children>
</FosterHome>
答案 0 :(得分:1)
要回答#1,您可能需要使用MOXy。有了它,您可以使用@XPath
获取age
和favColor
。事实上,@ Breise Doughan是你可能想和他交谈的人(他回答了你以前的帖子),因为他是MOXy项目的团队负责人......在这个论坛上也很活跃。以下是与您类似的用法示例:With MOXy and XPath, is it possible to unmarshal a list of attributes?
对于#2,您的XML结构看起来很奇怪。如果允许您更改XML,我会将子年龄和喜欢的颜色与子名称一起添加,如下所示: -
...
<Family>
<ParentID>Adams</ParentID>
<ChildList>
<ChildID name="Child1" age="6" favColor="Blue"/>
<ChildID name="Child2" age="8" favColor="Red"/>
</ChildList>
</Family>
...