Wednesday, June 21, 2006 08:16 PM
I think your question is too overly broad. I currently work at a company that writes/sells commercial-grade CMS software, so I can shed a little light as to our usage of XML, but as it might not answer your question, I'll be brief.
Our system is designed to be amazingly flexible in terms of just what sort of information it can store represents. We can use it for control of source code, software, documents, workflow, hardware configuration, or just about any sort of "knowledge" that can be mapped down to a trackable set of specs. While the data is persisted in a commercial-grade database engine, it is transmitted throughout the application in XML streams. The application itself is effectively a large web application but there is some natively compiled legacy code at the CGI layer ... the XML nature of the in-memory data means that just about any part of the application can be written in just about any language and still understand and manipulate that data stream. Heck, additional information can be added to the datastream somewhere without breaking the rest of the app, as the other pieces only go looking for XML nodes they care about. Additionally, XSLT can be used to give a presentational quality to an XML stream ... some of our JSPs are just a thin shim that applies an XSL Transform from the raw XML into end-user HTML. Hope that gives you a little insight as to its utility.