利用Ant生成XMLBean中所需要的Jar文件
??????
利用
XMLBean
讀寫
xml
文件非常的方便,主要是通過
xml
文件生成
xsd
即所謂的
Schema
文件,然后利用
scomp
(是
XMLBean
提供的一個(gè)編譯工具
,
它在
bin
的目錄下),
通過這個(gè)工具,我們可以將以上的
Schema
文件生成
Java Classes
。這一步要如果通過
Ant
來(lái)實(shí)現(xiàn),顯得非常的方便和簡(jiǎn)單,如下: (務(wù)必注意,要將jsr173_1.0_api.jar加入ant目錄下的lib中,否則,會(huì)報(bào)錯(cuò))
首先定義
build.properties
文件:
build.dir=classes
jar.dir=jar
xsd.dir=xsd
xbean.dir=lib
這個(gè)文件主要定義的是一些路徑的名稱,放在配置文件里面比較容易修改,下面的是
build.xml
文件:
<project default="build" basedir=".">
??? <property file="build.properties" description="Transfer property from .properties file"/>
??? <taskdef name="xmlbean" classname="org.apache.xmlbeans.impl.tool.XMLBean" classpath="${xbean.dir}\xbean.jar"/>
??? <xmlbean classgendir="${build.dir}" classpath="${class.path}"? failonerror="true">
????? <fileset dir="${xsd.dir}" includes="**/*.*"/>
??? </xmlbean>
??? <xmlbean schema="${xsd.dir}" destfile="${jar.dir}\Schemas.jar"/>
</project>
其中的具體意義,可以參閱:
http://dev2dev.bea.com.cn/download/school/workshop/WorkshopCNHelp/doc/zh/core/index.html
http://dev2dev.bea.com.cn/download/school/workshop/WorkshopCNHelp/doc/zh/core/index.html
示例
請(qǐng)務(wù)必在腳本中定義任務(wù),如下所示:
<taskdef name="xmlbean" classname="org.apache.xmlbeans.impl.tool.XMLBean" classpath="path/to/xbean.jar" />
下面的腳本在
Schema
目錄中生成所有
Schema
,并創(chuàng)建一個(gè)名為
Schemas.jar
的
jar
文件。
<xmlbean schema="schemas" destfile="Schemas.jar"/>
下面的腳本將
Schema“ourSchema.xsd”
編譯成默認(rèn)
jar“xmltypes.jar”
。
?
如果遠(yuǎn)程
URL
定義了任何導(dǎo)入和包括,將在生成期間下載它們。
<xmlbean schema="schemas/ourSchema.xsd" download="true"/>
使用文件組
<xmlbean classgendir="${build.dir}" classpath="${class.path}"
????? failonerror="true">
? <fileset basedir="src" excludes="**/*.xsd"/>
? <fileset basedir="schemas" includes="**/*.*"/>
</xmlbean>
收集
src
目錄中除
XSD
文件以外的所有文件,以及
schemas
目錄中的每一個(gè)文件,并編譯它們。文件組可以包括引用了以前所編譯的
Schema
組件的
Schema
文件。
?
文件組還可以包含
JAVA
文件。
?classpath
參數(shù)定義在解析編譯后的
Schema
和
java
引用時(shí)所需的類路徑。
所生成的類將轉(zhuǎn)入
${build.dir}
。
參數(shù)
特性
|
描述
|
必需
|
Schema
|
指向單個(gè)
Schema
文件或文件目錄的文件。
?
非路徑引用。
?
如果需要同時(shí)生成多個(gè)
Schema
文件,應(yīng)使用嵌套的文件組,而不要設(shè)置
Schema
。
|
是,除非嵌套了一個(gè)文件組元素。
|
destfile
|
定義所創(chuàng)建的
jar
文件的名稱。
?
例如,
“myXMLBean.jar”
會(huì)將該任務(wù)的結(jié)果輸出到同名的
jar
中。
|
否,默認(rèn)為
“xmltypes.jar”
。
|
download
|
設(shè)置為
true
將允許編譯器下載要導(dǎo)入和包括的
URL
。
?
默認(rèn)為
false
,這意味著所有導(dǎo)入和包括的內(nèi)容都必須在本地進(jìn)行復(fù)制。
|
否,默認(rèn)為
false
。
|
failonerror
|
確定當(dāng)
XMLBean
創(chuàng)建過程遇到生成錯(cuò)誤時(shí),
ant
目標(biāo)是否將繼續(xù)。
|
否,默認(rèn)為
true
。
|
verbose
|
控制生成消息的輸出量。
|
否,默認(rèn)為
true
。
|
typesystemname
|
應(yīng)在其中生成
TypeSystemHolder
類的包的名稱。
?
通常不應(yīng)指定該名稱。該包中將不會(huì)生成
XMLBean
。使用
.xsdconfig
文件可以修改
XMLBean
包或類名。
|
否
|
classgendir
|
設(shè)置用來(lái)存放所生成的
CLASS
文件的位置。
|
否
|
srconly
|
true
值意味著只生成源代碼。
|
否,默認(rèn)為
false
。
|
srcgendir
|
設(shè)置用來(lái)存放所生成的
JAVA
文件的位置。
|
否
|
classpath
|
在下列情況下要用到的類路徑:如果文件組中的
Schema
將導(dǎo)入由其他編譯后的
XMLBean JAR
文件所提供的定義,或者
JAVA
文件位于
Schema
文件組中。此外,還支持嵌套的類路徑。
|
否
|
classpathref
|
添加類路徑,并將其作為對(duì)在其他位置所定義的路徑的
引用
。
|
否
|
includes
|
必須包括的文件模式的列表,以逗號(hào)或空格分隔。如果忽略,將包括所有文件。
|
否
|
includesfile
|
文件名。該文件的每一行都將作為一個(gè)
include
模式。
|
否
|
excludes
|
必須排除的文件模式的列表,以逗號(hào)或空格分隔。如果忽略,將不會(huì)排除任何文件(默認(rèn)排除的文件除外)。
|
否
|
excludesfile
|
文件名。該文件的每一行都將作為一個(gè)
exclude
模式。
|
否
|
defaultexcludes
|
指出是否應(yīng)使用默認(rèn)排除(
“yes”/“no”
)。如果忽略,將使用默認(rèn)排除。
|
否
|
debug
|
指出是否應(yīng)該在帶調(diào)試信息的情況下編譯源代碼,默認(rèn)為
|
否
|
debuglevel
|
要追加到
|
否
|
optimize
|
指出是否應(yīng)該用優(yōu)化方式編譯源代碼,默認(rèn)為
|
否
|
includeAntRuntime
|
指出是否應(yīng)在類路徑中包括
Ant
運(yùn)行時(shí)程序庫(kù),默認(rèn)為
|
否
|
includeJavaRuntime
|
指出是否應(yīng)在類路徑中包括來(lái)自執(zhí)行
VM
的默認(rèn)運(yùn)行時(shí)程序庫(kù),默認(rèn)為
|
否
|
fork
|
是否應(yīng)在外部使用
JDK
編譯器執(zhí)行
|
否,默認(rèn)為
true
|
executable
|
當(dāng)
|
否
|
memoryInitialSize
|
如果
|
否
|
memoryMaximumSize
|
如果
|
否
|
compiler
|
要使用的編譯器實(shí)現(xiàn)。如果未設(shè)置該特性,將使用
|
否
|
具體用法參考:http://www-128.ibm.com/developerworks/cn/xml/x-beans1/index.html
posted on 2006-03-30 13:37 扭轉(zhuǎn)乾坤 閱讀(2006) 評(píng)論(0) 編輯 收藏 所屬分類: 開源軟件