Because XML was not designed for data, it has serious ambiguities and constraints. These limitations are hard for many to understand because most articles and books never address them. A good analogy to the problem is how we've perceived the earth. Hundreds of years ago the prevailing view was the world is flat, because people experience a flat world. Even people who saw the complexity of the flat world continued to justify their view after the logic of the round-world view was quite clear. Imagine the difficulty Columbus had trying to convince people that the world was round. People thought he was crazy.
How is this discussion about a flat versus a round world related to XML? The vast majority of people working with XML today believe in the equivalent of an XML flat world: XML as a syntax for documents. This flat-world view is everywhere; supported by standards, committees, books, and seminarsit is the dominant view for XML. The round world model treats XML as a syntax for data and objects. The differences are slight, but the implications are huge.
A small but growing group of people understands that the document-centric model has outlived its usefulness and that a data-centric model is required for progress. This article aims to convert people to a simpler, round-world view, leading them toward seeing XML in a whole new way. It also introduces ConciseXML, a superset of XML and the syntax of the Water programming language, which intends to solve not only the limitations, but the verbosity of XML.
XML is a Syntax
XML is wrapped in a number of misconceptions. Many articles define XML as one of the following:
- A standard for describing data in a machine-understandable way
- The solution for application integration problems
- A programming language
XML is none of these things. XML is simply a syntax. The XML 1.0 standard does not define any tag names or attributes that carry meaning. XML only describes the syntax for representing elements and attributes. XML does not even specify a standard way to represent objects and data, because there is no standard for how elements and attributes should be used to represent objects and fields.
Hundreds of standards, including XHTML, WSDL, UDDI, SVG, and ebXML, use an
XML syntax for describing data. Because no single way exists for representing data in
XML, every standard chooses its own way. Each standard with an XML syntax then can not easily share data. This problem is not yet well understood in the industry and has led to significant complexity when trying to deploy solutions based on XML.