Reputation: 33
I have an xsd like this -
<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>
When I use XJC to generate class bindings, I see teacher is of type - List < Object > instead of List< String >
protected List<Object> teacher;
public List<Object> getTeacher() {
if (teacher == null) {
teacher = new ArrayList<Object>();
}
return this.teacher;
}
How can I make it to generate List of strings instead of objects? Any help is appreciated.
Update: With the solution provided by 'vamsilp' - After removing the "minOccurs" on "teachers" element, it worked just fine!That XSD is autogenerated by Jersey from this code:
@XmlElementWrapper(name = "teachers")
@XmlElement(name = "teacher")
public StringSet getTeachers() {
return getData().getTeacherss();
I am not sure how to remove the "minOccurs" attribute. Do I need to modify my code to ignore it?
Upvotes: 0
Views: 3718
Reputation: 218
First of all I just dont understand how you are able to generate classes, instead it should show you an error saying "'minOccurs' cannot appear in element 'element'" because you have declared minOccur constraint to your global/root element "teachers". You shouldn't be doing that please refer this. Try regenerating your JAXB classes by removing this constraint that should work
Upvotes: 2