【发布时间】:2021-04-23 17:45:15
【问题描述】:
我需要创建一个与此结构匹配的 XML:
<OfferPackage Name="aaa">
<OfferPackage.Offers>
<OfferCollection Capacity="1">
<Offer Price="12.34"/>
<Offer Price="12.34"/>
</OfferCollection>
</OfferPackage.Offers>
</OfferPackage>
我的问题是我不知道如何在这里实现:<OfferPackage.Offers>。我怎样才能只用注释来获得这个“点符号”?我得到的一切看起来像这样:
<OfferPackage Name="aaa">
<OfferCollection Capacity="1">
<Offer Price="12.34"/>
<Offer Price="12.34"/>
</OfferCollection>
</OfferPackage>
这是我当前的代码:
@XmlRootElement(name = "OfferPackage")
@XmlAccessorType(XmlAccessType.FIELD)
public class OfferPackage {
@XmlAttribute(name = "Name")
private String name = null;
@XmlElement( name = "OfferCollection")
private List<OfferCollection> offers = null;
@SneakyThrows
public String toString() {
var sw = new StringWriter();
var marshaller = JAXBContext
.newInstance(OfferPackage.class)
.createMarshaller();
marshaller.setProperty(JAXB_FRAGMENT, true);
marshaller.marshal(this, sw);
return sw.toString();
}
}
@XmlRootElement(name = "Offer")
@XmlAccessorType(XmlAccessType.FIELD)
public class OfferCollection {
@XmlAttribute(name = "Capacity")
private Integer capacity = null;
@XmlElement(name = "Offer")
private List<Offer> offer = null;
}
【问题讨论】:
标签: java xml annotations jaxb