我有像这样的xsd -
<xs:element name="teachers" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="teacher" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
当我使用XJC生成类绑定时,我看到老师的类型是 - List&lt;对象&gt;而不是List&lt;字符串&gt;
protected List<Object> teacher;
public List<Object> getTeacher() {
if (teacher == null) {
teacher = new ArrayList<Object>();
}
return this.teacher;
}
如何让它生成字符串列表而不是对象?任何帮助表示赞赏。
更新:使用'vamsilp'提供的解决方案 - 在删除“teachers”元素上的“minOccurs”之后,它运行得很好!这个XSD由Jersey自动生成:
@XmlElementWrapper(name = "teachers")
@XmlElement(name = "teacher")
public StringSet getTeachers() {
return getData().getTeacherss();
我不知道如何删除“minOccurs”属性。我是否需要修改我的代码才能忽略它?
答案 0 :(得分:2)
首先,我只是不明白你是如何生成类的,而是应该向你显示一条错误,说''minOccurs'不能出现在元素'element'中,因为你已经向你的global / root元素声明了minOccur约束“老师”。你不应该这样做,请参考this。尝试通过删除应该起作用的约束来重新生成JAXB类