online java xml spring mapper

online - string xml to object java



AsignaciĆ³n de entidades XML a objetos Java (2)

A continuación se muestra cómo puede asignar su objeto a XML utilizando JAXB (JSR-222) . Se incluye una implementación en el JDK / JRE que comienza con Java SE 6. JAXB es compatible con Spring (consulte la sección 8.5: http://static.springsource.org/spring-ws/site/reference/html/oxm.html )

SummaryCart

import java.util.List; import javax.xml.bind.annotation.*; @XmlRootElement(name="SummaryCart", namespace="SummaryCart") @XmlAccessorType(XmlAccessType.FIELD) public class SummaryCart{ @XmlElement(name="SummaryElement") private List<SummaryElement> summaryElementList; }

SummaryElement

import java.util.List; import javax.xml.bind.annotation.*; @XmlAccessorType(XmlAccessType.FIELD) public class SummaryElement { private int order; private String id; private String displayName; private String property; private List<SummaryElement> subElements; private int maxlines; @XmlAttribute private String type; }

Manifestación

import java.io.File; import javax.xml.bind.*; public class Demo { public static void main(String[] args) throws Exception { JAXBContext jc = JAXBContext.newInstance(SummaryCart.class); Unmarshaller unmarshaller = jc.createUnmarshaller(); File xml = new File("src/forum15881876/input.xml"); SummaryCart sc = (SummaryCart) unmarshaller.unmarshal(xml); Marshaller marshaller = jc.createMarshaller(); marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); marshaller.setProperty(Marshaller.JAXB_SCHEMA_LOCATION, "SummaryCart.xsd"); marshaller.marshal(sc, System.out); } }

input.xml / salida

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ns2:SummaryCart xmlns:ns2="SummaryCart" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="SummaryCart.xsd"> <SummaryElement type="test"> <order>1</order> <id>A</id> <displayName>A</displayName> <subElements> <order>1</order> <id>Preactivation</id> <displayName>Preactivation</displayName> <maxlines>0</maxlines> </subElements> <maxlines>1</maxlines> </SummaryElement> </ns2:SummaryCart>

Estoy seguro de que esta es una de las muchas preguntas duplicadas en torno a las conversiones de objetos XML a Java. Pero empecé este hilo porque no podía encontrar una solución más simple o en busca de una solución más simple.

Tengo un xsd [Infact lo estoy diseñando] y xml. Me gustaría asignar automáticamente los datos xml a los beans Java según la asignación

<tns:SummaryCart xmlns:tns="SummaryCart" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="SummaryCart.xsd"> <SummaryElement type="test"> <order>1</order> <id>A</id> <displayName>A</displayName> <subElements> <order>1</order> <id>Preactivation</id> <displayName>Preactivation</displayName> </subElements> <maxlines>1</maxlines> </SummaryElement> </tns:SummaryCart>

Ahora mis clases de Java serán

public class SummaryCart{ private List<SummaryElement> summaryElementList; } public class SummaryElement { private int order; private String id; private String displayName; private String property; private List<SummaryElement> subElements; private int maxlines; private String type; }

¿Existe alguna herramienta / marco simple que pueda asignar automáticamente los datos de XML a los beans Java [DEBE ser compatible con la asignación de atributos / elementos]. El tutorial será bueno.

Por cierto, estoy usando Spring framework, si se toma la ventaja de spring-oxm, es bienvenido.