#xml #ant #syntax #nested-forms
#xml #ant #синтаксис #вложенные формы
Вопрос:
Я новичок как в ANT, так и в XML. Синтаксис XML кажется действительно запутанным. Следующие три структуры «echo» верны в моем ANT.
<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"").
Существует ли какое-то общее правило для различения синтаксических различий между заголовками, такими как «набор файлов» и «echo», я имею в виду, как «echo» разрешает вложенные текстовые данные, а «набор файлов» нет?
Спасибо.
Комментарии:
1. Разработчики Ant не предоставляют пользователям никаких схем / DTD, из-за природы Ant — вы можете легко определять новые задачи, типы с их собственными функциями. Таким образом, нет никакой проверки синтаксиса при определении build.xml . Задачи Ant в XML анализируются Java-кодом task, поэтому вы можете узнать, что поддерживается, только прочитав документы / просмотрев исходный код.
Ответ №1:
Авторы echo task разработали ее таким способом двойного назначения. Он может работать с атрибутом «message» или с дочерним текстом. Но другие задачи (fileset на самом деле является типом) не поддерживают такие функции. Просто прочитайте официальную документацию, чтобы знать все варианты использования.