Komodo is what I have been using for XSLT debugging for a OAISIS DITA open toolkit project I am currently on. I have been taking some specialized DITA sample data and adapting the DITA open toolkit dita2docbook transform to the client specifications. In ActiveState Komodo, I love being able to set break points in the XML input or the XSLT and step through the execution. It is very handy to see the order of execution or what template is used for a particular part of a large XML collection. However it is very annoying that I cannot see a partial output of the transform... also the watch options in Komodo do not seem to work (I get exceptions). I have used Oxygen XML at a previous job and liked it but can't remember if it was any better than Komodo in these areas. I may have to go on a hunt for a new XSLT IDE that allows me to:
- set break points in xml source or xslt and execute a transform in debug (stepping mode)
- inspect using xpath while in debug (stepping mode)
- view partial xslt transform output in debug mode
- select which xslt processor (Saxon, Xalan, MSXSL or Xerces)
- perform XSL-FO transforms with Apache FOP
I have also used Eclipse as a XSLT development tool, I even had setup a process such that changes made to sample input XML, or the project XSLT files would trigger a transform using Apache Ant and then a second transform using Apache FOP and finally launch a PDF viewer to check the results. I will try to find time to post those Ant scripts and how I configured the Eclipse project to do it.
Programming in XSLT reminds me of when I was an intern working for Tracy, ah the memories, back then I used UltraEdit and just did command line XSLT processing with MSXSL. I was finishing my CS degree writing a compiler and had the crazy idea that I could generate XML with the tokenizer and parser and use XSLT to actually transform it into assembly. I was too worried about the project deadline to actually try it. I almost did it in Perl but chickened out and just used C++ with Visual Studio. I hadn't taken much Java and, at the time, Java seemed like too much typing. C# had just come out and I didn't dare try to learn a new language while also learning how to write a compiler.
3 comments:
Hi,
You should be able to set a breakpoint in both xml and xslt files before or during debugging and have those work. We use libxslt and libxml for the xslt processor, unfortunately it does not support showing output until the entire document is done. For other processors, if someone were to implement DBGP support for them, they could work with Komodo.
Regards,
Shane Caraveo
ActiveState
Thanks I have breakpoints working well in XSLT and source XML with Komodo. Why display output tab in debug mode if it is a known issue that XSLT output will not display until completion? Makes the IDE look broken. By the way Shane Komodo's Rx Toolkit is godly :) My status as a developer at a previous employer was greatly enhanced by using that feature in Komodo to quickly knockout throwaway Perl code for short one-off processes for a marketing department. Nothing beats it and the price of the IDE was worth it for that feature alone.
Most of the debug engines do show output as it is sent, and since we have a non-language specific debug interface, it behaves pretty much the same across languages. There is also a comment somewhere in the libxslt sources about implementing the progressive output during debugging, but I don't think it has been done to date.
Glad to hear about Rx! I think we need to give it a bit more love sometime, lots of people like it.
Shane
Post a Comment