This question already has answers here:
JAXB Compiler and Attribute Order [duplicate]
(3个答案)
2年前关闭。
我有两节课:
然后进行编组:
最后,我得到这样的
一切都很好,请告诉我,如何在
我希望他们按此顺序进行:
这对于解决我的任务非常必要。谢谢
(3个答案)
2年前关闭。
我有两节课:
@XmlSeeAlso(ListType.class)
public class Type {
private int id;
public int getId() {
return id;
}
@XmlAttribute
public void setId(int id) {
this.id = id;
}
}
@XmlRootElement
public class ListType extends Type {
private String name;
private String namespace;
public String getName() {
return name;
}
@XmlAttribute
public void setName(String name) {
this.name = name;
}
public String getNamespace() {
return namespace;
}
@XmlAttribute
public void setNamespace(String namespace) {
this.namespace = namespace;
}
}
然后进行编组:
ListType listType = new ListType();
listType.setId(123);
listType.setName("Name");
listType.setNamespace("Namespace");
JAXBContext jaxbContext = JAXBContext.newInstance(UserType.class);
Marshaller jaxbMarshaller = jaxbContext.createMarshaller();
jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
jaxbMarshaller.marshal(listType, System.out);
最后,我得到这样的
XML
:<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<listUserType name="Name" namespace="Namespace" id="123"/>
一切都很好,请告诉我,如何在
XML
中指定属性的顺序?我希望他们按此顺序进行:
<listType id="123" name="Name" namespace="Namespace" />
这对于解决我的任务非常必要。谢谢
最佳答案
用@XmlTransient
注释父类,它将帮助您包括父类的属性,然后
将此@XmlType(propOrder={"Id", "Name", "Namespace"})
添加到ListUserType类的顶部。