Я создал плагин DITA-OT PDF, который хорошо работает и должен работать. Следующий шаг — передать параметры ANT в XSLT-файлы моего пользовательского плагина, переопределяющие их. Как видите, это расширяет возможности обработки плагинов pdf2, и у меня есть работающие пользовательские таблицы стилей.
Вот документация о том, как это сделать. Это работает для плагинов по умолчанию (pdf2, xhtml и т. д.) http://dita-ot.github.io/1.8/dev_ref/plugin-xsltparams.html
Но когда я пытаюсь проделать тот же трюк для своего собственного плагина, я никогда не могу запустить интеграцию. Я добавил следующую строку в "plugin.xml"
<?xml version='1.0' encoding='UTF-8'?>
<plugin id="com.mymods.pdf">
<require plugin="org.dita.pdf2" />
<feature extension="dita.conductor.transtype.check" value="com.mymods.pdf" />
<feature extension="dita.transtype.print" value="com.mymods.pdf" />
<feature extension="dita.conductor.target.relative" file="integrator.xml" />
<feature extension="dita.conductor.com.mymods.pdf.param" file="insertParameters.xml"/>
<template file="build_mymods_pdf_template.xml"/>
</plugin>
И мой "insertParameters.xml" выглядит так:
<?xml version='1.0' encoding='UTF-8'?>
<dummy>
<!-- EXAMPLE: <param name="paramNameinXSLT" expression="${antProperty}" if="antProperty"/> -->
<param name="custom.data1" expression="${custom.data1}" if="custom.data1"/>
<param name="custom.data2" expression="${custom.data2}" if="custom.data2"/>
</dummy>
Затем, когда я пытаюсь интегрировать изменения в DITA-OT, я получаю следующее:
BUILD FAILED
DITA-OT1.8.4\integrator.xml:59: The following error occurred while executing this line:
DITA-OT1.8.4\integrator.xml:49: Integration failed: Plug-in com.mymods.pdf uses an undefined extension point dita.conductor.com.mymods.pdf.param
Еще одна дополнительная информация: я попытался изменить в «plugin.xml» одну строку, чтобы указать на оригинальный плагин pdf2 вместо моего собственного плагина:
<feature extension="dita.conductor.pdf2.param" file="insertParameters.xsl"/>
Затем интеграция проходит успешно, но затем, когда я пытаюсь обработать вывод в формате PDF с помощью моего плагина, я получаю сообщение об ошибке, которое вызывает BUILD FAILED:
mycustom.xsl Fatal Error! Variable custom.data1 has not been declared (or its declaration is not in scope)
mycustom.xsl Fatal Error! Variable custom.data2 has not been declared (or its declaration is not in scope)
Можно ли вообще передавать параметры ANT в пользовательский плагин XSLT-обработку или можно использовать только сценарии преобразования DITA-OT по умолчанию (например, pdf2, xhtml)? Что я делаю неправильно?