从格式良好的 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>