我有一个java对象
@XmlRootElement
public class Customer {
private String name;
private List<PhoneNumber> phoneNumbers = new ArrayList<PhoneNumber>();
private String id;
private Date startDate;
private Date endDate;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@XmlElement(name = "phone-number")
public List<PhoneNumber> getPhoneNumbers() {
return phoneNumbers;
}
public void setPhoneNumbers(List<PhoneNumber> phoneNumbers) {
this.phoneNumbers = phoneNumbers;
}
}
我想定义一个架构xml(customer.xsd),它应该用于在生成xml时设置标签的顺序, 与对象成员顺序相比,生成的Object to xml应按以下顺序排列。
<customer>
<startDate></startDate>
<endDate></endDate>
<name></name>
<id></id>
<phoneNumbers></phoneNumbers>
</customer>
编组和解组编码都应该基于相同的模式xml。
有人可以帮助我如何创建这个模式以及如何实现我的排序吗?
答案 0 :(得分:0)
您有两种选择:
@XmlType(propOrder={<order of the elements>})
有关详细信息,请参阅here。
<xsd:element name="Customer"> <xsd:complexType > <xsd:sequence> <xsd:element name="name" type="xsd:string" /> <xsd:element name="id" type="xsd:string" /> <xsd:element name="startDate" type="xsd:string" /> <xsd:element name="endDate" type="xsd:int" /> <xsd:element name="phoneNumbers" type="xsd:string" minOccurs="0" maxOccurs="unbounded" /> </xsd:sequence> </xsd:complexType> </xsd:element>
在XSD中,您可以订购<xsd:sequence>
内的元素
请注意,我没有尝试使用此XSD作为此示例,我添加它作为参考。