利用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 扭转乾坤 阅读(2036) 评论(0)  编辑  收藏 所属分类: 开源软件

<2006年3月>
日一二三四五六
2627281234
567891011
12131415161718
19202122232425
2627282930311
2345678

导航

统计

常用链接

留言簿(2)

随笔分类(31)

随笔档案(30)

文章分类(32)

文章档案(33)

相册

PHP小站-首页

搜索

积分与排名

最新评论

阅读排行榜

评论排行榜