XML Schema editors

Last updated

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. [1]

Contents

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.

<?xml version="1.0" encoding="utf-8" ?><xs:schemaelementFormDefault="qualified"xmlns:xs="http://www.w3.org/2001/XMLSchema"><xs:complexTypename="NameType"><xs:sequence><xs:elementname="Forename"type="xs:string"/><xs:elementname="Surname"type="xs:string"/></xs:sequence></xs:complexType><xs:elementname="Person"><xs:complexType><xs:sequence><xs:elementname="Name"><xs:complexType><xs:complexContentmixed="false"><xs:extensionbase="NameType"><xs:attributename="ID"type="xs:string"/></xs:extension></xs:complexContent></xs:complexType></xs:element></xs:sequence></xs:complexType></xs:element></xs:schema>
Physical ViewLogical View
The Physical representation of an XSD Schema.png The Logical representation of an XSD Schema.png

A Sample XML Document for the schema

<?xml version="1.0" encoding="utf-8" ?><Person><NameID="123456"><Forename>John</Forename><Surname>Doe</Surname></Name></Person>

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 NameScreenshotCode EditorPhysical EditorLogical EditorSplit Code/Diagram ViewLicense
Altova XMLSpy screenshots
Tick-green.png
Tick-green.png
Tick-green.png
proprietary
Eclipse XSD Editor (eclipse.org) screenshots
Tick-green.png
Tick-green.png
Limited Editingfree software
IntelliJ "XSD Visualizer" Plugin Short Introductory on Youtube screenshots
Tick-green.png
Work in Progress
Tick-green.png
proprietary [2]
jEdit XML Plugin screenshot 1
screenshot 2
Tick-green.png
Tick-green.png
Tick-green.png
free software
Liquid XML Studio screenshots
Tick-green.png
Tick-green.png
Tick-green.png
Tick-green.png
proprietary
Oxygen xml screenshots
Tick-green.png
Tick-green.png
Tick-green.png
Tick-green.png
proprietary
Stylus Studio screenshots
Tick-green.png
Tick-green.png
Tick-green.png
Tick-green.png
proprietary
XML Fox - Freeware Edition screenshots
Tick-green.png
proprietary
Eclipse Data Types (XSD) Editor Short Introductory on Youtube screenshots
Tick-green.png
Tick-green.png
free software
XMLSeed screenshots Read Only
Tick-green.png
Tick-green.png
Tick-green.png
proprietary
CAM editor open source tool screenshots
Tick-green.png
Tick-green.png
free software

Related Research Articles

A document type definition (DTD) is a set of markup declarations that define a document type for an SGML-family markup language.

<span class="mw-page-title-main">XML</span> Markup language by the W3C for encoding of data

Extensible Markup Language (XML) is a markup language and file format for storing, transmitting, and reconstructing arbitrary data. It defines a set of rules for encoding documents in a format that is both human-readable and machine-readable. The World Wide Web Consortium's XML 1.0 Specification of 1998 and several other related specifications—all of them free open standards—define XML.

Abstract Syntax Notation One (ASN.1) is a standard interface description language for defining data structures that can be serialized and deserialized in a cross-platform way. It is broadly used in telecommunications and computer networking, and especially in cryptography.

XSD, a recommendation of the World Wide Web Consortium (W3C), specifies how to formally describe the elements in an Extensible Markup Language (XML) document. It can be used by programmers to verify each piece of item content in a document, to assure it adheres to the description of the element it is placed in.

YAML is a human-readable data-serialization language. It is commonly used for configuration files and in applications where data is being stored or transmitted. YAML targets many of the same communications applications as Extensible Markup Language (XML) but has a minimal syntax which intentionally differs from SGML. It uses both Python-style indentation to indicate nesting, and a more compact format that uses [...] for lists and {...} for maps thus JSON files are valid YAML 1.2.

In computing, RELAX NG is a schema language for XML—a RELAX NG schema specifies a pattern for the structure and content of an XML document. A RELAX NG schema is itself an XML document but RELAX NG also offers a popular compact, non-XML syntax. Compared to other XML schema languages RELAX NG is considered relatively simple.

An XML editor is a markup language editor with added functionality to facilitate the editing of XML. This can be done using a plain text editor, with all the code visible, but XML editors have added facilities like tag completion and menus and buttons for tasks that are common in XML editing, based on data supplied with document type definition (DTD) or the XML tree.

An XML schema is a description of a type of XML document, typically expressed in terms of constraints on the structure and content of documents of that type, above and beyond the basic syntactical constraints imposed by XML itself. These constraints are generally expressed using some combination of grammatical rules governing the order of elements, Boolean predicates that the content must satisfy, data types governing the content of elements and attributes, and more specialized rules such as uniqueness and referential integrity constraints.

XMLBeans is a Java-to-XML binding framework which is part of the Apache Software Foundation XML project.

Catalogue Service for the Web (CSW), sometimes seen as Catalogue Service - Web, is a standard for exposing a catalogue of geospatial records in XML on the Internet. The catalogue is made up of records that describe geospatial data, geospatial services, and related resources.

<span class="mw-page-title-main">Oxygen XML Editor</span>

The Oxygen XML Editor is a multi-platform XML editor, XSLT/XQuery debugger and profiler with Unicode support. It is a Java application so it can run in Windows, Mac OS X, and Linux. It also has a version that can run as an Eclipse plugin.

A Canonical S-expression is a binary encoding form of a subset of general S-expression. It was designed for use in SPKI to retain the power of S-expressions and ensure canonical form for applications such as digital signatures while achieving the compactness of a binary form and maximizing the speed of parsing.

The Web Application Description Language (WADL) is a machine-readable XML description of HTTP-based web services. WADL models the resources provided by a service and the relationships between them. WADL is intended to simplify the reuse of web services that are based on the existing HTTP architecture of the Web. It is platform and language independent and aims to promote reuse of applications beyond the basic use in a web browser. WADL was submitted to the World Wide Web Consortium by Sun Microsystems on 31 August 2009, but the consortium has no current plans to standardize it. WADL is the REST equivalent of SOAP's Web Services Description Language (WSDL), which can also be used to describe REST web services.

The Pronunciation Lexicon Specification (PLS) is a W3C Recommendation, which is designed to enable interoperable specification of pronunciation information for both speech recognition and speech synthesis engines within voice browsing applications. The language is intended to be easy to use by developers while supporting the accurate specification of pronunciation information for international use.

XPath is an expression language designed to support the query or transformation of XML documents. It was defined by the World Wide Web Consortium (W3C) and can be used to compute values from the content of an XML document. Support for XPath exists in applications that support XML, such as web browsers, and many programming languages.

XQuery is a query and functional programming language that queries and transforms collections of structured and unstructured data, usually in the form of XML, text and with vendor-specific extensions for other data formats. The language is developed by the XML Query working group of the W3C. The work is closely coordinated with the development of XSLT by the XSL Working Group; the two groups share responsibility for XPath, which is a subset of XQuery.

The Office Open XML file formats are a set of file formats that can be used to represent electronic office documents. There are formats for word processing documents, spreadsheets and presentations as well as specific formats for material such as mathematical formulae, graphics, bibliographies etc.

Data Format Description Language, published as an Open Grid Forum Proposed Recommendation in January 2011, is a modeling language for describing general text and binary data in a standard way. A DFDL model or schema allows any text or binary data to be read from its native format and to be presented as an instance of an information set.. The same DFDL schema also allows data to be taken from an instance of an information set and written out to its native format.

Fuzzy Markup Language (FML) is a specific purpose markup language based on XML, used for describing the structure and behavior of a fuzzy system independently of the hardware architecture devoted to host and run it.

gSOAP is a C and C++ software development toolkit for SOAP/XML web services and generic XML data bindings. Given a set of C/C++ type declarations, the compiler-based gSOAP tools generate serialization routines in source code for efficient XML serialization of the specified C and C++ data structures. Serialization takes zero-copy overhead.

References