It&#x27;s just because XML is a bad choice. It&#x27;s a standard for creating markup languages, but use in HTML failed because it&#x27;s more verbose and doesn&#x27;t cope at all with user errors.<p>For data serialisation it&#x27;s just insane. The only reason to use XML to serialize your non markup data is that it&#x27;s a web technology and you have parsers everywhere. Mapping data back and forward between your data structures and the XML representation is a huge pain in the ass, as there&#x27;s no natural mapping. For some formats like SVG you basically have to keep data as a DOM in your program.<p>&gt; And while XML is complicated there are far more complicated formats (YAML).<p>While the Syntax of YAML certainly is more complicated, totally I would say that it&#x27;s less complicated without all the XPath, Namespaces etc. you additionally need. YAML maps fairly direct to data structures of programs and the complexity is there to get human readability and edit ability. Something XML doesn&#x27;t have when used for general data.<p>&gt; TOML<p>Is basically just a specification of the largely unspecified INI format, which is older than XML. This is just a format for human editable configuration files, for which we have experience that XML really really sucks.<p>&gt; JSON<p>Very simple data format that maps directly to data structures of all common programming languages. The fact that JSON beat XML where XML is at home, in the web shows pretty clearly that JSON is the better format for data serialisation.<p>TL;DR: Use the correct format for the use case. XML is for markup, not serialisation. JSON is for serialisation, YAML is a better readable JSON e.g. if you mainly use the data for debugging, INI(&#x2F;toml) is for configuration files.