YAML compared to XML [closed]

I read that after years yaml will be used instead of xml. Please compare the relative advantages and disadvantages of each specification.


YAML is much less verbose. The signal-to-noise ratio is higher without all the brackets. This makes it subjectively easier to read and edit for many people. On the flip side, it's slightly (only slightly) harder to parse.

The biggest difference, though, is that XML is meant to be a markup language and YAML is really more of a data format. Representing simple, hierarchical data tends to be more gracefully done in YAML, but actual marked-up text is awkward to represent.

EDIT: I'd like to add, for reference, that YAML is essentially (though not historically) a "cleaner" version of JSON ("Javascript Object Notation") that largely eliminates the latter's perceived line noise (brackets and braces). If you can't find a suitable YAML library for a particular project, then JSON is a more widely-supported alternative with many of YAML's advantages.


YAML is less verbose than XML; however, YAML is meant just for data and is not technically a markup language (YAML A'int Markup Language).


A big plus for xml are the options to validate (opinions in parenthesis):

  • Schematron (extremely powerful)
  • W3C XML Schema (solid)
  • DTD (not so nice (it isn't even xml))
  • XSD (most used)

And options to query data:

  • XPath (in version 2.x even better)
  • XQuery (mostly not of interest anymore)

YAML is probably the easiest to read for humans in most cases.

JSON is quite easy to read and it is the way JavaScript stores data (correct me if wrong). I really like to use JSON when writing my own C style programming languages to parse values.