利用Ant生成XMLBean中所需要的Jar文件

          ?????? 利用 XMLBean 讀寫 xml 文件非常的方便,主要是通過 xml 文件生成 xsd 即所謂的 Schema 文件,然后利用 scomp (是 XMLBean 提供的一個編譯工具 , 它在 bin 的目錄下), 通過這個工具,我們可以將以上的 Schema 文件生成 Java Classes 。這一步要如果通過 Ant 來實現,顯得非常的方便和簡單,如下: (務必注意,要將jsr173_1.0_api.jar加入ant目錄下的lib中,否則,會報錯)

          首先定義 build.properties 文件:

          build.dir=classes

          jar.dir=jar

          xsd.dir=xsd

          xbean.dir=lib

          這個文件主要定義的是一些路徑的名稱,放在配置文件里面比較容易修改,下面的是 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

          示例

          請務必在腳本中定義任務,如下所示:

          				
          						<taskdef name="xmlbean" classname="org.apache.xmlbeans.impl.tool.XMLBean" classpath="path/to/xbean.jar" />
          				
          		

          下面的腳本在 Schema 目錄中生成所有 Schema ,并創建一個名為 Schemas.jar jar 文件。

          <xmlbean schema="schemas" destfile="Schemas.jar"/>

          下面的腳本將 Schema“ourSchema.xsd” 編譯成默認 jar“xmltypes.jar” ? 如果遠程 URL 定義了任何導入和包括,將在生成期間下載它們。

          <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 目錄中的每一個文件,并編譯它們。文件組可以包括引用了以前所編譯的 Schema 組件的 Schema 文件。 ? 文件組還可以包含 JAVA 文件。 ?classpath 參數定義在解析編譯后的 Schema java 引用時所需的類路徑。

          所生成的類將轉入 ${build.dir}

          參數

          特性

          描述

          必需

          Schema

          指向單個 Schema 文件或文件目錄的文件。 ? 非路徑引用。 ? 如果需要同時生成多個 Schema 文件,應使用嵌套的文件組,而不要設置 Schema

          是,除非嵌套了一個文件組元素。

          destfile

          定義所創建的 jar 文件的名稱。 ? 例如, “myXMLBean.jar” 會將該任務的結果輸出到同名的 jar 中。

          否,默認為 “xmltypes.jar”

          download

          設置為 true 將允許編譯器下載要導入和包括的 URL ? 默認為 false ,這意味著所有導入和包括的內容都必須在本地進行復制。

          否,默認為 false

          failonerror

          確定當 XMLBean 創建過程遇到生成錯誤時, ant 目標是否將繼續。

          否,默認為 true

          verbose

          控制生成消息的輸出量。

          否,默認為 true

          typesystemname

          應在其中生成 TypeSystemHolder 類的包的名稱。 ? 通常不應指定該名稱。該包中將不會生成 XMLBean 。使用 .xsdconfig 文件可以修改 XMLBean 包或類名。

          classgendir

          設置用來存放所生成的 CLASS 文件的位置。

          srconly

          true 值意味著只生成源代碼。

          否,默認為 false

          srcgendir

          設置用來存放所生成的 JAVA 文件的位置。

          classpath

          在下列情況下要用到的類路徑:如果文件組中的 Schema 將導入由其他編譯后的 XMLBean JAR 文件所提供的定義,或者 JAVA 文件位于 Schema 文件組中。此外,還支持嵌套的類路徑。

          classpathref

          添加類路徑,并將其作為對在其他位置所定義的路徑的 引用

          includes

          必須包括的文件模式的列表,以逗號或空格分隔。如果忽略,將包括所有文件。

          includesfile

          文件名。該文件的每一行都將作為一個 include 模式。

          excludes

          必須排除的文件模式的列表,以逗號或空格分隔。如果忽略,將不會排除任何文件(默認排除的文件除外)。

          excludesfile

          文件名。該文件的每一行都將作為一個 exclude 模式。

          defaultexcludes

          指出是否應使用默認排除( “yes”/“no” )。如果忽略,將使用默認排除。

          debug

          指出是否應該在帶調試信息的情況下編譯源代碼,默認為 off 。如果設置為 off -g:none 將傳遞到支持它的編譯器的命令行(對于其他編譯器,將不會使用命令行參數)。如果設置為 true debuglevel 特性的值將決定命令行參數。

          debuglevel

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

          optimize

          指出是否應該用優化方式編譯源代碼,默認為 off

          includeAntRuntime

          指出是否應在類路徑中包括 Ant 運行時程序庫,默認為 yes

          includeJavaRuntime

          指出是否應在類路徑中包括來自執行 VM 的默認運行時程序庫,默認為 no

          fork

          是否應在外部使用 JDK 編譯器執行 javac ,默認為 yes

          否,默認為 true

          executable

          fork="yes" 時應使用的 javac 可執行文件的完整路徑。默認為當前運行 Ant Java 版編譯器。如果 fork="no" ,該參數將被忽略。

          memoryInitialSize

          如果 javac 在外部運行,則是底層 VM 的初始內存大小;否則將被忽略。默認為標準 VM 內存設置。(例如: 83886080 81920k 80m

          memoryMaximumSize

          如果 javac 在外部運行,則是底層 VM 的最大內存大小;否則將被忽略。默認為標準 VM 內存設置。(例如: 83886080 81920k 80m

          compiler

          要使用的編譯器實現。如果未設置該特性,將使用 build.compiler 屬性的值(如果設置)。否則,將使用當前 VM 的默認編譯器。

          ?

          具體用法參考:http://www-128.ibm.com/developerworks/cn/xml/x-beans1/index.html

          posted on 2006-03-30 13:37 扭轉乾坤 閱讀(2005) 評論(0)  編輯  收藏 所屬分類: 開源軟件


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          <2006年3月>
          2627281234
          567891011
          12131415161718
          19202122232425
          2627282930311
          2345678

          導航

          統計

          常用鏈接

          留言簿(2)

          隨筆分類(31)

          隨筆檔案(30)

          文章分類(32)

          文章檔案(33)

          相冊

          PHP小站-首頁

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 缙云县| 微山县| 平度市| 绥江县| 固始县| 民和| 宜昌市| 玛纳斯县| 明光市| 渭源县| 本溪市| 慈利县| 桑日县| 涞源县| 建宁县| 太和县| 常州市| 铜鼓县| 奈曼旗| 昆山市| 巍山| 当雄县| 绵阳市| 涿鹿县| 策勒县| 灵山县| 诸暨市| 中阳县| 晋宁县| 兴化市| 香格里拉县| 望都县| 濮阳市| 青海省| 同仁县| 通化县| 社旗县| 阳新县| 花垣县| 越西县| 堆龙德庆县|