[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]
Re: [xml-dev] XML Redux
- From: Michael Kay <mike@saxonica.com>
- To: xml-dev@lists.xml.org
- Date: Tue, 15 Feb 2011 11:10:11 +0000
On 14/02/2011 18:03, Liam R E Quin wrote:
> I spent some time this weekend wondering how minimal one could make XML
> and still have something useful. Then, like almost everyone else,
> speculated on some random changes.
>
> http://www.barefootliam.org/xml/20110212-xml-redux
>
> (comments there are moderated to prevent spam, but should show up
> eventually)
>
> Liam
>
>
I'm inclined to be much more radical. There's no benefit in making
incremental improvements that cause a lot of disruption; the world will
stick with XML as it is today unless something radically better comes
along. For some applications where XML has been exploited over the last
ten years, JSON is radically better; for other applications, it's
hopeless. Let's rethink from the ground up, learning from what has gone
before in other traditions as well as our own.
Angle brackets aren't a good way to handle structured data. It's not
just the end tags that are redundant; there's usually no need to have
separate names for a collection and its members, and there's no need to
name each member of a homogeneous collection. They were invented for
textual markup; let's stop trying to use them for other purposes.
What data structures do we need? Basically those in JSON, plus
structured text.
* Maps (key - value pairs)
* Sequences of values
* Strings, numbers, booleans
* Text elements
For syntax, extend JSON with one additional kind of value - the text
element - which looks like an XML element today, except that the
attributes are replaced by a property of an element called its metadata
which may be any of the above kind of values - most often a map, but not
restricted.
So we might have
{ authors: [
{name: "Michael Kay", affiliation: "Saxonica"},
{name: "Liam Quin", affiliation: "W3C"}
]
abstract: <para { style : "bold" }>Here be some dragons</para>
content: <section { numbers : [1,1,2] }><para>...</para></section>
}
This uses the tagging syntax where it was designed to be used, for
textual markup; it uses notations designed for structured data when we
want to hold structured data; and it gives full composability between
the two - including of course elements within the metadata of another
element.
Michael Kay
Saxonica
[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]