I'll tell you some of the specific areas where I use it -- perhaps that will help.
I use XML to store configurational information for an application. For a server, for instance, I might store its IP address, root folder, handler application paths, etc...
I use XML to communicate over a network connection. For example, one of my clients needs to send complex information between an AS/400 and a Java application, using sockets. We structure this information in XML.
I use XML (via
SOAP or XML-RPC) to create distributed objects, to make method calls to remote objects over a TCP/IP connection.
I use XML to control a project (the CDROM mentioned above). The slides, audio files, video components, etc... are all managed by an XML structure that defines what audio goes with what file, etc... then I use XSLT to translate this into a catalog page, javascript arrays for the actual tool, etc... If I need to move a slide, add a video clip, whatever, I just change the XML and re-run the transformations.
These are just some examples. As has been said elsewhere in this forum, XML is not a magic bullet, but a useful tool. I don't mark up huge amounts of data with it (I have not found a need for this). I use it primarily as a way to communicate between processes, and to control various activities within a process.
HTH