First, the obvious answers:
- XML is a part of one of my data-oriented classes for my Computer Science degree. As of right now we're just messing around with the Internet and learning meaningless stuff we all knew years before we came to university, but the work will definitely pick up sometime soon and I'd like to be well-prepared.
- I used to design and develop websites on a freelance basis, so when it comes to things like semantic mark-up, XHTML and the inner-workings of the Internet I know more than enough to get me through an undergraduate course. However, XML seems to be pretty hyped-up so I'm guessing there are a number of different applications for it, including for normal desktop applications as well as purely online.
- I wouldn't say that my command of databases is phenomenal, but I know my way around MySQL and Oracle. I know that XML can be used as some sort of database so I'd like to learn more about that.
Now, I've spent the past 3-5 years crawling through web development forums like SitePoint, and now and again I'd come across XML. In essence it seems almost too simple, although I've never found a real need to actually pick it up and learn it. In all honesty (even though I know I'm most-definitely wrong) I cannot see how learning XML would benefit me as a programmer. I've noticed its use in log files for programs like Windows Live Messenger and I've noticed a few Linux fanboy lecturers creating lecture slides as web pages with XML (nothing funnier than watching the Internet crash and their lectures grind to a halt) but I'm still yet to see how it could be useful.
So please, enlightened users of this website, direct me to some reasons as to why I, an undergraduate Computer Science student and budding developer should learn and use XML. Perhaps there are some magical reasons for using it on websites that I've never noticed whilst using PHP, ASP and MySQL, or perhaps there are loads of neat things about using it with Java. If I'm going to learn XML I want to go pretty deep into it, so don't spare all the gory details, acronyms and resources.
As a quick note, there is already a question titled What is the best guide to learn XML, so I've already got those resources.
EDIT: Thanks for the answers. It's all starting to get a bit clearer now, however, many of you are using acronyms for other correlating parts of XML, and whilst it's great that you're mentioning them it would be great to include what these other parts of XML are and why they are useful as well. Also, a lot of the uses that have been provided provide data-storage means. Why not just use SQL?