XSD Visualisation Part 1

By Niki Heyligen

An analysis team at a client was looking for an easy to use tool to visualize XSD’s and WSDL’s. As this was not a technical team, but a team that has a focus on the business and functional aspect of a project, there was no interest in seeing the contracts in its source form. An extra wish for the tool was that it should be freeware or very low cost as this team did not work very often with these type of contracts. This already eliminated products like Altova Spy XML and Oxygen XML due to the price linked to them. In this article, I would like to elaborate on several tools available and my personal preferences.

To test the different tools, I always used the same contracts. I have added a personal requirement to the tool, which is support for Open API (Swagger). JSON services are becoming more and more popular. I feel that there will be a need to visualize these contracts in the near future. Therefore, it would be a big advantage if the tool would support open API, by default or by installing a plugin.

The Zip file provides two exe’s. One is a graphical tool and the other is a command line. This tool also comes with a “README” file that not only contains information about the versions, but it also provides a basic guideline in how to use the tool (both GUI and command line) and it provides a few examples. The setup is nothing more than unzipping the zip file to the location you prefer and launch the exe you want (GUI or Command line).

The GUI is very simple and straightforward, thus it is very easy to understand and allows a new user to start working with it immediately. The diagram makes a difference in image between different element types. Also, in the top of the screen is a dropdown box that provides object type information. The detailed information is located on the right of the screen. A useful feature in this tool is that it allows the user to add only one or more elements to the diagram. The user is not forced to generate a complete diagram with elements her or she does not want to see. However, if I have to give a remark, the only way to add one or more (not all) elements/types to the diagram is through the dropdown box at the top (element by element, type by type). It would be much easier if one could select one or more elements directly from the source as the dropdown box will quickly contain many elements with often-poorly given names (in a realistic enterprise environment, we don’t always get well defined and understandable contracts). It might become difficult to filter on elements using this dropdown box.

What this tool handles very well is matching and importing linked XSD’s. When you open an XSD that has an imported XSD and the tool has access to that contract, it opens it and provides a way of showing the linked elements. This is very useful when working with complex contracts and allows the user not to worry about links between the contracts.

  • Setup is very easy
  • GUI is easy in its use
  • All needed information is provided in the diagram.
  • Import and links several linked XSD’s with ease.
  • Dropdown box containing the elements and types is not very readable and gets very populated with complex contracts.
  • When the dropdown box is very populated, it becomes difficult to find the wanted element/type.
  • No support for WSDL
  • No support for Open API

The zip file contains an XSL file that will do a transformation on the XSD/XML provided. Although this tool provides a different result than what I was looking for, I still believe it might be useful and thus I wanted to add my findings on this tool in this blog. This tool is to be ran against an XSD/XML and it will generate an HTML page containing a description of the contract provided. Playing with the tool and looking at what it generates, I would consider using it to generate my contract documentation. However, I only wonder if there are no other tools, which generate documentation on the contract provided.

As this tool is capable of finding linked contracts, it generates a complete document (HTML page).

  • Readable documentation
  • Import and links several linked XSD’s with ease.
  • Does not support WSDL
  • Knowledge on how to run an XSL is required
  • No diagram (not the scope of the tool)
  • Seems to be a nice feature instead of a useful tool/util.
  • No support for Open API

A setup is provided which runs a complete or typical installation of the product. When opening the tool, you get a more complex window compared to the ‘XSD Diagram’ tool. The UI is more open to personal customization. The tool seems to be smarter as it keeps track of the open projects and recently used files. A very cool feature is the ‘tip of the day’. On its own, maybe not the most useful feature but still, it provides tips on topics that one might not have thought about. This also made me look for a possibility for even more information on how to use the product. And after a second I stumbled on the Content page which provides an online help. Although I didn’t found out why it is called the online help, as I couldn’t find a difference between working with it offline and online(going through it very quickly), I found it a big added value, which I miss with most other freeware tools.

Loading a first and simple XSD, I was surprised with the level of information provided by the tool. The tool provides a nicely formatted and colored window of the source of the contract. By default, the tool generates a diagram in a tab called “Diagram’. This diagram provides a more detailed view on the contract than ‘XSD Diagram’ does. A visual distinction between types and elements is provided, the occurrences are shown and the source type is provided. In addition, a properties screen provides more detailed information, which might not be available in the diagram.

An extra very cool feature is that this tool provides the same kind of documentation as the xs3p tool. Although the documentation seems very similar, for me it feels more relevant as it also shows pieces of the diagram which are not present in the xs3p tool.

When loading a complex XSD which imports several other XSD’s, I noticed that the tool does not automatically open the other XSD’s nor does it show the elements or types in the document outline. However, when going to the diagram tab, it does show the types information and it marks the external contracts with a different color. This for me feels very natural to me, as I do not want the tool to be polluted with contracts that I do not want to open, but I still get a very complete view in the diagram.

This tool also provides extra features like the generation of XML example messages …

  • User-friendliness of the screens.
  • Content utility (documentation on how to use the tool)
  • Depth of detailed information in the diagram
  • Very readable and complete documentation
  • Handles complex XSD structures
  • Does not pollute your source view nor document outline view by physically opening all the contracts linked.
  • Provides a complete view of all possible information in the diagram view.
  • Generates XML message examples
  • Use of project form
  • No support for Open API

The conclusion of this first part is that the XML Pad tool provides the most possible information. Due to my technical skills, I feel it is very user friendly. However, to really know what this tool is capable of, one will need to spend some time studying this tool. When a look back at XML Diagram, I have to say that it also provides all the required information in the diagram view, and it is much easier to use as it is much more limited in its capabilities. Xs3p has a different goal and is therefore not the correct tool to compare. My personal preference would go to XML Pad as it provides a more complete service than XSD Diagram. Below, I provided some screenshots on how the tools present the information.

IBM Integration Specialists

Enabling Digital Transformations.

Let's get in touch...

info@integrationdesigners.com

​ Find us here

Belgium
Veldkant 33B
2550 Kontich

Netherlands
Cruquiusweg 110F
1019 AK Amsterdam

© 2019 Integration Designers - Privacy policy - Part of Cronos Group CBX