2011-11-13 47 views
0

我是ANT和XML的新手。 XML語法似乎很混亂。 以下三種「回聲」結構在我的ANT中是正確的。在ANT build.xml中嵌套XML的形式

<echo message="Hello "/> 
    <echo message="Hello "></echo> 
    <echo> Hello </echo> 

但是當我使用 「文件集」,

<fileset dir="." includes = "**/*.java" id="myid" /> 
<fileset dir="." includes = "**/*.java" id="myid2" ></fileset> 

仍然是正確的,但

<fileset> dir="." includes = "**/*.java" id="myid2" </fileset> 

都算錯了由ANT:

The <fileset> type doesn't support nested text data ("dir="." ...="myid2""). 

有一些通用規則來區分語法d標題如「文件集」「回聲」,我的意思是,「回聲」許可證如何嵌套的文本數據,但「文件集」之間。差分不? 謝謝。

+1

由於Ant的本質,Ant開發人員不會爲用戶提供任何模式/ DTD,您可以輕鬆定義具有自己特性的新任務和類型。所以在定義build.xml時沒有任何語法檢查。 XML中的Ant任務由任務Java代碼進行分析,因此只有閱讀文檔/查看源代碼才能知道所支持的內容。 – madhead

回答

2

echo task的作者以這種兩用的方式開發它。它可以使用「消息」屬性或兒童文本進行操作。但其他任務(fileset實際上是一種類型)不支持這些功能。只需閱讀官方文檔即可瞭解所有使用案例。