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