J'ai un objet que je veux rassembler mais le schéma n'a pas l'annotation @XmlRootElement.Suppression du préfixe ns2 pendant que JaxB rassemble un élément sans l'annotation @XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "")
public static class Foo
{
@XmlAttribute(name = "test1")
public final static String TEST_1 = "Foo";
@XmlElement(name = "Element1", required = true)
protected String element1;
@XmlElement(name = "Element2", required = true)
protected String element2;
}
I regroupé l'objet en spécifiant un JaxBElement tout marshalling
QName qName = new QName("", "Foo");
jaxb2Marshaller.marshal(new JAXBElement(qName, Foo.class, fooObj), new StreamResult(baos));
Il en résulte le code XML suivant après marshalling
<Foo xmlns:ns2="http://Foo/bar" test1="Foo">
<ns2:Element1>000000013</ns2:Element1>
<ns2:Element2>12345678900874357</ns2:Element2>
</Foo>
Pour ma usecase Je voudrais Marhsall cet objet sans le préfixe ns2 pour que le XML ressemble à
<Foo xmlns="http://Foo/bar" test1="Foo">
<Element1>000000013</Element1>
<Element2>12345678900874357</Element2>
</Foo>
Comment puis-je marshall cet objet sans le préfixe?
Merci à l'avance.
Merci! J'ai été capable d'arriver à la même solution mais votre explication a aidé à comprendre pourquoi. –