0

我有一个这样的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 < Object > 而不是 List < String >

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”属性。我需要修改我的代码以忽略它吗?

4

1 回答 1

2

首先,我只是不明白你是如何生成类的,而是它应该向你显示一个错误,说“'minOccurs' 不能出现在元素'元素'中”,因为你已经为你的全局/根元素“老师”声明了 minOccur 约束. 你不应该这样做,请参考这个。尝试通过删除应该有效的约束来重新生成您的 JAXB 类

于 2013-02-11T16:06:20.397 回答