* Frédéric Demians (frederic@tamil.fr) wrote:
Thanks a lot for those thorough tests. Your optimization of MARCXML records parsing looks fantastic.
They sure do, I'll be testing out your git branch you have pushed for MARC/Perl http://marcpm.git.sourceforge.net/git/gitweb.cgi?p=marcpm/marcpm;a=shortlog;...
I've measured, and your parser is, in fact pretty fast -- *if* you feed it only MARCXML that meets narrower constraints than are permitted by the MARC21slim schema. However, I see no good reason to limit Koha to that artificial restriction; having biblioitems.marcxml contain MARCXML that validates against the MARC21slim is sufficient.
It's a design choice. MARCXML is the Koha internal serialization format for MARC records. There is no obligation to conform to MARC21slim schema. We even could choose another serialization format as it has already been discussed. biblioitems.marcxml isn't open to the wide. It is written by C4::ModBiblioMarc which uses MARC::Record::as_xml_record function to populate marcxml DB field. So we already have an internal restricted version of MARC21slim schema. And we could benefit of it if pure Perl parsing is a real performance gain. That is for the good reason.
I think that getting speed and compliance to the standard is the best of both worlds. If we store standard compliant MARCXML then our export routine is trivially easy :) Not to mention the benefit of being able to say we store MARCXML compliant to the standard. Chris -- Chris Cormack Catalyst IT Ltd. +64 4 803 2238 PO Box 11-053, Manners St, Wellington 6142, New Zealand