JAXB的使用(快速入门)
2006-03-27 11:44
495 查看
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的内容:
[align=left]<?xml version="1.0"?>[/align]
[align=left]<DataSources>[/align]
[align=left] <DataSource>[/align]
[align=left] <name>oracle</name>[/align]
[align=left] <driver>oracle.jdbc.driver.OracleDriver</driver>[/align]
[align=left] <url>jdbc:oracle:thin:@localhost:1521:orcl</url>[/align]
[align=left] <username>scott</username>[/align]
<password>tiger</password>
[align=left] </DataSource>[/align]
</DataSources>
并且,我们还要有此XML的DTD文件(如果你不知道怎莫从DTD得到XML,或者不知道如何从XML得到DTD,请两天后再看此文),DataSource.dtd文件如下:
[align=left]<?xml version=''1.0'' encoding="UTF-8"?>[/align]
[align=left]<!ELEMENT DataSource[/align]
[align=left] (name,driver,url,username,password)[/align]
[align=left]>[/align]
[align=left]<!ELEMENT DataSources[/align]
[align=left] (DataSource)[/align]
[align=left]>[/align]
[align=left]<!ELEMENT driver[/align]
[align=left] (#PCDATA)[/align]
[align=left]>[/align]
[align=left]<!ELEMENT name[/align]
[align=left] (#PCDATA)[/align]
[align=left]>[/align]
[align=left]<!ELEMENT password[/align]
[align=left] (#PCDATA)[/align]
[align=left]>[/align]
[align=left]<!ELEMENT url[/align]
[align=left] (#PCDATA)[/align]
[align=left]>[/align]
[align=left]<!ELEMENT username[/align]
[align=left] (#PCDATA)[/align]
[align=left]>[/align]
JAXB的使用还要配合一个转换规则的XML文件的使用,所以我们再根据我们的需要编写一个DataSource.xjs文件,如下所示:
[align=left] <?xml version="1.0"?>[/align]
[align=left]<xml-java-binding-schema version="1.0ea">[/align]
<!-- Register a type. This specifies that we want to use this type instead of String somwhere in our document. -->
[align=left]<element name="DataSources" type="class" root="true" />[/align]
</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();
。。。。
[align=left] File socksFile = new File("DataSource.xml");[/align]
[align=left] InputStream fin = new FileInputStream(socksFile);[/align]
[align=left] socks = socks.unmarshal(fin);[/align]
List sockList = socks.getDatasource();
好了,sockList就是我们得到的Java的对象了。你可以随意处置。我们下面把他们打印出来看一看:
[align=left] for (Iterator i = sockList.iterator(); i.hasNext();) {[/align]
[align=left] currentSock = (Datasource)i.next();[/align]
[align=left] System.out.println(currentSock.getName());[/align]
[align=left] System.out.println(currentSock.getDriver());[/align]
[align=left] System.out.println(currentSock.getUrl());[/align]
[align=left] System.out.println(currentSock.getUsername());[/align]
[align=left] System.out.println(currentSock.getPassword());[/align]
}
OVER!
这就结束了吗?这莫简单嘛?
没错,就是这莫简单。并且运行效率还是很不错的。
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的内容:
[align=left]<?xml version="1.0"?>[/align]
[align=left]<DataSources>[/align]
[align=left] <DataSource>[/align]
[align=left] <name>oracle</name>[/align]
[align=left] <driver>oracle.jdbc.driver.OracleDriver</driver>[/align]
[align=left] <url>jdbc:oracle:thin:@localhost:1521:orcl</url>[/align]
[align=left] <username>scott</username>[/align]
<password>tiger</password>
[align=left] </DataSource>[/align]
</DataSources>
并且,我们还要有此XML的DTD文件(如果你不知道怎莫从DTD得到XML,或者不知道如何从XML得到DTD,请两天后再看此文),DataSource.dtd文件如下:
[align=left]<?xml version=''1.0'' encoding="UTF-8"?>[/align]
[align=left]<!ELEMENT DataSource[/align]
[align=left] (name,driver,url,username,password)[/align]
[align=left]>[/align]
[align=left]<!ELEMENT DataSources[/align]
[align=left] (DataSource)[/align]
[align=left]>[/align]
[align=left]<!ELEMENT driver[/align]
[align=left] (#PCDATA)[/align]
[align=left]>[/align]
[align=left]<!ELEMENT name[/align]
[align=left] (#PCDATA)[/align]
[align=left]>[/align]
[align=left]<!ELEMENT password[/align]
[align=left] (#PCDATA)[/align]
[align=left]>[/align]
[align=left]<!ELEMENT url[/align]
[align=left] (#PCDATA)[/align]
[align=left]>[/align]
[align=left]<!ELEMENT username[/align]
[align=left] (#PCDATA)[/align]
[align=left]>[/align]
JAXB的使用还要配合一个转换规则的XML文件的使用,所以我们再根据我们的需要编写一个DataSource.xjs文件,如下所示:
[align=left] <?xml version="1.0"?>[/align]
[align=left]<xml-java-binding-schema version="1.0ea">[/align]
<!-- Register a type. This specifies that we want to use this type instead of String somwhere in our document. -->
[align=left]<element name="DataSources" type="class" root="true" />[/align]
</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();
。。。。
[align=left] File socksFile = new File("DataSource.xml");[/align]
[align=left] InputStream fin = new FileInputStream(socksFile);[/align]
[align=left] socks = socks.unmarshal(fin);[/align]
List sockList = socks.getDatasource();
好了,sockList就是我们得到的Java的对象了。你可以随意处置。我们下面把他们打印出来看一看:
[align=left] for (Iterator i = sockList.iterator(); i.hasNext();) {[/align]
[align=left] currentSock = (Datasource)i.next();[/align]
[align=left] System.out.println(currentSock.getName());[/align]
[align=left] System.out.println(currentSock.getDriver());[/align]
[align=left] System.out.println(currentSock.getUrl());[/align]
[align=left] System.out.println(currentSock.getUsername());[/align]
[align=left] System.out.println(currentSock.getPassword());[/align]
}
OVER!
这就结束了吗?这莫简单嘛?
没错,就是这莫简单。并且运行效率还是很不错的。
相关文章推荐
- HTML快速入门7——URL详解、图片使用
- 优雅高效的MyBatis-Plus工具快速入门使用
- Toad 使用快速入门
- 使用django1.0 自带的comments快速入门
- smarty详解一:简介、安装、快速入门、变量的简单使用
- IdentityServer4 中文文档 -14- (快速入门)使用 ASP.NET Core Identity
- Jupyter Notebook快速入门(3):各种使用方法
- PyTorch快速入门教程六(使用LSTM做图片分类)
- Lucene.NET使用入门(一)【实现快速搜索】
- 网站前端_JavaScript-基础入门.0002.JavaScript快速使用
- ADO.NET 快速入门(十三):使用 OLE DB 检索数据
- 快速入门:使用承诺(使用 Ja…
- ADO.NET 快速入门(十三):使用 OLE DB 检索数据
- Flex 3快速入门: 构建自定义组件 使用代码分离构建自定义组件
- ThinkPHP5的安装使用/tp5快速入门
- ASP.NET2.0快速入门(3)——使用母版页(转)
- .NET Core快速入门教程 5、使用VS Code进行C#代码调试的技巧
- mybatis-plus快速入门使用
- go语言快速入门:数据类型使用例(5)
- GIT 团队协作快速入门使用