[OPEN-ILS-DEV] [OPEN-ILS-GENERAL] Cannot save authority record with a 155 field

Linda Jansova skolkova at chello.cz
Wed Oct 31 09:54:54 EDT 2018


Thank you, Josh! Just tried removing the line you have mentioned 
(<xsl:call-template name="setAuthority"/>) and I can confirm that it 
works :-)!

Linda

On 10/31/18 2:48 PM, Josh Stompro wrote:
>
> Linda, I just noticed that the setAuthority template is called from 
> the genre template also.  So it also works to just remove the call to 
> setAuthority at line 1085.
>
> Josh Stompro - LARL IT Director
>
> *From:*Josh Stompro
> *Sent:* Wednesday, October 31, 2018 8:23 AM
> *To:* Linda Jansova <skolkova at chello.cz>; Evergreen Discussion Group 
> <open-ils-general at list.georgialibraries.org>; Evergreen Development 
> Discussion List <open-ils-dev at list.georgialibraries.org>
> *Subject:* RE: [OPEN-ILS-GENERAL] Cannot save authority record with a 
> 155 field
>
> Linda, I wonder if this is a bug in the MARCslim2MADS.xslt?  The error 
> message is
>
> runtime error: file ./MARC21slim2MADS.xsl line 1404 element attribute
>
> xsl:attribute: Cannot add attributes to an element if children have 
> been already added to the element.
>
> I agree that it looks like the problem is when the xslt is processing 
> the 755 and trying to set the authority source.
>
> I think the bug may be that when processing the 755 tag on line 1081, 
> the genre template is called before the setAuthority template.  The 
> Genre template adds child elements, then the setAuthority tries to set 
> attributes, which is where the error pops up.
>
> If I swap lines 1084 and 1085 then the error goes away and both the 
> genre(155) and related genre(755) show up in the transformed xml.
>
> I think the way to report this to the MADS project is via the MODS 
> listserv, as listed on http://www.loc.gov/standards/mads/
>
> I don’t have enough experience with these technologies to be all that 
> confident that this is the issue though.  I would be happy to report 
> this to the MODS listserv if it seems to make sense to someone that is 
> more familiar with mods/mads/xml/authorities.
>
> Josh Stompro - LARL IT Director
>
> *From:*Linda Jansova <skolkova at chello.cz <mailto:skolkova at chello.cz>>
> *Sent:* Wednesday, October 31, 2018 7:16 AM
> *To:* Evergreen Discussion Group 
> <open-ils-general at list.georgialibraries.org 
> <mailto:open-ils-general at list.georgialibraries.org>>; Josh Stompro 
> <stomproj at exchange.larl.org <mailto:stomproj at exchange.larl.org>>; 
> Evergreen Development Discussion List 
> <open-ils-dev at list.georgialibraries.org 
> <mailto:open-ils-dev at list.georgialibraries.org>>
> *Subject:* Re: [OPEN-ILS-GENERAL] Cannot save authority record with a 
> 155 field
>
> 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-bounces at list.georgialibraries.org>
>     <mailto:open-ils-general-bounces at list.georgialibraries.org> *On
>     Behalf Of *Linda Jansova
>     *Sent:* Friday, October 26, 2018 5:29 AM
>     *To:* Evergreen Discussion Group
>     <open-ils-general at list.georgialibraries.org>
>     <mailto:open-ils-general at list.georgialibraries.org>; Evergreen
>     Development Discussion List
>     <open-ils-dev at list.georgialibraries.org>
>     <mailto:open-ils-dev at 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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://libmail.georgialibraries.org/pipermail/open-ils-dev/attachments/20181031/1b1c56ad/attachment-0001.html>


More information about the Open-ils-dev mailing list