The XSD Visualizer Plugin “SchemaViz” was designed to support two main user groups:
Understanding Complex Schemas: For users seeking a quick grasp of complex XML schemas. SchemaViz provides a visual representation allowing users to grasp the structure and relationships between the components of the schema at a glance.
Assistance in Writing and Testing: For developers actively involved in creating or modifying XML schemas. The plugin instantly displays the effects of changes made, enabling users to visually verify whether the changes made have the intended impact.
The XSD Visualizer Plugin visually represents XML schemas by graphically depicting various elements and their types. Here are the key visual elements and their meanings:
Elements: Displayed as blue round rectangles, representing XML tags. They define the structure within the element itself or reference a type.
The XML would look like this:
<Person>
<Name>John Doe</Name>
<Age>30</Age>
</Person>
Simple Types: Represented as green octagonal boxes, signifying basic content like strings (textual data). They can act as attributes or contents of tags without attributes or child tags.
Here, we have a simple type describing a phone number, refining the string type using a regular expression.
Complex Types: Depicted as rectangles with a purple header. They facilitate the reuse of structures for multiple elements.
The header of this type is displayed with a hatched pattern, indicating its abstract nature. It cannot be directly used but serves as a base type in inheritance. The usage of this is evident in the connections described below.
An important visual cue within the XSD Visualizer Plugin is the letters displayed in small boxes next to inner elements. These letters dictate the order and frequency of tags within their parent tags.
Another crucial visual indicator within the XSD Visualizer Plugin is the numbers displayed preceding the local elements. These numbers specify how many times a particular tag can appear within the parent tag.
No Number: If no explicit number is provided, it implies that the tag should appear exactly once within the parent tag.
(0..1): This sequence indicates “optional”. It means the tag can appear exactly once but is not mandatory.
(1..*): This sequence implies the tag must appear at least once within the parent tag. There is no upper limit to its occurrence.
(0..*): Describes the possibility that a tag can appear any number of times within the parent tag, including zero.
The connections between elements and types, as well as among different types, play a crucial role in representing relationships within the schema:
Lines and arrows denote connections between elements and types. A line signifies a direct inheritance of the type, while arrows indicate that a type is restricted or extended. For instance, an arrow pointing towards the base type, as seen in the example, implies an extension of the type by elements or attributes. Conversely, an arrow away from the base type signifies a restriction.
In the CustomerDetailsType
, it's evident that the elements of the base type PersonDetailsType
are precisely inherited. These are then connected with the elements of the new type using a sequence (S). Consequently, the extended tags in the XML must appear after those from the base type. This signifies a limitation within XML Schema.
In addition to the main elements and connections, specific symbols provide additional information and functionalities:
Currently, the XSD Visualizer Plugin “SchemaViz” doesn't offer customization options for visualization. However, the colors adapt to the set color scheme of the Integrated Development Environment (IDE). A planned zoom feature aims to facilitate adjustments for various display sizes in the future.
For further inquiries or assistance, users can easily reach out via the feedback form within the software or here on the homepage.