下面是如何使用 JAXB(JSR-222)
将对象映射到XML的方法。从Java SE 6开始的JDK /
JRE中包含一个实现。Spring支持JAXB(请参见8.5节:http : //static.springsource.org/spring-
ws/site/reference/html/oxm.html)
购物车
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;}演示版
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 /输出
<?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>



