XML is short for eXtensible Markup Language. It operates as a way of both storing information and describing the structure of that information.
If you're reading this, the chances are you're already familiar with some types of markup languages—HTML, for instance. Or maybe Markdown.
But unlike other markup languages, XML has no predefined tags. Each implementation of XML defines its own tags. That's the eXtensible part of XML. But that's not to say you can just make up any old thing—XML does provide some structure for defining a set tags. Here's Kevin Howard Goldberg:
[XML] is a set of rules for defining custom-built markup languages. The XML specification enables people to define their own markup language. Then they, or others, can create XML documents using that markup language.
The main advantage of XML is that the tags can convey semantic meaning about the information inside them. Indeed, XML is the recommended way of expressing the subject-predicate-object items held inside triple store (or RDF) databases.
At various points, I stopped to re-read a bunch of philosophy papers I'd not engaged with in a decade, took another stab at learning XML and RDF, and read Mark Baker's excellent book on the rhetoric of structured writing.
We can contrast that with a component content management system. These are designed to store content at a modular level, where a module can be as small as a single word or as large as an entire chapter. They typically store all these components in structured XML, a solution that is equal parts extremely flexible and daunting for authors.