#655
[Java] Marshalling/Unmarshaling Java / XML
Basic solution using Xstream :
// From XML to Java XStream xstream = new XStream(); xstream.alias("ClassA", ClassA.class); xstream.alias("ClassB", ClassB.class); xstream.alias("ClassC", ClassC.class); ClassA beanFromXml = (ClassA) xstream.fromXML(new FileReader(new File("ClassA.xml"))); // From Java to XML xstream.toXML(beanFromXml, new FileWriter(new File("ClassA-2.xml")));
Maven dependency :
<!-- XStream --> <dependency> <groupId>com.thoughtworks.xstream</groupId> <artifactId>xstream</artifactId> <version>1.4.3</version> </dependency>
Marshalling / Unmarshalling using JAXB :
// From Java to XML : JAXBContext jc = JAXBContext.newInstance(JAXB_CONTEXT); Marshaller m = jc.createMarshaller(); m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE); m.marshal(new ClassA(), new FileWriter(new File("ClassA.xml"))); // From XML to Java : JAXBContext jc = JAXBContext.newInstance(JAXB_CONTEXT); Unmarshaller u = jc.createUnmarshaller(); ClassA beanFromXml = (ClassA) u.unmarshal(new FileReader(new File("ClassA.xml")));
Maven dependency :
<dependency> <groupId>javax.xml.bind</groupId> <artifactId>jaxb-api</artifactId> <version>2.1</version> </dependency> <dependency> <groupId>com.sun.xml.bind</groupId> <artifactId>jaxb-impl</artifactId> <version>2.2-promoted-b65</version> </dependency>
For JAXB, the root XML element should be annoted with : @XmlRootElement
Each sub element could be annoted with : @XmlType(name = “
each attribute with @XmlElement(name = “
[Java] Get started with java JVM memory (heap, stack, -xss -xms -xmx -xmn…) [Sonar] Retrieve metrics using API / URL
Other JAXB Solution :