应用程序帮助翻译XSL转换

时间:2014-12-23 19:57:47

标签: debugging xslt transformation

必须有一些应用程序才能执行以下操作,但我甚至不确定如何谷歌。

困境是我们必须回溯缺陷,这样做需要查看输出xml中的某些字段是如何由XSL生成的。困难的部分是在XSL和XML中花费数小时试图找出它甚至生成的位置。如果您正在使用多个XSL转换和编辑,即使调试也很困难,因为您仍然需要找到在该转换的特定方案中获得的主键。

是否有一些软件程序可以使用XSL,也许可以执行以下两种操作之一:

  1. 输入一个输出字段名称,它将生成一个所有列表 生成此字段的可能标准,以便您可以确定XSL中十几个中的哪一个符合您的条件,
  2. 以某种方式将xsl转换为更可读的if / then类型 格式(类似于如何使用Javadoc生成可读文档)

2 个答案:

答案 0 :(得分:2)

您不会说出您目前使用的工具。像oXygen和Stylus Studio这样的工具具有一些非常复杂的XSLT调试功能。 OXygen的输出映射工具(见http://www.oxygenxml.com/xml_editor/working_with_xslt_debugger.html#xsltOutputMapping)听起来非常像你要求的东西。

使用模式感知样式表可以大大简化调试。至少在Saxon实现中,如果在样式表中声明输出对特定模式有效,那么如果不是,Saxon将告诉您样式表中的哪些指令导致生成无效输出。有时,在您提供源文档之前,它会在样式表编译时显示错误。在我看来,这种能力被大大低估了。更多详情:http://www.stylusstudio.com/schema_aware.html

答案 1 :(得分:0)

这是一个有趣的问题。您的建议也很有趣,但开发起来非常具有挑战性;我知道没有任何COTS或FOSS解决方案,但这里有一些想法:

  1. 你的第一种可能性基本上是data-flow analysis 编译器设计。我知道没有工具向用户公开这个, 但是你可能会问过XSLT处理器开发人员 考虑以对XSLT有用的方式将这种分析外部化 开发者。
  2. 您的第二种可能性本质上是文档生成器 针对XSLT源代码。我实际上帮助完成了一个客户端 过去的金融服务(见Document XSLT Automatically),但解决方案是财产 据我所知,客户并没有公开发布。它 有可能在它们之间重建这样的元转换 XSLT输入和HTML或Docbook输出,但它并不简单 最一般的情况。
  3. 您可以考虑采用另一种方法:

    加强界面定义。在您的评论中,您提到关于问题的来源是发件人的错误数据还是XSLT中的错误的不确定性。更严格的界面定义可以为您提供良好的服务。您可以通过更好地键入XSD,添加xsd:assertion语句(如果XSD 1.1是一个选项)或添加基于Schematron的接口检查级别来实现这一点,这将允许您通过输入获得基于XPath的断言的全部功能。拥有这样一个改进的,更具体的界面定义将有助于您和您的客户知道应该和不应该将哪些内容发送到您的系统。