我使用Castor的心得
Castor项目的官方网址是http://www.castor.org/
借用该网站上的介绍,让我们一起来看看castor是个什么东西?
Castor is an Open Source data binding framework for Java[tm]. It's the shortest path between Java objects, XML documents and relational tables. Castor provides Java-to-XML binding, Java-to-SQL persistence, and more.
我在项目当中,只用到了java和xml之间的绑定,所以,这里我只向大家介绍一下相关的内容,如果大家对castor感兴趣,可以参考官方网址。Castor的主要功能介绍在如下网址:http://www.castor.org/features.html
首先我们一起来看看使用castor来生成java代码。
Castor提供了一个功能,可以根据XSD文件来生成相应的Java代码,这些Java代码可以用来操作该XSD文件所描述的XML文件。
1. 第一步当然就是下载castor相关的jar文件了,主要有如下几个:
2. 编写目标XSD文件,现在有一些软件,用来编写XSD是非常方便的,只要简单的操作就可以像做网页一样生成一个XSD文件,推荐大家用XMLSPY。
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:element name="Test">
<xs:annotation>
<xs:documentation>Comment describing your root element</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="time" type="xs:string"/>
<xs:element name="place" type="xs:string"/>
<xs:element name="role" type="xs:string"/>
<xs:element name="events">
<xs:complexType>
<xs:sequence maxOccurs="unbounded">
<xs:element name="event">
<xs:complexType>
<xs:sequence>
<xs:element name="key" type="xs:int"/>
<xs:element name="description" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
3. 把相应的jar包放到根目录下,以便能够找到。
4. 编写相关的脚本,放到src目录下面
4.1 cp.bat
set CP=%CP%;%1
4.2 gencode.bat
@echo off
REM Change the following line to set your JDK path
set JAVA_HOME=%JAVA_HOME%
set JAVA=%JAVA_HOME%/bin/java
set JAVAC=%JAVA_HOME%/bin/javac
@echo Create the classpath
set CP=.
for %%i in (../*.jar) do call cp.bat %%i
set CP=%CP%;../../../build/classes;%JDK_BIN%/lib/tools.jar
@echo.
@echo Using classpath: %CP%
@echo Castor Test Cases
@echo.
@echo Generating classes...
@rem Java 2 style collection types
%JAVA% -cp %CP% org.exolab.castor.builder.SourceGenerator -i ../test.xsd -types j2 -package com.test.castor.code
@echo.
@pause
这里面大家可以看到,将我们编写的XSD文件作为参数配置到了里面,并配置了要生成的代码所属的包
5. 运行gencode.bat
这里,我们可以看到,已经有相应的code产生了。