jaxb xjc创建列表<对象>而不是List<字符串>

时间:2013-02-08 15:47:02

标签: xsd jaxb schema bind xjc

我有像这样的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”属性。我是否需要修改我的代码才能忽略它?

1 个答案:

答案 0 :(得分:2)

首先,我只是不明白你是如何生成类的,而是应该向你显示一条错误,说''minOccurs'不能出现在元素'element'中,因为你已经向你的global / root元素声明了minOccur约束“老师”。你不应该这样做,请参考this。尝试通过删除应该起作用的约束来重新生成JAXB类