Я хочу использовать содержимое элемента с именем "soql" в качестве атрибута в фильтре замены. Чего я хотел добиться - это заменить значение в файле содержимым элемента. В этом случае я склонен не использовать атрибут, так как значение должно быть заключено в блок CDATA
<macrodef name="exportdata">
<attribute name="file"/>
<attribute name="object"/>
<element name="soql"/>
<sequential>
<echo message="Exporting @{object}"/>
<mkdir dir="data/exports"/>
<copy file="data/config/template-process-conf.xml" tofile="data/config/process-conf.xml" overwrite="true" failonerror="true"/>
<replace file="data/config/process-conf.xml">
<replacefilter token="_endpoint_" value="${sf.serverurl}"/>
<replacefilter token="_username_" value="${sf.username}"/>
<replacefilter token="_password_" value="${encryptedpassword}"/>
<replacefilter token="_object_" value="@{object}"/>
<replacefilter token="_soql_" value="@{soql}"/>
<replacefilter token="_file_" value="data/exports/@{file}.csv"/>
<replacefilter token="_keyfile_" value="data/config/key.txt"/>
</replace>
<java classname="com.salesforce.dataloader.process.ProcessRunner" classpath="lib/DataLoader.jar" failonerror="true">
<sysproperty key="salesforce.config.dir" value="data/config"/>
<arg line="process.name=export@{object}"/>
</java>
</sequential>
</macrodef>