我知道 XSLT 通常是可以调试的,但是考虑到它的模块化 XSLT 结构以及catalog.xml 文件指向样式表这一事实,究竟该如何调试 DITA 转换呢?
我希望能够在运行时单步执行代码,并能够设置断点等。
我知道 XSLT 通常是可以调试的,但是考虑到它的模块化 XSLT 结构以及catalog.xml 文件指向样式表这一事实,究竟该如何调试 DITA 转换呢?
我希望能够在运行时单步执行代码,并能够设置断点等。
在代码中添加打印语句总是有一个很好的老技巧,即 xslt 转换为<xsl:message>
. 这是我的frontmatter转换的片段:
<!--
<xsl:message>createFrontMatter_1.0</xsl:message>
<xsl:message>artworkPrefix=<xsl:copy-of select="$artworkPrefix"/></xsl:message>
<xsl:message>customizationDir.url=<xsl:value-of select="$customizationDir.url"/></xsl:message>
<xsl:message>imageLogoPath=<xsl:value-of select="$imageLogoPath"/></xsl:message>
<xsl:message>imageNotePath=<xsl:value-of select="$imageNotePath"/></xsl:message>
<xsl:message>imageWatermarkPath=<xsl:value-of select="$imageWatermarkPath"/></xsl:message>
<xsl:message>page-width=<xsl:value-of select="$page-width"/></xsl:message>
<xsl:message>page-height=<xsl:value-of select="$page-height"/></xsl:message>
-->
如果我取消注释,我会在输出日志中得到一个很好的调试文本块,显示我使用的设置的各种值。
如果您使用的是 Oxygen 编辑器,则可以使用此处描述的技术(来自 Oxygen 14.2 文档)调试 Toolkit 转换:
调试 PDF 转换
要使用 XSLT 调试器调试 DITA PDF 转换场景,请执行以下步骤:转到选项 > 首选项 > XML > XML 目录,单击添加并选择位于 [Oxygen 安装目录]\frameworks\dita\DITA-OT\plugins\ 的文件org.dita.pdf2\cfg\catalog.xml;
在 DITA Maps Manager 中打开地图,创建 DITA Map PDF 转换场景;
编辑场景,转到参数选项卡并将 clean.temp 参数的值更改为 no;
运行转换场景;
在 Oxygen XML 中打开位于临时目录中的 stage1.xml 文件并格式化并缩进它;
通过关联位于 OXYGEN_INSTALL_DIR/frameworks/dita/DITA-OT/plugins/org.dita.pdf2/xsl/fo/topic2fo_shell_fop.xsl 的 topic2fo_shell.xsl 样式表,为此 XML 文件创建转换场景;
在转换场景中,编辑参数列表并使用值 en_GB 和参数自定义目录设置参数 locale 以指向您的自定义目录或默认的 DITA OT 自定义目录。它的值应该具有如下 URL 语法:file://c:/path/to/OXYGEN_INSTALL_DIR/frameworks/dita/DITA-OT/plugins/org.dita.pdf2/cfg。
调试转换场景。
我通过在 Oxygen 在线帮助中搜索“调试工具包”找到了这个主题。
这些说明专门针对 PDF,但您也应该能够使这些说明适应基于 HTML 的转换。