Visualizing XML Schemas
March 6, 2023
1 Introduction
XML Schema files are an essential part of many modern software systems, particularly those based on web services or other distributed architectures. They provide a standardized way of describing the structure, content, and validation rules of XML documents that are exchanged between different applications or components. However, XML Schema files can also be complex and difficult to understand, especially for developers who are not familiar with their syntax or semantics.
To address this challenge, several software tools have been developed to help visualize the structure of XML Schema files in a more intuitive and user-friendly way. In this article, we will compare five such tools: XSD / WSDL Visualizer, Altova XML Spy, Liquid XML Studio, Oxygen XML Author, and Eclipse XML Editors and Tools. These tools offer different features, usability, performance, and price, and are designed for different types of users and scenarios.
In this article, we will compare the usefulness of these five different tools for understanding an XML schema, using the example of the RSS format. RSS (Really Simple Syndication) is a commonly used XML-based format for sharing and distributing web content, such as news articles or blog posts.
By comparing the tools in the context of the RSS schema, we aim to provide developers with a practical and relevant example of how these tools can help them better understand XML schemas in their own projects. We hope that this comparison will help developers choose the best tool for their needs and improve their productivity and efficiency in working with XML schemas.
2 Comparison Criteria
When comparing the usefulness of the tools to understand an XML schema with the example of RSS, we can use the following criteria:
Features: Can it generate diagrams that clearly show the compositions of elements in the schema? How user-friendly and easy to use is the tool in understanding the structure of the RSS schema? Is the interface intuitive and easy to navigate? Does it offer any features that enhance user understanding, such as color-coding or hover-over descriptions?
Performance: How efficiently and quickly can the tool process and display the structure of the RSS schema? Can it handle large RSS schemas without crashing or freezing? To test this we are using a 777kb XML schema file. If nothing is mentioned, the tool could handle both files just fine.
Price: What is the cost of the tool and is it a good value for its features and capabilities? Does it offer a free trial or demo version for evaluation before purchase? Is it a one-time purchase or a subscription model?
By considering these criteria, we can compare the usefulness of the different visualization tools for understanding the structure of the RSS schema. With the provided animations that demonstrate how the tools visualize the compositions of elements in the schema, we can gain a better understanding of how each tool stacks up in terms of these criteria.
3 The RSS Format
The RSS format consists of a hierarchical structure of XML elements, which define the metadata and content of the feed. The two most important elements in an RSS feed are the channel and item elements, which represent the overall information of the feed and the individual items or articles, respectively.
Here is an example of an RSS feed with two items:
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title>Example RSS Feed</title>
<link>http://www.example.com/</link>
<description>Example RSS feed for testing purposes</description>
<item>
<title>First Item</title>
<link>http://www.example.com/first-item</link>
<description>This is the first item</description>
</item>
<item>
<title>Second Item</title>
<link>http://www.example.com/second-item</link>
<description>This is the second item</description>
</item>
</channel>
</rss>
For someone who is unfamiliar with the RSS format, it is most important to learn that "rss" is the root tag, that it contains one "channel" tag with "title", "link", and "description" and an unbounded number of "item" elements which also have "title", "link", and "description".
Without such an example or to find out every possible information the RSS format allows, you need to read the XML Schema Definition (XSD) for the RSS format. Here is a shortened (full version here) version that focuses only on the important parts:
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="rss" type="rss"/>
<xsd:complexType name="rss">
<xsd:sequence>
<xsd:element name="channel" type="channel"/>
</xsd:sequence>
<xsd:attribute name="version" type="version"/>
</xsd:complexType>
<xsd:complexType name="channel">
<xsd:sequence>
<xsd:element name="title" type="xsd:string"/>
<xsd:element name="link" type="xsd:string"/>
<xsd:element name="description" type="xsd:string"/>
...
<xsd:element name="item" type="item"
maxOccurs="unbounded" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="item">
<xsd:sequence>
<xsd:element name="title" type="xsd:string" minOccurs="0"/>
<xsd:element name="link" type="xsd:string" minOccurs="0"/>
<xsd:element name="description" type="xsd:string" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
...
</xsd:schema>
Reading such a schema can be exhausting, especially when it gets more complex, and involves inheritance.
4 Detailed Analysis
Section 4.1 - XSD/WSDL Visualizer
The "XSD/WSDL Visualizer" is a plugin for IntelliJ-based IDEs developed by FLUXparticle that helps developers to visualize and understand XML Schema (XSD) and Web Services Description Language (WSDL) files.
It provides a graphical representation of the types, elements, attributes and operations defined in these files and shows the inheritance and composition relationships among them. The plugin also allows users to easily switch between the visual representation and the underlying source code.
Following is an animation of the process to discover the RSS format. All types are visible in the main view. Once you open the "rss" type you can see the "channel" element with the "channel" type. By clicking on the arrow next the "channel" the view automatically scrolls to the channel type and you can search further from there. Because you always navigate in the same view and only open the types you are interested in, the view doesn't get complicated. Also the types only show minimal information and no documentation which makes the view slim and gives a good overview. The documentation for the elements is not yet available, but will be accessible by click or mouse over in a future version.
The performance of the "XSD/WSDL Visualizer" is fast and reliable. It uses advanced algorithms and caching mechanisms to render large and complex diagrams efficiently, just the initial loading might take a bit longer for big files. It also handles incremental changes in your code gracefully without losing your previous settings or selections.
The price of the "XSD/WSDL Visualizer" is affordable and flexible. You can get access to it on monthly or yearly payment terms with discounts for uninterrupted subscriptions for 2nd year onwards. The current prices are:
- Monthly subscription: $10/user 1st year; $8/user 2nd year; $6/user 3rd year onwards
- Yearly subscription: $100/user 1st year; $80/user 2nd year; $60/user 3rd year onwards
You can try out the plugin for free for 30 days before purchasing it. FLUXparticle offers discounts for academic institutions and non-profit organizations. (Read more)
The "XSD/WSDL Visualizer" is a powerful tool that helps you to visualize and understand your XML Schema and WSDL files better. It improves your productivity, quality, and confidence as a developer working with these technologies.
Section 4.2 - Altova XMLSpy
Altova XMLSpy is a comprehensive XML editor and IDE that provides advanced features for modeling, editing, transforming, and debugging XML and related technologies, such as XSD, XPath, XSLT, XQuery, JSON, SOAP and WSDL. It offers a graphical user interface that is intuitive, customizable, and efficient, as well as a set of powerful tools that are integrated and interactive.
One of the main strengths of Altova XMLSpy is its support for visualizing XML schema files in multiple views and formats, such as the Text View, the Grid View, the Schema View and the Diagram View. These views allow developers to explore and understand the structure and relationships of the elements, attributes, types and constraints defined in an XSD file, as well as to navigate and edit the file easily and accurately.
Like every other tool on this list XMLSpy has a Text View that provides a textual representation of the XSD file that shows the raw XML code of the file in a syntax-highlighted editor that can be modified and saved directly. It also allows developers to navigate and search the code easily, as well as to compare and merge different versions of the file.
The Grid View provides a tabular representation of the XSD file that shows the elements and their properties in a spreadsheet-like format that can be sorted, filtered, and searched easily. It also allows developers to edit and validate the schema efficiently, as well as to copy and paste data between cells and files. But for the sake of understanding a schema it is not much more helpful than the Text View itself.
The Schema View provides a list representation of the XSD file that shows the namespaces, imports, includes, elements, attributes, groups and types defined in the file.
By clicking on the tree button on the left you can enter the Diagram View. It provides a visual representation of the XSD file that shows the elements and their relationships in a graphical format that can be customized and styled according to the preferences of the developer. It also allows developers to create, edit and validate the schema visually, as well as to generate documentation and code in various languages.
But for this article most importantly it can help to understand an unknown schema. This animation shows how you would discover the RSS format. In contrast to "XSD/WSDL Visualizer" here every type has a little plus at the end and by clicking it you open the definition of this type in-place. So you don't have to move around but even for this small example the boxes already become very large. This is partly due to the fact the documentation is shown directly in-place between the elements.
Altova XMLSpy also provides other features that are useful for working with XSD files, such as the XPath Analyzer, the XSLT Debugger, the WSDL Editor, and the JSON Editor. These features complement the functionality of the Schema View, the Diagram View, the Grid View, and the Text View, and enhance the productivity and quality of the development process.
The basic XMLSpy Professional Edition starts at $589 for a single-user perpetual license. XMLSpy also offers a Support and Maintenance Pack (SMP) which costs $147.25 for one year and is renewable. The enterprise edition starts at $999 and offers a SMP for $249.75. It has additional features like 3-way XML differencing and XML digital signatures (Read More). Altova offers a free 30-day trial of XMLSpy so you can try it out before purchasing.
Additionally, Altova offers discounts for academic institutions and non-profit organizations.
Overall, Altova XML Spy is a powerful and versatile tool for visualizing and working with XML schema files that offers a wide range of features and capabilities for developers of different levels and needs. Its user-friendly interface, rich functionality, and reliable performance make it a popular choice among XML professionals and enthusiasts.
Section 4.3 - Liquid XML Studio
Liquid XML Studio is a comprehensive XML development environment that includes tools for creating, editing, validating and visualizing XML schema files. The Visual Schema Editor is a graphical tool that allows developers to create and modify complex XML schema files using a drag-and-drop interface. The editor supports multiple views, including a graphical view, a text view, and a hybrid view that combines both. It also includes intelligent XML-aware editing features, such as auto-completion, syntax highlighting and error checking.
The Schema Editor supports both XSD and DTD schema files and provides advanced features such as content completion, element refactoring and attribute group refactoring. It also supports schema validation against multiple schema versions and validation of schemas in a batch mode. The visual schema editor allows developers to view the entire schema file structure in a single diagram with navigation and search features.
Liquid XML Studio also includes a Schema Browser, which provides an overview of the schema file, allowing developers to browse, search and navigate through the schema. The browser displays a hierarchical view of the schema elements and provides access to detailed information about each element. Additionally, it includes a Code Generation feature that allows developers to generate code in various programming languages, such as C#, Java and Visual Basic .NET, from an XML schema file.
The Schema Browser follows pretty much the same concept as the Diagram View in XMLSpy. Types have a plus on the right and by clicking you can extend this type to see all elements in it. Like XMLSpy it opens in-place but the documentation is shown much more compact and also the boxes have different colors from the beginning to make it more obvious if you are looking at an element or type, for example.
The price of XML Studio varies depending on the region and the specific edition or bundle that you choose. In the United States, the XML Editor Edition is priced at $304.48, while the Developer Bundle costs $770.94. However, there is also a free Community Edition available, as well as a 15-day trial period for the paid editions. It's worth noting that pricing may be subject to change, so it's always best to check the official website for the most up-to-date pricing information.
Overall, Liquid XML Studio is a powerful XML development environment that offers comprehensive support for creating, editing and visualizing XML schema files. Its intuitive user interface and advanced features make it a top choice for developers who need to work with complex XML schema files.
Section 4.4 - Oxygen XML Editor
Oxygen XML Editor is a comprehensive XML development tool that includes a powerful schema editor and validator. Its graphical schema editor allows users to create and modify XML schemas visually, with automatic validation and error checking. The editor supports multiple views of the schema, including a graphical diagram, a text view and a tree view.
One of the main advantages of Oxygen XML Editor is its advanced editing capabilities, which include content completion, validation and syntax highlighting. It also provides intelligent XML editing features such as intelligent code folding, context-sensitive help and templates for XML elements and attributes.
Oxygen XML Editor also supports XSLT and XQuery transformations, XPath evaluation and XML document comparison and merging. It integrates with various version control systems and provides tools for working with DITA, DocBook, TEI and other XML-based documentation formats.
The visualization is similar to XML Studio and XMLSpy. Types open in-place and the documentation is right there between the elements making the graphic really big when it unfolds.
In terms of performance, even loading a small file takes some time, but after that the UI has no lag at all.
In terms of price, Oxygen XML Editor offers two main editions: Enterprise and Professional. The Enterprise edition includes more advanced features and is priced at $1308 for a perpetual license (including 1 year of SMP), or $568 per year for a subscription license. The Professional edition, which is suitable for smaller teams or individual developers, is priced at $942 for a perpetual license, or $405 per year for a subscription license (Learn more details here). Both editions offer a 30-day free trial period, which allows users to try out the tool and evaluate its features before making a purchase.
Section 4.5 - Eclipse XML Editors and Tools
Eclipse is a popular open-source integrated development environment (IDE) for Java that can be extended with various plugins for working with XML files, including XML editors and schema validators. The "Eclipse XML Editors and Tools" provide a comprehensive set of features for visualizing, editing, and validating XML and XML schema files.
The "Eclipse XML Editors and Tools" offer many advanced features for working with XML schema files, such as syntax highlighting, code completion, validation, refactoring, searching and debugging.
However, "Eclipse XML Editors and Tools" can be challenging to set up and configure for beginners, as they require some knowledge of Eclipse plugins and settings. Also, Eclipse's user interface can be overwhelming and cluttered, especially for developers who are used to more streamlined editors.
This plugin takes a completely different approach to visualize XML schemas. As you can see in the animation it starts with an overview window and you can switch to a visualization of one type where you can open a visualization of all embedded types. By double-clicking on an element in the overview on the right you can get to another visualization of just the type of this element.
The performance is okay. The big file loads slowly and searches take some time, but the UI is fast and responsive.
The "Eclipse XML Editors and Tools" plugin is open-source and available for free to download and use. Like Eclipse itself, it is part of the Eclipse Foundation's projects which are developed and maintained by a community of volunteers and organizations. As an open-source solution, it offers a cost-effective option for developers who want a tool with basic XML editing and validation capabilities.
Overall, "Eclipse XML Editors and Tools" are a good choice for developers who are already familiar with Eclipse and want a flexible and powerful IDE for working with XML schema files. However, beginners may find them intimidating and may prefer more user-friendly tools.
5 Conclusion and Recommendations
In this article, we have compared five tools for visualizing XML schema files: XSD/WSDL Visualizer, Altova XML Spy, Liquid XML Studio, Oxygen XML Author and Eclipse XML Editors and Tools. We have defined several criteria for comparison, such as features, performance and price, and have evaluated each tool according to these criteria. Based on our analysis, we can draw the following conclusions and recommendations:
- XSD/WSDL Visualizer is a lightweight and affordable tool that can quickly generate visual representations of XML schema files. It has a simple user interface and supports basic editing operations. It lacks some advanced features of the other tools, but if all you want is a good and simple tool to visualize your schemas, this is the choice for you.
- Altova XML Spy is a comprehensive XML development environment that includes visual schema editing, validation and debugging tools. It has a rich set of features and supports a wide range of standards and technologies. However, it can be expensive and may require some learning curve for beginners.
- Liquid XML Studio is a versatile XML editor that offers visual schema design, validation and code generation features. It has a modern and customizable interface and supports various data formats and programming languages. However, it may not have advanced debugging tools.
- Oxygen XML Editor is a professional XML editor that provides visual schema design, validation and transformation tools. It has a modular and extensible architecture and supports advanced features such as content completion, refactoring and profiling. However, it can be expensive and may require some technical expertise to use effectively.
- Eclipse XML Editors and Tools is an open-source plugin for Eclipse IDE that offers visual schema editing, validation and transformation capabilities. It has a large and active community and supports various XML-related projects and frameworks. However, it may have a steep learning curve and may not have the same level of polish as commercial tools.
Based on these findings, we recommend that developers consider their specific needs and budget when choosing a visualization tool for XML schema files. If they need a simple and affordable tool for occasional use, XSD/WSDL Visualizer may be a good choice. If they require a comprehensive and feature-rich environment for professional development, Altova XML Spy or Oxygen XML Editor may be suitable options. If they prefer a modern and customizable editor that supports multiple technologies, Liquid XML Studio may be a good fit. And if they are already using Eclipse IDE for their projects, Eclipse XML Editors and Tools may be a convenient and integrated solution.
In conclusion, the visualization tools for XML schema files reviewed in this article offer various features and benefits for developers. By choosing the right tool for their specific needs, developers can increase their productivity, reduce errors, and improve the quality of their XML-related projects.