Catmandu-SRU-0.430000755001750001750 014064433363 12510 5ustar00vojvoj000000000000README100644001750001750 440014064433363 13447 0ustar00vojvoj000000000000Catmandu-SRU-0.430NAME Catmandu::SRU - Catmandu module for working with SRU data SYNOPSIS # On the command line $ catmandu convert SRU --base http://www.unicat.be/sru --query data $ catmandu convert SRU --base http://www.unicat.be/sru --query data --recordSchema marcxml $ catmandu convert SRU --base http://www.unicat.be/sru --query data --recordSchema marcxml --parser marcxml # create a config file: catmandu.yml $ cat catmandu.yml --- importer: unicat: package: SRU options: base: http://www.unicat.be/sru recordSchema: marcxml parser: marcxml $ catmandu convert unicat --query data # If you have Catmandu::MARC installed $ catmandu convert unicat --query data --fix 'marc_map("245a","title"); retain_field("title")' to CSV # The example above in perl use Catmandu -load; my $importer = Catmandu->importer('unicat', query => 'data'); my $fixer = Catmandu->fixer(['marc_map("245a","title")','retain_field("title")']); my $export = Catmandu->exporter('CSV'); $exporter->add_many($fixer->fix($importer)); $exporter->commit; MODULES Catmandu::Importer::SRU Catmandu::Importer::SRU::Parser Catmandu::Importer::SRU::Parser::raw Catmandu::Importer::SRU::Parser::simple Catmandu::Importer::SRU::Parser::struct Catmandu::Importer::SRU::Parser::marcxml Catmandu::Importer::SRU::Parser::meta Catmandu::Importer::SRU::Parser::mods Catmandu::Importer::SRU::Parser::picaxml Catmandu::Fix::search_sru SEE ALSO Catmandu, Catmandu::Importer, Catmandu::Fix, Catmandu::Exporter, Catmandu::MARC AUTHOR Wouter Willaert, CONTRIBUTORS Patrick Hochstenbach, Nicolas Steenlant, Jakob Voss Johann Rolschewski LICENSE AND COPYRIGHT This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License. See http://dev.perl.org/licenses/ for more information. Changes100644001750001750 414114064433363 14064 0ustar00vojvoj000000000000Catmandu-SRU-0.430Revision history for Catmandu-SRU 0.430 2021-06-22 21:15:58 CEST - allow query parameters in base URL 0.429 2020-07-08 14:52:17 CEST - add total option to constrain the result set 0.428 2019-11-29 11:19:18 CET - correctly handle utf8 characters in query 0.427 2019-09-27 11:56:22 CEST - replace Furl with HTTP::Tiny to support Ipv6 0.426 2019-09-23 10:04:01 CEST - work around issue with url returned by Test::HTTP::LocalServer 0.66 0.425 2019-09-20 10:11:50 CEST - add missing dependencies 0.424 2019-08-26 13:59:52 CEST - remove the picaxml parser (now part of Catmandu-PICA) 0.423 2019-08-26 13:23:18 CEST - Fix travis configuration - new search_sru fix 0.422 2019-05-22 11:28:26 CEST - Fixing tests 0.421 2018-03-26 10:23:27 CEST - Fixing test 0.42 2018-03-26 10:01:46 CEST - Add pica parser - Fix treatment of namespaces in meta Parser (#31) - Making batch sizes configurable 0.41 2017-07-12 09:17:12 CEST - Fixing MODS encoding issue 0.040 2017-07-07 08:35:12 CEST - Adding support for namespace prefixes declared in the SRU response header - Adding a `mods` parser - Adding a `meta` parser 0.039 2016-11-07 13:41:07 CET - documentation and tests 0.038 2014-10-21 22:56:17 CEST - Added missing test requirement Test::Exception 0.037 2014-06-22 10:24:58 CEST - Fixing multiple harvesting of first record set bug 0.036 2014-06-18 20:24:19 CEST - Fixing prove vs perl testing bug 0.035 2014-06-18 10:01:24 CEST - Add better support for namespace prefixes 0.034 2014-05-29 16:45:37 CEST - building code with Dist::Milla - updating pod 0.033 2014-03-03 - credits 0.032 2014-02-21 - adding support for pluggable callback functions to parse SRU responses - adding url method - adding simple and struct record parsers - tests - pod 0.031 2014-02-20 - adding backwards compatibility for LibXML::Simple responses 0.03 2014-02-20 - adding support for pluggable SRU response parsers - tests - pod 0.02 2014-02-20 - pod - tests - recordTag option 0.0101 2013-01-10 - remove debug print 0.01 2012-08-02 - initial release LICENSE100644001750001750 4364714064433363 13634 0ustar00vojvoj000000000000Catmandu-SRU-0.430This software is copyright (c) 2021 by Jakob Voß. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. Terms of the Perl programming language system itself a) the GNU General Public License as published by the Free Software Foundation; either version 1, or (at your option) any later version, or b) the "Artistic License" --- The GNU General Public License, Version 1, February 1989 --- This software is Copyright (c) 2021 by Jakob Voß. This is free software, licensed under: The GNU General Public License, Version 1, February 1989 GNU GENERAL PUBLIC LICENSE Version 1, February 1989 Copyright (C) 1989 Free Software Foundation, Inc. 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The license agreements of most software companies try to keep users at the mercy of those companies. By contrast, our General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. The General Public License applies to the Free Software Foundation's software and to any other program whose authors commit to using it. You can use it for your programs, too. When we speak of free software, we are referring to freedom, not price. Specifically, the General Public License is designed to make sure that you have the freedom to give away or sell copies of free software, that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of a such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must tell them their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License Agreement applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any work containing the Program or a portion of it, either verbatim or with modifications. Each licensee is addressed as "you". 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this General Public License and to the absence of any warranty; and give any other recipients of the Program a copy of this General Public License along with the Program. You may charge a fee for the physical act of transferring a copy. 2. You may modify your copy or copies of the Program or any portion of it, and copy and distribute such modifications under the terms of Paragraph 1 above, provided that you also do the following: a) cause the modified files to carry prominent notices stating that you changed the files and the date of any change; and b) cause the whole of any work that you distribute or publish, that in whole or in part contains the Program or any part thereof, either with or without modifications, to be licensed at no charge to all third parties under the terms of this General Public License (except that you may choose to grant warranty protection to some or all third parties, at your option). c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the simplest and most usual way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this General Public License. d) You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. Mere aggregation of another independent work with the Program (or its derivative) on a volume of a storage or distribution medium does not bring the other work under the scope of these terms. 3. You may copy and distribute the Program (or a portion or derivative of it, under Paragraph 2) in object code or executable form under the terms of Paragraphs 1 and 2 above provided that you also do one of the following: a) accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Paragraphs 1 and 2 above; or, b) accompany it with a written offer, valid for at least three years, to give any third party free (except for a nominal charge for the cost of distribution) a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Paragraphs 1 and 2 above; or, c) accompany it with the information you received as to where the corresponding source code may be obtained. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form alone.) Source code for a work means the preferred form of the work for making modifications to it. For an executable file, complete source code means all the source code for all modules it contains; but, as a special exception, it need not include source code for modules which are standard libraries that accompany the operating system on which the executable file runs, or for standard header files or definitions files that accompany that operating system. 4. You may not copy, modify, sublicense, distribute or transfer the Program except as expressly provided under this General Public License. Any attempt otherwise to copy, modify, sublicense, distribute or transfer the Program is void, and will automatically terminate your rights to use the Program under this License. However, parties who have received copies, or rights to use copies, from you under this General Public License will not have their licenses terminated so long as such parties remain in full compliance. 5. By copying, distributing or modifying the Program (or any work based on the Program) you indicate your acceptance of this license to do so, and all its terms and conditions. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. 7. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of the license which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the license, you may choose any version ever published by the Free Software Foundation. 8. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 9. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 10. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS Appendix: How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to humanity, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) 19yy This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 1, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) 19xx name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (a program to direct compilers to make passes at assemblers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice That's all there is to it! --- The Artistic License 1.0 --- This software is Copyright (c) 2021 by Jakob Voß. This is free software, licensed under: The Artistic License 1.0 The Artistic License Preamble The intent of this document is to state the conditions under which a Package may be copied, such that the Copyright Holder maintains some semblance of artistic control over the development of the package, while giving the users of the package the right to use and distribute the Package in a more-or-less customary fashion, plus the right to make reasonable modifications. Definitions: - "Package" refers to the collection of files distributed by the Copyright Holder, and derivatives of that collection of files created through textual modification. - "Standard Version" refers to such a Package if it has not been modified, or has been modified in accordance with the wishes of the Copyright Holder. - "Copyright Holder" is whoever is named in the copyright or copyrights for the package. - "You" is you, if you're thinking about copying or distributing this Package. - "Reasonable copying fee" is whatever you can justify on the basis of media cost, duplication charges, time of people involved, and so on. (You will not be required to justify it to the Copyright Holder, but only to the computing community at large as a market that must bear the fee.) - "Freely Available" means that no fee is charged for the item itself, though there may be fees involved in handling the item. It also means that recipients of the item may redistribute it under the same conditions they received it. 1. You may make and give away verbatim copies of the source form of the Standard Version of this Package without restriction, provided that you duplicate all of the original copyright notices and associated disclaimers. 2. You may apply bug fixes, portability fixes and other modifications derived from the Public Domain or from the Copyright Holder. A Package modified in such a way shall still be considered the Standard Version. 3. You may otherwise modify your copy of this Package in any way, provided that you insert a prominent notice in each changed file stating how and when you changed that file, and provided that you do at least ONE of the following: a) place your modifications in the Public Domain or otherwise make them Freely Available, such as by posting said modifications to Usenet or an equivalent medium, or placing the modifications on a major archive site such as ftp.uu.net, or by allowing the Copyright Holder to include your modifications in the Standard Version of the Package. b) use the modified Package only within your corporation or organization. c) rename any non-standard executables so the names do not conflict with standard executables, which must also be provided, and provide a separate manual page for each non-standard executable that clearly documents how it differs from the Standard Version. d) make other distribution arrangements with the Copyright Holder. 4. You may distribute the programs of this Package in object code or executable form, provided that you do at least ONE of the following: a) distribute a Standard Version of the executables and library files, together with instructions (in the manual page or equivalent) on where to get the Standard Version. b) accompany the distribution with the machine-readable source of the Package with your modifications. c) accompany any non-standard executables with their corresponding Standard Version executables, giving the non-standard executables non-standard names, and clearly documenting the differences in manual pages (or equivalent), together with instructions on where to get the Standard Version. d) make other distribution arrangements with the Copyright Holder. 5. You may charge a reasonable copying fee for any distribution of this Package. You may charge any fee you choose for support of this Package. You may not charge a fee for this Package itself. However, you may distribute this Package in aggregate with other (possibly commercial) programs as part of a larger (possibly commercial) software distribution provided that you do not advertise this Package as a product of your own. 6. The scripts and library files supplied as input to or produced as output from the programs of this Package do not automatically fall under the copyright of this Package, but belong to whomever generated them, and may be sold commercially, and may be aggregated with this Package. 7. C or perl subroutines supplied by you and linked into this Package shall not be considered part of this Package. 8. The name of the Copyright Holder may not be used to endorse or promote products derived from this software without specific prior written permission. 9. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. The End cpanfile100644001750001750 114714064433363 14300 0ustar00vojvoj000000000000Catmandu-SRU-0.430on 'test', sub { requires 'Test::Exception'; requires 'Test::HTTP::LocalServer'; requires 'Test::More', '1.001003'; requires 'Test::Pod'; requires 'Test::Simple', '1.001003'; requires 'XML::XPath', '1.13'; }; requires 'Catmandu', '>=1.20'; requires 'Catmandu::MODS','0.31'; requires 'Cpanel::JSON::XS', '3.0213'; requires 'HTTP::Tiny', '0.076'; requires 'Moo', '1.005000'; requires 'URI::Escape' , '1.60'; requires 'XML::LibXML::Simple', '0.91'; requires 'XML::LibXML::XPathContext'; requires 'XML::Struct', '0.16'; requires 'YAML::XS', '0.34'; requires 'namespace::clean'; requires 'perl', 'v5.10.1'; dist.ini100644001750001750 4114064433363 14170 0ustar00vojvoj000000000000Catmandu-SRU-0.430[@Milla] installer = ModuleBuild Build.PL100644001750001750 317114064433363 14067 0ustar00vojvoj000000000000Catmandu-SRU-0.430 # This file was automatically generated by Dist::Zilla::Plugin::ModuleBuild v6.012. use strict; use warnings; use Module::Build 0.28; my %module_build_args = ( "build_requires" => { "Module::Build" => "0.28" }, "configure_requires" => { "Module::Build" => "0.28" }, "dist_abstract" => "Catmandu module for working with SRU data", "dist_author" => [ "Wouter Willaert, C<< >>" ], "dist_name" => "Catmandu-SRU", "dist_version" => "0.430", "license" => "perl", "module_name" => "Catmandu::SRU", "recursive_test_files" => 1, "requires" => { "Catmandu" => "1.20", "Catmandu::MODS" => "0.31", "Cpanel::JSON::XS" => "3.0213", "HTTP::Tiny" => "0.076", "Moo" => "1.005000", "URI::Escape" => "1.60", "XML::LibXML::Simple" => "0.91", "XML::LibXML::XPathContext" => 0, "XML::Struct" => "0.16", "YAML::XS" => "0.34", "namespace::clean" => 0, "perl" => "v5.10.1" }, "test_requires" => { "Test::Exception" => 0, "Test::HTTP::LocalServer" => 0, "Test::More" => "1.001003", "Test::Pod" => 0, "Test::Simple" => "1.001003", "XML::XPath" => "1.13" } ); my %fallback_build_requires = ( "Module::Build" => "0.28", "Test::Exception" => 0, "Test::HTTP::LocalServer" => 0, "Test::More" => "1.001003", "Test::Pod" => 0, "Test::Simple" => "1.001003", "XML::XPath" => "1.13" ); unless ( eval { Module::Build->VERSION(0.4004) } ) { delete $module_build_args{test_requires}; $module_build_args{build_requires} = \%fallback_build_requires; } my $build = Module::Build->new(%module_build_args); $build->create_build_script; META.yml100644001750001750 402114064433363 14037 0ustar00vojvoj000000000000Catmandu-SRU-0.430--- abstract: 'Catmandu module for working with SRU data' author: - 'Wouter Willaert, C<< >>' build_requires: Module::Build: '0.28' Test::Exception: '0' Test::HTTP::LocalServer: '0' Test::More: '1.001003' Test::Pod: '0' Test::Simple: '1.001003' XML::XPath: '1.13' configure_requires: Module::Build: '0.28' dynamic_config: 0 generated_by: 'Dist::Milla version v1.0.20, Dist::Zilla version 6.012, CPAN::Meta::Converter version 2.150001' license: perl meta-spec: url: http://module-build.sourceforge.net/META-spec-v1.4.html version: '1.4' name: Catmandu-SRU no_index: directory: - eg - examples - inc - share - t - xt requires: Catmandu: '1.20' Catmandu::MODS: '0.31' Cpanel::JSON::XS: '3.0213' HTTP::Tiny: '0.076' Moo: '1.005000' URI::Escape: '1.60' XML::LibXML::Simple: '0.91' XML::LibXML::XPathContext: '0' XML::Struct: '0.16' YAML::XS: '0.34' namespace::clean: '0' perl: v5.10.1 resources: bugtracker: https://github.com/LibreCat/Catmandu-SRU/issues homepage: https://github.com/LibreCat/Catmandu-SRU repository: https://github.com/LibreCat/Catmandu-SRU.git version: '0.430' x_contributors: - 'Balint Reczey ' - 'Carsten Klee ' - 'Carsten Klee ' - 'Christian Pietsch ' - 'Debabrata Deka <60925700+ddeka2910@users.noreply.github.com>' - 'Jakob Voss ' - 'Jakob Voss ' - 'Jakob Voß ' - 'Johann Rolschewski ' - 'Johann Rolschewski ' - 'Johann Rolschewski ' - 'Mohammad S Anwar ' - 'Nicolas Franck ' - 'Nicolas Steenlant ' - 'Patrick Hochstenbach ' - 'wouterw ' x_generated_by_perl: v5.18.1 x_serialization_backend: 'YAML::Tiny version 1.63' x_static_install: 0 MANIFEST100644001750001750 213414064433363 13722 0ustar00vojvoj000000000000Catmandu-SRU-0.430# This file was automatically generated by Dist::Zilla::Plugin::Manifest v6.012. Build.PL Changes LICENSE MANIFEST META.json META.yml README cpanfile dist.ini lib/Catmandu/Fix/search_sru.pm lib/Catmandu/Importer/SRU.pm lib/Catmandu/Importer/SRU/Parser.pm lib/Catmandu/Importer/SRU/Parser/marcxml.pm lib/Catmandu/Importer/SRU/Parser/meta.pm lib/Catmandu/Importer/SRU/Parser/mods.pm lib/Catmandu/Importer/SRU/Parser/raw.pm lib/Catmandu/Importer/SRU/Parser/simple.pm lib/Catmandu/Importer/SRU/Parser/struct.pm lib/Catmandu/SRU.pm t/Catmandu-Fix-search_sru.t t/Catmandu-Importer-SRU-Parser-marcxml.t t/Catmandu-Importer-SRU-Parser-meta.t t/Catmandu-Importer-SRU-Parser-mods.t t/Catmandu-Importer-SRU-Parser-raw.t t/Catmandu-Importer-SRU-Parser-simple.t t/Catmandu-Importer-SRU-Parser-struct.t t/Catmandu-Importer-SRU-Parser.t t/Catmandu-Importer-SRU.t t/author-pod-syntax.t t/files/1.xml t/files/11.xml t/files/21.xml t/files/marcxml.xml t/files/marcxml_ns.xml t/files/marcxml_ns_prefix.xml t/files/meta.xml t/files/mods.xml t/files/picaxml.xml t/files/sru_oai_dc.xml t/lib/MockHTTPClient.pm t/lib/MockHTTPClientMany.pm META.json100644001750001750 615514064433363 14221 0ustar00vojvoj000000000000Catmandu-SRU-0.430{ "abstract" : "Catmandu module for working with SRU data", "author" : [ "Wouter Willaert, C<< >>" ], "dynamic_config" : 0, "generated_by" : "Dist::Milla version v1.0.20, Dist::Zilla version 6.012, CPAN::Meta::Converter version 2.150001", "license" : [ "perl_5" ], "meta-spec" : { "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", "version" : 2 }, "name" : "Catmandu-SRU", "no_index" : { "directory" : [ "eg", "examples", "inc", "share", "t", "xt" ] }, "prereqs" : { "build" : { "requires" : { "Module::Build" : "0.28" } }, "configure" : { "requires" : { "Module::Build" : "0.28" } }, "develop" : { "requires" : { "Dist::Milla" : "v1.0.20", "Test::Pod" : "1.41" } }, "runtime" : { "requires" : { "Catmandu" : "1.20", "Catmandu::MODS" : "0.31", "Cpanel::JSON::XS" : "3.0213", "HTTP::Tiny" : "0.076", "Moo" : "1.005000", "URI::Escape" : "1.60", "XML::LibXML::Simple" : "0.91", "XML::LibXML::XPathContext" : "0", "XML::Struct" : "0.16", "YAML::XS" : "0.34", "namespace::clean" : "0", "perl" : "v5.10.1" } }, "test" : { "requires" : { "Test::Exception" : "0", "Test::HTTP::LocalServer" : "0", "Test::More" : "1.001003", "Test::Pod" : "0", "Test::Simple" : "1.001003", "XML::XPath" : "1.13" } } }, "release_status" : "stable", "resources" : { "bugtracker" : { "web" : "https://github.com/LibreCat/Catmandu-SRU/issues" }, "homepage" : "https://github.com/LibreCat/Catmandu-SRU", "repository" : { "type" : "git", "url" : "https://github.com/LibreCat/Catmandu-SRU.git", "web" : "https://github.com/LibreCat/Catmandu-SRU" } }, "version" : "0.430", "x_contributors" : [ "Balint Reczey ", "Carsten Klee ", "Carsten Klee ", "Christian Pietsch ", "Debabrata Deka <60925700+ddeka2910@users.noreply.github.com>", "Jakob Voss ", "Jakob Voss ", "Jakob Vo\u00df ", "Johann Rolschewski ", "Johann Rolschewski ", "Johann Rolschewski ", "Mohammad S Anwar ", "Nicolas Franck ", "Nicolas Steenlant ", "Patrick Hochstenbach ", "wouterw " ], "x_generated_by_perl" : "v5.18.1", "x_serialization_backend" : "Cpanel::JSON::XS version 3.0213", "x_static_install" : 0 } files000755001750001750 014064433363 13776 5ustar00vojvoj000000000000Catmandu-SRU-0.430/t1.xml100644001750001750 13045014064433363 15063 0ustar00vojvoj000000000000Catmandu-SRU-0.430/t/files 1.123MARC21-xmlxml 00697nas a2200229 c 4500 105225165X DE-101 20140619091529.0 tu 140617c20129999xx u||p| ||| 0||||0eng c DE-101 105225165X DE-600 2774737-2 2226-4701 (DE-599)ZDB2774737-2 0188 ger DE-101 0188 eng XA-RU 580 DE-600 23sdnb 580 DE-600 sdnb Botanica Pacifica a journal of plant science and conservation Botanical Garden-Institute FEB RAS ; Institute of Biology and Soil Science FEB RAS Vladivostok Botanical Garden-Inst. FEB RAS 1.2012 - 1MARC21-xmlxml 01222nas a2200373 c 4500 98815479X DE-101 20131023080746.0 cr|||||||||||| 080404c20099999xxuu||p|o ||| 0||||0eng c DE-101 98815479X DE-600 2419232-6 eb50896883 1819-3498 (DE-599)ZDB2419232-6 (OCoLC)644251209 8999 ger DE-101 9999 eng XD-US XB-IN 550 DE-600 22sdnb 550 DE-600 sdnb ag Research journal of soil biology Elektronische Ressource RJSB RJSB Gesehen am 04.01.12 [S.l.] Academic Journals Mumbai Asian Network for Scientific Information Online-Ressource 1.2009 - (DE-588)4007358-0 (DE-101)040073580 Bodenbiologie gnd (DE-588)4007358-0 (DE-101)040073580 s Bodenbiologie DE-600 DE-600 http://www.bibliothek.uni-regensburg.de/ezeit/?2419232 EZB http://scialert.net/jindex.php?issn=1819-3498 Verlag kostenfrei http://search.ebscohost.com/ Aggregator 2MARC21-xmlxml 01300nas a2200445 c 4500 985542926 DE-101 20131125111708.0 cr|||||||||||| 070831c20049999gw z||m|o ||| 0||||0eng c 07,A41,1051 dnb DE-101 985542926 DE-600 2385527-7 1613-3382 2196-4831 1613-3382 (DE-599)ZDB2385527-7 (OCoLC)723788084 1240 ger DE-101 0703 eng XA-DE 630 570 DE-101 22sdnb 570 DE-600 22sdnb 630 570 DE-101 sdnb 570 DE-600 sdnb la Soil biology Elektronische Ressource Gesehen am 28.10.13 Gesehen am 12.12.07 Berlin Heidelberg Springer Online-Ressource 1.2004 - 1.1\x 1 2004 Ersch. unregelmäßig Langzeitarchivierung gewährleistet : durch die Deutsche Nationalbibliothek LZA C!URL-Ä(28-10-13) Druckausg. Soil biology (DE-600)2151755-1 (DE-101)026210169 http://link.springer.com/bookseries/5138 Verlag ra 13-10-28 g 3MARC21-xmlxml 01243nas a2200409 c 4500 026210169 DE-101 20130424110635.0 tu 040715c20049999gw z||m| ||| 0||||0eng c 07,A27,0707 dnb DE-101 026210169 DE-600 2151755-1 1613-3382 1613-3382 = Soil biology (Berlin. Print) 6 1613-3382 = Soil biology (Berlin. Print) (DE-599)ZDB2151755-1 (OCoLC)609939522 0028 ger DE-101 1241 eng XA-DE 630 570 DE-101 22sdnb 570 DE-600 22sdnb 630 570 DE-101 sdnb 570 DE-600 sdnb Soil biology Berlin. Print Soil biology Berlin Heidelberg New York, NY Springer 1.2004 - 1.1\x 2004 Ersch. unregelmäßig (DE-588)4007358-0 (DE-101)040073580 Bodenbiologie gnd (DE-588)4007358-0 (DE-101)040073580 s Bodenbiologie DE-600 DE-600 Online-Ausg. Soil biology (DE-600)2385527-7 (DE-101)985542926 (DE-101)971862451 ra 4MARC21-xmlxml 00801nas a2200229 c 4500 1014329647 DE-101 20110815135633.0 tu 110815c20009999|||u||m| ||| 0||||0rus c DE-101 1014329647 DE-600 2623516-X (DE-599)ZDB2623516-X 6999 ger DE-101 6999 rus 570 DE-600 22sdnb 570 DE-600 sdnb (DE-588)3057101-7 (DE-101)969545878 Irkutskij Gosudarstvennyj Universitet Biologo-Počvennyj Fakul'tet aut Trudy Biologo-Počvennogo Fakul'teta, Irkutskij Gosudarstvennyj Universitet = Proceedings of the Biology and Soil Department, Irkutsk State University Irkutsk [s.n.] Nachgewiesen 2.2000 - In kyrill. Schr. 5MARC21-xmlxml 01520nas a2200421 c 4500 020620071 DE-101 20131022214809.0 cr|||||||||||| 000717c19989999fr u||p|o ||| 0||||0eng c DE-101 020620071 DE-600 2019300-2 1164-5563 ZDB-1-SDJ-9033 (DE-599)ZDB2019300-2 (OCoLC)243590499 6999 ger DE-101 9999 eng XA-FR 570 DE-600 22sdnb 570 DE-600 sdnb nl Eur. J. Soil Biol. European journal of soil biology Elektronische Ressource Gesehen am 02.05.07 Paris Elsevier Online-Ressource Nachgewiesen 34.1998 - (DE-588)4007358-0 (DE-101)040073580 Bodenbiologie gnd (DE-588)4067488-5 (DE-101)040674886 Zeitschrift gnd (DE-588)4007358-0 (DE-101)040073580 s Bodenbiologie (DE-588)4067488-5 (DE-101)040674886 s Zeitschrift DE-600 DE-600 Druckausg. European journal of soil biology (DE-600)1150007-4 (DE-101)016785428 http://www.bibliothek.uni-regensburg.de/ezeit/?2019300 EZB http://www.sciencedirect.com/science/journal/11645563 Verlag; 34.1998 - http://www.sciencedirect.com/science/journal/11645563 Verlag; 34.1998 - 2002 Deutschlandweit zugänglich ZDB-1-SDJ 6MARC21-xmlxml 01198nas a2200349 c 4500 016785428 DE-101 20111108110353.0 tu 991121c19939999fr u||p| ||| 0||||0||| c DE-101 016785428 DE-600 1150007-4 1164-5563 (DE-599)ZDB1150007-4 (OCoLC)263608608 9001 ger DE-101 9001 XA-FR 570 DE-600 22sdnb 12 ssgn 570 DE-600 sdnb Eur. J. Soil Biol. European journal of soil biology Paris Elsevier Montrouge Gauthier-Villars anfangs 29.1993 - (DE-588)4007358-0 (DE-101)040073580 Bodenbiologie gnd (DE-588)4067488-5 (DE-101)040674886 Zeitschrift gnd (DE-588)4007358-0 (DE-101)040073580 s Bodenbiologie (DE-588)4067488-5 (DE-101)040674886 s Zeitschrift DE-600 DE-600 Online-Ausg. European journal of soil biology (DE-600)2019300-2 (DE-101)020620071 Vorg.: Revue d'écologie et de biologie du sol (DE-600)954135-4 (DE-101)010029222 7MARC21-xmlxml 00580nas a2200217 c 4500 016866738 DE-101 20081129165014.0 tu 991121c19929999xxuu||m| ||| 0||||0eng c DE-101 016866738 DE-600 1158400-2 (DE-599)ZDB1158400-2 9001 ger DE-101 9001 eng XD-US 550 DE-600 22sdnb 550 DE-600 sdnb Isotopic techniques in plant, soil and aquatic biology San Diego, Calif. Academic Press Nachgewiesen 2.1992 - 8MARC21-xmlxml 00875nas a2200241 c 4500 010542396 DE-101 20091019223835.0 tu 991118c19879999hu u||p| ||| 1||||0||| c DE-101 010542396 DE-600 61253-4 (DE-599)ZDB61253-4 9001 ger DE-101 9999 XA-HU 570 DE-600 22sdnb 570 DE-600 sdnb (DE-588)291881-X (DE-101)002918811 International Symposium on Soil Biology and Conservation of the Biosphere aut Proceedings of the International Symposium on Soil Biology and Conservation of the Biosphere Hungarian Society of Soil Science Budapest Akad. Kiadó 9.1985(1987) - 170389 Vorg.: Soil biology and conservation of the biosphere (DE-600)254595-0 (DE-101)01153639X 9MARC21-xmlxml 01064nas a2200253 c 4500 010206671 DE-101 20050526145417.0 tu 991118c19859999fr u||p| ||| 1||||0eng c DE-101 010206671 DE-600 14560-9 (DE-599)ZDB14560-9 9001 ger DE-101 9999 eng XA-FR 570 DE-600 22sdnb 570 DE-600 sdnb (DE-588)513011-6 (DE-101)005130115 Workshop of the Decade of the Tropics, Soil Biology Programme aut Report of the Workshop of the Decade of the Tropics, Soil Biology Programme Paris [s.n.] 2.1985 - Vorg.: International Union of Biological Sciences / Working Group on Soil Biology, Decade of the Tropics Programme Report of the meeting of the IUBS Working Group on Soil Biology, Decade of the Tropics Programm (DE-600)14559-2 (DE-101)010206663 Zugl. einzelne Bd. von Biology international / Special issue (DE-600)848975-0 (DE-101)014599260 10111.1tit=soil and biologyMARC21-xmlZeitschriftendatenbank (ZDB)11.xml100644001750001750 14275314064433363 15155 0ustar00vojvoj000000000000Catmandu-SRU-0.430/t/files 1.123MARC21-xmlxml 01101nas a2200253 c 4500 010206663 DE-101 20050526145417.0 tu 991118d19841984fr u||p| ||| 1||||0eng c DE-101 010206663 DE-600 14559-2 (DE-599)ZDB14559-2 9001 ger DE-101 9999 eng XA-FR 570 DE-600 22sdnb 570 DE-600 sdnb (DE-588)513010-4 (DE-101)005130107 International Union of Biological Sciences Working Group on Soil Biology, Decade of the Tropics Programme aut Report of the meeting of the IUBS Working Group on Soil Biology, Decade of the Tropics Programm International Union of Biological Sciences Paris [s.n.] 1.1984 Forts.: Workshop of the Decade of the Tropics, Soil Biology Programme Report of the Workshop of the Decade of the Tropics, Soil Biology Programme (DE-600)14560-9 (DE-101)010206671 Bd. zugl. Bd. von Biology international / Special issue (DE-600)848975-0 (DE-101)014599260 11MARC21-xmlxml 00740nas a2200265 c 4500 010190902 DE-101 20110614041645.0 tu 991118c19819999ii u||p| ||| 0||||0eng c DE-101 010190902 DE-600 12788-7 0970-1370 (DE-599)ZDB12788-7 9001 ger DE-101 9999 eng XB-IN 570 DE-600 22sdnb 12 ssgn 570 DE-600 sdnb Journal of soil biology & ecology Indian Society of Soil Biology and Ecology Journal of soil biology and ecology Bangalore [s.n.] 1.1981,1; 2.1982 - 30!(15-04-08)89!läuft wieder(10-06-09) 12MARC21-xmlxml 01331nas a2200277 c 4500 01153639X DE-101 20050527122311.0 tu 991119d19771984hu u||p| ||| 1||||0||| c DE-101 01153639X DE-600 254595-0 (DE-599)ZDB254595-0 9001 ger DE-101 9999 XA-HU 570 DE-600 22sdnb 570 DE-600 sdnb Soil biology and conservation of the biosphere Proceedings of the meeting of the Soil Biology Section of the Society for Soil Science of the Hungarian Association of Agricultural Sciences Nebent. 7.1975 Proceedings of the meeting of the Soil Biology Section of the Hungarian Society for Soil Science 8.1981 Budapest Akadémiai Kiadó Nachgewiesen 7.1975(1977) - 8.1981(1984) C*Kopie89!200389 (DE-588)138367-X (DE-101)001383671 Hungarian Society for Soil Science Soil Biology Section (DE-588)138365-6 (DE-101)001383655 Society for Soil Science Soil Biology Section Forts.: International Symposium on Soil Biology and Conservation of the Biosphere Proceedings of the International Symposium on Soil Biology and Conservation of the Biosphere (DE-600)61253-4 (DE-101)010542396 13MARC21-xmlxml 00784nas a2200241 c 4500 017518814 DE-101 20050526031322.0 tu 991121c19769999ii u||p| ||| 1||||0eng c DE-101 017518814 DE-600 1225640-7 (DE-599)ZDB1225640-7 9001 ger DE-101 9999 eng XB-IN 570 DE-600 22sdnb 570 DE-600 sdnb (DE-588)5126482-1 (DE-101)94415414X All-India Symposium on Soil Biology and Ecology aut All India Symposium on Soil Biology and Ecology Bangalore [s.n.] 1.1976 - 2=37 von University of Agricultural Sciences <Bangalore> UAS technical series (DE-600)984699-2 (DE-101)015235076 14MARC21-xmlxml 01066nas a2200313 c 4500 014156393 DE-101 20070813044137.0 tu 991120d19721975fr u||p| ||| 0||||0||| c DE-101 014156393 DE-600 762539-x (DE-599)ZDB762539-x (OCoLC)643198055 9001 ger DE-101 0012 XA-FR 590 DE-600 22sdnb 590 DE-600 sdnb Bull. Int. Inf. Biol. Sol Biologie du sol bulletin internat. d'informations Partie zoologie Association Internationale de la Science du Sol, Commission 3 Biologie du sol / Partie zoologie Soil biology. ˜1972-1975œ Parallelsacht. Bodenbiologie. ˜1972-1975œ Parallelsacht. Paris [u.a.] Assoc. Nr. 15.1972 - 22.1975 C Vorg.: Biologie du sol (DE-600)951021-7 (DE-101)015086569 Forts.: Pedofauna (DE-600)970706-2 (DE-101)015122972 Partie zoologie 15MARC21-xmlxml 01093nas a2200325 c 4500 014156385 DE-101 20081209000627.0 tu 991120d19721975fr u||p| ||| 0||||0||| c DE-101 014156385 DE-600 762538-8 BSLMBR (DE-599)ZDB762538-8 9001 ger DE-101 9999 XA-FR 570 DE-600 22sdnb 570 DE-600 sdnb Bull. Int. Inf. Biol. Sol BIOL SOL MICROBIOL Biologie du sol bulletin internat. d'informations Partie microbiologie Association Internationale de la Science du Sol, Commission 3 Biologie du sol / Partie microbiologie Bodenbiologie. ˜1972-1975œ Soil biology. ˜1972-1975œ Parallelsacht. Bodenbiology Parallelsacht. Paris [u.a.] Assoc. Nr. 15.1972 - 22.1975; damit Ersch. eingest. C*280688 Vorg.: Biologie du sol (DE-600)951021-7 (DE-101)015086569 Partie microbiologie 16MARC21-xmlxml 00651nas a2200217 c 4500 010200592 DE-101 20140214111028.0 tu 991118d19721984rm u||p| ||| 1||||0||| c DE-101 010200592 DE-600 13877-0 (DE-599)ZDB13877-0 9001 ger DE-101 9001 XA-RO 570 DE-600 22sdnb 570 DE-600 sdnb (DE-588)512902-3 (DE-101)005129028 Symposium on Soil Biology aut Symposium on Soil Biology Romanian National Society of Soil Science Bucharest [s.n.] 3.1972 - 5.1981(1984) nachgewiesen 17MARC21-xmlxml 02885nas a2200685 c 4500 019914245 DE-101 20131022203710.0 cr|||||||||||| 991104c19699999ne u||p|o ||| 0||||0eng c DE-101 019914245 DE-600 1498740-5 ZDB-1-SDJ-332 0038-0717 SBIOAH (DE-599)ZDB1498740-5 (OCoLC)644556921 9000 ger DE-101 9999 eng XA-NL 570 540 DE-600 22sdnb 570 540 DE-600 sdnb BIO 142z GEO 315z LAN 117z stub nl Soil Biol. Biochem. Soil Biol Biochem Soil biology & biochemistry Elektronische Ressource Soil biology and biochemistry Gesehen am 27.09.04 Amsterdam [u.a.] Elsevier Science Online-Ressource 1.1969 - 43.2011; Vol. 44.2012 - Ab 2012 mit durchgehender Heftzählung, die als Vol. bez. wird (DE-588)4146134-4 (DE-101)041461347 Bodenchemie gnd (DE-588)4067488-5 (DE-101)040674886 Zeitschrift gnd (DE-588)4511937-5 (DE-101)954353331 Online-Publikation gnd (DE-588)4007369-5 (DE-101)040073696 Bodenfruchtbarkeit gnd (DE-588)4067488-5 (DE-101)040674886 Zeitschrift gnd (DE-588)4511937-5 (DE-101)954353331 Online-Publikation gnd (DE-588)4007358-0 (DE-101)040073580 Bodenbiologie gnd (DE-588)4067488-5 (DE-101)040674886 Zeitschrift gnd (DE-588)4511937-5 (DE-101)954353331 Online-Publikation gnd (DE-588)4146134-4 (DE-101)041461347 s Bodenchemie (DE-588)4067488-5 (DE-101)040674886 s Zeitschrift (DE-588)4511937-5 (DE-101)954353331 s Online-Publikation DE-600 DE-600 (DE-588)4007369-5 (DE-101)040073696 s Bodenfruchtbarkeit (DE-588)4067488-5 (DE-101)040674886 s Zeitschrift (DE-588)4511937-5 (DE-101)954353331 s Online-Publikation DE-600 DE-600 (DE-588)4007358-0 (DE-101)040073580 s Bodenbiologie (DE-588)4067488-5 (DE-101)040674886 s Zeitschrift (DE-588)4511937-5 (DE-101)954353331 s Online-Publikation DE-600 DE-600 Druckausg. Soil biology & biochemistry (DE-600)280810-9 (DE-101)011745584 http://www.bibliothek.uni-regensburg.de/ezeit/?1498740 EZB http://www.sciencedirect.com/science/journal/00380717 Verlag http://www.sciencedirect.com/science/journal/00380717 Verlag; 1.1969 - 2002 Deutschlandweit zugänglich ZDB-1-SDJ 18MARC21-xmlxml 01607nas a2200493 c 4500 011745584 DE-101 20130424102931.0 tu 991119c19699999ne u||p| ||| 0||||0eng c DE-101 011745584 DE-600 280810-9 0038-0717 SBIOAH (DE-599)ZDB280810-9 (OCoLC)231038904 9001 ger DE-101 9001 eng XA-NL 590 570 540 DE-600 22sdnb 12 ssgn 590 570 540 DE-600 sdnb Soil Biol. Biochem. Soil Biol & Biochem Soil biology & biochemistry SBB SBB Soil biology and biochemistry Amsterdam [u.a.] Elsevier Oxford [u.a.] Pergamon Press 1969-2004 1.1969 - 43.2011; Vol. 44.2012 - 1.1\x 1969 Repr.: Oxford : Pergamon Press Ab 2012 mit durchgehender Heftzählung, die als Vol. bez. wird (DE-588)4146134-4 (DE-101)041461347 Bodenchemie gnd (DE-588)4007358-0 (DE-101)040073580 Bodenbiologie gnd Zeitschrift gnd Zeitschrift gnd (DE-588)4146134-4 (DE-101)041461347 s Bodenchemie f Zeitschrift DE-600 DE-600 (DE-588)4007358-0 (DE-101)040073580 s Bodenbiologie f Zeitschrift DE-600 DE-600 Online-Ausg. Soil biology & biochemistry (DE-600)1498740-5 (DE-101)019914245 19MARC21-xmlxml 00983nas a2200289 c 4500 015086569 DE-101 20090217011036.0 tu 991120d19641972fr u||p| ||| 0||||0||| c DE-101 015086569 DE-600 951021-7 0067-8805 BISOBW (DE-599)ZDB951021-7 9001 ger DE-101 9999 XA-FR 570 DE-600 22sdnb 570 DE-600 sdnb Bull. Int. Inf. Biol. Sol. Biologie du sol bulletin internat. d'informations Association Internationale de la Science du Sol, Commission 3 Soil biology. ˜1964-1972œ Parallelsacht. Bodenbiologie. ˜1964-1972œ Parallelsacht. Paris Assoc. N.S. Nr.1.1964 - 14.1972 Ab 15.1972 Teilung in Unterreihen (DE-588)340075-X (DE-101)003400751 International Society of Soil Science Commission for Soil Biology 20211.1tit=soil and biology11MARC21-xmlZeitschriftendatenbank (ZDB)21.xml100644001750001750 4133114064433363 15124 0ustar00vojvoj000000000000Catmandu-SRU-0.430/t/files 1.123MARC21-xmlxml 01817nas a2200577 c 4500 011197684 DE-101 20120124100526.0 tu 991119c19619999ne b||p| ||| 0||||0ger c DE-101 011197684 DE-600 207680-9 0031-4056 0031-4056 1873-1511 PDBLAM (DE-599)ZDB207680-9 (OCoLC)243419229 9001 ger DE-101 1241 ger eng XA-NL XA-DE 1\x 631.4605 DE-101 22/ger 630 DE-101 22sdnb 570 610 DE-600 22sdnb 630 DE-101 sdnb 12 ssgn 570 610 DE-600 sdnb WA 15000 rvk 1\x 631.46 1\x 1 05 Pedobiologia PEDOBIOLOGIA (JENA) Pedobiologia international journal of soil biology Amsterdam Boston, Mass. Jena London New York, NY Oxford Paris Philadelphia, Pa. San Diego, Ca. St. Louis, Mo. Elsevier Jena Fischer anfangs Jena Stuttgart [u.a.] Fischer früher Jena Urban & Fischer -2003 28 cm 1.1961/62 - 1.1\x 1961/62 Ungezählte Beil. ab 2011: Supplement Ersch. 6x jährl. Zsfassungen in dt. u. engl. Sprache (DE-588)4007358-0 (DE-101)040073580 Bodenbiologie gnd Zeitschrift gnd (DE-588)4007358-0 (DE-101)040073580 s Bodenbiologie f Zeitschrift DE-101 DE-101 Online-Ausg. Pedobiologia (DE-600)2049235-2 (DE-101)021904251 (DE-101)946240299 ra 21MARC21-xmlxml 01037nas a2200253 c 4500 016305078 DE-101 20050524195025.0 tu 991121d19591959xx u||p| ||| 1||||0rus c DE-101 016305078 DE-600 1100293-1 (DE-599)ZDB1100293-1 9001 ger DE-101 9999 rus XA-SUHH 570 580 DE-600 22sdnb 570 580 DE-600 sdnb (DE-588)3749-7 (DE-101)000037494 Vsesojuznaja Konferencija po Fotosintezu aut Doklady na ... Vsesojuznoj Konferencii po Fotosintezu / Akademija Nauk SSSR, Otdelenie Biologičeskich Nauk ; Moskovskij Gosudarstvennyj Universitet Im. M. V. Lomonosova, Biologo-Počvennyj Fakul'tet = Reports of ... All-Union Conference on Photosynthesis / Biological Section of USSR Academy of Sciences and Biology-Soil Department of Moscow State University Moskva Akad. 2.1957(1959) nachgewiesen In kyrill. Schr Aut.RZK 22MARC21-xmlxml 01098nas a2200253 c 4500 01216822X DE-101 20070502180702.0 tu 991119d19391939xxuu||p| ||| 0||||0||| c DE-101 01216822X DE-600 395622-2 (DE-599)ZDB395622-2 9001 ger DE-101 9001 XD-US 630 640 DE-600 22sdnb 630 640 DE-600 sdnb (DE-588)340075-X (DE-101)003400751 International Society of Soil Science Commission for Soil Biology aut Proceedings of the Third Commission of the International Society of Soil Science Commission 3 of the International Society of Soil Science Nebent. Transactions of the Third Commission of the International Society of Soil Science Nebent. Comptes rendus de la Troisième Commission de l'Association International de la Science du Sol Nebent. Verhandlungen der Dritten Kommission der Internationalen Bodenkundlichen Gesellschaft Camden, NJ [s.n.] 1939 nachgewiesen 23241.1tit=soil and biology21MARC21-xmlZeitschriftendatenbank (ZDB) meta.xml100644001750001750 17236714064433363 15666 0ustar00vojvoj000000000000Catmandu-SRU-0.430/t/files 1.1 23 1 5000 MARC21-xml xml 00697nas a2200229 c 4500 105225165X DE-101 20140619091529.0 tu 140617c20129999xx u||p| ||| 0||||0eng c DE-101 105225165X DE-600 2774737-2 2226-4701 (DE-599)ZDB2774737-2 0188 ger DE-101 0188 eng XA-RU 580 DE-600 23sdnb 580 DE-600 sdnb Botanica Pacifica a journal of plant science and conservation Botanical Garden-Institute FEB RAS ; Institute of Biology and Soil Science FEB RAS Vladivostok Botanical Garden-Inst. FEB RAS 1.2012 - 1 MARC21-xml xml 01222nas a2200373 c 4500 98815479X DE-101 20131023080746.0 cr|||||||||||| 080404c20099999xxuu||p|o ||| 0||||0eng c DE-101 98815479X DE-600 2419232-6 eb50896883 1819-3498 (DE-599)ZDB2419232-6 (OCoLC)644251209 8999 ger DE-101 9999 eng XD-US XB-IN 550 DE-600 22sdnb 550 DE-600 sdnb ag Research journal of soil biology Elektronische Ressource RJSB RJSB Gesehen am 04.01.12 [S.l.] Academic Journals Mumbai Asian Network for Scientific Information Online-Ressource 1.2009 - (DE-588)4007358-0 (DE-101)040073580 Bodenbiologie gnd (DE-588)4007358-0 (DE-101)040073580 s Bodenbiologie DE-600 DE-600 http://www.bibliothek.uni-regensburg.de/ezeit/?2419232 EZB http://scialert.net/jindex.php?issn=1819-3498 Verlag kostenfrei http://search.ebscohost.com/ Aggregator 2 MARC21-xml xml 01300nas a2200445 c 4500 985542926 DE-101 20131125111708.0 cr|||||||||||| 070831c20049999gw z||m|o ||| 0||||0eng c 07,A41,1051 dnb DE-101 985542926 DE-600 2385527-7 1613-3382 2196-4831 1613-3382 (DE-599)ZDB2385527-7 (OCoLC)723788084 1240 ger DE-101 0703 eng XA-DE 630 570 DE-101 22sdnb 570 DE-600 22sdnb 630 570 DE-101 sdnb 570 DE-600 sdnb la Soil biology Elektronische Ressource Gesehen am 28.10.13 Gesehen am 12.12.07 Berlin Heidelberg Springer Online-Ressource 1.2004 - 1.1\x 1 2004 Ersch. unregelma¨ßig Langzeitarchivierung gewa¨hrleistet : durch die Deutsche Nationalbibliothek LZA C!URL-A¨(28-10-13) Druckausg. Soil biology (DE-600)2151755-1 (DE-101)026210169 http://link.springer.com/bookseries/5138 Verlag ra 13-10-28 g 3 MARC21-xml xml 01243nas a2200409 c 4500 026210169 DE-101 20130424110635.0 tu 040715c20049999gw z||m| ||| 0||||0eng c 07,A27,0707 dnb DE-101 026210169 DE-600 2151755-1 1613-3382 1613-3382 = Soil biology (Berlin. Print) 6 1613-3382 = Soil biology (Berlin. Print) (DE-599)ZDB2151755-1 (OCoLC)609939522 0028 ger DE-101 1241 eng XA-DE 630 570 DE-101 22sdnb 570 DE-600 22sdnb 630 570 DE-101 sdnb 570 DE-600 sdnb Soil biology Berlin. Print Soil biology Berlin Heidelberg New York, NY Springer 1.2004 - 1.1\x 2004 Ersch. unregelma¨ßig (DE-588)4007358-0 (DE-101)040073580 Bodenbiologie gnd (DE-588)4007358-0 (DE-101)040073580 s Bodenbiologie DE-600 DE-600 Online-Ausg. Soil biology (DE-600)2385527-7 (DE-101)985542926 (DE-101)971862451 ra 4 MARC21-xml xml 00801nas a2200229 c 4500 1014329647 DE-101 20110815135633.0 tu 110815c20009999|||u||m| ||| 0||||0rus c DE-101 1014329647 DE-600 2623516-X (DE-599)ZDB2623516-X 6999 ger DE-101 6999 rus 570 DE-600 22sdnb 570 DE-600 sdnb (DE-588)3057101-7 (DE-101)969545878 Irkutskij Gosudarstvennyj Universitet Biologo-Poc?vennyj Fakul'tet aut Trudy Biologo-Poc?vennogo Fakul'teta, Irkutskij Gosudarstvennyj Universitet = Proceedings of the Biology and Soil Department, Irkutsk State University Irkutsk [s.n.] Nachgewiesen 2.2000 - In kyrill. Schr. 5 MARC21-xml xml 01520nas a2200421 c 4500 020620071 DE-101 20131022214809.0 cr|||||||||||| 000717c19989999fr u||p|o ||| 0||||0eng c DE-101 020620071 DE-600 2019300-2 1164-5563 ZDB-1-SDJ-9033 (DE-599)ZDB2019300-2 (OCoLC)243590499 6999 ger DE-101 9999 eng XA-FR 570 DE-600 22sdnb 570 DE-600 sdnb nl Eur. J. Soil Biol. European journal of soil biology Elektronische Ressource Gesehen am 02.05.07 Paris Elsevier Online-Ressource Nachgewiesen 34.1998 - (DE-588)4007358-0 (DE-101)040073580 Bodenbiologie gnd (DE-588)4067488-5 (DE-101)040674886 Zeitschrift gnd (DE-588)4007358-0 (DE-101)040073580 s Bodenbiologie (DE-588)4067488-5 (DE-101)040674886 s Zeitschrift DE-600 DE-600 Druckausg. European journal of soil biology (DE-600)1150007-4 (DE-101)016785428 http://www.bibliothek.uni-regensburg.de/ezeit/?2019300 EZB http://www.sciencedirect.com/science/journal/11645563 Verlag; 34.1998 - http://www.sciencedirect.com/science/journal/11645563 Verlag; 34.1998 - 2002 Deutschlandweit zuga¨nglich ZDB-1-SDJ 6 MARC21-xml xml 01198nas a2200349 c 4500 016785428 DE-101 20111108110353.0 tu 991121c19939999fr u||p| ||| 0||||0||| c DE-101 016785428 DE-600 1150007-4 1164-5563 (DE-599)ZDB1150007-4 (OCoLC)263608608 9001 ger DE-101 9001 XA-FR 570 DE-600 22sdnb 12 ssgn 570 DE-600 sdnb Eur. J. Soil Biol. European journal of soil biology Paris Elsevier Montrouge Gauthier-Villars anfangs 29.1993 - (DE-588)4007358-0 (DE-101)040073580 Bodenbiologie gnd (DE-588)4067488-5 (DE-101)040674886 Zeitschrift gnd (DE-588)4007358-0 (DE-101)040073580 s Bodenbiologie (DE-588)4067488-5 (DE-101)040674886 s Zeitschrift DE-600 DE-600 Online-Ausg. European journal of soil biology (DE-600)2019300-2 (DE-101)020620071 Vorg.: Revue d'e´cologie et de biologie du sol (DE-600)954135-4 (DE-101)010029222 7 MARC21-xml xml 00580nas a2200217 c 4500 016866738 DE-101 20081129165014.0 tu 991121c19929999xxuu||m| ||| 0||||0eng c DE-101 016866738 DE-600 1158400-2 (DE-599)ZDB1158400-2 9001 ger DE-101 9001 eng XD-US 550 DE-600 22sdnb 550 DE-600 sdnb Isotopic techniques in plant, soil and aquatic biology San Diego, Calif. Academic Press Nachgewiesen 2.1992 - 8 MARC21-xml xml 00875nas a2200241 c 4500 010542396 DE-101 20091019223835.0 tu 991118c19879999hu u||p| ||| 1||||0||| c DE-101 010542396 DE-600 61253-4 (DE-599)ZDB61253-4 9001 ger DE-101 9999 XA-HU 570 DE-600 22sdnb 570 DE-600 sdnb (DE-588)291881-X (DE-101)002918811 International Symposium on Soil Biology and Conservation of the Biosphere aut Proceedings of the International Symposium on Soil Biology and Conservation of the Biosphere Hungarian Society of Soil Science Budapest Akad. Kiado´ 9.1985(1987) - 170389 Vorg.: Soil biology and conservation of the biosphere (DE-600)254595-0 (DE-101)01153639X 9 MARC21-xml xml 01064nas a2200253 c 4500 010206671 DE-101 20050526145417.0 tu 991118c19859999fr u||p| ||| 1||||0eng c DE-101 010206671 DE-600 14560-9 (DE-599)ZDB14560-9 9001 ger DE-101 9999 eng XA-FR 570 DE-600 22sdnb 570 DE-600 sdnb (DE-588)513011-6 (DE-101)005130115 Workshop of the Decade of the Tropics, Soil Biology Programme aut Report of the Workshop of the Decade of the Tropics, Soil Biology Programme Paris [s.n.] 2.1985 - Vorg.: International Union of Biological Sciences / Working Group on Soil Biology, Decade of the Tropics Programme Report of the meeting of the IUBS Working Group on Soil Biology, Decade of the Tropics Programm (DE-600)14559-2 (DE-101)010206663 Zugl. einzelne Bd. von Biology international / Special issue (DE-600)848975-0 (DE-101)014599260 10 11 info:srw/diagnostic/1/38 10 Whatever foo:bar 1.1 tit=soil and biology MARC21-xml Zeitschriftendatenbank (ZDB) test mods.xml100644001750001750 2427714064433363 15656 0ustar00vojvoj000000000000Catmandu-SRU-0.430/t/files 1.2 1251693 mods xml http://kalliope-verbund.info/DE-611-BF-18449 DE-611-BF-18449 20070207 20100805 Deutsche Nationalbibliothek text Löwenstein, Hubertus zu (1906-1984) org originatator Teilnachlass Hubertus Prinz zu Löwenstein (Titel) Autobiographisches; Briefe von und an Löwenstein; Werkmanuskripte; Drucke; Sekundärliteratur; Lebensdokumente; Porträt- und Familienfotos; 1 Konvolut Material und Korrespondenz über John Strick (1941-1981); Memorabilia; Manuskripte von anderer Hand EB 86/2 mods xml http://kalliope-verbund.info/DE-611-BF-18493 DE-611-BF-18493 20070208 20100811 Deutsche Nationalbibliothek text Neumark, Fritz (1900-1991) org originatator Splitternachlass Fritz Neumark (Titel) Briefe an Naumark, Briefe von anderer Hand; Dokumente; Fotos mods xml http://kalliope-verbund.info/DE-611-BF-18430 DE-611-BF-18430 20070207 20100803 Deutsche Nationalbibliothek text Korn, Hermann (1907-1946) org originatator Teilnachlass Hermann Korn (Titel) Autobiographisches; Briefe von und an Korn, Briefe von anderer Hand; Werkmanuskripte; Drucke; Sekundärliteratur; Lebensdokumente; Fotos; Memorabilia; 1 Manuskript von anderer Hand EB 83/156 mods xml http://kalliope-verbund.info/DE-611-BF-18484 DE-611-BF-18484 20070208 20100810 Deutsche Nationalbibliothek text Mohr, Walter (1910-2001) org originatator Teilnachlass Walter Mohr (Titel) Autobiographisches; Briefe von und an Mohr; Werkmanuskripte; Drucke; Sekundärliteratur; zahlreiche Lebensdokumente 11 Ordner, 6 Zeitungsbände mods xml http://kalliope-verbund.info/DE-611-BF-18497 DE-611-BF-18497 20070208 20100811 Deutsche Nationalbibliothek text Olden, Rudolf (1885-1940) org originatator Teilnachlass Rudolf Olden (Titel) Briefe von und an Olden, Briefe von anderer Hand; Werkmanuskripte; Fotos; Memorabilia EB 79/20 Catmandu000755001750001750 014064433363 14733 5ustar00vojvoj000000000000Catmandu-SRU-0.430/libSRU.pm100644001750001750 532114064433363 16103 0ustar00vojvoj000000000000Catmandu-SRU-0.430/lib/Catmandupackage Catmandu::SRU; our $VERSION = '0.430'; =head1 NAME Catmandu::SRU - Catmandu module for working with SRU data =begin markdown # STATUS [![Build Status](https://travis-ci.com/LibreCat/Catmandu-SRU.svg?branch=master)](https://travis-ci.com/LibreCat/Catmandu-SRU) [![Coverage](https://coveralls.io/repos/LibreCat/Catmandu-SRU/badge.png?branch=master)](https://coveralls.io/r/LibreCat/Catmandu-SRU) [![CPANTS kwalitee](http://cpants.cpanauthors.org/dist/Catmandu-SRU.png)](http://cpants.cpanauthors.org/dist/Catmandu-SRU) =end markdown =head1 SYNOPSIS # On the command line $ catmandu convert SRU --base http://www.unicat.be/sru --query data $ catmandu convert SRU --base http://www.unicat.be/sru --query data --recordSchema marcxml $ catmandu convert SRU --base http://www.unicat.be/sru --query data --recordSchema marcxml --parser marcxml # create a config file: catmandu.yml $ cat catmandu.yml --- importer: unicat: package: SRU options: base: http://www.unicat.be/sru recordSchema: marcxml parser: marcxml $ catmandu convert unicat --query data # If you have Catmandu::MARC installed $ catmandu convert unicat --query data --fix 'marc_map("245a","title"); retain_field("title")' to CSV # The example above in perl use Catmandu -load; my $importer = Catmandu->importer('unicat', query => 'data'); my $fixer = Catmandu->fixer(['marc_map("245a","title")','retain_field("title")']); my $export = Catmandu->exporter('CSV'); $exporter->add_many($fixer->fix($importer)); $exporter->commit; =head1 MODULES =over 2 =item L =item L =item L =item L =item L =item L =item L =item L =item L =item L =back =head1 SEE ALSO L, L, L, L, L =head1 AUTHOR Wouter Willaert, C<< >> =head1 CONTRIBUTORS Patrick Hochstenbach, C<< >> Nicolas Steenlant, C<< >> Jakob Voss C<< >> Johann Rolschewski C<< >> =head1 LICENSE AND COPYRIGHT This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License. See L for more information. =cut 1; marcxml.xml100644001750001750 11237314064433363 16372 0ustar00vojvoj000000000000Catmandu-SRU-0.430/t/files 1.1 4744 info:srw/schema/1/marcxml-v1.1xml 00000ngm 22 a 4500 9759148 20131219083553.0 s2009 xx dut||||||||||||||||| u DNA onbekend: deel 4 DNA onbekend; jrg.1 NCRV DNA psychologie persoonlijkheidsleer159.9 159.93 Hilversum : NCRV, 2009 In de vierde aflevering van DNA Onbekend het verhaal van Diana. Zij is de jongste van drie dochters. Diana is er echter niet zo zeker van dat haar vader haar biologische vader is. Als ze gaat trouwen, ontdekt ze namelijk dat haar geboorte niet is aangegeven door haar vader, maar door haar oma. Wanneer ze haar vader hiermee confronteert, reageert hij boos. Hij wil er niet over praten. Daarbij vindt Diana dat ze totaal niet op haar twee zussen lijkt. Omdat haar beide ouders zijn overleden, kan ze dit niet meer aan hen vragen. Diana wil graag het verleden laten rusten, maar dat kan pas als de onderste steen boven is. Alleen DNA-onderzoek kan onomstotelijk bewijs leveren. Verder het ongelofelijke verhaal van de 61-jarige Nel. Voordat haar zus Miep overlijdt in 1996, ontvangt Nel een telefoontje van haar waarin ze zegt dat ze een groot geheim moet delen. Dan krijgt Miep een hartaanval en ze neemt het grote geheim mee haar graf in. Maar Nel denkt te weten wat ze wilde vertellen. Miep zou niet haar zus zijn, maar haar moeder! Er zijn echter nauwelijks manieren om dit bevestigd te krijgen en voor Nel lopen alle sporen naar het verleden dood. Met een reguliere DNA-test kan niet worden aangetoond of haar zus inderdaad haar moeder was. Maar Nel heeft twee haren en sieraden bewaard die mogelijk voor opheldering kunnen zorgen. Door middel van forensisch DNA-onderzoek wordt geprobeerd om het ware verhaal over haar afkomst te achterhalen (Bron: http://dna.ncrv.nl). KHLEUVEN 008616731 1 info:srw/schema/1/marcxml-v1.1xml 00000ngm 22 a 4500 9759207 20131219083553.0 s2009 xx dut||||||||||||||||| u DNA onbekend: deel 5 DNA onbekend; jrg.1 NCRV DNA psychologie persoonlijkheidsleer159.9 159.93 Hilversum : NCRV, 2009 In deze vijfde aflevering van DNA Onbekend het verhaal van de 45-jarige Petra. Zij groeide op in een gezin van drie kinderen. Vijfentwintig jaar geleden ontdekte ze dat haar vader mogelijk geen drie, maar vier kinderen heeft. Want voordat Petra's vader haar moeder ontmoette, was hij vier jaar lang verloofd met een andere vrouw. Uit deze relatie zou Jörg geboren zijn. Maar de vrouw heeft altijd ontkend dat Petra's vader de vader is van Jörg. Anderhalf jaar geleden start Petra de zoektocht naar deze Jörg en in maart van dit jaar is het raak. Hij blijkt volledig in het ongewisse te zijn over de verhalen over zijn afkomst. Heeft hij een andere vader dan hij altijd heeft gedacht? Zijn ze elkaars verwanten? Ook in DNA Onbekend de wonderlijke verwantschapskwestie van de vriendinnen Tara en Trushna uit Friesland. Beiden zijn geboren in India en geadopteerd door Nederlandse gezinnen. De ouders van de meisjes hebben, zeker in de eerste jaren na de adoptie, veel contact gehouden, waardoor Tara en Trushna hartsvriendinnen zijn geworden. Ze delen niet alleen hun geboorteland India, ook komen ze uit dezelfde stad en zelfs uit hetzelfde tehuis. Ook schelen ze slechts één dag in leeftijd. Hun hele leven horen ze al dat ze erg op elkaar lijken en wordt hun gevraagd of ze geen tweeling zijn. Ze voelen ook een verwantschap, maar achten de kans erg klein dat ze ook daadwerkelijk zussen zijn. De hoop is er echter wel degelijk! Omdat in India alle sporen naar hun afkomst zijn doodgelopen, is een DNA-test nog de enige manier om er achter te komen of Tara en Trushna familie zijn. (Bron:dna.ncrv.nl) KHLEUVEN 008616806 2 info:srw/schema/1/marcxml-v1.1xml 00000ngm 22 a 4500 9759032 20131219083551.0 s2009 xx dut||||||||||||||||| u DNA onbekend: deel 2 DNA onbekend; jrg.1 NCRV DNA psychologie persoonlijkheidsleer159.9 159.93 Hilversum : NCRV, 2009 Is mijn vader wel mijn echte vader? Zijn mijn broers en zussen wel mijn echte familie? Grote twijfels en onbeantwoorde vragen over familiebanden laten diepe sporen na in het leven van de mensen. Caroline Tensen helpt mensen om voor eens en altijd duidelijkheid te scheppen. -Het verhaal van Marjan (1943). In haar kindertijd zijn haar ouders goed bevriend met een getrouwd stel verderop in hun straat. Ook Marjan komt daar regelmatig over de vloer. Als haar ouders in 1990 allebei zijn overleden, komt diezelfde buurvrouw langs met een schokkend bericht: Marjan zou verwekt zijn door de buurman! Buurjongen Peter kreeg op zijn elfde al van zijn moeder te horen dat Marjan zijn halfzus zou zijn, maar hem wordt verboden hierover te spreken. Nadat zijn moeder, al die jaren later, het zwijgen verbreekt, besluit Peter om Marjan een brief te schrijven. Ze wil het verleden laten rusten en houdt het contact met hem af. Ze wil eigenlijk niets weten over het eventuele ware verhaal van haar afkomst. Tot Peters verdriet die dolgraag een zus zou willen hebben. Bijna twintig jaar is er geen contact en vandaag ontmoeten ze elkaar weer voor het eerst. Zal een DNA-test eindelijk duidelijk maken of Peter en Marjan inderdaad broer en zus zijn? -Verder het verhaal van de 32-jarige Johan. Zestien jaar geleden ontmoet hij voor het eerst zijn vermeende biologische vader, Piet en zijn halfzus Alexandra. De band tussen de drie is sinds die tijd zeer hecht. Maar Johan blijft twijfelen en niemand weet 100 procent zeker of Johan en Piet wel echt vader en zoon zijn. Het is voor Johan heel belangrijk om uitsluitsel te krijgen over zijn vader; hij overweegt zelfs naamsverandering als blijkt dat Piet inderdaad zijn echte vader is. Zal DNA-onderzoek het onomstotelijke bewijs leveren? Presentatie: Caroline Tensen.(Bron: http://dna.ncrv.nl/ncrvgemist/dna-onbekend-0) KHLEUVEN 008616600 3 info:srw/schema/1/marcxml-v1.1xml 00000ngm 22 a 4500 9758981 20131219083551.0 s2009 xx dut||||||||||||||||| u DNA onbekend: deel 1 DNA onbekend; jrg.1 NCRV DNA psychologie persoonlijkheidsleer159.9 159.93 Hilversum : NCRV, 2009 Is mijn vader wel mijn echte vader? Zijn mijn broers en zussen wel mijn echte familie? Grote twijfels en onbeantwoorde vragen over familiebanden laten diepe sporen na in het leven van de mensen. Caroline Tensen helpt mensen om voor eens en altijd duidelijkheid te scheppen. Caroline ontmoet de Amsterdamse muzikant Willem. Hij wil graag uitzoeken of de 21-jarige Thialda uit Vlieland echt zijn dochter is. Willem heeft ernstig uitgezaaide darmkanker en heeft waarschijnlijk niet lang meer te leven. Voordat hij overlijdt, wil Willem duidelijkheid. Ook Thialda wil de waarheid weten. Is Willem haar vader, of is het Dirk, de man met wie haar moeder al ruim twintig jaar samen is? Een DNA-onderzoek brengt eindelijk een einde aan de onzekerheid. -Ook het indrukwekkende verhaal van Ton. Zijn hele leven lang weigert zijn moeder te vertellen wie zijn vader is. Na het overlijden van zijn moeder, lijkt het familiegeheim zich eindelijk te ontrafelen. Ton vindt tussen de spullen van zijn moeder een liefdesbrief en een foto van een Canadese soldaat. Inmiddels denkt de 61-jarige Ton zelfs een halfbroer te hebben gevonden; een zoon van zijn vermoedelijke vader. Ze zien vele gelijkenissen bij elkaar, maar alleen een DNA-onderzoek kan Ton eindelijk die gewenste honderd procent zekerheid geven (Bron: http://www.hebikietsgemist.nl). KHLEUVEN 008616540 4 info:srw/schema/1/marcxml-v1.1xml 00000ngm 22 a 4500 9759071 20131219083552.0 s2009 xx dut||||||||||||||||| u DNA onbekend: deel 3 DNA onbekend; jrg.1 NCRV DNA psychologie persoonlijkheidsleer159.9 159.93 Hilversum : NCRV, 2009 Is mijn vader wel mijn echte vader? Zijn mijn broers en zussen wel mijn echte familie? Grote twijfels en onbeantwoorde vragen over familiebanden laten diepe sporen na in het leven van de mensen. Caroline Tensen helpt mensen om voor eens en altijd duidelijkheid te scheppen. De familie Wehnes staat centraal. Een groot gezin met maar liefst vijftien kinderen. Eén van hen is Elly en zij krijgt als kind regelmatig ingewreven dat Pa Wehnes niet haar vader zou zijn. Hun relatie is nooit goed geweest. Elly werd geestelijk en zelfs lichamelijk door hem mishandeld. Zij hoopt dan ook vurig dan hij niet haar echte vader is. Het verhaal doet de ronde dat Elly een kind zou zijn van de bloemenman, Joop van Tuyne. Elly is niet het enige kind in het gezin met twijfels. Ook haar broer Peter worstelt met zijn afkomst. Zijn hele leven gaan er geruchten dat ook híj geen echte Wehnes zou zijn. In zijn geval wordt de naam van ene meneer Koek genoemd, hoewel Elly denkt dat Peter ook wel eens van de bloemenman zou kunnen zijn. Wanneer Peter na het overlijden van zijn moeder documenten van meneer Koek tussen haar spullen vindt, is de twijfel compleet. Is Peter een kind van Koek, van bloemenman Van Tuyne of van Pa Wehnes? Een DNA-test zal het moeten uitwijzen. Presentatie: Caroline Tensen (Bron: http://dna.ncrv.nl). KHLEUVEN 008616648 5 info:srw/schema/1/marcxml-v1.1xml 00000ngm 22 a 4500 9759319 20131219083554.0 s2009 xx dut||||||||||||||||| u DNA onbekend: deel 9 DNA onbekend; jrg.1 NCRV DNA psychologie persoonlijkheidsleer159.9 159.93 Hilversum : NCRV, 2009 -Het indringende verhaal van de 35-jarige Olaf. Hij werd geboren in een opvanghuis voor alleenstaande (ongewenst) zwangere vrouwen. Zijn moeder stond hem af en Olaf werd als peuter geadopteerd door zijn oom en tante. Olaf groeit op in dit streng christelijke gezin waar hij het zowel geestelijk als lichamelijk zwaar te verduren heeft. De relatie met zijn adoptie-ouders is zo slecht dat Olaf op 21-jarige leeftijd de adoptie laat herroepen. Inmiddels is ook het contact met Olafs biologische moeder voorzichtig in gang gezet. Dit verloopt redelijk, zolang het oppervlakkig blijft. Op het moment dat Olaf vragen begint te stellen over zijn echte vader zwijgt zij in alle toonaarden. Het gaat zelfs zover dat Olaf haar voor de rechter daagt. Het enige wat in de rechtszaak boven water komt, is de naam van zijn moeders vriendje ten tijde van Olafs verwekking. Hoewel moeder verklaart dat deze man niet de vader is, komen zijn naam en leeftijd wel overeen met aanwijzingen die Olaf heeft gevonden in het dossier van het opvanghuis. Zijn zoektocht lijkt zich te hebben toegespitst op één manen de eerste ontmoeting met hem is moeilijk en verwarrend. Olaf hoopt op duidelijkheid, maar er gaan jaren overeen voordat de man instemt met een DNA-test. Vandaag krijgt Olaf eindelijk uitsluitsel over zijn vader. -De 55-jarige Neja groeide op in een gezin van vier kinderen. Vanaf haar vroegste jeugd kreeg ze opmerkingen te horen over haar afkomst. Regelmatig werd er gegrapt dat ze geadopteerd zou zijn of dat ze 'onder een boom' gevonden was. Nooit wist ze hoe serieus ze deze opmerkingen moest nemen. Pas later begon ze steeds vaker te twijfelen of er niet werkelijk een kern van waarheid zou kunnen zitten in de toespelingen. Neja's moeder was voor de buitenwacht een vrolijke en joviale vrouw, maar binnen het gezin had ze een andere kant. Neja en haar jongste broer omschrijven de moeder als een echte toneelspeelster. Ze was een behoorlijke flirt, had regelmatig mannen over de vloer en kon ook da KHLEUVEN 008616940 6 info:srw/schema/1/marcxml-v1.1xml 00000nam 22 a 4500 728175 20131217203139.0 s2001 xx eng||||||||||||||||| u DNA technology: the awesome skill DNA TECHNOLOGY THE AWESOME SKILL Alcamo, I. Edward DNA DNA GENETIC TECHNIQUES GENE THERAPY DNA ANIMALS, GENETICALLY MODIFIED AGRICULTURE HUMAN GENOME PROJECTHISTORY ULTRASTRUCTURE ANALYSIS 0120489201 9780120489206 New York ; London : Academic Press, 2001 DNA Technology, Second Edition, is a survey of biotechnology written to enlighten readers about the breakthroughs made possible by the science and technologies associated with current DNA research. Ed Alcamo gives the educated layperson a survey of DNA by presenting a brief history of genetics, a clear outline of techniques that are in use, and indications of breakthroughs in cloning and other DNA advances. Appropriate for a wide range of courses for non-biology majors, including a DNA for Lawyers course or allied health and nursing courses. * An introductory treatment of aspects of DNA technology written to enlighten the reader about the breakthroughs made possible by the science and technologies associated with DNA * Emphasizes the practical implications and applications of the new genetic technologies; readers will come away saying, "So that's what DNA technology is all about!" * Helps students, business people, lawyers, and jurists gain more confidence in their ability to to understand and appreciate DNA technology and human genetics * Persons with genetic diseases will gain a clearer understanding of their afflictions and understand the bases for possible cures * Agriculturists will have insight into the genetic basis for gene-altered plants and animals * The general public will better appreciate the nature and reasons for the Human Genome Project now in progress. UAntwerpen 3070913 ULB 941666 ULg ALEPH_ULG000939672 7 info:srw/schema/1/marcxml-v1.1xml 00000nam 22 a 4500 6096916 20131218215254.0 s2005 xx eng||||||||||||||||| u Multiple aspects of DNA and RNA : from biophysics to bioinformatics: école d'été de physique des Houches, session LXXXII [82], 2-27 August 2004 : Euro summer school, NATO advanced study institute, école thématique du CNRS Multiple aspects of deoxyribonucleic acid and ribonucleic acid From biophysics to bioinformatics École d'été de physique des Houches, session LXXXII, 2-27 August 2004 Les Houches, session LXXXII, NATO ASI MULTIPLE ASPECTS OF DNA AND RNA FROM BIOPHYSICS TO BIOINFORMATICS éCOLE D'éTé DE PHYSIQUE DES HOUCHES SESSION LXXXII 82 2 27 AUGUST 2004 EURO SUMMER SCHOOL NATO ADVANCED STUDY INSTITUTE éCOLE THéMATIQUE DU CNRS <<Les>> Houches CHATENAY, Didier COCCO, Simona MONASSON, Rémi THIEFFRY, Denis DALIBARD, Jean DNA RNA Biophysics Computational Biology Models, Biological Nucleic acids Biophysics Computational biology Acides nucléiques Biophysique Bio-informatiqueCongresses Congresses. Congresses. Congrès Congrès Congresses 9780444520814 0444520813 Amsterdam : Elsevier, 2005 This book is dedicated to the multiple aspects, that is, biological, physical and computational of DNA and RNA molecules. These molecules, central to vital processes, have been experimentally studied by molecular biologists for five decades since the discovery of the structure of DNA by Watson and Crick in 1953. Recent progresses (e.g. use of DNA chips, manipulations at the single molecule level, availability of huge genomic databases...) have revealed an imperious need for theoretical modelling. Further progresses will clearly not be possible without an integrated understanding of all DNA and RNA aspects and studies.<P> The book is intended to be a desktop reference for advanced graduate students or young researchers willing to acquire a broad interdisciplinary understanding of the multiple aspects of DNA and RNA. It is divided in three main sections:<P> The first section comprises an introduction to biochemistry and biology of nucleic acids. The structure and function of DNA are reviewed in R. Lavery's chapter. The next contribution, by V. Fritsch and E. Westhof, concentrates on the folding properties of RNA molecules. The cellular processes involving these molecules are reviewed by J. Kadonaga, with special emphasis on the regulation of transcription. These chapters does not require any preliminary knowledge in the field (except that of elementary biology and chemistry).<P> The second section covers the biophysics of DNA and RNA, starting with basics in polymer physics in the contribution by R. Khokhlov. A large space is then devoted to the presentation of recent experimental and theoretical progresses in the field of single molecule studies. T. Strick's contribution presents a detailed description of the various micro-manipulation techniques, and reviews recent experiments on the interactions between DNA and proteins (helicases, topoisomerases, ...). The theoretical modeling of single molecules is presented by J. Marko, with a special attention paid to the elastic and topological properties of DNA. Finally, advances in the understanding of electrophoresis, a technique of crucial importance in everyday molecular biology, are exposed in T. Duke's contribution.<P> The third section presents provides an overview of the main computational approaches to integrate, analyse and simulate molecular and genetic networks. First, J. van Helden introduces a series of statistical and computational methods allowing the identification of short nucleic fragments putatively involved in the regulation of gene expression from sets of promoter sequences controlling co-expressed genes. Next, the chapter by Samsonova et al. connects this issue of transcriptional regulation with that of the control of cell differentiation and pattern formation during embryonic development. Finally, H. de Jong and D. Thieffry review a series of mathematical approaches to model the dynamical behaviour of complex genetic regulatory networks. This contribution includes brief descriptions and references to successful applications of these approaches, including the work of B. Novak, on the dynamical modelling of cell cycle in different model organisms, from yeast to mammals.<P> . Provides a comprehensive overview of the structure and function of DNA and RNA at the interface between physics, biology and information science. ULB 942924 ULg ALEPH_ULG000469807 8 info:srw/schema/1/marcxml-v1.1xml 00000nam 22 a 4500 6095696 20131218215219.0 s1996 xx eng||||||||||||||||| u Enzymology primer for recombinant DNA technology Recombinant DNA technology ENZYMOLOGY PRIMER FOR RECOMBINANT DNA TECHNOLOGY Eun, Hyone-Myong Enzymes. Genetic engineering. Recombinant DNA. 9780122437403 0122437403 San Diego (Calif.) : Academic press, 1996 Enzymes are indispensable tools in recombinant DNA technology and genetic engineering. This book not only provides information for enzymologists, but does so in a manner that will also aid nonenymologists in making proper use of these biocatalysts in their research. The Enzymology Primer for Recombinant DNA Technology includes information not usually found in the brief descriptions given in most books on recombinant DNA methodology and gene cloning. Key Features * Provides essential basics as well as up-to-date information on enzymes most commonly used in recombinant DNA technology * Presents information in an easily accessible format to serve as a quick reference source * Leads to a better understanding of the role of biocatalysts in recombinant DNA techniques. UGent rug01/000394251 ULB 941470 ULg ALEPH_ULG001015906 9 info:srw/schema/1/marcxml-v1.1xml 00000nam 22 a 4500 881141 20131217205051.0 s xx ||||||||||||||||| u DNA and cell biology DNA Cell Biol DNA Deoxyribonucleic acid and cell biology DNA cell biol. DNA and cell biology DCB DNA. Genes. Genetic Techniques. Nucleic Acids. 1044-5498 10445498 15577430 New York Liebert AP 338668 FUCAM 000946290 KULEUVEN 001136582 UAntwerpen 338668 UCL 000946290 ULg ALEPH_ULG000540784 VUB 241601 10 1.1dna110marcxmlsrw.ServerChoicescrdna picaxml.xml100644001750001750 1113314064433363 16334 0ustar00vojvoj000000000000Catmandu-SRU-0.430/t/files 1.11picaxmlxml 9006:18-11-99 9006:26-11-13 15:22:33.000 9999:27-05-05 utf8 0 Tw 00903482X 910107-x AG000 1 DE-1 http://staatsbibliothek-berlin.de A http://stabikat.de B SBB-PK, Haus Unter d. Linden a Berlin SBB Haus Unter d.Linden c Staatsbibliothek zu Berlin - Preußischer Kulturbesitz, Haus Unter den Linden Unter den Linden 8 Berlin DE 10117 Berlin Mo-Fr 9.00-21.00, Sa 10.00-19.00 Öffnungszeiten besonderer Bereiche s. Homepage 13.39162 52.51755 11000000 j S Berlin DE 10102 Berlin j P S j 49 30 2 66-433666 (Auskunft) 49 30 2 66-333701 info@sbb.spk-berlin.de Weitere E-Mail-Adresse: benutzung.h1@sbb.spk-berlin.de 103 H s 0011 GBV 11 07 10 BER ÜLV GBV Kalliope l Sammelschwerpunkte: Ergänzung der historischen Bestände (Druckschriften bis 1945, insbesondere auch für die Sondersammelgebiete: s. Nennung bei 1a); Karten, Musikalien, Musikwissenschaft, Kinder- und Jugendliteratur. Übernommene Bestände: Altbestände vor 1945 von B 66 (Bibliothek der Gesellschaft für Erdkunde); Online-Auskunft "Fragen Sie uns": http://staatsbibliothek-berlin.de/service-und-benutzung/auskunft.html ANF2013; KOBV 04-05-06 K Telefon, E-Mail, URL; DE-1a 30-05-07 K Tel.; Umfrage2009 01-07-09; 29-03-11 K online-auskunft; ZRB 08-05-13 K Öff 1 t000755001750001750 014064433363 12674 5ustar00vojvoj000000000000Catmandu-SRU-0.430author-pod-syntax.t100644001750001750 45414064433363 16612 0ustar00vojvoj000000000000Catmandu-SRU-0.430/t#!perl BEGIN { unless ($ENV{AUTHOR_TESTING}) { print qq{1..0 # SKIP these tests are for testing by the author\n}; exit } } # This file was automatically generated by Dist::Zilla::Plugin::PodSyntaxTests. use strict; use warnings; use Test::More; use Test::Pod 1.41; all_pod_files_ok(); marcxml_ns.xml100644001750001750 556514064433363 17036 0ustar00vojvoj000000000000Catmandu-SRU-0.430/t/files 1.1 4 info:srw/schema/1/marcxml-v1.1xml 00785nas a2200277 c 4500 987874829 Code4Lib journal Elektronische Ressource C4LJ 1 info:srw/schema/1/marcxml-v1.1xml 00785nas a2200277 c 4500 987874829 Code4Lib journal Elektronische Ressource C4LJ 2 info:srw/schema/1/marcxml-v1.1xml 00785nas a2200277 c 4500 987874829 Code4Lib journal Elektronische Ressource C4LJ 3 info:srw/schema/1/marcxml-v1.1xml 00785nas a2200277 c 4500 987874829 Code4Lib journal Elektronische Ressource C4LJ 4 1.1code4lib110marcxmlsrw.ServerChoicescrcode4lib sru_oai_dc.xml100644001750001750 256114064433363 16773 0ustar00vojvoj000000000000Catmandu-SRU-0.430/t/files 1.1 2 dc xml Sample Title Alice Bob 2013 1 dc xml Another Title 2 lib000755001750001750 014064433363 13442 5ustar00vojvoj000000000000Catmandu-SRU-0.430/tMockHTTPClient.pm100644001750001750 47214064433363 16653 0ustar00vojvoj000000000000Catmandu-SRU-0.430/t/libpackage MockHTTPClient; #ABSTRACT: HTTP::Tiny mockup class to return XML data from file based on a query use Moo; sub get { my ($self, $url) = @_; $url =~ /query=([^&]+)/; my $xml = do {local (@ARGV, $/) = "t/files/$1"; <>}; {success => 1, status => 200, reason => 'OK', content => $xml,}; } 1; Catmandu-Importer-SRU.t100755001750001750 355714064433363 17240 0ustar00vojvoj000000000000Catmandu-SRU-0.430/tuse strict; use warnings; use Test::More; use Test::Exception; use Catmandu::Importer::SRU; use Catmandu::Importer::SRU::Parser::marcxml; use lib 't/lib'; use MockHTTPClient; my $pkg; BEGIN { $pkg = 'Catmandu::Importer::SRU'; use_ok $pkg; } require_ok $pkg; my %options = ( base => 'http://example.org/', query => 'sru_oai_dc.xml', http_client => MockHTTPClient->new, parser => 'struct', ); my $rec1 = [ 'oai_dc:dc', { 'xmlns:dc' => 'http://purl.org/dc/elements/1.1/', 'xmlns:oai_dc' => 'http://www.openarchives.org/OAI/2.0/oai_dc/' }, [ ['dc:title', {}, ['Sample Title']], ['dc:contributor', {}, ['Alice']], ['dc:contributor', {}, ['Bob']], [ 'dc:date', {'xmlns:srw_dc' => 'info:srw/schema/1/dc-schema'}, ['2013'] ] ] ]; my $rec2 = [ 'oai_dc:dc', { 'xmlns:dc' => 'http://purl.org/dc/elements/1.1/', 'xmlns:oai_dc' => 'http://www.openarchives.org/OAI/2.0/oai_dc/' }, [['dc:title', {}, ['Another Title']]] ]; my $importer = Catmandu::Importer::SRU->new(%options); my $rec = $importer->next; is_deeply $rec, $rec1, 'first'; $rec = $importer->next; is_deeply $rec, $rec2, 'second'; my $reader = XML::Struct::Reader->new(ns => 'strip', attributes => 0); $options{parser} = sub { $reader->readDocument( XML::LibXML::Reader->new(string => $_[0]->{recordData}->toString)); }; like $importer->url, qr{http://example\.org/\?version=}, 'url'; $options{base} = "http://example.org/?foo=bar"; $importer = Catmandu::Importer::SRU->new(%options); like $importer->url, qr{http://example\.org/\?foo=bar&version=}, 'base url with parameters'; $importer->next; $rec = $importer->next; my $expected = [dc => [['title' => ['Another Title']]]]; is_deeply $rec, $expected, 'reader options'; done_testing; Catmandu-Fix-search_sru.t100644001750001750 262714064433363 17644 0ustar00vojvoj000000000000Catmandu-SRU-0.430/tuse strict; use warnings; use Test::More; use Test::Exception; use Test::HTTP::LocalServer; my $pkg; BEGIN { $pkg = 'Catmandu::Fix::search_sru'; use_ok $pkg; $ENV{'http_proxy'} = ''; $ENV{'HTTP_PROXY'} = ''; $ENV{'HTTPS_PROXY'} = ''; } require_ok $pkg; { my $server = Test::HTTP::LocalServer->spawn(file => 't/files/sru_oai_dc.xml'); my $url = $server->url; my $search = $pkg->new('key', $url)->fix({key => 'value'}); ok defined $search->{key}, 'default parser'; is scalar @{$search->{key}}, 2, 'got records'; $search = $pkg->new('nested.key', $url)->fix({nested => {key => 'value'}}); is scalar @{$search->{nested}->{key}}, 2, 'nested path'; $search = $pkg->new('key.*', $url)->fix({key => ['foo', 'bar']}); ok defined $search->{key}->[0]->[0], 'array path'; $server->stop; } { my $server = Test::HTTP::LocalServer->spawn(file => 't/files/21.xml'); my $url = $server->url; my $search = $pkg->new('key', $url, parser => 'marcxml')->fix({key => 'value'}); ok defined $search->{key}, 'marcxml parser'; $search = $pkg->new( 'key', $url, parser => 'marcxml', fixes => 'remove_field(record);' )->fix({key => 'value'}); is_deeply $search->{key}, [{_id => '011197684'}, {_id => '016305078'}, {_id => '01216822X'}], 'got fixed records'; $server->stop; } done_testing; MockHTTPClientMany.pm100644001750001750 51114064433363 17472 0ustar00vojvoj000000000000Catmandu-SRU-0.430/t/libpackage MockHTTPClientMany; #ABSTRACT: HTTP::Tiny mockup class to return XML data from files based on queries use Moo; sub get { my ($self, $url) = @_; $url =~ /startRecord=([^&]+)/; my $xml = do {local (@ARGV, $/) = "t/files/$1.xml"; <>}; {success => 1, status => 200, reason => 'OK', content => $xml,}; } 1; Importer000755001750001750 014064433363 16534 5ustar00vojvoj000000000000Catmandu-SRU-0.430/lib/CatmanduSRU.pm100644001750001750 2765614064433363 17743 0ustar00vojvoj000000000000Catmandu-SRU-0.430/lib/Catmandu/Importerpackage Catmandu::Importer::SRU; use Catmandu::Sane; use Catmandu::Importer::SRU::Parser; use Catmandu::Util qw(:is :check); use URI::Escape qw(uri_escape uri_escape_utf8); use Moo; use HTTP::Tiny; use Carp; use XML::LibXML; use XML::LibXML::XPathContext; use namespace::clean; our $VERSION = '0.430'; with 'Catmandu::Importer'; # required. has base => (is => 'ro', required => 1); has query => (is => 'ro', required => 1); has version => (is => 'ro', default => sub {'1.1'}); has operation => (is => 'ro', default => sub {'searchRetrieve'}); has recordSchema => (is => 'ro', default => sub {'dc'}); has userAgent => (is => 'ro', default => sub {'Mozilla/5.0'}); has http_client => ( is => 'ro', lazy => 1, builder => sub { HTTP::Tiny->new(agent => $_[0]->userAgent); } ); # optional. has sortKeys => (is => 'ro'); has parser => (is => 'rw', default => sub {'simple'}, coerce => \&_coerce_parser); has limit => (is => 'ro', isa => \&check_natural, lazy => 1, default => sub {10}); has total => (is => 'ro'); # internal stuff. has _currentRecordSet => (is => 'ro'); has _n => (is => 'ro', default => sub {0}); has _start => (is => 'ro', default => sub {1}); # Internal Methods. ------------------------------------------------------------ my $NS_SRW = "http://www.loc.gov/zing/srw/"; my $NS_SRW_DIAGNOSTIC = "http://www.loc.gov/zing/srw/diagnostic/"; sub _coerce_parser { my ($parser) = @_; return $parser if is_invocant($parser) or is_code_ref($parser); if (is_string($parser) && !is_number($parser)) { my $class = $parser =~ /^\+(.+)/ ? $1 : "Catmandu::Importer::SRU::Parser::$parser"; my $parser; eval {$parser = Catmandu::Util::require_package($class)->new;}; if ($@) { croak $@; } else { return $parser; } } return Catmandu::Importer::SRU::Parser->new; } # Internal: HTTP GET something. # # $url - the url. # # Returns the raw response object. sub _request { my ($self, $url) = @_; my $res = $self->http_client->get($url); die join(" ", grep defined, $res->{status}, $res->{reason}) unless $res->{success}; return $res; } # Internal: Converts XML to a perl hash. # # $in - the raw XML input. # # Returns a hash representation of the given XML. sub _hashify { my ($self, $in) = @_; my $parser = XML::LibXML->new(); my $doc = $parser->parse_string($in); my $root = $doc->documentElement; my @namespaces = $root->getNamespaces; my $xc = XML::LibXML::XPathContext->new($root); $xc->registerNs("srw", $NS_SRW); $xc->registerNs("d", $NS_SRW_DIAGNOSTIC); my $meta = {requestUrl => $self->url}; my $records = {}; for ($xc->findnodes('/srw:searchRetrieveResponse')) { for ($xc->findnodes('./srw:diagnostics/d:diagnostic', $_)) { my %diag = (uri => $xc->findvalue('./d:uri', $_)); $diag{message} = $_ for grep {$_ ne ''} ($xc->findvalue('./d:message', $_)); $diag{details} = $_ for grep {$_ ne ''} ($xc->findvalue('./d:details', $_)); push @{$meta->{diagnostics}}, \%diag; } for my $tag ( qw(version numberOfRecords resultSetId resultSetIdleTime nextRecordPosition) ) { for ($xc->findnodes("./srw:$tag", $_)) { $meta->{$tag} = $xc->findvalue(".", $_); } } for my $tag (qw(echoedSearchRetrieveRequest extraResponseData)) { for ($xc->findnodes("./srw:$tag", $_)) { $meta->{$tag} = {}; for ($xc->findnodes('./*', $_)) { if (defined $_->prefix) { $xc->registerNs($_->prefix, $_->namespaceURI()); } my $ns_uri = $_->namespaceURI; my $subTagName = is_string($ns_uri) && $ns_uri eq $NS_SRW ? $_->localname : $_->tagName; $meta->{$tag}->{$subTagName} = $xc->findvalue(".", $_); } } } } if ($xc->exists('/srw:searchRetrieveResponse/srw:records')) { $records->{record} = []; for ( $xc->findnodes( '/srw:searchRetrieveResponse/srw:records/srw:record') ) { my $recordSchema = $xc->findvalue('./srw:recordSchema', $_); my $recordPacking = $xc->findvalue('./srw:recordPacking', $_); my $recordData = $xc->find('./srw:recordData/*', $_)->pop(); my $recordPosition = $xc->findvalue('./srw:recordPosition', $_); # Copy all the root level namespaces to the record Element. for (@namespaces) { my $ns_prefix = $_->declaredPrefix; my $ns_uri = $_->declaredURI; # Skip the SRW namespaces unless ($ns_uri =~ m{$NS_SRW}) { $recordData->setNamespace($ns_uri, $ns_prefix, 0); } } push @{$records->{record}}, { recordSchema => $recordSchema, recordPacking => $recordPacking, recordData => $recordData, recordPosition => $recordPosition }; } } return {records => $records, meta => $meta}; } sub url { my ($self) = @_; my $limit = $self->limit; my $start = $self->_start; my $total = $self->total; if (is_natural($total) && ($start - 1 + $limit) > $total) { $limit = $total - ($start - 1); } # construct the url my $url = $self->base; $url .= ($url =~ /\?/ ? '&' : '?'); $url .= 'version=' . uri_escape($self->version); $url .= '&operation=' . uri_escape($self->operation); $url .= '&query=' . uri_escape_utf8($self->query); $url .= '&recordSchema=' . uri_escape($self->recordSchema); $url .= '&sortKeys=' . uri_escape_utf8($self->sortKeys) if $self->sortKeys; $url .= '&startRecord=' . uri_escape($start); $url .= '&maximumRecords=' . uri_escape($limit); return $url; } # Internal: gets the next set of results. # # Returns a array representation of the resultset. sub _nextRecordSet { my ($self, $quiet) = @_; # fetch the xml response and hashify it. my $res = $self->_request($self->url); my $xml = $res->{content}; my $hash = $self->_hashify($xml); $self->_emit_diagnostics($hash) unless $quiet; # get to the point. my $meta = $hash->{'meta'}; my $set = $hash->{'records'}->{'record'}; # return records and metareference to a array. {record => \@{$set}, meta => $meta}; } # Internal: gets the next record from our current resultset. # # Returns a hash representation of the next record. sub _nextRecord { my ($self) = @_; # fetch recordset if we don't have one yet. $self->{_currentRecordSet} = $self->_nextRecordSet unless $self->_currentRecordSet; # check for a exhaused recordset. if ($self->_n >= $self->limit) { $self->{_start} += $self->limit; my $total = $self->{_currentRecordSet}{meta}{numberOfRecords}; if (!defined $total || $self->{_start} <= $total) { $self->{_n} = 0; $self->{_currentRecordSet} = $self->_nextRecordSet; } } # return the next record or metadata. my $record = $self->{_currentRecordSet}->{record}->[$self->{_n}++]; if (defined $record) { if (is_code_ref($self->parser)) { $record = $self->parser->($record); } else { $record = $self->parser->parse($record); } } $record; } # Internal: emit warnings for diagnostics sub _emit_diagnostics { my ($self, $hash) = @_; for my $diag (@{$hash->{meta}{diagnostics} // []}) { warn join ' : ', grep {defined} map {$diag->{$_}} qw(uri message details); } } # Public Methods. -------------------------------------------------------------- sub generator { my ($self) = @_; if (ref $self->parser eq 'Catmandu::Importer::SRU::Parser::meta') { my $done; return sub { return if $done; $done = 1; $self->{_currentRecordSet} = $self->_nextRecordSet(1); $self->{_currentRecordSet}->{meta}; }; } return sub { $self->_nextRecord; }; } sub count { my ($self) = @_; my $url = $self->base . '?version=' . uri_escape($self->version) . '&operation=' . uri_escape($self->operation) . '&query=' . uri_escape_utf8($self->query) . '&recordSchema=' . uri_escape($self->recordSchema) . '&maximumRecords=0'; # fetch the xml response and hashify it. my $xml = $self->_request($url)->{content}; my $hash = $self->_hashify($xml); $self->_emit_diagnostics($hash); int($hash->{meta}->{numberOfRecords}); } 1; __END__ =head1 NAME Catmandu::Importer::SRU - Package that imports SRU data =head1 SYNOPSIS use Catmandu::Importer::SRU; my %attrs = ( base => 'http://www.unicat.be/sru', query => '(isbn=0855275103 or isbn=3110035170 or isbn=9010017362 or isbn=9014026188)', recordSchema => 'marcxml', parser => 'marcxml' ); my $importer = Catmandu::Importer::SRU->new(%attrs); my $count = $importer->each(sub { my $schema = $record->{recordSchema}; my $packing = $record->{recordPacking}; my $position = $record->{recordPosition}; my $data = $record->{recordData}; # ... }); # Using Catmandu::Importer::SRU::Package::marcxml, included in this release my $importer = Catmandu::Importer::SRU->new( base => 'http://www.unicat.be/sru', query => '(isbn=0855275103 or isbn=3110035170 or isbn=9010017362 or isbn=9014026188)', recordSchema => 'marcxml' , parser => 'marcxml' , ); # Using a homemade parser my $importer = Catmandu::Importer::SRU->new( base => 'http://www.unicat.be/sru', query => '(isbn=0855275103 or isbn=3110035170 or isbn=9010017362 or isbn=9014026188)', recordSchema => 'marcxml' , parser => MyParser->new , # or parser => '+MyParser' ); =head1 DESCRIPTION This L imports records via SRU. SRU diagnostics are emitted as warnings except for parser set to C. =head1 CONFIGURATION =over =item base Base URL of the SRU server (required) =item query CQL query (required) =item limit Number of records to fetch in one batch, set to C<10> by default. This is translated to SRU request parameter C. Records are fetched in multiple batches of this size or less. =item total Total number of records this importer may return. Not set by default =item recordSchema Set to C by default =item sortkeys Optional sorting =item operation Set to C by default =item version Set to C<1.1> by default =item userAgent HTTP user agent, set to C by default. =item http_client Instance of L or compatible class to fetch URLs with. =item parser Controls how records are parsed before importing. The following options are possible: =over 2 =item Instance of a Perl package that implements a C subroutine. See the default value C for an example. =item Name of a Perl package that implements a C subroutine. The name must be prepended by C<+> or it prefixed with C. For instance C will create a C. =item Function reference that gets passed the unparsed record. =back =back =head1 METHODS All methods of L and by this L are inherited. In addition the following methods are provided: =head2 url Return the current SRU request URL (useful for debugging). =head1 SEE ALSO L, L, L =cut marcxml_ns_prefix.xml100644001750001750 7213514064433363 20430 0ustar00vojvoj000000000000Catmandu-SRU-0.430/t/files 1.1 79446 xml 00000ndd a2200000 u 4500 004641415 DE-633 20161205081635.0 1 1 1 [without title]. F-4 V bBEA 3/4 ,8GAG/4.G8DEC/4D8- E|b Wer nie sein Brot mit Tränen aß 20042863 pe DE-633 ger Zelter, Carl Friedrich 1758-1832 98629 Wer nie sein Brot mit Tränen aß V E|b 3917680 [without title] score: 1p. [p. 3] 34 x 21 cm 01 Einsystemige Skizze von Zelters Hand mit Blei auf den Text "Wer nie sein Brot mit Tränen aß". [letters in circle, countermark letters (not to identify)] 01 Autograph manuscript 01 B 1 B Lieder 25227 Goethe, Johann Wolfgang von 1749-1832 Ascertained 173930 lyr 464141752 D-B Mus.ms.autogr. Zelter, K. F. 17 (3) Staatsbibliothek zu Berlin - Preußischer Kulturbesitz, Musikabteilung 30000655 1 xml 00000ndd a2200000 u 4500 004641416 DE-633 20161205081635.0 1 1 1 Andantino. G-2 V bBEA 2/4 '{6CE}/8GGG''C/'GGG''C/'nBG''C'C/ c Es war ein Kind das wollte nie 20042865 pe DE-633 ger Zelter, Carl Friedrich 1758-1832 98629 Die wackelnde Glocke V, pf c 3917682 [caption title, p. 4:] Die wackelnde Glocke [right:] B. 5. Januar 1814. 1814 01 score: 1p. [p. 4] 34 x 21 cm 01 [letters in circle, countermark letters (not to identify)] 01 Autograph manuscript 01 V 1 pf 1 V, pf Lieder 25227 Goethe, Johann Wolfgang von 1749-1832 Ascertained 173930 lyr Es war ein Kind das wollte nie RISM 3917681 464141752 D-B Mus.ms.autogr. Zelter, K. F. 17 (4) Staatsbibliothek zu Berlin - Preußischer Kulturbesitz, Musikabteilung 30000655 2 xml 00000ndd a2200000 u 4500 004641417 DE-633 20161205081635.0 1 1 1 [without title]. C-4 Coro T bBEA 3/4 ,8GA/4.B8B'C,A/4B4- c Was verklärt im Sturmes Drang 20042867 pe DE-633 ger Zelter, Carl Friedrich 1758-1832 98629 Was verklärt im Sturmes Drang coro c 3917677 [without title] 1815 ("B 30 8br | 1815.") 01 score: 1p. [p. 5] 37 x 22 cm 01 [not to identify] 01 Autograph manuscript 01 Coro S 1 Coro A 1 Coro T 2 Coro B 1 Coro S, Coro A, Coro T (2), Coro B Partsongs 25460 464141752 D-B Mus.ms.autogr. Zelter, K. F. 17 (5) Staatsbibliothek zu Berlin - Preußischer Kulturbesitz, Musikabteilung 30000655 3 xml 00000ndd a2200000 u 4500 004641418 DE-633 20161205081636.0 1 1 1 Munter und würdig. C-4 Coro T 3/4 , 4E/GEE/GEG/4.F8G4F/ 4E4- C Ihr mystischen Zahlen Drei, Sieben und Neun 20042877 pe DE-633 ger Zelter, Carl Friedrich 1758-1832 98629 Patriotisches Rheinweinlied der Elfer coro maschile C 3917679 [caption title, p. 6:] [with pencil: "No 10."] Rheinweinlied 1815 ("Berlin d 2 November | 1815") 01 score: 2p. [p. 6-7] 37 x 22 cm 01 p. 7 Strophen 2-7 von der Hand Zelters, darunter die Datierung. [not to identify] 01 Autograph manuscript 01 Coro T 2 Coro B 2 Coro T (2), Coro B (2) Partsongs 25460 Tismar, G. 20002373 lyr Ihr mystischen Zahlen Drei, Sieben und Neun RISM 3917678 464141752 D-B Mus.ms.autogr. Zelter, K. F. 17 (6) Staatsbibliothek zu Berlin - Preußischer Kulturbesitz, Musikabteilung 30000655 4 xml 00000ndd a2200000 u 4500 046414174 DE-633 20161205081643.0 1 1 1 Munter und gesanglich. C-4 T xFC 3/4 ,8.F6G4AA/8.B6A2G/'8.D6C4DE/ D Lauriger horatius quam dixit verum 20042861 pe DE-633 lat Zelter, Carl Friedrich 1758-1832 98629 Lauriger Horatius V(3), coro maschile D 3917684 [caption title, p. 2:] 15 febr 14. 1814 01 score: 2p. [p. 2-3] 34 x 21 cm 01 Vor dem ersten System die Namen der solistisch singenden Männerstimmen: "Langermann | Ritschel | Hartung". Unter der letzten Akkolade eine Skizze von Zelters Hand mit Blei auf den Text "Wer nie sein Brot mit Tränen aß". [letters in circle, countermark letters (not to identify)] 01 Autograph manuscript 01 T 2 B 1 Coro T 2 Coro B 1 T (2), B, Coro T (2), Coro B Partsongs 25460 Hoffmann von Fallersleben, August Heinrich 1798-1874 Ascertained 95806 lyr Langermann, Johann Gottfried 1768-1832 72725 oth 464141752 D-B Mus.ms.autogr. Zelter, K. F. 17 (2) Staatsbibliothek zu Berlin - Preußischer Kulturbesitz, Musikabteilung 30000655 5 1.1 bath.possessingInstitution=D-B 5 xml Fix000755001750001750 014064433363 15461 5ustar00vojvoj000000000000Catmandu-SRU-0.430/lib/Catmandusearch_sru.pm100644001750001750 545014064433363 20321 0ustar00vojvoj000000000000Catmandu-SRU-0.430/lib/Catmandu/Fixpackage Catmandu::Fix::search_sru; our $VERSION = '0.430'; use Moo; use namespace::clean; use Catmandu; use Catmandu::Util::Path qw(as_path); use Catmandu::Fix::Has; with 'Catmandu::Fix::Builder'; has path => (fix_arg => 1); has base => (fix_arg => 1); has fixes => (fix_opt => 1); has limit => (fix_opt => 1, default => sub {10}); has parser => (fix_opt => 1, default => sub {'simple'}); has recordschema => (fix_opt => 1, default => sub {'oai_dc'}); has total => (fix_opt => 1); sub _build_fixer { my ($self) = @_; as_path($self->path)->updater( if_string => sub { my $query = shift; if (my $response = $self->sru_request($query)) { return $response if defined $response->[0]; } return $query; } ); } sub sru_request { my ($self, $query) = @_; my $importer = Catmandu->importer( 'SRU', base => $self->base, limit => $self->limit, parser => $self->parser, query => $query, recordSchema => $self->recordschema, total => $self->total, ); if (my $fixes = $self->fixes) { $importer = Catmandu->fixer($fixes)->fix($importer); } $importer->to_array; } 1; __END__ =head1 NAME Catmandu::Fix::search_sru - use the value as SRU query, and replace it by SRU search result =head1 SYNTAX search_sru( , ) search_sru( , , [recordschema:], [parser:], [limit:], [total:], [fixes:] ) # From the command line $ echo '{"issn":"1940-5758"}' | catmandu convert JSON to YAML --fix 'search_sru(issn,"http://services.dnb.de/sru/zdb")' $ echo '{"issn":"dnb.iss = 1164-5563"}' | catmandu convert JSON to YAML --fix 'search_sru(issn, "http://services.dnb.de/sru/zdb", recordschema:MARC21-xml, parser:marcxml, fixes:"marc_map(245a,dc_title);remove_field(record)")' =head1 PARAMETERS =head2 path The location in the perl hash where the query is stored. See L for more information about paths. =head2 url Base URL of the SRU server. =head2 recordschema SRU record schema. Use SRU Explain operation to look up available schema. Default is 'oai_dc'. =head2 parser Controls how records are parsed before importing. Available parsers: 'marcxml', 'meta', 'mods', 'picaxml', 'raw', 'simple', 'struct'. Default is 'simple'. =head2 limit Maximum number of records to fetch per request. Default is 10. =head2 total Maximum number of records to fetch from a result set. =head2 fixes L to transform the parsed records of the SRU response. =head1 SEE ALSO L L =head1 AUTHOR Johann Rolschewski C<< >> =cut Catmandu-Importer-SRU-Parser.t100644001750001750 26414064433363 20437 0ustar00vojvoj000000000000Catmandu-SRU-0.430/tuse strict; use warnings; use Test::More; use Test::Exception; my $pkg; BEGIN { $pkg = 'Catmandu::Importer::SRU::Parser'; use_ok $pkg; } require_ok $pkg; done_testing; SRU000755001750001750 014064433363 17205 5ustar00vojvoj000000000000Catmandu-SRU-0.430/lib/Catmandu/ImporterParser.pm100644001750001750 214314064433363 21137 0ustar00vojvoj000000000000Catmandu-SRU-0.430/lib/Catmandu/Importer/SRUpackage Catmandu::Importer::SRU::Parser; use Moo; use XML::LibXML::Simple qw(XMLin); our $VERSION = '0.430'; sub parse { my ($self, $record) = @_; return unless defined $record; # By default we use XML::LibXML::Simple to keep backwards compatible... my $xs = XML::LibXML::Simple->new(); $record->{recordData} = $xs->XMLin($record->{recordData}, KeepRoot => 1, NsStrip => 1); $record; } 1; __END__ =head1 NAME Catmandu::Importer::SRU::Parser - Package transforms SRU responses into Perl =head1 SYNOPSIS package MyParser; use Moo; sub parse { my ($self,$record) = @_; my $schema = $record->{recordSchema}; my $packing = $record->{recordPacking}; my $data = $record->{recordData}; ... do some magic... return $perl_hash; } =head1 DESCRIPTION L can optionally include a parser to transform the returned records from SRU requests. Any such parser needs to implement one instance method C which receives an SRU-record and returns a perl hash. =head1 AUTHOR Patrick Hochstenbach, C<< >> =cut Catmandu-Importer-SRU-Parser-raw.t100644001750001750 34014064433363 21221 0ustar00vojvoj000000000000Catmandu-SRU-0.430/tuse strict; use warnings; use Test::More; use Test::Exception; use Catmandu::Importer::SRU; use utf8; my $pkg; BEGIN { $pkg = 'Catmandu::Importer::SRU::Parser::raw'; use_ok $pkg; } require_ok $pkg; done_testing; Catmandu-Importer-SRU-Parser-meta.t100644001750001750 253614064433363 21407 0ustar00vojvoj000000000000Catmandu-SRU-0.430/tuse strict; use warnings; use Test::More; use Test::Exception; use Catmandu::Importer::SRU; use utf8; use lib 't/lib'; use MockHTTPClient; my $pkg; BEGIN { $pkg = 'Catmandu::Importer::SRU::Parser::meta'; use_ok $pkg; } require_ok $pkg; my $importer = Catmandu::Importer::SRU->new( base => 'http://example.org/', query => 'meta.xml', http_client => MockHTTPClient->new, parser => 'meta', ); is_deeply { version => '1.1', numberOfRecords => '23', resultSetId => '1', resultSetIdleTime => '5000', nextRecordPosition => '11', extraResponseData => {accountOf => 'Zeitschriftendatenbank (ZDB)', 'test:test' => 'test'}, diagnostics => [ { uri => 'info:srw/diagnostic/1/38', message => 'Whatever', details => '10', }, {uri => 'foo:bar',} ], echoedSearchRetrieveRequest => { query => 'tit=soil and biology', recordSchema => 'MARC21-xml', version => '1.1', xQuery => '' }, requestUrl => 'http://example.org/?version=1.1&operation=searchRetrieve&query=meta.xml&recordSchema=dc&startRecord=1&maximumRecords=10', }, $importer->next, 'SRU SearchRetrieve Response Parameters'; ok !$importer->next, 'it\'s only one record'; done_testing; Catmandu-Importer-SRU-Parser-mods.t100644001750001750 201514064433363 21413 0ustar00vojvoj000000000000Catmandu-SRU-0.430/tuse strict; use warnings; use Test::More; use Test::Exception; use Catmandu::Importer::SRU; use utf8; use lib 't/lib'; use MockHTTPClient; my $pkg; BEGIN { $pkg = 'Catmandu::Importer::SRU::Parser::mods'; use_ok $pkg; } require_ok $pkg; my %attrs = ( base => 'http://www.unicat.be/sru', query => 'mods.xml', recordSchema => 'mods', parser => 'mods', http_client => MockHTTPClient->new, ); my $importer = Catmandu::Importer::SRU->new(%attrs); my $records = $importer->to_array(); is scalar @{$records}, 5, 'mods has 5 records'; is $records->[0]->{_id}, 'http://kalliope-verbund.info/DE-611-BF-18449', 'mods has _id'; ok exists $records->[0]->{record}, 'mods has record'; is_deeply $records->[0]->{record}->{identifier}, [{_body => "http://kalliope-verbund.info/DE-611-BF-18449", type => "uri"} ], 'mods has record key'; is_deeply $records->[0]->{record}->{name}->[0]->{namePart}, [{_body => "Löwenstein, Hubertus zu (1906-1984)"}], 'check encoding'; done_testing; Parser000755001750001750 014064433363 20441 5ustar00vojvoj000000000000Catmandu-SRU-0.430/lib/Catmandu/Importer/SRUraw.pm100644001750001750 211514064433363 21727 0ustar00vojvoj000000000000Catmandu-SRU-0.430/lib/Catmandu/Importer/SRU/Parserpackage Catmandu::Importer::SRU::Parser::raw; use Moo; our $VERSION = '0.430'; sub parse { my ($self, $record) = @_; my $xml = $record->{recordData}->toString; $record->{recordData} = $xml; return $record; } 1; __END__ =head1 NAME Catmandu::Importer::SRU::Parser::raw - Package transforms SRU responses into a Perl hash =head1 SYNOPSIS my $importer = Catmandu::Importer::SRU->new( base => 'http://www.unicat.be/sru', query => '(isbn=0855275103 or isbn=3110035170 or isbn=9010017362 or isbn=9014026188)', recordSchema => 'marcxml', parser => 'raw', ); =head1 DESCRIPTION Transforms each SRU record into a Perl hash containing the following fields: =over =item recordSchema the L =item recordPacking the SRU format (can be 'string' or 'xml') =item recordPosition the result number =item recordData the unparsed record payload =back =head1 SEE ALSO L =head1 AUTHOR Patrick Hochstenbach, C<< >> =cut Catmandu-Importer-SRU-Parser-simple.t100644001750001750 131614064433363 21745 0ustar00vojvoj000000000000Catmandu-SRU-0.430/tuse strict; use warnings; use Test::More; use Test::Exception; use Catmandu::Importer::SRU; use utf8; use lib 't/lib'; use MockHTTPClient; my $pkg; BEGIN { $pkg = 'Catmandu::Importer::SRU::Parser::simple'; use_ok $pkg; } require_ok $pkg; my %options = ( base => 'http://example.org/', query => 'sru_oai_dc.xml', http_client => MockHTTPClient->new, parser => 'simple', ); ok my $importer = Catmandu::Importer::SRU->new(%options); ok my $record = $importer->first; is_deeply $record->{recordData}->{dc}->{contributor}, ['Alice', 'Bob']; # simple as default option delete $options{parser}; is_deeply(Catmandu::Importer::SRU->new(%options)->first, $record); done_testing; Catmandu-Importer-SRU-Parser-struct.t100644001750001750 34314064433363 21757 0ustar00vojvoj000000000000Catmandu-SRU-0.430/tuse strict; use warnings; use Test::More; use Test::Exception; use Catmandu::Importer::SRU; use utf8; my $pkg; BEGIN { $pkg = 'Catmandu::Importer::SRU::Parser::struct'; use_ok $pkg; } require_ok $pkg; done_testing; meta.pm100644001750001750 262614064433363 22073 0ustar00vojvoj000000000000Catmandu-SRU-0.430/lib/Catmandu/Importer/SRU/Parserpackage Catmandu::Importer::SRU::Parser::meta; use Moo; sub parse { } 1; __END__ =head1 NAME Catmandu::Importer::SRU::Parser::meta - Package transforms SRU responses metadata into a Perl hash =head1 SYNOPSIS my $importer = Catmandu::Importer::SRU->new( base => 'http://www.unicat.be/sru', query => 'tit=cinema', parser => 'meta', ); =head1 DESCRIPTION This L returns a single item with the L of a request. =over =item version SRU version of the response, e.g. C<1.1>. =item numberOfRecords Number of records matched by the query. If the query fails this will be C<0>. =item resultSetId Identifier for a result set that was created through the execution of the query. =item resultSetIdleTime Number of seconds after which the created result set will be deleted. =item nextRecordPosition Next position within the result set following the final returned record (unless this is the last part of the result set). =item diagnostics An array of diagnostics, each with C, C
(optional), and C (optional). =item extraResponseData Additional, profile specific information. =item echoedSearchRetrieveRequest The request parameters as hash of key-value pairs. =back In addition field C contains the full request URL. =cut mods.pm100644001750001750 217514064433363 22106 0ustar00vojvoj000000000000Catmandu-SRU-0.430/lib/Catmandu/Importer/SRU/Parserpackage Catmandu::Importer::SRU::Parser::mods; use Carp qw; use Catmandu::Importer::MODS; use Cpanel::JSON::XS; use Moo; our $VERSION = '0.430'; sub parse { my ($self, $record) = @_; my $xml = $record->{recordData}->toString(); my $importer = Catmandu::Importer::MODS->new(file => \$xml); my $mods = $importer->first; if (defined $mods) { my $id = $mods->get_identifier->{_body}; my $mods_record = Cpanel::JSON::XS->new->utf8->decode($mods->as_json()); return {_id => $id, record => $mods_record->{mods}}; } return; } 1; __END__ =head1 NAME Catmandu::Importer::SRU::Parser::mods - Package imports SRU responses with MODS records =head1 SYNOPSIS my $importer = Catmandu::Importer::SRU->new( base => 'http://www.unicat.be/sru', query => '(isbn=0855275103 or isbn=3110035170 or isbn=9010017362 or isbn=9014026188)', recordSchema => 'mods', parser => 'mods', ); =head1 DESCRIPTION Uses L to transform MODS records of the SRU response into hashes. =head1 AUTHOR Johann Rolschewski, C<< >> =cut Catmandu-Importer-SRU-Parser-marcxml.t100644001750001750 745314064433363 22127 0ustar00vojvoj000000000000Catmandu-SRU-0.430/tuse strict; use warnings; use Test::More; use Test::Exception; use Catmandu::Importer::SRU; use utf8; use lib 't/lib'; use MockHTTPClient; use MockHTTPClientMany; my $pkg; BEGIN { $pkg = 'Catmandu::Importer::SRU::Parser::marcxml'; use_ok $pkg; } require_ok $pkg; my %attrs = ( base => 'http://www.unicat.be/sru', query => 'marcxml.xml', recordSchema => 'marcxml', http_client => MockHTTPClient->new, ); my $importer = Catmandu::Importer::SRU->new(%attrs); isa_ok($importer, 'Catmandu::Importer::SRU'); can_ok($importer, 'each'); is($importer->url, 'http://www.unicat.be/sru?version=1.1&operation=searchRetrieve&query=marcxml.xml&recordSchema=marcxml&startRecord=1&maximumRecords=10' ); my $marcparser = Catmandu::Importer::SRU::Parser::marcxml->new; my @parsers = ( 'marcxml', '+Catmandu::Importer::SRU::Parser::marcxml', $marcparser, sub {$marcparser->parse($_[0]);} ); foreach my $parser (@parsers) { my $importer = Catmandu::Importer::SRU->new(%attrs, parser => $parser); ok(my $obj = $importer->first, 'parse marc'); ok(exists $obj->{_id}, 'marc has _id'); ok(exists $obj->{record}, 'marc as record'); } note("Testing many response"); { my %attrs = ( base => 'http://www.unicat.be/sru', query => 'test', recordSchema => 'marcxml', http_client => MockHTTPClientMany->new, ); my $importer = Catmandu::Importer::SRU->new(%attrs); isa_ok($importer, 'Catmandu::Importer::SRU'); can_ok($importer, 'each'); ok(scalar @{$importer->to_array()} == 23, 'get all records'); } note("Testing namespace"); { my %attrs = ( base => 'http://www.unicat.be/sru', query => 'marcxml_ns.xml', recordSchema => 'marcxml', parser => 'marcxml', http_client => MockHTTPClient->new, ); my $importer = Catmandu::Importer::SRU->new(%attrs); my $records = $importer->to_array(); for my $record (@{$records}) { ok(exists $record->{_id}, 'marc has _id'); ok(exists $record->{record}, 'marc has record'); is_deeply( $record->{record}->[0], ['LDR', ' ', ' ', '_', '00785nas a2200277 c 4500'], 'marc has leader' ); is_deeply( $record->{record}->[1], ['001', ' ', ' ', '_', '987874829'], 'marc has controlfield' ); is_deeply( $record->{record}->[-1], [ '245', '1', '0', 'a', 'Code4Lib journal', 'h', 'Elektronische Ressource', 'b', 'C4LJ' ], 'marc has datafield' ); } } note("Testing namespace prefix"); { my %attrs = ( base => 'http://www.unicat.be/sru', query => 'marcxml_ns_prefix.xml', recordSchema => 'marcxml', parser => 'marcxml', http_client => MockHTTPClient->new, ); my $importer = Catmandu::Importer::SRU->new(%attrs); my $records = $importer->to_array(); is scalar @{$records}, 5, 'marc has 5 records'; ok exists $records->[0]->{_id}, 'marc has _id'; ok exists $records->[0]->{record}, 'marc has record'; is_deeply $records->[0]->{record}->[0], ['LDR', ' ', ' ', '_', '00000ndd a2200000 u 4500'], 'marc has leader'; is_deeply $records->[0]->{record}->[1], ['001', ' ', ' ', '_', '004641415'], 'marc has controlfield'; is_deeply $records->[0]->{record}->[-1], [ '852', ' ', ' ', 'a', 'D-B', 'c', 'Mus.ms.autogr. Zelter, K. F. 17 (3)', 'e', 'Staatsbibliothek zu Berlin - Preußischer Kulturbesitz, Musikabteilung', 'x', '30000655' ], 'marc has datafield'; } done_testing; simple.pm100644001750001750 163514064433363 22435 0ustar00vojvoj000000000000Catmandu-SRU-0.430/lib/Catmandu/Importer/SRU/Parserpackage Catmandu::Importer::SRU::Parser::simple; use strict; use XML::LibXML::Simple (); use Moo; our $VERSION = '0.430'; has xmlsimple => (is => 'ro', default => sub {XML::LibXML::Simple->new}); sub parse { my ($self, $record) = @_; $record->{recordData} = $self->xmlsimple->XMLin( $record->{recordData}->toString, KeepRoot => 1, NsStrip => 1 ); $record; } 1; __END__ =head1 NAME Catmandu::Importer::SRU::Parser::simple - parse SRU records as simple XML =head1 SYNOPSIS This default record parser of L transforms the SRU response records field C with L. Namespaces are stripped by default. =head1 SEE ALSO Use L for order-preserving or mixed-content XML. =head1 AUTHOR Patrick Hochstenbach, C<< >> Jakob Voss C<< voss@gbv.de >> =cut struct.pm100644001750001750 247414064433363 22472 0ustar00vojvoj000000000000Catmandu-SRU-0.430/lib/Catmandu/Importer/SRU/Parserpackage Catmandu::Importer::SRU::Parser::struct; use strict; use Moo; use XML::Struct (); our $VERSION = '0.430'; has _reader => ( is => 'ro', lazy => 1, builder => sub { XML::Struct::Reader->new(); } ); sub parse { my ($self, $record) = @_; my $stream = XML::LibXML::Reader->new( string => $record->{recordData}->toString(0, 0)); $self->_reader->readDocument($stream); } 1; __END__ =head1 NAME Catmandu::Importer::SRU::Parser::struct - transform SRU responses into structured XML records =head1 SYNOPSIS my $importer = Catmandu::Importer::SRU->new( base => $base, query => $query, parser => 'struct' ); =head1 DESCRIPTION Each SRU response record will be transformed into order-preserving, structured XML as defined by L. =head1 CONFIGURATION Options of L are not supported. As workaround wrap the reader as following, if needed: my $reader = XML::Struct::Reader->new( %options ); my $importer = Catmandu::Importer::SRU->new( base => $base, query => $query, parser => sub { $reader->readDocument( XML::LibXML::Reader->new( string => $_[0]->{recordData} ) ); }, ); =head1 AUTHOR Jakob Voss C<< voss@gbv.de >> =cut marcxml.pm100644001750001750 351114064433363 22602 0ustar00vojvoj000000000000Catmandu-SRU-0.430/lib/Catmandu/Importer/SRU/Parserpackage Catmandu::Importer::SRU::Parser::marcxml; use Moo; use XML::LibXML; our $VERSION = '0.430'; sub parse { my ($self, $record) = @_; my $marc = $record->{recordData}; my @out; my $id = undef; for my $field ($marc->getChildrenByLocalName('*')) { my $name = $field->localname; my $value = $field->textContent // ''; if ($name eq 'leader') { push @out, ['LDR', ' ', ' ', '_', $value]; } elsif ($name eq 'controlfield') { my $tag = $field->getAttribute('tag'); push @out, [$tag, ' ', ' ', '_', $value]; $id = $value if $tag eq '001'; } elsif ($name eq 'datafield') { my $tag = $field->getAttribute('tag'); my $ind1 = $field->getAttribute('ind1') // ' '; my $ind2 = $field->getAttribute('ind2') // ' '; my @subfield = (); for my $subfield ($field->getChildrenByLocalName('subfield')) { my $code = $subfield->getAttribute('code'); my $value = $subfield->textContent; push @subfield, $code, $value; } push @out, [$tag, $ind1, $ind2, @subfield]; } } return {_id => $id, record => \@out}; } 1; __END__ =head1 NAME Catmandu::Importer::SRU::Parser::marcxml - Package transforms SRU responses into Catmandu MARC =head1 SYNOPSIS my $importer = Catmandu::Importer::SRU->new( base => 'http://www.unicat.be/sru', query => '(isbn=0855275103 or isbn=3110035170 or isbn=9010017362 or isbn=9014026188)', recordSchema => 'marcxml', parser => 'marcxml', ); =head1 DESCRIPTION Each MARCXML response will be transformed into an format as defined by L =head1 AUTHOR Patrick Hochstenbach, C<< >> =cut