#230: BibRecord: detect invalid tag values in datafields and controlfields
-----------------------+----------------------------------------------------
Reporter: jcaffaro | Owner: bthiell
Type: defect | Status: assigned
Priority: major | Milestone:
Component: BibEdit | Version:
Resolution: | Keywords: BibRecord BibUpload xmlmarclint
-----------------------+----------------------------------------------------
Changes (by bthiell):
* owner: => bthiell
* status: new => assigned
Comment:
I agree with Jérôme that BibRecord should be more conservative when
creating record structures. In my opinion it should refuse to build bad
records all together as this can lead only to problems afterwards.
However lots of modules rely on BibRecord and if bad records are contained
in the database, sysadmins won't be able to correct them in a simple way
(experienced first hand: bibupload or bibedit won't work as
create_record() doesn't work). One solution would be to reimplement and
rely on the "correct" option of create_record that could automatically
correct bad MARCXML (e.g. it could replace tag '5' by tag '005'). But I
don't like the "correct" option as it is not well defined and doesn't say
much about what it does.
Another proposition would be to replace the "correct" option with (or add
if the correct option cannot be removed) a "force" option which could be
used by BibUpload and BibEdit to create a record structure for any invalid
record already present in the database. Then the option won't be used to
reupload the new file and so the user will be forced to correct the
extracted record.
You'll find attached to this ticket a patch that shows how BibRecord could
throw exception when MARC tags contained in the MARCXML are not valid
tags.
--
Ticket URL: <http://invenio-software.org/ticket/230#comment:1>
Invenio <http://invenio-software.org>