为 Apache Ant 构建文件生成一个 DTD,其中包含有关 Ant 当前已知的所有任务的信息。
实际上,DTD 不会成为构建文件的真正 DTD,因为 Ant 对 XML 的使用无法用 DTD 捕获。Ant 中的几个元素可以具有不同的属性列表,具体取决于包含它们的元素。例如,<fail>
可以是任务,也可以是 <sound>
任务的嵌套子元素。不要将生成的 DTD 视为可以依赖的东西。
还要注意,此任务生成的 DTD 不完整,您可以始终使用 <taskdef>
或 <typedef>
添加 XML 实体。有关解决此问题的办法,请参见 此处。
此任务不知道必需属性,所有属性都将列为 #IMPLIED
。
从 Ant 1.7 开始,可以使用自定义结构打印机来代替发出 DTD 的打印机。为了插入您自己的结构,您必须实现接口 org.apache.tools.ant.taskdefs.AntStructure.StructurePrinter
并 <typedef>
您的类,并将新类型用作此任务的嵌套元素 - 请参见下面的示例。
属性 | 描述 | 必需 |
---|---|---|
输出 | 写入 DTD 的文件。 | 是 |
基本用法
<antstructure output="project.dtd"/>
发出您自己的结构而不是 DTD:首先您需要实现接口
package org.example; import org.apache.tools.ant.taskdefs.AntStructure; public class MyPrinter implements AntStructure.StructurePrinter { ... }
然后通过 typedef 使用它
<typedef name="myprinter" classname="org.example.MyPrinter"/> <antstructure output="project.my"> <myprinter/> </antstructure>
您自己的 StructurePrinter
可以接受属性和嵌套元素,就像任何其他 Ant 类型或任务一样。