[英]JAXB @XmlElements to have minOccurs = 1
所以我想要一個用@XmlElements注釋的列表,如下所示
@XmlElements(
{
@XmlElement(name = "Apple", type = Apple.class),
@XmlElement(name = "Orange", type = Orange.class),
@XmlElement(name = "Mango", type = Mango.class)
}
)
public List<Fruit> getEntries() {
return fruitList;
}
我想知道是否有辦法強制列表包含至少1個元素,因為現在,xsd看起來像
<xs:complexType name="fruitList">
<xs:sequence>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="Apple" type="tns:apple"/>
<xs:element name="Orange" type="tns:orange"/>
<xs:element name="Mango" type="tns:mango"/>
</xs:choice>
</xs:sequence>
</xs:complexType>
我建議檢查一下:
@XmlElements(
{
@XmlElement(name = "Apple", type = Apple.class, required = true),
@XmlElement(name = "Orange", type = Orange.class, required = true),
@XmlElement(name = "Mango", type = Mango.class, required = true)
}
)
假設Apple,Orange和Mango是Fruit的子類,您可能希望使用@XmlElementRef
注釋entries
屬性,該屬性對應於XML模式中的替換組,而不是對應於選擇概念的@XmlElements
。
@XmlElementRef
public List<Fruit> getEntries() {
return fruitList;
}
這假定Apple,Orange和Mango類擴展了Fruit類,並使用@XmlRootElement
進行了注釋。
@XmlRootElement
public class Apple extends Fruit {
...
}
欲獲得更多信息
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.