0

我知道 XSLT 通常是可以调试的,但是考虑到它的模块化 XSLT 结构以及catalog.xml 文件指向样式表这一事实,究竟该如何调试 DITA 转换呢?

我希望能够在运行时单步执行代码,并能够设置断点等。

4

2 回答 2

3

在代码中添加打印语句总是有一个很好的老技巧,即 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>
-->

如果我取消注释,我会在输出日志中得到一个很好的调试文本块,显示我使用的设置的各种值。

于 2013-02-27T06:47:58.897 回答
3

如果您使用的是 Oxygen 编辑器,则可以使用此处描述的技术(来自 Oxygen 14.2 文档)调试 Toolkit 转换:

调试 PDF 转换

  1. 要使用 XSLT 调试器调试 DITA PDF 转换场景,请执行以下步骤:转到选项 > 首选项 > XML > XML 目录,单击添加并选择位于 [Oxygen 安装目录]\frameworks\dita\DITA-OT\plugins\ 的文件org.dita.pdf2\cfg\catalog.xml;

  2. 在 DITA Maps Manager 中打开地图,创建 DITA Map PDF 转换场景;

  3. 编辑场景,转到参数选项卡并将 clean.temp 参数的值更改为 no;

  4. 运行转换场景;

  5. 在 Oxygen XML 中打开位于临时目录中的 stage1.xml 文件并格式化并缩进它;

  6. 通过关联位于 OXYGEN_INSTALL_DIR/frameworks/dita/DITA-OT/plugins/org.dita.pdf2/xsl/fo/topic2fo_shell_fop.xsl 的 topic2fo_shell.xsl 样式表,为此 XML 文件创建转换场景;

  7. 在转换场景中,编辑参数列表并使用值 en_GB 和参数自定义目录设置参数 locale 以指向您的自定义目录或默认的 DITA OT 自定义目录。它的值应该具有如下 URL 语法:file://c:/path/to/OXYGEN_INSTALL_DIR/frameworks/dita/DITA-OT/plugins/org.dita.pdf2/cfg。

  8. 调试转换场景。

我通过在 Oxygen 在线帮助中搜索“调试工具包”找到了这个主题。

这些说明专门针对 PDF,但您也应该能够使这些说明适应基于 HTML 的转换。

于 2013-03-02T12:40:08.423 回答