> Flexible definition of data allows for greater precision of data structure.
Other way around. If there are 3 different ways of doing something, the data structure is less precise. Say you have an object with a Name as a string. You know exactly what this is going to look like in JSON:
{
"name": "Whizzbang"
}
How is it going to look in XML? It might look like this:
<Foo name="Whizzbang" />
It might look like this:
<Foo>
<Name>Whizzbang</Name>
</Foo>
It might look like this:
<Foo>
<Name value="Whizzbang" />
</Foo>
XML is
less precise because it's
more flexible. "But you just define an XML Schema to disambiguate" -- so now you're doing more work in a separate file that you have to publish and link in just to solve a problem that JSON doesn't have at all.
> Something like XSLT isn't for human interaction; it's for super-powerful machine transformations.
It's only "super-powerful" considering XSLT as a markup language. Considering it as a programming language, it rather sucks. If you're writing ETL scripts to transform data around, use an actual programming language. The fact that XSLT is Turing Complete only drives home the point that it's not a "powerful markup language", it's "poorly-designed programming language". Sure, if you're literally only transforming the exact same data from one XML schema to another, as some sort of adapter step, then XSLT beats general-purpose languages; but you're never just doing that, are you? You're linking in other data sources, validating things, sending things over the wire, etc. You already need the code to save and load your XML into a format you prefer in memory; just use that format for these tasks.
> Any time a dev pushes back against XML, it's been my experience they are uneducated on the subject.
Many people who push back against XML are not uneducated, but rather jaded on it, having worked with ambiguous formats, buggy schemas, and 4000-line long configuration behemoths that should have just been code. You can use XML parsimoniously, but there's not much overlap between the people doing that and the people who love XSLT.