gboat2.base.bridge.util.xml
类 JAXBUtil

java.lang.Object
  继承者 gboat2.base.bridge.util.xml.JAXBUtil

public class JAXBUtil
extends Object

使用 JAXB(Java Architecture for XML Binding) 实现 XML 与 JavaBean 之间相互转换的工具类。

利用JAXB实现XML与Javabean之间的相互转换的大致思想:利用XML的生成相应的 XSD(XML Schema Definition,XSD) 或者 DTD(Documnet Type Definition),然后利用该 XSD 或 DTD 生成对应的 javabean 和 ObjectFactory。

 1. 利用XML生成相应XSD或者DTD
    1.1 生成 XSD:可以通过一个在线工具完成,网址: http://www.freeformatter.com/xsd-generator.html#ad-output
    1.2 生成 DTD:可以使用一个java小工具,下载地址:http://sourceforge.net/projects/xml2dtd/
     
 2. 利用生成的 XSD 或者 DTD 生成 java 类
    2.1 命令行的方式(JDK6的支持):
        (a) XSD生成java: cmd --> cd XSD所在文件夹--> xjc -d . –p 包名  ./xxx.xsd
       (b) DTD生成java: cmd --> cd DTD所在文件夹 --> xjc -dtd  –d . –p 包名  ./xxx.dtd
    2.2 利用 Eclipse 生成 java 类(只适用于 XSD):
        选中 XSD 文件,右键 --> Generate --> JAXB Classes... 然后根据向导一步一步操作即可。
 注意:XML 里面最好不要包含 value 等敏感关键字,如果包含,可先用别的名词替换,生成完 javabean 后再修改 javabean。
 

从以下版本开始:
3.0
作者:
何明旺

构造方法摘要
JAXBUtil()
           
 
方法摘要
static
<T> T
castClone(Object source, Class<T> destType)
          跨类型复制 JAXBElement Bean(深度复制)
static
<T> T
castClone(Object source, Class<T> destType, ClassLoader destClassLoader)
          跨类型复制 JAXBElement Bean(深度复制)
static Marshaller createMarshaller(Class<?>... classesToBeBound)
          创建 JAXB 编组实例
static Marshaller createMarshaller(String contextPath)
          创建 JAXB 编组实例
static Marshaller createMarshaller(String contextPath, ClassLoader classLoader)
          创建 JAXB 编组实例
static Unmarshaller createUnmarshaller(Class<?>... classesToBeBound)
          创建 JAXB 解组实例
static Unmarshaller createUnmarshaller(String contextPath)
          创建 JAXB 解组实例
static Unmarshaller createUnmarshaller(String contextPath, ClassLoader classLoader)
          创建 JAXB 解组实例
static
<T> T
deepCopyJAXB(T jaxbObj)
          深度复制 JAXB 对象
static String object2xml(Object obj)
          将 Java 对象转换为 XML 字符串
static void object2xml(Object obj, File xmlFile)
          将 Java 对象转换为 XML,并保存到文件中
static void object2xml(Object obj, OutputStream out)
          将 Java 对象转换为 XML,并保存到文件中
static void object2xml(Object obj, String xmlFilePath)
          将 Java 对象转换为 XML,并保存到文件中
static void object2xml(Object obj, Writer writer)
          将 Java 对象转换为 XML
static
<T> T
xml2object(File xmlFile, Class<T> beanClass)
          将 XML 文件转换成 Java 对象
static
<T> T
xml2object(InputStream input, Class<T> beanClass)
          将输入流中的 XML 数据换成 Java 对象
static
<T> T
xml2object(Reader reader, Class<T> beanClass)
          将 XML Reader 转换成 Java 对象
static
<T> T
xml2object(String xml, Class<T> beanClass)
          将 XML 字符串转换成 Java 对象
static
<T> T
xml2object(URL url, Class<T> beanClass)
          将 URL 中的 XML 数据换成 Java 对象
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

构造方法详细信息

JAXBUtil

public JAXBUtil()
方法详细信息

createMarshaller

public static Marshaller createMarshaller(Class<?>... classesToBeBound)
创建 JAXB 编组实例

参数:
classesToBeBound - 要通过 JAXBContext 进行编组的类
返回:

createMarshaller

public static Marshaller createMarshaller(String contextPath)
创建 JAXB 编组实例

参数:
contextPath - 上下文路径,由“:”连接的多个包名
返回:

createMarshaller

public static Marshaller createMarshaller(String contextPath,
                                          ClassLoader classLoader)
创建 JAXB 编组实例

参数:
contextPath - 上下文路径,由“:”连接的多个包名
classLoader - 类加载器
返回:

createUnmarshaller

public static Unmarshaller createUnmarshaller(Class<?>... classesToBeBound)
创建 JAXB 解组实例

参数:
classesToBeBound - 要通过 JAXBContext 进行解组的类
返回:

createUnmarshaller

public static Unmarshaller createUnmarshaller(String contextPath)
创建 JAXB 解组实例

参数:
contextPath - 上下文路径,由“:”连接的多个包名
返回:

createUnmarshaller

public static Unmarshaller createUnmarshaller(String contextPath,
                                              ClassLoader classLoader)
创建 JAXB 解组实例

参数:
contextPath - 上下文路径,由“:”连接的多个包名
classLoader - 类加载器
返回:

object2xml

public static String object2xml(Object obj)
将 Java 对象转换为 XML 字符串

参数:
obj - 要转换的 Java 对象
返回:
转换后的 XML 字符串

object2xml

public static void object2xml(Object obj,
                              Writer writer)
将 Java 对象转换为 XML

参数:
obj - 要转换的 Java 对象
writer - 输出对象

object2xml

public static void object2xml(Object obj,
                              String xmlFilePath)
将 Java 对象转换为 XML,并保存到文件中

参数:
obj - 要转换的 Java 对象
xmlFilePath - XML 文件保存路径

object2xml

public static void object2xml(Object obj,
                              File xmlFile)
将 Java 对象转换为 XML,并保存到文件中

参数:
obj - 要转换的 Java 对象
xmlFile - XML 文件

object2xml

public static void object2xml(Object obj,
                              OutputStream out)
将 Java 对象转换为 XML,并保存到文件中

参数:
obj - 要转换的 Java 对象
out - 输出对象

xml2object

public static <T> T xml2object(String xml,
                               Class<T> beanClass)
将 XML 字符串转换成 Java 对象

参数:
xml - XML 字符串
beanClass - 目标 Java 类型
返回:

xml2object

public static <T> T xml2object(Reader reader,
                               Class<T> beanClass)
将 XML Reader 转换成 Java 对象

参数:
reader - 字符输入流
beanClass - 目标 Java 类型
返回:

xml2object

public static <T> T xml2object(File xmlFile,
                               Class<T> beanClass)
将 XML 文件转换成 Java 对象

参数:
xmlFile - XML 文件
beanClass - 目标 Java 类型
返回:

xml2object

public static <T> T xml2object(URL url,
                               Class<T> beanClass)
将 URL 中的 XML 数据换成 Java 对象

参数:
url -
beanClass - 目标 Java 类型
返回:

xml2object

public static <T> T xml2object(InputStream input,
                               Class<T> beanClass)
将输入流中的 XML 数据换成 Java 对象

参数:
input - XML 数据输入流
beanClass - 目标 Java 类型
返回:

deepCopyJAXB

public static <T> T deepCopyJAXB(T jaxbObj)
深度复制 JAXB 对象

参数:
jaxbObj - 源对象
返回:
克隆出来的一个新对象

castClone

public static <T> T castClone(Object source,
                              Class<T> destType)
跨类型复制 JAXBElement Bean(深度复制)

参数:
source - 源对象
destType - 目标类型
返回:
与源对象有相同属性值的目标对象

castClone

public static <T> T castClone(Object source,
                              Class<T> destType,
                              ClassLoader destClassLoader)
跨类型复制 JAXBElement Bean(深度复制)

参数:
source - 源对象
destType - 目标类型
destClassLoader - 加载目标类的 ClassLoader
返回:
与源对象有相同属性值的目标对象


Copyright © 2014 广联达软件股份有限公司(Glodon Software Co., Ltd.). All rights reserved.