den*_*iss 11 java xml xsd jaxb
所以我想要一个用@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;
}
Run Code Online (Sandbox Code Playgroud)
我想知道是否有办法强制列表包含至少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>
Run Code Online (Sandbox Code Playgroud)
小智 13
我建议检查一下:
@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)
}
)
Run Code Online (Sandbox Code Playgroud)
假设 Apple、Orange 和 Mango 是 Fruit 的子类,您可能需要注释对应于 XML 模式中的替换组的entries属性@XmlElementRef,而不是@XmlElements对应于选择概念的属性。
@XmlElementRef
public List<Fruit> getEntries() {
return fruitList;
}
Run Code Online (Sandbox Code Playgroud)
假设 Apple、Orange 和 Mango 类扩展了 Fruit 类,并注释为@XmlRootElement
@XmlRootElement
public class Apple extends Fruit {
...
}
Run Code Online (Sandbox Code Playgroud)
了解更多信息
| 归档时间: |
|
| 查看次数: |
8301 次 |
| 最近记录: |