Discussion:
[OPEN-ILS-DEV] Cannot save authority record with a 155 field
Linda Jansova
2018-10-26 10:28:54 UTC
Permalink
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
Josh Stompro
2018-10-30 20:38:39 UTC
Permalink
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-***@list.georgialibraries.org> On Behalf Of Linda Jansova
Sent: Friday, October 26, 2018 5:29 AM
To: Evergreen Discussion Group <open-ils-***@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
Linda Jansova
2018-10-31 12:16:19 UTC
Permalink
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
Post by Josh Stompro
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
*Linda Jansova
*Sent:* Friday, October 26, 2018 5:29 AM
*To:* Evergreen Discussion Group
*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
---
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.
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
Linda Jansova
2018-10-31 13:54:54 UTC
Permalink
Thank you, Josh! Just tried removing the line you have mentioned
(<xsl:call-template name="setAuthority"/>) and I can confirm that it
works :-)!

Linda
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
*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
*Sent:* Wednesday, October 31, 2018 7:16 AM
*To:* Evergreen Discussion Group
Evergreen Development Discussion List
*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
<xsl:when
                <xsl:attribute name="authority">
                </xsl:attribute>
            </xsl:when>
Hopefully it will work for us and let us proceed in the upgrade :-)!
Linda
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
Behalf Of *Linda Jansova
*Sent:* Friday, October 26, 2018 5:29 AM
*To:* Evergreen Discussion Group
Development Discussion List
*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).
---
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.
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
Mike Rylander
2018-10-31 15:08:32 UTC
Permalink
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: ***@equinoxinitiative.org
| web: http://equinoxinitiative.org

On Wed, Oct 31, 2018 at 10:58 AM Josh Stompro
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
Sent: Wednesday, October 31, 2018 7:16 AM
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.
<xsl:when
<xsl:attribute name="authority">
</xsl:attribute>
</xsl:when>
Hopefully it will work for us and let us proceed in the upgrade :-)!
Linda
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
Sent: Friday, October 26, 2018 5:29 AM
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.
---
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.
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
Josh Stompro
2018-10-31 15:59:42 UTC
Permalink
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-***@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-***@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: ***@equinoxinitiative.org
| web: http://equinoxinitiative.org
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
Sent: Wednesday, October 31, 2018 7:16 AM
To: Evergreen Discussion Group
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.
<xsl:when
<xsl:attribute name="authority">
</xsl:attribute>
</xsl:when>
Hopefully it will work for us and let us proceed in the upgrade :-)!
Linda
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
Linda Jansova
Sent: Friday, October 26, 2018 5:29 AM
To: Evergreen Discussion Group
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.
---
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.
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)?
Th
Linda Jansova
2018-11-01 06:29:36 UTC
Permalink
Thank you, Josh!

We shall try and go through the reingest of all records and if no other
XSLT-related issues appear, I can get in touch with MADS folks through
their listserv and report the error.

Linda
Post by Josh Stompro
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-----
Sent: Wednesday, October 31, 2018 10:09 AM
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)
| web: http://equinoxinitiative.org
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
Sent: Wednesday, October 31, 2018 7:16 AM
To: Evergreen Discussion Group
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.
<xsl:when
<xsl:attribute name="authority">
</xsl:attribute>
</xsl:when>
Hopefully it will work for us and let us proceed in the upgrade :-)!
Linda
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
Linda Jansova
Sent: Friday, October 26, 2018 5:29 AM
To: Evergreen Discussion Group
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.
---
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.
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
Loading...