EDItEUR (http://www.editeur.org) coordinate the development of standards for
electronic commerce for the book trade. They have created a standard called
ONIX which is closer to what I want than MARC but is still a bit too complex.
Also the terms of use seem to go against the usual free software licence in
that it seems that you can't modify it for your own use without their
permission. So in the end I've come up with my own way and what I have is
something like:
All I need to do now is to work out how to store the XML in the database.....
What about type="01" denotes the concept of "author"? Why is type="01" an author on a contributor field, but "primary title" on a title field?
This is a classic error made time and time again since the dawn of punch cards: space is important, so let's condense the amount of space a record takes up by replacing textual values with an encoded equivalent. This problem was first brought to my attention in school about 10 years ago, by a professor who was working with RAdm. Hopper when they was working on the first "business computers". The lesson my prof. learned from decades of blundering was "never resort to a codebook or a code lookup table, because it will invariably get lost when you need it most".
Now, I'm not saying this to criticize your format for marking up bibliographic data. I'm just pointing out that one of the design goals for XML was to create self-labeled data (e.g. avoid CSV and other ad-hoc formats, where there is no indication that the first column is actually the ISBN, the second column is the primary author and the third column is the primary title). And resorting to techniques like reusing 'type="01"' in multiple locations in a document is a significant step backwards.
Hope this helps.