所以我想有一个列表要用@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>
假设Apple,Orange和Mango是Fruit的子类,您可能需要注释entries与@XmlElementRefXML模式中的替换组相对应的属性,而不是@XmlElements与选择概念相对应的属性。
entries
@XmlElementRef
@XmlElements
@XmlElementRef public List<Fruit> getEntries() { return fruitList; }
假设Apple,Orange和Mango类扩展了Fruit类,并带有注释 @XmlRootElement
@XmlRootElement
@XmlRootElement public class Apple extends Fruit { ... }
想要查询更多的信息