用JAXB存取XML数据

JAXB概要

JAXBJava Architecture for XML Binding写,意XML定的JAVA框架。它提供了一套可以简单存取XML数据的API,同JAXB可以根据XMLschema生成操作XMLJAVA。利用JAXB,使用JAXB生成的操作XMLJAVA,可以基本上不用考XML构而简单地存取XML数据。

 

JAXB的下与安装

JAXB至少需要入以下jar文件。

  • activation.jar
  • jaxb-api.jar
  • jaxb-impl.jar
  • jaxb-xjc.jar

根据情况,可能会需要其它jar文件。

可以通
http://java.sun.com/webservices/downloads/webservicespack.html
JAXB

XML原型

Order.xml

<?xml version="1.0" encoding="utf-8" ?>
 
<project default="xjc-compile" basedir=".">
    <property name="src.dir" location="src" />
    <property name="lib.dir" location="lib/jaxb" />
    <property name="xml-schema.dir" location="xml-schema" />
    <property name="schema.name" value="Orders.xsd" />
    <property name="package" value="com.test" />
 
    <path id="classpath">
        <fileset dir="${lib.dir}" includes="*.jar" />
    </path>
 
    <taskdef name="xjc" classname="com.sun.tools.xjc.XJCTask" classpathref="classpath" />
    <target name="xjc-compile">
        <echo message="Build Jaxb Class from Schema" />
        <xjc schema="${xml-schema.dir}/${schema.name}" target="${src.dir}" package="${package}" />
    </target>
</project>



eclipse里新建JaxbProject。目录阶层为
/JaxbProject
--lib
    --jaxb
         --activation.jar
         --jaxb-api.jar
         --jaxb-impl.jar
         --jaxb-xjc.jar
--src
--xml
    --Orders.xml
--xml-schema
    --Orders.xsd
--JaxbBuild.xml

JaxbBuild ant。会在/src/com/test下自生成以下6个文件
Customer.java
Goods.java
Item.java
ObjectFactory.java
Order.java
Orders.java
(上述生成的java的构造完全与Orders.xml里的点构造一里就不出源代了)

XML数据到JAVA

比如我Orders.xmlOrders象,可以使用以下代

InputStream xmlInputStream = new FileInputStream("Orders.xml");
JAXBContext jc = JAXBContext.newInstance(Orders.class);
// or JAXBContext jc = JAXBContext.newInstance("com.test");
    Unmarshaller u = jc.createUnmarshaller();
    Orders orders = (Orders) u.unmarshal(xmlInputStream);
    xmlInputStream.close();
    List<Order> orderList = orders. getOrder();
    Order order = orderList.get(0);
    Customer customer = order.getCustomer();
    Goods goods = order.getGoods();
    …
完全没必要理会Orders.xml构造,只要Orders象操作就可以了。
 

XML数据的保存
OutputStream os = new FileOutputStream("Orders.xml");
Marshaller mu = jc.createMarshaller();
mu.marshal(orders, os);    //Orders orders;
 
便可把 Orders 构保存到 Orders.xml 里。

JAXB简单实现XMLJAVA的相互定。 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值