从格式良好的 XML 文件加载属性值。除了“格式良好”之外,没有其他限制。您可以选择所需的布局。例如,此 XML 属性文件
<root> <properties> <foo>bar</foo> </properties> </root>
大致等同于此 Java 属性文件
root.properties.foo = bar
默认情况下,此加载不会对输入进行任何处理。特别是,与 Property 任务 不同,属性引用(即 ${foo})不会被解析。
可以使用 semanticAttributes 属性启用输入处理。如果此属性设置为 true
(其默认值为 false
),则在加载输入 XML 文件时会执行以下处理:/p>
例如,在启用语义属性处理的情况下,此 XML 属性文件
<root> <properties> <foo location="bar"/> <quux>${root.properties.foo}</quux> </properties> </root>
大致等同于 build.xml 文件中的以下片段
<property name="root.properties.foo" location="bar"/> <property name="root.properties.quux" value="${root.properties.foo}"/>
属性 | 描述 | 必需 |
---|---|---|
file | 要解析的 XML 文件。 | 是,或嵌套的资源集合 |
prefix | 要附加到每个属性的前缀。 | 否 |
keepRoot | 保留 XML 根标签作为属性名称中的第一个值。 | 否;默认值为 true |
validate | 验证输入文件(例如,通过 DTD)。否则,XML 必须仅格式良好。 | 否;默认值为 false |
collapseAttributes | 将属性视为嵌套元素。 | 否;默认值为 false |
semanticAttributes | 启用对某些属性名称的特殊处理。有关更多信息,请参阅 语义属性 部分。 | 否;默认值为 false |
includeSemanticAttribute | 将语义属性名称作为属性名称的一部分包含在内。如果 semanticAttributes 未设置为 true,则忽略。有关更多信息,请参阅 语义属性 部分。 |
否;默认值为 false |
rootDirectory | 用于解析文件引用的目录。如果 semanticAttributes 未设置为 true,则忽略。 |
否;默认值为 basedir |
delimiter | 用于拆分多个值的定界符。 自 Apache Ant 1.7.1 起 |
否;默认值为 ,(逗号) |
<xmlcatalog>
元素用于执行实体解析。
指定的资源将用作输入。
以下是一个没有语义属性的 XML 文件示例。
<root-tag myattr="true"> <inner-tag someattr="val">Text</inner-tag> <a2><a3><a4>false</a4></a3></a2> </root-tag>
构建文件中的此条目
<xmlproperty file="somefile.xml"/>
等同于以下属性
root-tag(myattr)=true root-tag.inner-tag=Text root-tag.inner-tag(someattr)=val root-tag.a2.a3.a4=false
false
构建文件中的此条目
<xmlproperty file="somefile.xml" collapseAttributes="true"/>
等同于以下属性
root-tag.myattr=true root-tag.inner-tag=Text root-tag.inner-tag.someatt=val root-tag.a2.a3.a4=false
false
构建文件中的此条目
<xmlproperty file="somefile.xml" keepRoot="false"/>
等同于以下属性
inner-tag=Text inner-tag(someattr)=val a2.a3.a4=false
以下是一个具有语义属性的 XML 文件示例。
<root-tag> <version value="0.0.1"/> <build folder="build"> <classes id="build.classes" location="${build.folder}/classes"/> <reference refid="build.classes"/> </build> <compile> <classpath pathid="compile.classpath"> <pathelement location="${build.classes}"/> </classpath> </compile> <run-time> <jars>*.jar</jars> <classpath pathid="run-time.classpath"> <path refid="compile.classpath"/> <pathelement path="${run-time.jars}"/> </classpath> </run-time> </root-tag>
true)
构建文件中的此条目
<xmlproperty file="somefile.xml" keepRoot="false" semanticAttributes="true"/>
等同于构建文件中的以下条目
<property name="version" value="0.0.1"/> <property name="build.folder" value="build"/> <property name="build.classes" location="${build.folder}/classes" id="build.classes"/> <property name="build.reference" refid="build.classes"/> <property name="run-time.jars" value="*.jar"/> <path id="compile.classpath"> <pathelement location="${build.classes}"/> </path> <path id="run-time.classpath"> <path refid="compile.classpath"/> <pathelement path="${run-time.jars}"/> </path>
true
构建文件中的此条目
<xmlproperty file="somefile.xml" semanticAttributes="true" keepRoot="false" includeSemanticAttribute="true"/>
等同于构建文件中的以下条目
<property name="version.value" value="0.0.1"/> <property name="build.folder" value="build"/> <property name="build.classes.location" location="${build.folder}/classes"/> <property name="build.reference.refid" refid="build.classes"/> <property name="run-time.jars" value="*.jar"/> <path id="compile.classpath"> <pathelement location="${build.classes}"/> </path> <path id="run-time.classpath"> <path refid="compile.classpath"/> <pathelement path="${run-time.jars}"/> </path>