- Spring OXM 教程
- Spring OXM - 首页
- Spring OXM - 概述
- Spring OXM - 环境设置
- Spring OXM & JAXB
- Spring OXM - 创建项目
- Spring OXM - 更新项目 JAXB2
- Spring OXM - 测试 JAXB2
- Spring OXM & XStream
- Spring OXM - 更新项目
- Spring OXM - 测试 XStream
- Spring OXM & Castor
- Spring OXM - 更新项目
- Spring OXM - 测试 Castor
- Spring OXM 有用资源
- Spring OXM - 快速指南
- Spring OXM - 有用资源
- Spring OXM - 讨论
Spring OXM - 概述
Spring 框架使用全局编组器/解组器接口提供对象/XML 或 O/X 映射,并允许轻松切换 O/X 映射框架。将对象转换为 XML 的过程称为 XML 编组/序列化,而从 XML 转换为对象的过称为 XML 解组/反序列化。
Spring 框架提供Marshaller 和 UnMarshaller 接口,其中 Marshaller 接口负责将对象编组到 XML,而 UnMarshaller 接口将 xml 解组到对象。以下是使用 Spring OXM 框架的主要优点。
轻松配置 − 使用 Spring bean 上下文工厂,创建编组器/解组器非常容易,并且可以配置,而无需担心 O/X 库结构,如 JAXB 上下文、JiBX 绑定工厂等。编组器/解组器可以像任何其他 bean 一样进行配置。
一致的接口 − Marshaller 和 UnMarshaller 是全局接口。这些接口为其他 O/X 映射框架提供了一个抽象层,允许在它们之间切换而无需更改代码或只需少量代码更改。
一致的异常处理 − 所有底层异常都映射到 XmlMappingException 作为根异常。因此,开发人员无需担心底层 O/X 映射工具自己的异常层次结构。
Marshaller
Marshaller 是一个具有单个方法 marshal 的接口。
public interface Marshaller { /** * Marshals the object graph with the given root into the provided Result. */ void marshal(Object graph, Result result) throws XmlMappingException, IOException; }
其中 graph 是任何要编组的对象,result 是一个标记接口,用于表示 XML 输出。以下是可用的类型:
javax.xml.transform.dom.DOMResult − 表示 org.w3c.dom.Node。
javax.xml.transform.sax.SAXResult − 表示 org.xml.sax.ContentHandler。
javax.xml.transform.stream.StreamResult − 表示 java.io.File、java.io.OutputStream 或 java.io.Writer。
UnMarshaller
UnMarshaller 是一个具有单个方法 unmarshal 的接口。
public interface UnMarshaller { /** * Unmarshals the given provided Source into an object graph. */ Object unmarshal(Source source) throws XmlMappingException, IOException; }
其中 source 是一个标记接口,用于表示 XML 输入。以下是可用的类型:
javax.xml.transform.dom.DOMSource − 表示 org.w3c.dom.Node。
javax.xml.transform.sax.SAXSource − 表示 org.xml.sax.InputSource 和 org.xml.sax.XMLReader。
javax.xml.transform.stream.StreamSource − 表示 java.io.File、java.io.InputStream 或 java.io.Reader。