RSS 2.0
Sign In
# Thursday, January 15, 2009

A simple demand nowdays - a good IDE.

Almost a ten years have passed since xslt has appeared but still, we're not pleased with IDEs claiming xslt support. Our expectaions are not too high. There are things however, which must be present in such an IDE.

  1. A notion of project, and possibly a group of projects. You may think of it as a main xslt including other xslts participationg in the project.
  2. A code completion. A feature providing typing hints for language constructs, includes, prefixes, namespaces, functions, templates, modes, variables, parameters, schema elements, and other (all this should work in a context of the project).
  3. A code refactoring. A means to move parts of code between (or inside) files and projects, rename things (functions, templates, parameters, variables, prefixes, namespaces, and other).
  4. Code validation and run.
  5. Optional debug feature.

We would be grateful if someone had pointed to any such IDE.

Thursday, January 15, 2009 2:41:35 PM UTC  #    Comments [13] -
Incremental Parser | xslt
Thursday, January 15, 2009 3:54:42 PM UTC
I can recommend oXygen XML Editor. IMHO it could satisfy nearly all your requirements, except providing namespace prefixes which sometimes works and sometimes does not. Altought it's written in Java it's pretty fast and has best code completion I have seen so far. You will have to try code refactoring on your own, I do not use it much.

Maybe you would want to try evaluation version of IntelliJ IDEA with plugins XPathView + XSLT-Support and XSLT-Debugger. It's primarily Java IDE but with use of mentioned plugins, writing XSLT is much easies and "enjoyable". Best advantage of IDEA are advanced refactorings (provided by both IDEA and plugins) and easiness of creating new ones.

I hope you will find this comment somehow useful.

Josef Pavlas
Thursday, January 15, 2009 4:45:27 PM UTC

Consider an example provided by xslt 2.0 spec:
"...For example, if stylesheet B includes stylesheet A, stylesheet C includes stylesheet A, and stylesheet D includes both stylesheet B and stylesheet C, then A will be included indirectly by D twice. If all of B, C and D are used as independent stylesheets, then the error can be avoided by separating everything in B other than the inclusion of A into a separate stylesheet B' and changing B to contain just inclusions of B' and A, similarly for C, and then changing D to include A, B', C'."

Unfortunately oXygen does not provide acceptable code completion and refactoring for such A', B', and C' modules, as it never looks defitions in including modules.

We never tried IntelliJ IDEA, and we shall try it.

Thank you for your feedback!
Vladimir Nesterovsky
Saturday, January 17, 2009 9:43:25 AM UTC
Try Stylus Studio, especially last build, it's just great. support for multiple XSLT processors with debugging option and tons of other things.
Saturday, January 17, 2009 8:01:58 PM UTC
Hi Evi,

we'll try the Stylus Studio, of course, but right now our main issue is refactoring of XSLT, but not debugging. We unfortunately didn't found yet an IDE that supports good refactoring of XSLT 2.0. The example, Vladimir has mentioned above is rather close to status quo of our current project. Anyway, thanks for link.
Arthur Nesterovsky
Sunday, January 18, 2009 9:30:39 AM UTC
We want to stress that a code completion, refactoring and navigation are important to an xslt editor. Could you find a contemporary C++, java, C# developer, who did not demand these features? Debugger is also important, but if we had to select between a good xslt editor and a debugger, we would select the first.

We have checked the latest version of the Stylus Studio. It rather far from what we wished to see.

It's dreadful to say, however we could even live without that glossy xml and xsd bricks views that almost every IDE considers to be very important.
Vladimir Nesterovsky
Monday, January 26, 2009 10:17:04 PM UTC
Lets build one! :)
That's what IronXSLT was supposed to be. Now that I worked with new VS editor I'd say it's worth to wait a bit and build one based on VS 2010 - it's a dramatic improvement.
Tuesday, January 27, 2009 10:35:43 AM UTC
Hi Oleg,

whether it will support XSLT 2.0, or MS will freeze out it forever?
It will be a bit strange to build such VS extension that need in third party XSLT engine.
Arthur Nesterovsky
Tuesday, January 27, 2009 10:46:42 AM UTC
Hello Oleg,

I think this is a good idea!
Can you please estimate efforts required to build (extend) such editor for xslt 2 (and optionally for xquery)?

Personally I think the most required features are intellisence and refactoring, which generally can be done without external engine.

Debug is an optional, but desired, feature.
Vladimir Nesterovsky
Saturday, January 31, 2009 7:47:33 AM UTC
Let's take this offline.
Oleg Tkachenko
Saturday, January 31, 2009 12:33:59 PM UTC
Xquery support indeed would be good to have...
Friday, February 20, 2009 10:51:07 PM UTC
Hi Oleg, is offline. Where can I get a download for IronXSLT ??

Alex McCool
Saturday, February 21, 2009 7:07:13 AM UTC

Oleg will eventually see your question or we can ask him, however, you may ask him directly on his site.

Vladimir Nesterovsky
Wednesday, March 4, 2009 7:33:36 AM UTC
Sorry, Alex, site has crashed and I'm still struggling to restore it.
You can download IronXSLT 0.3 at
Oleg Tkachenko
All comments require the approval of the site owner before being displayed.
Home page

Comment (Some html is allowed: a@href@title, b, blockquote@cite, em, i, strike, strong, sub, super, u) where the @ means "attribute." For example, you can use <a href="" title=""> or <blockquote cite="Scott">.  

[Captcha]Enter the code shown (prevents robots):

Live Comment Preview
<January 2009>
Total Posts: 384
This Year: 3
This Month: 0
This Week: 0
Comments: 1388
Locations of visitors to this page
The opinions expressed herein are our own personal opinions and do not represent our employer's view in anyway.

© 2023, Nesterovsky bros
All Content © 2023, Nesterovsky bros
DasBlog theme 'Business' created by Christoph De Baene (delarou)