AntStructure

描述

为 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 类型或任务一样。