2013-02-08 63 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

相關問題