This is a brand new concept: an XML Database that's simple and easy to use, entirely accessed via HTTP/REST, and ready for use in the Cloud. There's nothing else like it out there, and it's ready to turn the whole idea of handling and storing XML on its head!
So what, in a nutshell, is M/DB:X?
It's an XML database for the Cloud.
What does that mean?
Well, it's a set of REST services that allow you to create and manipulate persistent XML Document Object Models (DOM). You can import XML Documents either as a stream of XML that you send to it in a REST request, or you can ask M/DB:X to fetch a file over the Internet, perhaps from an Amazon S3 bucket.
Alternatively you can build a DOM from scratch, starting with an empty shell containing just a single tag to which you add new tags using simple REST requests.
So what? It can store XML? What's the big deal?
Well, once a DOM is created in M/DB:X you can:
- Display it using the outputDOM Action. The XML document is returned in the HTTP response
- Search the contents of the document using XPath queries
- Inspect the properties of its nodes
- Modify the properties of its nodes
- Add new nodes
- Remove existing nodes
- Transform a document in any way you like using a combination of the above
- And, of course, finally delete the document
..all using simple REST requests.
There are, of course, Native XML Database out there already, but what differentiates M/DB:X is two key things:
- its simplicity. M/DB:X disposes of most of the formality and complexity normally associated with handling XML
- you access it using HTTP/REST requests and it returns its responses as XML.
Basically it's like Amazon SimpleDB meets XML in the Cloud!
All the other Native XML Databases are heavyweight and very formal affairs, built around the concept of XML being validated against a schema and with rigorous adherence to XML namespacing rules.
M/DB:X throws all that away and takes the "good enough" approach, simplifying the concept right
down. Much as SimpleDB provides a place where you can throw together spreadsheet-like databases without any need for pre-defining a schema or indexes, M/DB:X allows you to quickly and easily throw together XML documents and play around with them in any way you like.
M/DB:X also bucks the trend by using a non-validating parser. Basically you can throw anything that looks vaguely like XML at M/DB:X and it will do its best to turn it into an XML DOM. It won't return errors and it won't complain that what you gave it doesn't conform to a particular schema or that it wasn't properly structured XML. If it can turn it into a DOM, it will.
This will have the XML gurus out there wailing and gnashing their teeth of course! So why's this a cool thing and not a problem?
Well, for example, it means that you can get it to import "lazy" structured HTML pages from any URL you like and it will tidy it up as best it can and turn it into an XML DOM for you. Once it's done that for you, you can analyse that page, take bits out of it, find stuff in it, all using proper XML techniques and XPath queries instead of hacking about with the raw page text.
Relax, however: give M/DB:X a properly structured valid XML document and it will produce the DOM you'd expect!
Speed, simplicity, ease of operation and near-zero administration are the objectives of M/DB:X.
It's a simple-to-install extension to the M/DB Virtual Appliance, so you can be up and running in no time at all.
XML databases just got simple! Go and check it out!
Oh, and did I mention: M/DB:X is free Open Source software.