<bookor
title="The Return of the King"
author="J.R.R. Tolkien"/>
<book>And in the second case, can there be more than one author? And more titles?
<title>The Return of the King</title>
<author>J.R.R. Tolkien</author>
</book>
XML is not self describing. Look at the XML below. It is very ambiguous (if you don't use one of the many schema descriptions (DTD, XML-Schema, XMI, DSD, ...)).
<dataWhat is a String? What is Boolean? What is a number? Is
x="null"
y="true"
z="42">
<a>NULL<a/>
<a>false<a/>
<b>TRUE<b/>
</data>
x
a list? You simply can't infer it from the XML. When you want to write the data, which fields are written as tags which are written as attributes?There is also a huge problem with IDs and references. From a plain XML file there's no way to figure out what an id of an object is and what references are. A good example are
plugin.xml
files. They are full of IDs and references but it is so hard to know which string refers which other XML element. Control-click does not work. Why? Because references are difficult to resolve!Are there any good alternatives?
JSON is much simpler, self-describing, less verbose and much better suited for data storage and exchange. But it has no notion of IDs and references. And it does not name object (record) types (it has only lists, maps, strings, numbers and boolean).
What else is out there? I want something like JSON + an ID/Reference model + named Records...