ant 生成 xml

利用 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}"  failοnerrοr="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}"
      failοnerrοr="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 的默认编译器。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值