Requisite XKCD link: <a href="https:&#x2F;&#x2F;xkcd.com&#x2F;927&#x2F;" rel="nofollow">https:&#x2F;&#x2F;xkcd.com&#x2F;927&#x2F;</a><p>The problem with XML is that there are a lot of different programming models (streaming, pull, DOM), many schema and validation formats (DTD, XSD, RELAX NG), to the point that most people didn&#x27;t care and just manually generated some monstrosity surrounded &lt;&gt;&#x27;s using printf.<p>Personally, the way to get value out of using XML today is to find or make a schema in the most restrictive and expressive format possible that&#x27;s supported by your development environment (RELAX NG or Schematron are the prime contenders), then use it as a safety belt every time you read or write data.   The schema helps handle all the nastiness of parsing, which is the real enemy: <a href="https:&#x2F;&#x2F;www.usenix.org&#x2F;system&#x2F;files&#x2F;login&#x2F;articles&#x2F;login_aug15_02_bratus.pdf" rel="nofollow">https:&#x2F;&#x2F;www.usenix.org&#x2F;system&#x2F;files&#x2F;login&#x2F;articles&#x2F;login_aug...</a>