For example, is XML used simply as a data transport between the database and a (possibly non-XML) application?Or is its use integral, as in the case of XHTML and Doc Book documents?The answer to this question is, "Sort of." On the plus side, XML provides many of the things found in databases: storage (XML documents), schemas (DTDs, XML Schemas, RELAX NG, and so on), query languages (XQuery, XPath, XQL, XML-QL, QUILT, etc.), programming interfaces (SAX, DOM, JDOM), and so on.On the minus side, it lacks many of the things found in real databases: efficient storage, indexes, security, transactions and data integrity, multi-user access, triggers, queries across multiple documents, and so on.The first question you need to ask yourself when you start thinking about XML and databases is why you want to use a database in the first place. Are you looking for a place to store your Web pages?Is the database used by an e-commerce application in which XML is used as a data transport?The answers to these questions will strongly influence your choice of database and middleware (if any), as well as how you use that database.For example, suppose you have an e-commerce application that uses XML as a data transport.
The next two sections examine these characteristics.
It is a good bet that your data has a highly regular structure and is used by non-XML applications.
Furthermore, things like entities and the encodings used by XML documents probably aren't important to you -- after all, you are interested in the data, not how it is stored in an XML document.
In this case, you'll probably need a relational database and software to transfer the data between XML documents and the database.
If your applications are object-oriented, you might even want a system that can store those objects in the database or serialize them as XML.