Querying XML in databases

Tom Dyson points out that XPath support for PostgreSQL is in the works. Here's the example he gives:

article_id, xpath_string(article_xml,'\/beatles/\@beatle_id') AS beatle_id;

Meanwhile, over at John Merrells' weblog, you can try out SleepyCat XML DB -- more straightforwardly, in fact, than if you go in through the front door. I couldn't quite get it working on OS X, next time I'll go the Linux route.

Even as the XML query language debate [via Collaxa's Take] continues, it's clear that XPath is the foundation for querying XML documents stored in databases. Here's another example, from the Berkeley DB XML FAQ:

void DatingService::addProfile
(const std::string &username, DbXml::XmlDocument &profile)
XmlResults results

What's still unclear is how declarative updates will work. There are lots of approaches: updategrams, XUpdate, XQuery update. SQL wasn't built in a day, so it shouldn't be surprising that this stuff is taking a long time to cook.

Former URL: http://weblog.infoworld.com/udell/2003/03/17.html#a640