Bryan Batchelder wrote: > In memory databse using XML and Xpath: > http://www.15seconds.com/issue/010410.htm
While this is an interesting possibility, it presents a few (perhaps important) problems: 1. Significant memory consumption. For the moment, XPath requires a DOM, and a DOM requires the entire XML file be loaded. If you data is even remotely large, this can be a pretty stiff penalty. 2. Significant performance penalty. Loading and parsing the entire XML file before you can perform any search can be expensive. You can minimize this by loading the XML once on startup, but then that grows your in-memory footprint significantly. If you're searching constantly, then that's acceptable, but if you're not, then it probably isn't. 3. XML is hierarchic, not relational. It may not fit the data model, especially if you have complicated many-to-many relationships. This could be represented well in an object database, but XML is just text. Those relationships need to be stored and re-computed upon load. 4. No complex querying. You can find nodes if you know what you're looking for, but searching based on comparisons and relationships (one of SQL's strengths) just can't be done without significant additional code. In short, I find the desire to treat XML as a database a little unusual. They aren't the same thing, and aren't meant to be the same thing. If performance is the goal here, then believe me when I say that Access is going to beat the snot out of XPath for complex queries (since you'll end up writing additional code to cover XPath's shortcomings), and with less memory impact. Plus the code will be done a heck of a lot sooner, which -- let's be honest -- is typically a major factor in engineering projects. I wonder where this "XML is a database" sentiment comes from, because it seems to be awfully prevalent in the engineering community (not just the Windows community, either). I love XML and use it all the time to transport structured data, but this is just a little bewildering for me. Brad -- Read my web log at http://www.quality.nu/dotnetguy/ You can read messages from the DOTNET archive, unsubscribe from DOTNET, or subscribe to other DevelopMentor lists at http://discuss.develop.com.