`
kidiaoer
  • 浏览: 822517 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

JAXB的使用

阅读更多
JAXB的使用
       Sun推出JAXB(JavaTM Architecture for XML Binding )已经有一段时间了,目前的版本是1。0(Final)。下面让我来简单介绍一下,什麽是JAXB和怎莫使用。
JAXB是一套自动映射XML和Java实例的开发接口和工具。
JAXB使XML更加方便的编译一个XML SCHEMA到一个或若干个JAVA CLASS。提供了如下功能:
从XML到JAVA的映射,访问、更新、验证JAVA的表现,从JAVA到XML的映射。
长话短说,开始正题,JAXB的使用,我们只列举从XML到JAVA的案例:
什莫?你不知道从哪里下载所需文件,不会吧。
老大!当然是java.sun.com/xml/jaxb了
首先要得到你想要转换的XML文件,我们DataSource为例,下表列举了DataSource.xml的内容:
 
<?xml version="1.0"?>
<DataSources>
 <DataSource>
      <name>oracle</name>
      <driver>oracle.jdbc.driver.OracleDriver</driver>
      <url>jdbc:oracle:thin:@localhost:1521:orcl</url>
      <username>scott</username>
     <password>tiger</password>
 </DataSource>
</DataSources>
      并且,我们还要有此XML的DTD文件(如果你不知道怎莫从DTD得到XML,或者不知道如何从XML得到DTD,请两天后再看此文),DataSource.dtd文件如下:
<?xml version=''1.0'' encoding="UTF-8"?>
<!ELEMENT DataSource
   (name,driver,url,username,password)
>
<!ELEMENT DataSources
   (DataSource)
>
<!ELEMENT driver
   (#PCDATA)
>
<!ELEMENT name
   (#PCDATA)
>
<!ELEMENT password
   (#PCDATA)
>
<!ELEMENT url
   (#PCDATA)
>
<!ELEMENT username
   (#PCDATA)
>
JAXB的使用还要配合一个转换规则的XML文件的使用,所以我们再根据我们的需要编写一个DataSource.xjs文件,如下所示:
      <?xml version="1.0"?>
<xml-java-binding-schema version="1.0ea">
<!-- Register a type. This specifies that we want to use this type instead of String    somwhere in our document. -->
<element name="DataSources" type="class" root="true" />
</xml-java-binding-schema>
你觉得很复杂嘛?不要着急,马上就结束了。
下一步就是运行如下命令了:
   java -jar %JAXB_HOME%\lib\jaxb-xjc-1.0-ea.jar DataSource.dtd DataSource.xjs -d destination_directory
你会看到在你指定的目录下,生成了我们想要的Java文件,你可以打开看看,到底是什莫东西。
OK,准备工作这就结束了。
让我们来看看如何使用我们生成的Java文件,使用前别忘了编译他们,这可是最基本的素质,我想不用我提醒了吧。
      下面是一个测试程序的片断,看看到底灵不灵:
      Datasources socks = new Datasources();
   。。。。
   File socksFile = new File("DataSource.xml");
            InputStream fin = new FileInputStream(socksFile);
            socks = socks.unmarshal(fin);
List sockList = socks.getDatasource();
好了,sockList就是我们得到的Java的对象了。你可以随意处置。我们下面把他们打印出来看一看:
   for (Iterator i = sockList.iterator(); i.hasNext();) {
            currentSock = (Datasource)i.next();
        System.out.println(currentSock.getName());
        System.out.println(currentSock.getDriver());
        System.out.println(currentSock.getUrl());
        System.out.println(currentSock.getUsername());
        System.out.println(currentSock.getPassword());
        }
分享到:
评论

相关推荐

    jaxb 使用实例

    ### JAXB使用步骤 1. **创建Java模型类**:定义要序列化的Java类,使用注解如`@XmlRootElement`,`@XmlElement`等来标注字段。 2. **设置JAXB上下文**:使用`JAXBContext`来获取Java类型和XML之间的映射信息。这...

    JAXB使用及代码示例

    1. **编译时绑定**:在开发阶段,JAXB使用`xjc`工具将XML Schema(XSD)文件转换为一组Java类,这些类包含了对XML结构的表示。这个过程也被称为“逆向工程”。 2. **运行时转换**:在程序运行时,JAXB提供了一组API...

    如何更好地jaxb使用

    如何更好地jaxb使用如何更好地jaxb使用如何更好地jaxb使用如何更好地jaxb使用

    JAXB使用Socket流进行双向通信源码

    在本示例中,"JAXB使用Socket流进行双向通信源码"结合了这两个概念,创建了一个基于Java的客户端(Client_Socket)应用,实现了XML数据在客户端和服务端之间的双向传输。 首先,我们要理解JAXB的工作原理。JAXB允许...

    JAXB实例入门

    ### JAXB使用场景 - 数据交换:在分布式系统中,服务间通信常通过XML格式的数据交换,JAXB提供了便捷的序列化和反序列化手段。 - 配置文件解析:XML常被用作应用程序的配置文件,JAXB能帮助解析和操作这些配置。 - ...

    JAXB使用经验总结

    1. 什么是JAXB?  Java Architecture for XML Binding (JAXB) 是一个业界的标准,是一项可以根据XML

    jaxb (XML操作)

    2. **实例化(Unmarshalling)**:当需要将XML数据转换为Java对象时,JAXB使用Unmarshaller接口解析XML文档,生成对应的Java对象。这个过程是将XML数据"反序列化"为可操作的Java对象。 3. **序列化(Marshalling)*...

    JAXB-2.2.6-release-documentation

    - **软件许可**:明确了 JAXB 使用时的许可条款,通常遵循开放源代码许可证。 - **示例应用**:包含多个示例应用程序,演示如何使用 JAXB 进行 XML 数据绑定。 - **运行时绑定框架**:这部分详细介绍了如何在运行时...

    jaxb解析生成xml

    ### JAXB使用示例 以下是一个简单的JAXB解析生成XML的例子: ```java import javax.xml.bind.JAXBContext; import javax.xml.bind.Marshaller; import javax.xml.bind.Unmarshaller; public class JaxbExample { ...

    JAXB的HelloWorld源码

    然后,JAXB使用这些类生成XML Schema(XSD),或者反过来,基于XML Schema生成Java类。这个过程叫做编译或绑定。这种方式使得Java应用程序能够轻松地与XML数据交互,而无需手动解析XML。 **HelloWorld示例** 是学习...

    jaxb.zip_jaxb

    JAXB使用Java注解来指定Java类和XML元素之间的映射关系。例如,我们可以使用`@XmlRootElement`、`@XmlElement`、`@XmlAttribute`等注解来定义Java类的结构。 ```java import javax.xml.bind.annotation....

    jaxb与jpa初应用

    JAXB使用注解或绑定文件来定义对象和XML之间的映射。例如,当我们有一个`Plan`类,我们可以通过JAXB将其序列化为`plan.xml`文件,反之亦然。 ```java @XmlRootElement(name = "plan") public class Plan { private...

    一个基于java jaxb的序列化例子,非常简单易懂

    在给定的例子"JAXBDemo"中,我们可以预期它包含了一个简单的JAXB使用示例,帮助我们理解这一过程。 首先,让我们了解一下JAXB的工作原理。JAXB的核心思想是通过元数据(如注解或XML Schema)将Java类与XML结构关联...

    JAXB XMLSPY

    **JAXB(Java Architecture for XML ...总结来说,JAXB是一种强大的Java XML处理技术,而XMLSPY作为一个全面的XML工具,是开发和调试XML相关项目的好帮手,尤其在配合JAXB使用时,可以大大提高开发效率和代码质量。

    JAXB资料集.rar

    "jaxb使用文档.doc"应该是详细介绍了JAXB的使用方法,包括基本操作、高级特性以及可能遇到的问题和解决方案。文档可能还涵盖了错误处理、性能优化、XML Schema的处理等内容。 总的来说,这份"JAXB资料集.rar"是一份...

    JAXB自定义命名前缀无效的问题

    JAXB使用`@XmlRootElement`和`@XmlElement`等注解来识别哪些类和字段应该映射到XML元素。默认情况下,JAXB会自动为这些元素和属性分配命名空间前缀。为了自定义这些前缀,我们需要使用`@XmlSchema`、`@...

    XML JAXB入门示例

    JAXB使用注解(Annotations)来定义这些类如何映射到XML结构。常见的注解包括: 1. `@XmlRootElement`:标记一个类作为XML文档的根元素。 2. `@XmlElement`:将类的字段映射为XML元素。 3. `@XmlAttribute`:将类的...

    JAXB-XML注解-应用

    JAXB 使用 javax.xml.bind.annotation 包下的 Java 标注,例如: * @XmlRootElement:标注 Java 类为 XML 根元素 * @XmlElement:标注 Java 属性为 XML 元素 * @XmlAttribute:标注 Java 属性为 XML 属性 六、JAXB...

    jaxb开发使用文档

    jaxb开发使用文档 JAXB(Java Architecture for XML Binding)是一种java标准库,用于处理XML与java对象的映射。jaxb技术在javaSE6.0中已经包含了jaxb定义的所有API,在处理XML文档时,使用jaxb要比使用JAXP(DOM、...

Global site tag (gtag.js) - Google Analytics