>Creating an XML IDE with eclipse

>I’m an XML architect by day. It basically means that I sleep, eat, and breathe XML and XML related specifications. I also have to support over 40 member companies with their implementations of the standards I produce. So I need an XML IDE to help with the job.

With the release of Ganymede around the corner, I’m going to focus on an area that is relevant to many XML standards organizations. Having a tool that is low cost, but standards compliant to the various XML specifications. The tool has to provide at the minumum support for XML, XSL, WSDL, HTML, and XSD support. WS-I Profile validation is a must. As is the ability to exclude or include files for validation. A batch build system, as well as the ability to expand the tool into other areas. Ability to integrate with a source code control system is a must as well. Plus it needs to be extensible.

With eclipse, one can build such a system at little cost. In fact, even though it has more than what is needed, The Ganymede Java EE package has all the above features and more. With the advent of Web Standard Tools 3.0 we have a useable system that meets most of these needs. Web Standard Tools 3.0 is the first release that I would say really meets the basic compatibility and useability requirements that put it on par with the basic functionality of tools like Oxygen XML. It in many ways is more compliant than the most popular XML IDE, Altova XML Spy, and with a few additional open source plugins like SOAP UI, can compete with them or surpass them on some enterprise features. I don’t have any experience using Netbeans XML support, but I do know that many in the XML community do use Netbeans for XML editing as well.

A couple of items are still missing in the Web Tools basic tooling to round out the functionality.

  1. XSLT support is still not implemented natively. The XSL Tooling project is in incubation status, but at the time of this writing is limited to XSLT 1.0 validation support. XSLT 2.0 syntax checking is available, but XPath validation and content assistance is limited to XPath 1.0. Some will ask why Saxon 9 not included? Mainly due to IP concerns that the Eclipse Foundation had with the pedegree of the Saxon code base. Even though the Saxon code base is licensed under a Mozilla 1.0 license. There are extension points where adopters could add the necessary support for XSLT 2.0 but it is something that should be provided out of the box.
  2. XQuery Support is missing. XQuery is by far the most popular new XML language. As I stated in an earlier post, there are a couple of projects underway to address this, but none are official eclipse projects yet.
  3. RelaxNG. There are some open requests for support of Relax NG but there is no native support. RelaxNG generation and validation can be done using ANT and the External Tools runners, but it isn’t integrated.
  4. ebXML. Yes there is an alternative to all the WS-* madness.

The reason I state that Web Standard Tools 3.0 is really the first version that provides the functionality that is needed for an XML IDE, is that prior versions had many problems with standards conformance, and overall performance issues. Performance is still a concern, but with the latest version the performance issues that plagued the XSD editor with large schemas has been addressed. This means that it is now possible to navigate and edit schemas produced by orginizations like OAGi, HR-XML, STAR, ACORD, OASIS UBL, AIAG, and others. Prior versions would bring your system to it’s knees when working with these files.

Web Standard Tools 3.0 also adds a much needed ability to control which files are validated and which files are excluded from validation. This is highly critical when your work spaces has over a 1000 XSD files, plus 50 to 60 WSDL, and several hundred XML files. Without being able to control which files get validated and when, the IDE will become unuseable. Thankfully the new validation framework provides this basic support. It still needs the ability to include and exclude files based on Wildcards, but it’s a start in the right direction.

Yes those numbers are typical. Working with the OAGis 9.0 and STAR 5.1.4 schemas, WSDL, and XML files, will easily have over a 1000 XSD files that could potentially be validated at any point in time. So it’s critical to be able control what does and doesn’t get validated.

Overall the Web Standard Tools works well…but there are a few areas that still need some work. Most of the issues have to do with not working with real world files, and working with a limited subset of files. The Web Services Explorer is one area that really needs some work. In particular, it chokes on WSDLs that use any of the above schemas in the wsdl type definition. The Web Services Explorer becomes unresponsive, and basically can’t be used. However, this isn’t an eclipse problem or even a java problem, as an alternative exists in SOAPUI that provides a very good set of Web Service exploring AND testing tools. The problem with SOAPUI is that it is using the AWT-SWT bridge to provide functionality, so while it has an eclipse plugin it’s not a nice look a feel, or integrated look. But there are some things that I think the Web Services team can learn from SOAPUI in the performance department.

Other areas that need to be addressed:

  • WS-I Profile complaince. This is behind the times and WS-I Basic profile 1.2 is available.
  • Reverse Engineering of XML to XSD.
  • XML Catalog needs to include XSDs for more WS specs out of the box.
  • Schematron and RelaxNG validation
  • Support for Docbook and DITA out of the box. There is a wide untapped area of XML Authoring that needs to be addressed.
  • The HTML Web Page Designer needs to be included as a WST feature and not just a JST feature.
  • WYSIWYG visual edting of XML files with CSS stylesheets.
  • XFORMS support.
  • XSLT 2.0 support
  • XQuery support.

While I realize that many of these features are provided by adopters or other open source plugins, some of these are just basic needs that should be there from the base tooling. Particularly XSL and XQuery support. Anyways, if you need basic XML functionality, and don’t want to pay several hundred dollars to get it, then grab a copy of at least the Ganymede JAVA EE package and you’ll have the basics of what you need. If you rather not get everything for Java EE along with it then all you need to do is download the Eclipse Platform, and through the Ganymede update site, install the Web Standard Tools for XML, XSD, WSDL, HTML, and CSS support.

Eclipse can be made into a very low cost and highly standards complaint XML IDE. It’s a good solution for most standards organizations to use, as it lowers the barrier to entry for the adopters of those standards, and puts the necessary tool set in the hands of the users.

This entry was posted in dita, docbook, eclipse, standards, xforms, xml, xquery, xslt. Bookmark the permalink.

9 Responses to >Creating an XML IDE with eclipse

  1. >Very nice summary.Though I still found myself using XMLSpy ediotor mainly because of its great xml schema visualization and editing UI. I think it is much more natural, more usable and much better looking then schema editor from WTP (and any other xml tools I’ve seen).

  2. David Carver says:

    >An add on that you might consider adding for helping to visual your XML schemas is Dave Carlson’s XMLModeling plugin. It has the ability to reverse engineer the Schemas into UML, and from there display a Message Hiearchy view of the schema. Gives a nice hiearchial view. If you like class diagrams, it can display those as well.http://www.xmlmodeling.com/The 3.1 version works with Eclipse 3.4 and the Ganymede update site.

  3. David Carver says:

    >A follow up to the XML Spy question. The most problems I have to deal with come from XML Spy users. XML Spy is notoriously bad at letting errors through in schemas, and validating things as correct when all other tooling says it’s wrong. I’ve come not to trust XML Spy because of these false positives in validation. More recent versions of XML Spy are better.The other reason that XML Spy has fallen out of my favor is that they got rid of their free Home Edition of their editors. In order to get any type of XML support one has to buy the Professional version, which is several hundred dollars. More than the average home user is willing to pay. Compare that to Oxygen XML which provides a very good XML editor and was my recommendation before Web Standard Tools 3.0 was released. Oxygen XML also integrates nicely with eclipse, and the entry level addition is very affordable for personal as well as corporate use.Web Tools 3.0 is very equivalant to Oxygen XML in many ways now. There are some things that Oxygen still does better, but that gap has been closed greatly.

  4. >Well, I mostly reading schemas and just occasionally writing them. The visual schema editor in XMLSpy is a real time saver. I wish someone would did an usability facelift for the WEB tools XSD support…

  5. David Carver says:

    >Actually, in Web Tools 0.7 and 1.0 the graphical schema viewer was very much like XML Spy. In 1.5 and 2.0, it was replaced with what we currently have now.Unfortunately unless there is a big up roar from the community I don’t think the preferred graphical view will be returning anytime soon.

  6. >I think copying something that’s not free just to have a free one is the wrong approach. The non-free version’s still there in the end. The better approach is to come up with something better–including making concrete suggestions on how to improve the current version without just making it mimic another product.

  7. S.C says:

    >Mr. Carver:I just wanted to say thanks for your comment mentioning Mr. Carlson’s XMLModeling plugin. It looks really interesting, for its being able to transform XML Schemas into UML. I think it can really help with understanding the underlying data model of an XML schemaAs far as GUI DocBook editing, I’ve come across Vex: http://vex.sourceforge.net/ Vex uses CSS stylesheets for representation of the underlying document.As per http://vex.sourceforge.net/install.html when installing Vex as an Eclipse utility, it doesn’t seem to work with Eclipse Ganymede. Granted, it’s said to have worked with Eclipse 3.0. Perhaps they’ll be able to update it, eventuallyI’m not sure how it would look in regards to multi-document authoring, though. At that then, I almost want to reach for some of the theory represented in ye olde DSSSL standard… “page flows” and all that. (Maybe it’s just as well represented with XSL:FO, on XML, though — DSSSL was designed for SGML — but I haven’t taken a look at XSL:FO, to be honest)

  8. David Carver says:

    >@S.C. – VEX is on it’s way to becoming an official Eclipse WTP Incubator project, so we are working to revive it. Hypermodel is something that I couldn’t live without. I use it daily to communicate to end users of the schemas I develop.XSL:FO takes some getting used to. If you are already familiar with much of the print and typesetting lingo then picking it up shouldn’t be too difficult. Keep an eye on the eclipse wiki and this blog for some more updates on VEX.

  9. David Carver says:

    >@nitin: The functionality that is missing is basic functionality that any XML IDE already has regardless of whether it is free or not. Oxygen does much more than just what I listed, as does XML Spy, Stylus Studio and others.. However as an XML IDE, there are still basic items that the XML community have to to expect that isn’t there in the eclipse tooling package.Personally I would like to see Oxygen XML build on top of WTP’s editors and help improve upon them, thus freeing them to add even more value added features to their product.

Leave a reply to David Carver Cancel reply