JAXB Java générer un document XML, Pourquoi minuscules?
Lorsque j'exécute ce code:
import javax.xml.bind.JAXBContext;
import javax.xml.bind.Marshaller;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlRootElement;
public class JavaToXMLDemo {
public static void main(String[] args) throws Exception {
JAXBContext context = JAXBContext.newInstance(Employee.class);
Marshaller m = context.createMarshaller();
m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
Employee object = new Employee();
object.setCode("CA");
object.setName("Cath");
object.setSalary(300);
m.marshal(object, System.out);
}
}
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
class Employee {
private String code;
private String name;
private int salary;
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getSalary() {
return salary;
}
public void setSalary(int population) {
this.salary = population;
}
}
- Je obtenir
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<employee>
<code>CA</code>
<name>Cath</name>
<salary>300</salary>
</employee>
Qui est correct, donc ma question est: pourquoi faut-il changer l'Employé à un autre?
Est-il possible de faire imprimer avec la majuscule E, au lieu de l'employé?
C'est ce que j'ai vraiment voulu avoir:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Employee>
<code>CA</code>
<name>Cath</name>
<salary>300</salary>
</Employee>
Merci!
OriginalL'auteur user1293962 | 2012-03-26
Vous devez vous connecter pour publier un commentaire.
Le comportement que vous voyez est le résultat de la norme JAXB (JSR-222) nom XML pour Java nom de l'algorithme de conversion.
Vous pouvez utiliser le
@XmlRootElement
annotation pour spécifier un nom:Je suis le EclipseLink JAXB (MOXy) plomb, et nous avons une extension qui vous permet de remplacer le nom par défaut de l'algorithme de conversion que vous pouvez être intéressé par:
OriginalL'auteur Blaise Doughan
Pour des éléments spécifiques...
De l'objet....
Je sais que c'est un vieux thread, mais je pense que ça vaut la peine de répondre que vous avez besoin d'annoter votre classe avec
@XmlAccessorType(XmlAccessType.FIELD)
d'éviter la duplication de vos éléments.OriginalL'auteur FAtBalloon
Ma solution après @XmlElement(name="Xxxxx") à des champs et utilisé XStream.aliasField(). C'est plus générique car il utilise des annotations et des analyses d'autres appels de classe du même package.
OriginalL'auteur Rid