I’ve been using Microsoft’s Threat Analysis and Modeling tool (more on my experiences later), and one of the things I’ve determined is that I need an XML/XSLT editing/authoring tool to help me wade through all the information that’s buried in the threat model documents it generates (which is all written in well-formatted XML).
I’ve spent a few weeks trying desperately to find one tool that would allow me to do the following:
- Get a quick overview of the XML without exposing me to all the raw code
- Explore the hierarchy of XML in a treeview
- Allow me to automatically collapse or hide certain elements and branches of the XML so that I can skip e.g. the GUID element in every object
- Allow me to drag & drop XML elements around the document (or at least easy-to-use cut and paste)
- Allow me to browse a self-describing set of the XML tags that are available to use in this document e.g. explore the document’s schema in tree form; collate a list of the XSL tags already in use in the document (not just all those potential tags supported in XSL 1.0 or 2.0)
A few abandonware tools that are mentioned all over the ‘Net, but which are no longer options:
- ActiveState Visual XSLT: ActiveState delisted this years ago, and I cannot find a copy anywhere on the ‘Net for the life of me
- Altova XMLSpy 2004 Home Edition: still available for download from Altova’s software archive, but they have removed all traces of the License keys that could be obtained for free
- IBM XSL Editor: now part of some Websphere server-side engine
Some freeware apps I’ve found:
- XMLmind Personal Edition: java-based GUI editor. Provides collapsible tree view of document contents, inline editor for element text (hiding all the nasty tag content and code), and Provides downloadable add-ons to enable editing documents based on many different DTDs.
- Microsoft XML Notepad 2007: horrible UI, but at least it abstracts away some of the complexity of XML…
- Notepad++: does a good job of highlighting XML syntax and allowing you to collapse element branches, but doesn’t help my primary problem, which is…
- XML Cooktop: XML syntax highlighting, processing XML with XSLTs and viewing the results
- Butterfly XML: decent hierarchical view (and in my personal opinion, it beats out XML Notepad 2007), doesn’t scare off the user with tagged code, but no cut & paste capability (just add or delete).
- Xerlin: Java-based XML editor
- Vex: a “visual” XML editor
- XML Workbench
Visual Studio 2005 has some XML capabilities, but strangely nowhere near the level of “friendliness” that I’ve come to expect from this IDE:
- It’ll open XML & XSLT just fine, perform the usual syntax highlighting, and even autocomplete any code that I try to add.
- However, it just shows me the “raw code” – I can’t find any way to “hide” the code and just browse through this file in a more compact, abstract, more user-friendly way.
- You know how you can switch between Design Mode and Code in VS2005 (e.g. creating a WinForms app)? Or how FrontPage used to allow you to do the same thing? That’s what I want.
- Then I can learn some of the basics of what the code is doing by association, but in the meantime I can “get something done” without having to spend 15-20 hours learning about XML & XSLT syntax, language operators and all this minutia.
- It’d be really cool if there was some sort of Object Browser tree view of the XSD (XML schema) or a “Toolbox” like collection of the kinds of code objects that I could add (that wouldn’t scare me off as much as raw code in unknown languages does).
- Finally, I haven’t found any freebie XML-editing add-ons for VS2005. [Other than the Visual XSLT from ActiveState that appears to have disappeared from existence.]
- The next version of Visual Studio (“Orcas”) promises some improvements in dealing with XML & XSLT, but nothing earth shattering (at least not for my needs)
Actually, one of the best tools I’ve tried is another commercial app that I would never have expected to make “browsing and editing XML” as visual and flexible as it does: MindManager.
- MindManager’s native document format is a compound XML document, and it’s able to open and save in unmolested XML format.
- If you open an XML document, it’ll treat elements as Topics and element text as Callouts, making it easy to cut & paste or drag & drop elements from one part of the hierarchy (which looks like a tree with branches) to another.
- It’s very slick, looks very simple but has all sorts of extensible power behind it.
And then there’s a raft of commercial apps that might do the trick, but which cost way more $$ than I have budget for:
- Altova XMLSpy: For my purposes, this is no better than Visual Studio (even though it’s *loaded* with lots of additional features that I’m sure every XML goon would love).
- Altova StyleVision: wow, how *un*suitable is that? It doesn’t even open XSLT files – it only uses its own proprietary format, and while it seems to have lots of different ways to look at the content of the style sheet you’re working on, none of it seemed intuitive or familiar. Probably makes more sense to someone who’s been using Altova tools for a while.
- Stylus Studio XML: I like the visual XSLT mapper, the XSLT “backmapper”, their Sense:X feature, their ability to drag-and-drop from source XML to the XSLT (with intelligent handling of the resulting object), and their WYSIWYG XSLT designer (“You Design the HTML; Stylus Studio Writes the XSLT”)!! Man, with all this going for it, I’m going to at *least* spend a few days with the eval version. 🙂
Surprised? I was. MindManager and Stylus Studio XML were *not* on the short list – they’ve (a) never been mentioned by anyone I talked to who had any familiarity with XML, and (b) if you’d asked me about any tools that have XML editing capabilities I’d never have been able to come up with these.
Sidebar: Lemme just mea culpa for a sec – it’s not that I can’t code (I taught myself VB.NET from scratch), but it seems horribly inefficient to try to edit existing XSLT documents only after I have to learn every little aspect of XSLT and XML syntax. Doesn’t it?