> A data representation language must be concise enough, powerful enough, and flexible enough to make it possible to use it to define its own schema and transformations, without it being a painful experience, while also being simple enough that a single person can write a parser for it in a reasonable amount of time.
Seems like a standardized S-expression format would fit the bill.
You could even try to make it work with existing XML tools by specifying a way to generate XML SAX events from the S-expressions.
I'd prefer a format that distinguishes between sequences and associative arrays a bit more clearly. You can do that with S-exprs with some additional structure imposed on top, but then that gets more verbose than it has to be.
JSON is actually pretty decent, if only it had comments, richer data types, and some relaxed rules around syntax (e.g. allow trailing commas and unquoted keys).
Seems like a standardized S-expression format would fit the bill.
You could even try to make it work with existing XML tools by specifying a way to generate XML SAX events from the S-expressions.