Jaxb 解组后保留子-父关系
下面是我试图用JAXB解压的一个示例:Jaxb 解组后保留子-父关系,jaxb,Jaxb,下面是我试图用JAXB解压的一个示例: <?xml version="1.0" encoding="UTF-8"?> <menus> <menu> <name>main</name> <subMenu> <name>mainMenu</name> <!-- Transfer / Versement -->
<?xml version="1.0" encoding="UTF-8"?>
<menus>
<menu>
<name>main</name>
<subMenu>
<name>mainMenu</name>
<!-- Transfer / Versement -->
<subMenu>
<name>transfer</name>
<label>MENU_TRANSFER</label>
<icon>call-received</icon>
<menuItem>
<name>record</name>
<label>MENU_RECORD</label>
<url>/pages/record/search/recordListSearchResult.jsf</url>
</menuItem>
<menuItem>
<name>transferInput</name>
<label>MENU_TRANSFER_OPEN</label>
<url>/pages/transfer/open/transferListOpen.jsf</url>
</menuItem>
</subMenu>
</menu>
</menus>
主要的
主菜单
转移
菜单传送
接到的电话
记录
菜单记录
/pages/record/search/recordListSearchResult.jsf
转移输入
菜单\传送\打开
/pages/transfer/open/transferListOpen.jsf
一旦使用java生成的代码解组,我希望能够检索menuItem的子菜单父菜单(无需使用循环等)。基本上,我希望在menuItem上生成一个gettergetParent
,返回其父菜单。有没有一种简单的方法可以做到这一点?在解组后,您可以使用它在映射类的实例中接收父对象。为此,只需添加具有以下签名的方法:
void afterUnmarshal(Unmarshaller unmarshaller, Object parent);
因此,在解组后,将在子菜单中获得父子菜单
如果映射的类是模式派生的(例如,使用XJC编译一些XML模式),则可以使用向生成的类添加代码
我还认为应该有处理父对象的XJC插件(google XJC或JAXB父插件)。在解组后,您可以使用它在映射类的实例中接收父对象。为此,只需添加具有以下签名的方法:
void afterUnmarshal(Unmarshaller unmarshaller, Object parent);
因此,在解组后,将在子菜单中获得父子菜单
如果映射的类是模式派生的(例如,使用XJC编译一些XML模式),则可以使用向生成的类添加代码
我还认为应该有处理父对象的XJC插件(GoogleXJC或JAXB父插件)