While processing MARC-XML-files with a filter we notices that there seems to be a problem if no record from a file matches a filter or where returned at all. In this case we got a broken output: a closing xml-tag
You can reproduce the problem also with processing an empty XML file:
echo "<?xml version="1.0" encoding="UTF-8"?>
<collection xmlns="http://www.loc.gov/MARC21/slim" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.loc.gov/MARC21/slim http://www.loc.gov/standards/marcxml/schema/MARC21slim.xsd">
</collection>" | catmandu convert MARC --type XML to MARC --type XML
We filterted for example for MARC-field 924, which was not set in our file. So we expected to get an empty XML-file as output. Instead we got this output: "</marc:collection>"
The fix we used was the following:
While processing MARC-XML-files with a filter we notices that there seems to be a problem if no record from a file matches a filter or where returned at all. In this case we got a broken output: a closing xml-tag
You can reproduce the problem also with processing an empty XML file:
We filterted for example for MARC-field 924, which was not set in our file. So we expected to get an empty XML-file as output. Instead we got this output: "</marc:collection>" The fix we used was the following:
Our catmandu command was:
catmandu convert MARC --type XML to MARC --type XML --fix fixname.fix < filename.xml
We used Catmandu version 1.2020 on a Debian system.
Furthermore the MARC-ISO-Exporter delivers an incomplete MARC-dataset: