# XML Schema editors

The W3C's XML Schema Recommendation defines a formal mechanism for describing XML documents. The standard has become popular and is used by the majority of standards bodies when describing their data.
The standard is versatile, allowing for programming concepts such as inheritance and type creation, but it is complex. The standard itself is highly technical and published in 3 different parts, making it difficult to understand without committing large amounts of time.

## XML schema editor tools

The problems users face when working with the XSD standard can be mitigated with the use of graphical editing tools. Although any text-based editor can be used to edit an XML Schema, a graphical editor offers advantages; allowing the structure of the document to be viewed graphically and edited with validation support, entry helpers and other useful features.
Editors that have been developed so far take several different approaches to the presentation of information:

### Text view

The text view of an XML Schema shows the schema in its native form. XML Schema Editors generally add to the text view with features including inline entry helpers and entry helper windows, code completion, line numbering, source folding, and syntax coloring. For more lengthy and complex schema documents, this is often difficult for even highly trained content model architects to work with, paving the way for software companies to come up with new and inventive way for users to visualize these documents.

### Physical view

A physical view of an XML Schema displays a graphical entity for each element within the XML Schema. This can make an XSD document easier to read, but does little to simplify editing. This is largely due to the structure of the XSD Standard, where container elements are required which are dependent on the base type used and the types contained within. This means that small changes to the logical structure can cause changes to ripple through the document.
The structure of the XSD standard also means entities are referenced from other locations within the document. Some editors allow these to be expanded and viewed in the location they are referenced from but others don't, which means manual cross referencing may be required.

### Logical View

A logical view shows the structure of the XML Schema without showing all the detail of the syntax used to describe it. This provides a clearer view of the XML Schema, making it easier to understand the structure of the document, and makes it easier to edit. Since the editor shows the logical structure of the XSD document, there is no need to show every element, removing much of the complexity and allowing the editor to automatically manage the syntactical rules.

## Example

The following example will show the source XSD, logical and physical views for a simple schema.
| Physical View | Logical View |
A Sample XML Document for the schema
As you can see the logical view provides more information, but without the syntactical clutter, making it easier to understand and work with.

## XML schema editors

As the XSD standard has gained support, a host of XML Schema editors have been developed. See this Comparison of XML editors available here.
| Application Name | Screenshot | Code Editor | Logical Editor | License |
| Altova XMLSpy | screenshots | | | proprietary |
| Eclipse XSD Editor (eclipse.org) | screenshots | | Limited Editing | free software |
| IntelliJ "XSD / WSDL Visualizer" Plugin | Short Introductory on Youtube screenshots | | Limited Editing | proprietary |
| jEdit XML Plugin | screenshot 1 screenshot 2 | | | free software |
| Liquid XML Studio | screenshots | | | proprietary |
| Oxygen xml | screenshots | | | proprietary |
| Stylus Studio | screenshots | | | proprietary |
| XML Fox - Freeware Edition | screenshots | | | proprietary |
| Eclipse Data Types (XSD) Editor | Short Introductory on Youtube screenshots | | | free software |
| XMLSeed | screenshots | Read Only | | proprietary |
| CAM editor open source tool | screenshots | | | free software |