XML into database

Hi,

I've already talked about this in another topic, but I've found
another approach.

We have some complex definitions and structures in our database and
I'd like to make it possible to simplify adding items to the
application. I'd like to do that using XML. Using XML we'll define a
few common item structures that can be used as a template for new
items. But I don't want to actually store physical XML-files on the
server, I want to store the XML in a database. Now my question is: how
to do that? I know how to store it, but I don't know how to read it.

The sequence is quite simple. If a user wants to create a new item
from a template, they select the appropriate template and the XML
needs to be parsed so that the right values are copied into the right
tables. Is this possible and how? The XML-parsers I know need to be
fed from a file and I don't want to do that.

Thank you!

We do this in the Kete app (http://github.com/kete/kete). Look in lib/
extended_fields.rb for example code.

In hindsight, I would probably have been better off to have done this
with either marshalling or YAML rather than storing XML though.

Cheers,
Walter

Thanks for the tip!

jhaagmans wrote:

Hi,

I've already talked about this in another topic, but I've found
another approach.

We have some complex definitions and structures in our database and
I'd like to make it possible to simplify adding items to the
application. I'd like to do that using XML. Using XML we'll define a
few common item structures that can be used as a template for new
items. But I don't want to actually store physical XML-files on the
server, I want to store the XML in a database. Now my question is: how
to do that? I know how to store it, but I don't know how to read it.

[...]

I would suggest that XML or YAML in the DB is the wrong approach. I
understand that you want flexibility without needing to change the
schema, so why not consider a document database such as CouchDB? It
sounds like this is really what you're looking for.

Best,

I would suggest that XML or YAML in the DB is the wrong approach. I
understand that you want flexibility without needing to change the
schema, so why not consider a document database such as CouchDB? It
sounds like this is really what you're looking for.

Nope, I'm really looking for XML in a MySQL db. I hoped there was
something like REXML to read XML from a database, but I can't find it.

We can always consider putting physical XML files somewhere, but I'd
prefer putting it in the db.

Because I have a client who already manually defines these items in
XML for another application.

What part of REXML::Document.new(xml_string_from_the_db) doesn't work
for you? :slight_smile:

--Matt Jones