0

也许这是一个简单的请求,但我还没有找到方法。

我必须构建一个像这样的 XML 输出:

 <person name="Mike">
    <orders id="1">
       <order ido="1"></order>
    </orders>
 </person>

我必须从数据库中的查询中获取值,但如果查询不返回“订单”,那么 XML 必须是这样的:

<person name="Mike">
    </orders>
<person>

这些可能吗?,我知道这有点奇怪,但这是客户的要求。

4

2 回答 2

0

Orders您可以在编组之前在类上设置一个空实例Person以获得所需的输出。

于 2013-07-17T14:48:37.437 回答
0

我知道我们的代码中经常出现这种情况。我们首先将 XML 定义为 XSD,然后生成 JAXB。为此,订单将是 0..1,然后订单内的列表将是 1..n。

如果你只是注释你的类,我认为你需要做这样的事情:

@XmlElement(name = "orders")
protected List<Order> orders;

public List<Order> getOrders() {
    if (orders == null) {
        orders = new ArrayList<Order>();
    }
    return this.orders;
}

这将始终返回一个列表。如果列表为空,您应该得到 <orders /> 返回。

于 2013-07-17T14:58:15.363 回答