我在用schemagen自动生成XSD文件方面有些挣扎。
首先,我必须告诉我,我在大学里为一个项目工作,除了注释,不得更改我的Java类代码中的任何内容。
因此,基本上我要做的就是重命名我的某些XmlElement并将它们带入特定顺序。我想,我可以这样解决:
@XmlType(propOrder = { "email", "id", "name", "publication" })
public class Author {
...
private List<Publication> publications = new LinkedList<>();
...
@XmlElement(name = "publication")
public List<Publication> getPublications() {
return publications;
}
public void setPublications(List<Publication> publications) {
this.publications = publications;
}
XmlAccessorType的默认值为
@XmlAccessorType(XmlAccessType.PUBLIC_MEMBER)
。但是,当我尝试使用schemagen生成XML Schema时(在Eclipse和命令行中...),出现以下错误:Property publications is present but not specified in @XmlType.propOrder
和
Property publication appears in @XmlType.propOrder, but no such property exists. Maybe you meant publications?
所以,对我来说,这听起来有点矛盾,因为schemagen似乎完全忽略了我指定的内容……有人可以告诉我问题出在哪里吗?
非常感谢!
最佳答案
propOrder
基于映射的字段/属性名称,而不是XML属性或元素的名称。