I thought of a good way to explain the structure of XML to someone who hadn’t seen it before today:
XML is like Russian dolls.
Each doll has two halves, just like each XML element has two tags.
Each doll needs both halves to match up to be complete.
The dolls have to match up in order – the littler ones must always go inside the bigger ones.
(NB. I haven’t managed to stretch this out to schemas yet, but I’m working on it…)