2017-08-16 2 views
0

J'essaye de rassembler un objet java mais je veux enlever l'entête que Jaxb introduit.Comment marshaler un objet java sans en-tête

Objet:

@XmlRootElement 
public class FormElement implements Serializable { 

    private String id; 
    private String name; 
    private Integer order; 
} 

Sortie prévue:

<element> 
    <id>asd</id> 
    <name>asd</name> 
    <order>1</order> 
</element> 

Ma sortie:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<formElement> 
    <id>asd</id> 
    <name>asd</name> 
    <order>1</order> 
</formElement> 

Ma méthode de maréchal:

public String marshal() { 
     JAXBContext context; 
     try { 
      context = JAXBContext.newInstance(FormElement.class); 
      Marshaller marshaller = context.createMarshaller(); 
      StringWriter stringWriter = new StringWriter(); 
      marshaller.marshal(this, stringWriter); 
      return stringWriter.toString(); 
     } catch (JAXBException e) { 
     } 
     return null; 
    } 

Comment puis-je le supprimer?

Merci d'avance.

Répondre

1

Je l'ai résolu en utilisant

marshaller.setProperty(Marshaller.JAXB_FRAGMENT, Boolean.TRUE);

et en ajoutant (name = "element") à l'annotation @XmlRootElement