2013-02-08 104 views
0

我有一个这样的XSD -JAXB XJC创建列表< Objects >而不是List < String >

<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 <字符串>

protected List<Object> teacher; 
public List<Object> getTeacher() { 
     if (teacher == null) { 
      teacher = new ArrayList<Object>(); 
     } 
     return this.teacher; 
    } 

如何让它生成字符串列表而不是对象?任何帮助表示赞赏。

更新:通过“vamsilp”提供的解决方案 - “教师”元素上删除“的minOccurs”后,它的工作就好了这XSD是由新泽西州从这个代码自动生成:

@XmlElementWrapper(name = "teachers") 
@XmlElement(name = "teacher") 
public StringSet getTeachers() { 
    return getData().getTeacherss(); 

我!我不知道如何删除“minOccurs”属性。我是否需要修改我的代码以忽略它?

回答

2

首先,我只是不明白你怎么能够生成类,而是应该告诉你一个错误,说''minOccurs'不能出现在元素'元素'“中,因为你已经声明了minOccur约束到你的全局/根元素“老师”。你不应该这样做,请参考this。尝试通过消除应该工作的约束来重新生成JAXB类

+0

非常感谢!奇怪,但我能够生成类,但他们是畸形的。你会知道如何忽略自动生成的XSD中的“minOccurs”元素吗? (请检查我的更新) – keerthi 2013-02-11 16:25:13

+0

@keerthi:你是什么意思自动生成的XSD?我想你是指从XSD生成的自动生成的类?你也想从XSD中移除minOccurs约束吗?如果是这种情况,请继续并删除该约束并重新生成类,这应该很好。如果不是,请澄清? – 2013-02-11 16:50:07

+0

我通过手动删除“minOccurs”属性验证了生成的类,并且它工作正常。但XSD是由Jersey为我们的REST应用程序生成的。我已经复制了(在我的原始描述中)这个XSD生成的代码的一部分。 – keerthi 2013-02-11 19:05:37

相关问题