Java操作XML的JAXB工具
在java中操作XML的工作中中,比较方便的工具是JAXB(Java Architecture for XML Binding)。
利用这个工具很方便生成XML的tag和Java类的对应关系。参照网上的资料,简单说明一下java操作xml的一些东西。
1.先定义一个XML Schema文件。比如:
- <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
- <xs:schema version="1.0"
- xmlns:xs="http://www.w3.org/2001/XMLSchema">
- <xs:element name="person">
- <xs:complexType>
- <xs:attribute name="name" type="xs:string"/>
- <xs:attribute name="age" type="xs:int"/>
- </xs:complexType>
- </xs:element>
- </xs:schema>
相关XML Schema的定义规则可以参考http://www.w3.org/TR/xmlschema-2/
2.生成java类。
在命令行中执行
C:\jaxb>xjc person.xsd
这样就生成了Persion类。
- package com.test.xml
- public class Person {
- protected String name;
- protected Integer age;
- public String getName() {
- return name;
- }
- public void setName(String value) {
- this.name = value;
- }
- public Integer getAge() {
- return age;
- }
- public void setAge(Integer value) {
- this.age = value;
- }
- }
tag的类型和java的类型的对应关系。
XML Schema Type | Java Data Type |
---|---|
xsd:string | java.lang.String |
xsd:integer | java.math.BigInteger |
xsd:int | int |
xsd.long | long |
xsd:short | short |
xsd:decimal | java.math.BigDecimal |
xsd:float | float |
xsd:double | double |
xsd:boolean | boolean |
xsd:byte | byte |
xsd:QName | javax.xml.namespace.QName |
xsd:dateTime | javax.xml.datatype.XMLGregorianCalendar |
xsd:base64Binary | byte[] |
xsd:hexBinary | byte[] |
xsd:unsignedInt | long |
xsd:unsignedShort | int |
xsd:unsignedByte | short |
xsd:time | javax.xml.datatype.XMLGregorianCalendar |
xsd:date | javax.xml.datatype.XMLGregorianCalendar |
xsd:g | javax.xml.datatype.XMLGregorianCalendar |
xsd:anySimpleType | java.lang.Object |
xsd:anySimpleType | java.lang.String |
xsd:duration | javax.xml.datatype.Duration |
xsd:NOTATION | javax.xml.namespace.QName |
3. 读取xml的内容到java对象。
java读取xml的内容的例子。
- public class UnmarshallerUtil {
- public UnmarshallerUtil () {
- try {
- // 1. 生成JAXBContex对象
- JAXBContext context = JAXBContext.newInstance("com.test.xml");
- // 2. 生成Unmarsaller对象
- Unmarshaller unmarshaller = context.createUnmarshaller();
- File file = new File("artists.xml");
- // 3. Unmarsaller
- Object obj = unmarshaller.unmarshal(file);
- Persons artists = (Persons)obj;
- //其他处理
- } catch (JAXBException ex) {
- }
- }
- public static void main(String[] args) {
- new UnmarshallerUtil();
- }
- }
Java操作XML的JAXB工具的更多相关文章
- Java操作文件夹的工具类
Java操作文件夹的工具类 import java.io.File; public class DeleteDirectory { /** * 删除单个文件 * @param fileName 要删除 ...
- java操作xml的一个小例子
最近两天公司事比较多,这两天自己主要跟xml打交道,今天更一下用java操作xml的一个小例子. 原来自己操作xml一直用这个包:xstream-1.4.2.jar.然后用注解的方式,很方便,自己只要 ...
- Java操作XML的工具:JAXB
JavaArchitecture for XML Binding (JAXB) 是一个业界的标准,是一项可以根据XML Schema产生Java类的技术.该过程中,JAXB也提供了将XML实例文档反向 ...
- java操作XML文件--读取内容
先把问题贴出来:编写一个可以解析xml及修改xml内容的工具类 由于我以前做过Android应用程序开发,之前也解析过xml文件,所以,这道题不是很难,这篇文章我先解决第一个问 ...
- 用java操作XML文件(DOM解析方式)
XML 可扩展标记语言(Extensible Markup Language),是独立于软件和硬件的传输工具. XML的作用: (1)用作配置文件 (2)简化数据共享 (3)简化数据传输 XML DO ...
- Java操作xml文件
Bbsxml.java public class Bbsxml { private String imgsrc; private String title; private String url; p ...
- Java操作XML文件 dom4j 篇
在项目中,我们很多都用到了xml文件,无论是参数配置还是与其它系统的数据交互.今天就来讲一下Java 中使用dom4j来操作XML文件. 我们需要引入的包: //文件包 import java.io. ...
- java操作FTP的一些工具方法
java操作FTP还是很方便的,有多种开源支持,这里在apache开源的基础上自己进行了一些设计,使用起来更顺手和快捷. 思路: 1.设计FTPHandler接口,可以对ftp,sftp进行统一操作, ...
- Java 操作Redis封装RedisTemplate工具类
package com.example.redisdistlock.util; import org.springframework.beans.factory.annotation.Autowire ...
随机推荐
- 解决mybatis报错Result Maps collection does not contain value for java.lang.Integer
解决办法:1.检查mybatis的xml配置 2.在某处肯定有配错了的,如"resultMap" -->"resultType" [html] view ...
- at java.lang.AbstractStringBuilder.toString
04-18 14:40:12.615 1210-1210/com.tongyan.lanzhou.rv I/dalvikvm: "main" prio=5 tid=1 RUNNAB ...
- 〖Linux〗ADT_Bundle配置
1. 配置自动补全: Windows -> preferences -> 搜索assist,修改 java xml自动触发补全:.abcdefghijklmnopqrstuvwxyzABC ...
- V-rep学习笔记:Reflexxes Motion Library 1
V-REP中集成了在线运动轨迹生成库Reflexxes Motion Library Type IV,目前Reflexxes公司已经被谷歌收购.(The Reflexxes Motion Librar ...
- 基于SQL和PYTHON的数据库数据查询select语句
#xiaodeng#python3#基于SQL和PYTHON的数据库数据查询语句import pymysql #1.基本用法cur.execute("select * from biao&q ...
- 转:Ogre的SceneManager分析
SceneManager分析 场景管理主要工作包括以下几点: 1.可移动.不可移动和可渲染物体的创建删除. 2.场景查询. 3.渲染队列. 4.动态阴影. 一. 场景对象创建 场景中的所有对象,包括可 ...
- ubuntu中查看各种设备和资源的命令汇总
一.系统信息 1.查看内核信息: $uname -a 2.查看操作系统版本: ...
- 编程实践笔记{Java 线程 并发处理 Webservice}(转)
http://www.cnblogs.com/mingzi/archive/2009/03/09/1406694.html 1, 保证线程安全的三种方法: a, 不要跨线程访问共享变量 b, 使共享变 ...
- libev与libevent区别
摘自stackflow的回答,主要从架构上说明了二者的区别: As for design philosophy, libev was created to improve on some of the ...
- 成都达内推荐PHP书籍【update 2017.1.10】
[初阶](基础知识及入门) 01. <PHP与MySQL程序设计(第4版)> 02. <深入浅出MySQL 数据库开发 优化与管理维护 第2版> 03. <实战Nginx ...