Marc::XML with MARC21

[email protected] (Michele Pinassi)
Newsgroups perl.perl4lib
Organization Università degli Studi di Siena
Message-ID <[email protected]>
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi all,
im'm working on a perl plugin for EPrints that let user importing from
Aleph simply using system id. It use Aleph OAI-PMH service that export
metadata in MARC21 format:

<OAI-PMH xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/
http://www.openarchives.org/OAI/2.0/OAI-PMH.xsd">
<responseDate>2010-01-22T15:17:32Z</responseDate>
<request verb="GetRecord" identifier="oai:siena:xxxx"
metadataPrefix="marc21">http://xxx:8991/OAI</request>
<GetRecord>
<record>
<header>
<identifier>oai:siena:xxxx-000762662</identifier>
<datestamp>2009-09-18T10:43:21Z</datestamp>
<setSpec>SBS</setSpec>
</header>
<metadata>
<marc:record xsi:schemaLocation="http://www.loc.gov/MARC21/slim
http://www.loc.gov/standards/marcxml/schema/MARC21slim.xsd">
<marc:leader>^^^^^cam^^22^^^^^^i^4500</marc:leader>
<marc:controlfield tag="001">000762662</marc:controlfield>
<marc:datafield tag="020" ind1=" " ind2=" ">
<marc:subfield code="a">8814075913</marc:subfield>
</marc:datafield>
<marc:datafield tag="040" ind1=" " ind2=" ">
....

Then i use MARC::Record module:

my $file = MARC::Record->new_from_xml($marc->serialize(),"UTF-8","MARC21");
        $epdata = $plugin->EPrints::Plugin::Import::MARC::convert_input(
$file );

and here come troubles: only few metadatas will be interpreted
correctly, losing a lot of datas.

I can't figure why: maybe namespaces confuse MARC::Record parser ?

Here's an example of MARC21 XML which i fed the MARC::Record :

<marc:record xmlns:marc="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"><marc:leader>^^^^^cam^^22^^^^^^i^4500</marc:leader><marc:controlfield
tag="001">000762662</marc:controlfield><marc:datafield tag="020" ind1="
" ind2=" "><marc:subfield
code="a">8814075913</marc:subfield></marc:datafield><marc:datafield
tag="040" ind1=" " ind2=" "><marc:subfield
code="a">IT</marc:subfield><marc:subfield code="-">Servizio
Bibliotecario Senese</marc:subfield><marc:subfield
code="e">RICA</marc:subfield></marc:datafield><marc:datafield tag="300"
ind1=" " ind2=" "><marc:subfield code="a">VI, 262 p.
;</marc:subfield><marc:subfield code="c">24
cm</marc:subfield></marc:datafield><marc:datafield tag="653" ind1="0"
ind2=" "><marc:subfield code="a">Navigazione da
diporto</marc:subfield><marc:subfield
code="a">Legislazione</marc:subfield></marc:datafield><marc:datafield
tag="700" ind1="1" ind2=" "><marc:subfield
code="a">Antonini,Alfredo</marc:subfield></marc:datafield><marc:datafield
tag="700" ind1="1" ind2=" "><marc:subfield
code="a">Morandi,Francesco</marc:subfield></marc:datafield><marc:datafield
tag="041" ind1="0" ind2=" "><marc:subfield
code="a">ita</marc:subfield></marc:datafield><marc:datafield tag="245"
ind1="1" ind2="0"><marc:subfield code="a">La navigazione da diporto
:</marc:subfield><marc:subfield code="b">le infrastrutture, l'
organizzazione, i contratti e le responsabilità
:</marc:subfield><marc:subfield code="b">atti del convegno, Trieste, 27
marzo 1998 /</marc:subfield><marc:subfield code="c">a cura di Alfredo
Antonini e Francesco
Morandi</marc:subfield></marc:datafield><marc:datafield tag="260" ind1="
" ind2=" "><marc:subfield code="a">Milano
:</marc:subfield><marc:subfield
code="b">GiuffrÚ</marc:subfield><marc:subfield
code="c">1999</marc:subfield></marc:datafield><marc:datafield tag="490"
ind1=" " ind2="0"><marc:subfield code="a">Collana del Dipartimento di
scienze giuridiche e della Facoltà di giurisprudenza dell' Università di
Modena e Reggio Emilia</marc:subfield><marc:subfield code="p">Nuova
serie ;</marc:subfield><marc:subfield
code="v">0048</marc:subfield></marc:datafield><marc:datafield tag="760"
ind1="1" ind2=" "><marc:subfield code="t">Collana del Dipartimento di
scienze giuridiche e della Facoltà di giurisprudenza dell' Università di
Modena e Reggio Emilia</marc:subfield><marc:subfield
code="g">0048</marc:subfield></marc:datafield><marc:datafield tag="082"
ind1=" " ind2=" "><marc:subfield
code="a">343.45096</marc:subfield><marc:subfield
code="2">20</marc:subfield></marc:datafield><marc:controlfield
tag="008">^^^^^^s^^^^^^^^xx^|||||r||||||||^||^^^^|</marc:controlfield></marc:record>

Any useful hints ? Thanks !

Michele

- --
|| Michele Pinassi
|| System Manager Area Sistema Biblioteche - UniSi
|| https://sites.google.com/a/unisi.it/o-zone/
|| Assistenza: +39.577.232299 (int. 2299)
|| Personale: +39.577.232477 (int. 2477)
|| FAX: +39.577.232430 (int. 2430)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAktdbLAACgkQFPw35TwkuY47nwCdG8jZMaW2eS7Pww1OlLwqiyr8
W3sAmwXslnbjNizR78z0mlNqxVRj2h0/
=ds5R
-----END PGP SIGNATURE-----
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.