必须有一些应用程序才能执行以下操作,但我甚至不确定如何谷歌。
困境是我们必须回溯缺陷,这样做需要查看输出xml中的某些字段是如何由XSL生成的。困难的部分是在XSL和XML中花费数小时试图找出它甚至生成的位置。如果您正在使用多个XSL转换和编辑,即使调试也很困难,因为您仍然需要找到在该转换的特定方案中获得的主键。
是否有一些软件程序可以使用XSL,也许可以执行以下两种操作之一:
答案 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解决方案,但这里有一些想法:
您可以考虑采用另一种方法:
加强界面定义。在您的评论中,您提到关于问题的来源是发件人的错误数据还是XSLT中的错误的不确定性。更严格的界面定义可以为您提供良好的服务。您可以通过更好地键入XSD,添加xsd:assertion
语句(如果XSD 1.1是一个选项)或添加基于Schematron的接口检查级别来实现这一点,这将允许您通过输入获得基于XPath的断言的全部功能。拥有这样一个改进的,更具体的界面定义将有助于您和您的客户知道应该和不应该将哪些内容发送到您的系统。