This article contains promotional content .(November 2024) |
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]
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.
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:
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.
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.
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.
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 View | Logical View |
---|---|
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.
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 | Physical Editor | Logical Editor | Split Code/Diagram View | 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 [2] | |||
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 |
A document type definition (DTD) is a specification file that contains set of markup declarations that define a document type for an SGML-family markup language. The DTD specification file can be used to validate documents.
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.
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.
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.
MusicXML is an XML-based file format for representing Western musical notation. The format is open, fully documented, and can be freely used under the W3C Community Final Specification Agreement.
XMLBeans is a Java-to-XML binding framework which is part of the Apache Software Foundation XML project.
The Unique Particle Attribution (UPA) rule is a mechanism to prevent ambiguity in W3C XML Schema version 1.0.
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.
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 Languages (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) in 1999, 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 formulas, graphics, bibliographies etc.
Data Format Description Language is a modeling language for describing general text and binary data in a standard way. It was published as an Open Grid Forum Recommendation in February 2021, and in April 2024 was published as an ISO standard.
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.