利用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)為 off 。如果設(shè)置為 off -g:none 將傳遞到支持它的編譯器的命令行(對(duì)于其他編譯器,將不會(huì)使用命令行參數(shù))。如果設(shè)置為 true debuglevel 特性的值將決定命令行參數(shù)。

          debuglevel

          要追加到 -g 命令行開關(guān)后面的關(guān)鍵字列表。這將會(huì)被除 modern classic(ver >= 1.2) 以外的所有實(shí)現(xiàn)忽略。合法值是 none 或下列關(guān)鍵字的逗號(hào)分隔列表: lines vars source 。如果不指定 debuglevel ,則默認(rèn)情況下,將不會(huì)在 -g 的后面追加任何關(guān)鍵字。如果不打開 debug ,該特性將被忽略。

          optimize

          指出是否應(yīng)該用優(yōu)化方式編譯源代碼,默認(rèn)為 off

          includeAntRuntime

          指出是否應(yīng)在類路徑中包括 Ant 運(yùn)行時(shí)程序庫(kù),默認(rèn)為 yes

          includeJavaRuntime

          指出是否應(yīng)在類路徑中包括來(lái)自執(zhí)行 VM 的默認(rèn)運(yùn)行時(shí)程序庫(kù),默認(rèn)為 no

          fork

          是否應(yīng)在外部使用 JDK 編譯器執(zhí)行 javac ,默認(rèn)為 yes

          否,默認(rèn)為 true

          executable

          當(dāng) fork="yes" 時(shí)應(yīng)使用的 javac 可執(zhí)行文件的完整路徑。默認(rèn)為當(dāng)前運(yùn)行 Ant Java 版編譯器。如果 fork="no" ,該參數(shù)將被忽略。

          memoryInitialSize

          如果 javac 在外部運(yùn)行,則是底層 VM 的初始內(nèi)存大小;否則將被忽略。默認(rèn)為標(biāo)準(zhǔn) VM 內(nèi)存設(shè)置。(例如: 83886080 81920k 80m

          memoryMaximumSize

          如果 javac 在外部運(yùn)行,則是底層 VM 的最大內(nèi)存大小;否則將被忽略。默認(rèn)為標(biāo)準(zhǔn) VM 內(nèi)存設(shè)置。(例如: 83886080 81920k 80m

          compiler

          要使用的編譯器實(shí)現(xiàn)。如果未設(shè)置該特性,將使用 build.compiler 屬性的值(如果設(shè)置)。否則,將使用當(dāng)前 VM 的默認(rèn)編譯器。

          ?

          具體用法參考: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)  編輯  收藏 所屬分類: 開源軟件


          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          <2006年3月>
          2627281234
          567891011
          12131415161718
          19202122232425
          2627282930311
          2345678

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(2)

          隨筆分類(31)

          隨筆檔案(30)

          文章分類(32)

          文章檔案(33)

          相冊(cè)

          PHP小站-首頁(yè)

          搜索

          積分與排名

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 安庆市| 房产| 宁陕县| 金堂县| 临高县| 峡江县| 福鼎市| 临汾市| 保山市| 清水河县| 新蔡县| 内丘县| 资溪县| 新化县| 上林县| 兴业县| 饶平县| 班戈县| 武威市| 砚山县| 白玉县| 若尔盖县| 拜城县| 乃东县| 长寿区| 咸宁市| 揭西县| 张家港市| 辽阳县| 白银市| 九龙坡区| 新昌县| 金川县| 乳山市| 张家口市| 彭州市| 青龙| 晋江市| 桓台县| 宁海县| 武平县|