2013-02-26 96 views
0

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

我希望能够在运行时通过代码步骤,并能够设置断点等

回答

3

如果您正在使用的氧气编辑器,可以调试工具包变换使用此处描述(从氧气14.2文档)技术:

调试PDF转换

  1. 要调试DITA PDF转换请使用XSLT调试器执行以下步骤: 转至选项>首选项> XML> XML目录,单击添加并选择位于[Oxygen Install Directory] ​​\ 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中打开位于临时目录中的stage1.xml文件并格式化并缩进;

  6. 由位于OXYGEN_INSTALL_DIR的topic2fo_shell.xsl样式表关联创建此XML文件转换场景/框架/ DITA/DITA-OT /插件/ org.dita.pdf2/XSL/FO/topic2fo_shell_fop.xsl;

  7. 在转换方案中,编辑参数列表并使用值en_GB和参数customizationDir.url设置参数区域设置,以指向您的定制目录或默认的DITA OT定制目录。它的值应该有一个URL语法,如:file:// c:/path/to/OXYGEN_INSTALL_DIR/frameworks/dita/DITA-OT/plugins/org.dita.pdf2/cfg。

  8. 调试转换方案。

我通过在Oxygen在线帮助中搜索“调试工具包”发现了本主题。

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

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> 
--> 

如果我取消,我得到的输出日志文本的一个很好的调试块,显示了我使用的设置不同的值。

+0

是的,我也这样做,但实际上我的意思是能够在运行时通过代码进行调试,能够设置断点等,就像在大多数编程IDE中一样。但是,谢谢,我会澄清这个问题。 – Anders 2013-02-27 07:58:39

+2

可以添加到消息值的一件事是xtrf和xtrc属性的值 - 为每个元素定义的所谓全局atts组。在阶段1处理期间,这些预填充了关于该主题的来源状态的信息。在这里阅读有关它们:http://docs.oasis-open.org/dita/v1.2/os/spec/common/global-atts.html – 2013-03-01 14:47:19