I have a very simple class with two fields, String sourceAddress and int port.
I want them to be mapped on the source/address and source/port nodes instead of
the jaxb default sourceAddress and sourcePort.
So i use MOXy @XmlPath annotation.
The problem is that the annotation is just ignored and i get the "jaxb default" xml file:
<szk>
<sourceAddress>test</sourceAddress>
<sourcePort>10000</sourcePort>
</sz>
thanks in advance for any help Agostino
import javax.xml.bind.*; import javax.xml.bind.annotation.*; import org.eclipse.persistence.jaxb.JAXBContext; import org.eclipse.persistence.oxm.annotations.XmlPath; @XmlRootElement @XmlAccessorType(XmlAccessType.FIELD) public class SZK { @XmlPath("source/address") private String sourceAddress; @XmlPath("source/port") private int sourcePort; public static void main (String [] args) throws JAXBException{ SZK k = new SZK(); k.sourceAddress = "test"; k.sourcePort = 10000; javax.xml.bind.JAXBContext jc = JAXBContext.newInstance(SZK.class); Marshaller m = jc.createMarshaller(); m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); m.marshal(k, System.out); } }
JAXB Marshalling
does not work as expected with@XmlPath
. Seems like the XML produced with and without@XmlPath
are the same. Can you please once look into this example and provide your answer: stackoverflow.com/questions/67500565/… – BATMAN_2008