XML allows you to define what a document is to the computer. So?
Here's an example:
Let's pretend that we're in the 21st century and we have replicators just like Star Trek. The computers that make the food have stored in them details about the ingredients, how to cook things, and so on. Now, if you fax the computer a recipe that your grandmother wrote, it may or may not be able to read and decipher it, but you could give a computer some XML like this:
<recipe>
<title>Dough</title>
<ingredients>
<ingred_amt>1 cup</ingred_amt> <ingred>flour</ingred>
<ingred_amt>1 tsp.</ingred_amt> <ingred>salt</ingred>
<ingred_amt>1/2 cup</ingred_amt> <ingred>water</ingred>
</ingredients>
<directions>
<list>
<element>Mix flour and salt.</element>
<element>Slowly stir in water until dough is moist.</element>
<cooking>
<element>Put in microwave safe bowl.</element>
<element><method>Microwave</method> on <temp>high</temp> for <time>10 minutes</time></element>
</cooking>
</list>
</directions>
</recipe>
A smart XML parser in the computer would know what ingredients to look for and then know how to put them together and cook them. Each "<ingred>" is a food item, with "<ingred_amt>" the amount to use.
(And if you didn't guess, I made up this recipe, so I wouldn't recommend trying it. I'm a Webmaster, not a cook!) There are lots of ways the recipe could be marked up, but with XML the computer reading it would know it's a recipe and not try to sell flour futures because of this code.

