>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.
- 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.
- 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.
- 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.
- 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.