Hello Mike, I've created a bug for this issue to get it in the queue.  
LP#1800871

Josh Stompro - LARL IT Director


-----Original Message-----
From: Open-ils-general <open-ils-general-boun...@list.georgialibraries.org> On 
Behalf Of Mike Rylander
Sent: Wednesday, October 31, 2018 10:09 AM
To: Evergreen Development Discussion List 
<open-ils-...@list.georgialibraries.org>
Cc: Evergreen Discussion Group <open-ils-general@list.georgialibraries.org>
Subject: Re: [OPEN-ILS-GENERAL] [OPEN-ILS-DEV] Cannot save authority record 
with a 155 field

Hi Linda and Josh,

Great work figuring that out! We should definitely report this upstream to the 
MODS/MADS folks, but we maintain a local copy of the XSLT (altered to work 
without external file or network access for xml
includes) and can fix it locally.  I don't have time right now to jump on it, 
but both the file on the filesystem and the version in the config.xml_transform 
table in the db should be corrected.

Thanks!
--
Mike Rylander
 | Executive Director
 | Equinox Open Library Initiative
 | phone:  1-877-OPEN-ILS (673-6457)
 | email:  mi...@equinoxinitiative.org
 | web:  http://equinoxinitiative.org

On Wed, Oct 31, 2018 at 10:58 AM Josh Stompro <stomp...@exchange.larl.org> 
wrote:
>
> 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 <skolk...@chello.cz>
> Sent: Wednesday, October 31, 2018 7:16 AM
> To: Evergreen Discussion Group 
> <open-ils-general@list.georgialibraries.org>; Josh Stompro 
> <stomp...@exchange.larl.org>; Evergreen Development Discussion List 
> <open-ils-...@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 &lt;= ancestor-or-self::marc:datafield/@tag and 
> ancestor-or-self::marc:datafield/@tag &lt;= 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 see 
> http://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

Reply via email to