Dear Josh,
Thank you for letting me know about the right XSL file!
After some more investigations I have come to a conclusion that it is
not actually a 155 field which causes the problem but a 755 field. If it
has any value in second indicator, xsltproc fails to process it. When
the indicator does not have any value (or, to be more precise, there is
just a space), it is okay.
So far, it seems that we will have to get rid either of the values of
indicators in 755s, or of the following part of the XSL file:
<xsl:when
test="(700 <= ancestor-or-self::marc:datafield/@tag
and ancestor-or-self::marc:datafield/@tag <= 755 ) and @ind2='7'">
<xsl:attribute name="authority">
<xsl:value-of select="marc:subfield[@code='2']"/>
</xsl:attribute>
</xsl:when>
Hopefully it will work for us and let us proceed in the upgrade :-)!
Linda
On 10/30/18 9:38 PM, Josh Stompro wrote:
Hello Linda, I think the Authority ingest uses the MARC21slim2MADS.xsl
transform file to convert the authority data into MADS format. Could
you try manually processing your problem authority record using the
MADS file instead of the MODS and see what you get.
The MADS xsl does look like it references tag 155.
Josh Stompro - LARL IT Director
*From:*Open-ils-general
<open-ils-general-boun...@list.georgialibraries.org> *On Behalf Of
*Linda Jansova
*Sent:* Friday, October 26, 2018 5:29 AM
*To:* Evergreen Discussion Group
<open-ils-general@list.georgialibraries.org>; Evergreen Development
Discussion List <open-ils-...@list.georgialibraries.org>
*Subject:* [OPEN-ILS-GENERAL] Cannot save authority record with a 155
field
Hi,
back in August we started investigating why we couldn't proceed with
upgrade from 2.12.6 to 3.1.4 (for more details please
seehttp://libmail.georgialibraries.org/pipermail/open-ils-general/2018-August/015298.html).
After removing obviously invalid MARCXML records (which surprisingly
made their way to our 2.12 installation) we still have some records
which cannot be reingested (or saved).
Attached is a sample record americke_romany.xml which is one of those
troublesome ones. It is a genre/form term record with the main heading
in the field 155.
We have tried the SQL upgrade from 2.12.6 to 3.0.0 without authority
records reingest (the particular lines were commented out) and, once
we were at 3.1.4, used the web client to save this particular record
(without actually making any changes in it). However, it appeared that
it could not be saved:
---
open-ils.pcrud 2018-10-26 09:33:37 [ERR
:49144:oils_sql.c:6570:15405352984867814] open-ils.pcrud ERROR
updating authority::record_entry object with id = 356: 56966976
56966976: ERROR: runtime error: file unknown-55cee6a934f0 element
attribute
xsl:attribute: Cannot add attributes to an element if children have
been already added to the element.
at line 31.
CONTEXT: PL/Perl function "oils_xslt_process"
---
Using this error message, we began to suspect a XSLT transformation
being the culprit. We have taken XSL files from Evergreen (those from
http://git.evergreen-ils.org/?p=Evergreen.git;a=tree;f=Open-ILS/xsl;h=68fd13ffb2ad01ef9ceacf9f18695f25d284df05;hb=HEAD).
When they were used (xsltproc MARC21slim2MODS33.xsl
americke_romany.xml > output.xml), the contents of the 155 field
(which is a heading and therefore one of the most important parts of
the record) was never included in the output (please see the attached
output.xml file).
Then we used a web client again to change the 155 tag to the 100 tag
(and deleted another possible troublesome tag 755). After making these
changes, the record could be saved.
So the question is:
Where should we add the 155 field (probably in which of the XSLT
files) to make sure those records can be saved (or of course reingested)?
Thank you in advance for any hints!
Linda