logo
PRODUCT REVIEW: XSELERATOR XSL EDITOR/DEBUGGER [RELEASE]

By Peter A. Bromberg, Ph.D.

Peter Bromberg  

If you do a lot of work with XSLT as I do, then you've probably wondered why nobody has come up with a decent XSLT debugger. MarrowSoft (Martin Rowlinson, whose work I've quoted in another article here) have announced the release version of Xselerator . While this product does not have the "feature load" of say, XML Spy, it has some features that XML Spy and other XML / XSL editors do not have - which I believe make it an excellent "first choice" for the serious developer. Its strong suit, of course, is that it has the first comprehensive XSL debugger I've ever seen that actually works! As anyone who has worked with XML Spy knows, it is a big program that loads slowly with a lot of "baggage". Xselerator is exactly the opposite. It loads fast, is easy to use, and works fast.



    Here is a quick recap of new features in the release version:

  • Increased performance in the debugger
    -- From Version 2.0.40 there has been a 92% increase in the debugger performance.
  • Multiple Stylesheet support
    -- Xselerator now allows multiple XSL stylesheets to be opened simultaneously.
    The input XSL window now incorporates a files tab display at the bottom
    of the window to allow switching between the opened XSL stylesheets.
  • Unicode file support
    -- Xselerator now auto-senses correct Unicode encoding on 
    loading of files, preserves the encoding
    during editing, allows saving as various UTF encodings and preserves
    encoding when switching to view mode (eliminating view mode error report
    of switch from current encoding not supported).
    The final phase of the Unicode support (to be released in a point version
    upgrade very shortly after beta close) will also support display of
    full charsets (limited only by font selected) whilst in editor mode.
    Note that charset characters will be displayed properly in edit mode in
    this version when highlighting is turned off.
  • XSL Transformation Timings
    -- When using the default parser (MSXML 3.0) Xselerator shows the parse and
    transformation timings in the status bar of the output window.
  • Examples/Techniques/Libraries added
    -- The Examples/Techniques/Libraries has been added to the installation.   
  • Alternate Transformation output
    -- In Environment options a new option is added to the Transformation tab to
    allow all warning/error output from alternate transformation engines to be
    captured and displayed (even if the transformation was apparently 
    successful).  
  • Completed Help file
    -- So many people have asked for it and it has now arrived.
  • XSLT Breakpoints
    -- Setting breakpoints in the XSLT code on non-breakable positions now shows
    the breakpoint as a bookmark - indicating that the breakpoint is not
    at a point which can be broken at. 
  •  

    Key Features:

    Here's a short list of the key features of the release version of Xselerator, organized by area:

    Editor

    Clear and easy to use IDE
    XSL/XSLT element and attribute intuitive (like intellisense or code insight) drop-downs
    Automatic tag completion
    XSL/XSLT tag completion follows model and, optionally, fills element with mandatory attributes
    HTML element and attribute intuitive drop-downs
    Full XSL, XSLT, XML and HTML color syntax highlighting (fully customizable)
    All the usual editor capabilities (cut, copy, paste, find, replace) plus special 'Copy as RTF' and 'Copy as HTML' features allowing syntax highlighting to be preserved when copying and pasting to word-processors, HTML editors, training presentations and newsgroups etc.
    Numerous additional editor settings allowing editor behaviour to be fully customizable.

    XSLT debugger

    Full stepping capability
    Breakpoints on both XSLT and input XML
    Conditional breakpoints
    View template call stack
    Watch values (including full XPath expression watches)
    Optional stepping into built-in rules
    Uses MSXML3 transformations (so that debugging session behavior matches a real, production environment transformation engine).

    Transformation

    One click transformation test
    Full transformation testing (including XSL parameter passing, start mode and output test path)
    Use of alternative command line transformation engines (e.g. Instant Saxon, XT, Xalan, etc.).

    Wizards

    XSLT for building tables
    Selects/list boxes
    XSLT grouping/distinct expressions.

    Tools

    XPath query analyzer (test XPath queries to see the resulting node sets - click on resulting list item to view position to node in source/tree view)
    Project Files Manager, which keeps all your related XML and XSL files together
    Source edit, tree and browser view (requires IE5.x) modes
    Files opened history (re-open previous files from menu - re-opened XSLT files restore previous parameters/start mode)
    Print and print preview (with selectable highlighting options)
    XML, HTML Tidying (using HTMLTidy/TidyCOM).

    There are a number of additional planned features.


IDE Layout

The Xselerator IDE layout can be configured in different ways to suit your taste. For example, when Xselerator is first installed and started up both the Input XML and Input XSL window are docked in the main IDE window. However, some people may prefer to have these windows floating so that they can minimized, moved around etc. When I am working with the XSL debugger, I like to have the debugger window docked in between the XML (left side) window and the XSL (right side) window. This allows me to step into breakpoints that I have set, and see the locations in both windows where I am at with my code, as well as to use the Current, Call Stack, Globals, Environment, Breakpoints, Watch, or Options debugger windows conveniently.

Transformations:

Xselerator uses MSXML 3.0 as its default transformation engine. However, in the Environment options, it is possible to specify a complete command - line set for virtually any alternative engine, including MSXML 4.0. You can also specify the MS XMLSDK help file and CTRL -F1 will bring this up with context - sensitive SDK help. The Ctrl-F1 key may also be used in the Query Builder dialog and the Interactive XSL dialog.

Tidy:

Xselerator has another Environment option to use "HTML tidy", a free add-on that nicely cleans up your code according to rules you set up.

Debugger:

A quick look at the full - featured debugger toolbar items (definitely the program's strong suit!):

There is extensive help on all the features of the debugger to get you up to speed fast.

Here are some screen shots of the debugger in action:

Easy - to - Use Debugger Interface with all the familiar features you would expect:

Auto-detection of Parameters from your XSL:

Ability to modify watched items including complex XPath/XSLT expressions!


The XSL Elements dialog box enables a user to interactively build an XSL or XSLT statement. To open the XSL Elements dialog box either select XSL Elements from the XSL menu or click upon the XSL Elements button on the Input XSL window toolbar. This is a great feature, expecially for developers just "finding their way" with XSLT.

The XSL Table Wizard, along with the XSL Select Wizard and XSLT Distinct Wizard make building complex XSLT transform elements easy.

Overall, I would rate this product, at $125 (about 40% less than the price of XML Spy) as an excellent buy. I only wish I'd found it months ago -- the debugger alone could have saved me literally scores of hours of painstaking XSL debugging work!   Also, the ability to actually see the "flow" of how your XML / XSL documents are being processed by simply using the debugger to single-step through your transformations is an outstanding learning tool for anyone who wants to get a real "inside look" at how XSLT works.

 

Download a free 30 day Trial!


 

 

Peter Bromberg is an independent consultant specializing in distributed .NET solutionsa Senior Programmer /Analyst at in Orlando and a co-developer of the EggheadCafe.com developer website. He can be reached at pbromberg@yahoo.com

Do you have a question or comment about this article? Have a programming problem you need to solve? Post it at eggheadcafe.com forums and receive immediate email notification of responses.