fix for converting MAB XML to JSON, add optional trim
This commit is contained in:
parent
7fe42850dc
commit
bacf451818
11 changed files with 1373 additions and 880 deletions
|
@ -1,6 +1,6 @@
|
|||
group = org.xbib
|
||||
name = marc
|
||||
version = 1.0.18
|
||||
version = 1.0.19
|
||||
|
||||
xbib-content.version = 1.0.7
|
||||
xbib-bibliographic-character-sets.version = 1.0.0
|
||||
|
|
|
@ -184,20 +184,25 @@ public class MarcRecord extends LinkedHashMap<String, Object> {
|
|||
indicators.put(indicator, new LinkedHashMap<>());
|
||||
}
|
||||
Map<String, Object> subfields = (Map<String, Object>) indicators.get(indicator);
|
||||
for (MarcField.Subfield subfield : marcField.getSubfields()) {
|
||||
String code = subfield.getId();
|
||||
code = code.replace(' ', '_');
|
||||
Object subfieldValue = subfields.get(code);
|
||||
if (subfieldValue instanceof List) {
|
||||
List<String> list = (List<String>) subfieldValue;
|
||||
list.add(subfield.getValue());
|
||||
} else if (subfieldValue instanceof String) {
|
||||
List<String> list = new LinkedList<>();
|
||||
list.add((String) subfieldValue);
|
||||
list.add(subfield.getValue());
|
||||
subfields.put(code, list);
|
||||
} else {
|
||||
subfields.put(code, subfield.getValue());
|
||||
// we may have values instead of subfields, even on non-control fields. See MAB
|
||||
if (marcField.getValue() != null && !marcField.getValue().isEmpty()) {
|
||||
repeatMap.put(Integer.toString(repeat), marcField.getValue());
|
||||
} else {
|
||||
for (MarcField.Subfield subfield : marcField.getSubfields()) {
|
||||
String code = subfield.getId();
|
||||
code = code.replace(' ', '_');
|
||||
Object subfieldValue = subfields.get(code);
|
||||
if (subfieldValue instanceof List) {
|
||||
List<String> list = (List<String>) subfieldValue;
|
||||
list.add(subfield.getValue());
|
||||
} else if (subfieldValue instanceof String) {
|
||||
List<String> list = new LinkedList<>();
|
||||
list.add((String) subfieldValue);
|
||||
list.add(subfield.getValue());
|
||||
subfields.put(code, list);
|
||||
} else {
|
||||
subfields.put(code, subfield.getValue());
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
|
|
|
@ -34,6 +34,10 @@ public class MabXMLContentHandler extends MarcContentHandler implements MabXMLCo
|
|||
|
||||
private Set<String> validNamespaces = new HashSet<>(Collections.singletonList(MABXML_NAMESPACE));
|
||||
|
||||
public MabXMLContentHandler() {
|
||||
setTrim(true);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String getDefaultFormat() {
|
||||
return "MabXML";
|
||||
|
@ -122,7 +126,8 @@ public class MabXMLContentHandler extends MarcContentHandler implements MabXMLCo
|
|||
break;
|
||||
}
|
||||
case FELD: {
|
||||
MarcField marcField = stack.pop().value(content.toString()).build();
|
||||
String s = content.toString();
|
||||
MarcField marcField = stack.pop().value(trim ? s.trim() : s).build();
|
||||
if (marcValueTransformers != null) {
|
||||
marcField = marcValueTransformers.transformValue(marcField);
|
||||
}
|
||||
|
@ -130,7 +135,8 @@ public class MabXMLContentHandler extends MarcContentHandler implements MabXMLCo
|
|||
break;
|
||||
}
|
||||
case UF: {
|
||||
stack.peek().subfieldValue(content.toString());
|
||||
String s = content.toString();
|
||||
stack.peek().subfieldValue(trim ? s.trim() : s);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
|
|
|
@ -73,6 +73,8 @@ public class MarcContentHandler
|
|||
|
||||
protected MarcValueTransformers marcValueTransformers;
|
||||
|
||||
protected boolean trim = false;
|
||||
|
||||
private MarcFieldTransformers marcFieldTransformers;
|
||||
|
||||
private boolean isCollection = false;
|
||||
|
@ -136,6 +138,11 @@ public class MarcContentHandler
|
|||
return this;
|
||||
}
|
||||
|
||||
public MarcContentHandler setTrim(boolean trim) {
|
||||
this.trim = trim;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void beginCollection() {
|
||||
// early setup of MARC listener, even before beginRecord(format, type), it works only
|
||||
|
@ -357,7 +364,8 @@ public class MarcContentHandler
|
|||
break;
|
||||
}
|
||||
case SUBFIELD: {
|
||||
stack.peek().subfieldValue(content.toString());
|
||||
String s = content.toString();
|
||||
stack.peek().subfieldValue(trim ? s.trim() : s);
|
||||
break;
|
||||
}
|
||||
default: {
|
||||
|
|
|
@ -65,6 +65,7 @@ public class MarcRoundTripTest {
|
|||
.writeCollection();
|
||||
}
|
||||
// compare both to expected file structure
|
||||
|
||||
assertThat(file, CompareMatcher.isIdenticalTo(getClass().getResource(s + ".xml").openStream()));
|
||||
assertThat(file2, CompareMatcher.isIdenticalTo(getClass().getResource(s + ".xml").openStream()));
|
||||
}
|
||||
|
|
77
src/test/java/org/xbib/marc/dialects/mab/MabXmlTest.java
Normal file
77
src/test/java/org/xbib/marc/dialects/mab/MabXmlTest.java
Normal file
|
@ -0,0 +1,77 @@
|
|||
package org.xbib.marc.dialects.mab;
|
||||
|
||||
import static org.junit.Assert.assertThat;
|
||||
import static org.xbib.helper.StreamMatcher.assertStream;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.xbib.marc.Marc;
|
||||
import org.xbib.marc.dialects.mab.xml.MabXMLContentHandler;
|
||||
import org.xbib.marc.json.MarcJsonWriter;
|
||||
import org.xbib.marc.xml.MarcContentHandler;
|
||||
import org.xbib.marc.xml.MarcXchangeWriter;
|
||||
import org.xml.sax.InputSource;
|
||||
import org.xmlunit.matchers.CompareMatcher;
|
||||
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.File;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.InputStream;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public class MabXmlTest {
|
||||
|
||||
@Test
|
||||
public void testMabXml2MarcXchangeExample() throws Exception {
|
||||
String s = "mabxml-example.xml";
|
||||
File file = File.createTempFile(s + ".", ".xml");
|
||||
file.deleteOnExit();
|
||||
FileOutputStream out = new FileOutputStream(file);
|
||||
try (InputStream in = getClass().getResourceAsStream(s);
|
||||
MarcXchangeWriter writer = new MarcXchangeWriter(out, true)
|
||||
.setFormat("MARC21")
|
||||
.setType("Bibliographic")) {
|
||||
writer.startDocument();
|
||||
writer.beginCollection();
|
||||
Marc.builder()
|
||||
.setInputStream(in)
|
||||
.setCharset(StandardCharsets.UTF_8)
|
||||
.setContentHandler(new MabXMLContentHandler()
|
||||
.addNamespace("http://www.ddb.de/professionell/mabxml/mabxml-1.xsd")
|
||||
.setFormat("MabXML")
|
||||
.setType("h")
|
||||
.setMarcListener(writer))
|
||||
.build().xmlReader().parse(new InputSource(in));
|
||||
writer.endCollection();
|
||||
writer.endDocument();
|
||||
}
|
||||
assertThat(file, CompareMatcher.isIdenticalTo(getClass().getResource(s + ".xml").openStream()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testMabXml2JsonExample() throws Exception {
|
||||
String s = "mabxml-example.xml";
|
||||
ByteArrayOutputStream out = new ByteArrayOutputStream();
|
||||
try (InputStream in = getClass().getResourceAsStream(s);
|
||||
MarcJsonWriter writer = new MarcJsonWriter(out,
|
||||
10, MarcJsonWriter.Style.ELASTICSEARCH_BULK)
|
||||
.setIndex("testindex", "testtype")) {
|
||||
MarcContentHandler contentHandler = new MabXMLContentHandler()
|
||||
.addNamespace("http://www.ddb.de/professionell/mabxml/mabxml-1.xsd")
|
||||
.setFormat("MabXML")
|
||||
.setType("h")
|
||||
.setMarcListener(writer);
|
||||
Marc marc = Marc.builder()
|
||||
.setInputStream(in)
|
||||
.setCharset(StandardCharsets.UTF_8)
|
||||
.setContentHandler(contentHandler)
|
||||
.build();
|
||||
marc.xmlReader().parse(new InputSource(in));
|
||||
}
|
||||
assertStream(s, getClass().getResource(s + ".jsonl").openStream(),
|
||||
new ByteArrayInputStream(out.toByteArray()));
|
||||
}
|
||||
}
|
|
@ -22,6 +22,7 @@ import org.xbib.marc.Marc;
|
|||
import org.xbib.marc.MarcXchangeConstants;
|
||||
import org.xmlunit.matchers.CompareMatcher;
|
||||
|
||||
import java.io.FileWriter;
|
||||
import java.io.InputStream;
|
||||
import java.io.StringWriter;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
|
@ -42,6 +43,7 @@ public class MarcXMLTest extends Assert {
|
|||
String s = "zdb-oai-marc.xml";
|
||||
InputStream in = getClass().getResourceAsStream(s);
|
||||
StringWriter sw = new StringWriter();
|
||||
//FileWriter sw = new FileWriter(s + "-marcxchange.xml");
|
||||
try (MarcXchangeWriter writer = new MarcXchangeWriter(sw, true)
|
||||
.setFormat("MARC21")
|
||||
.setType("Bibliographic")) {
|
||||
|
@ -54,6 +56,7 @@ public class MarcXMLTest extends Assert {
|
|||
.setFormat("MarcXML")
|
||||
.setType("Bibliographic")
|
||||
.addNamespace("http://www.loc.gov/MARC21/slim")
|
||||
.setTrim(true)
|
||||
.setMarcListener(writer))
|
||||
.build()
|
||||
.xmlReader().parse();
|
||||
|
|
137
src/test/resources/org/xbib/marc/dialects/mab/mabxml-example.xml
Normal file
137
src/test/resources/org/xbib/marc/dialects/mab/mabxml-example.xml
Normal file
|
@ -0,0 +1,137 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<datei xmlns="http://www.ddb.de/professionell/mabxml/mabxml-1.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.ddb.de/professionell/mabxml/mabxml-1.xsd http://files.d-nb.de/standards/formate/mabxml-1.xsd">
|
||||
<datensatz mabVersion="M2.0" status="n" typ="h" xmlns="http://www.ddb.de/professionell/mabxml/mabxml-1.xsd">
|
||||
<feld ind=" " nr="001">(FR-PaOEC)6bee255b-ar</feld>
|
||||
<feld ind="a" nr="002">20171208</feld>
|
||||
<feld ind=" " nr="004">20171208</feld>
|
||||
<feld ind=" " nr="020">(FR-PaOEC)6bee255b-ar<61>OECD</feld>
|
||||
<feld ind=" " nr="025">6bee255b-ar</feld>
|
||||
<feld ind=" " nr="030">a|zuc||||||37</feld>
|
||||
<feld ind="b" nr="037">ara</feld>
|
||||
<feld ind=" " nr="050">||||||||g|||||</feld>
|
||||
<feld ind=" " nr="051">m|||||||</feld>
|
||||
<feld ind=" " nr="070">OECD</feld>
|
||||
<feld ind="a" nr="070">HBZ</feld>
|
||||
<feld ind="e" nr="078">
|
||||
<uf code="a">ZDB-164-UNL</uf>
|
||||
<uf code="a">ZDB-164-UNL-ebook</uf>
|
||||
</feld>
|
||||
<feld ind="b" nr="200">OHCHR</feld>
|
||||
<feld ind=" " nr="331"/>
|
||||
<feld ind=" " nr="334">Elektronische Ressource</feld>
|
||||
<feld ind=" " nr="359">OHCHR</feld>
|
||||
<feld ind=" " nr="410">New York</feld>
|
||||
<feld ind=" " nr="412">United Nations</feld>
|
||||
<feld ind="a" nr="425">2017</feld>
|
||||
<feld ind=" " nr="433">75 p.</feld>
|
||||
<feld ind="a" nr="540">ISBN 9789210579391</feld>
|
||||
<feld ind="a" nr="552">10.18356/6bee255b-ar</feld>
|
||||
<feld ind="a" nr="652">
|
||||
<uf code="a">Online-Ressource</uf>
|
||||
</feld>
|
||||
<feld ind="e" nr="655">
|
||||
<uf code="u">http://dx.doi.org/10.18356/6bee255b-ar</uf>
|
||||
<uf code="x">Resolving-System</uf>
|
||||
</feld>
|
||||
<feld ind=" " nr="775">
|
||||
<uf code="i">Parallelausgabe</uf>
|
||||
<uf code="t">Human Rights and Traditional Justice Systems in Africa</uf>
|
||||
<uf code="z">9789210579377</uf>
|
||||
</feld>
|
||||
</datensatz>
|
||||
<datensatz mabVersion="M2.0" status="n" typ="h" xmlns="http://www.ddb.de/professionell/mabxml/mabxml-1.xsd">
|
||||
<feld ind=" " nr="001">(FR-PaOEC)6f8029f6-es</feld>
|
||||
<feld ind="a" nr="002">20171208</feld>
|
||||
<feld ind=" " nr="004">20171208</feld>
|
||||
<feld ind=" " nr="020">(FR-PaOEC)6f8029f6-es<65>OECD</feld>
|
||||
<feld ind=" " nr="025">6f8029f6-es</feld>
|
||||
<feld ind=" " nr="030">a|zuc||||||37</feld>
|
||||
<feld ind="b" nr="037">spa</feld>
|
||||
<feld ind=" " nr="050">||||||||g|||||</feld>
|
||||
<feld ind=" " nr="051">s|||||||</feld>
|
||||
<feld ind=" " nr="070">OECD</feld>
|
||||
<feld ind="a" nr="070">HBZ</feld>
|
||||
<feld ind="e" nr="078">
|
||||
<uf code="a">ZDB-164-UNL</uf>
|
||||
<uf code="a">ZDB-164-UNL-ebook</uf>
|
||||
</feld>
|
||||
<feld ind="b" nr="200">ECLAC</feld>
|
||||
<feld ind=" " nr="331">Pol<EFBFBD>itica Industrial Rural y Fortalecimiento de Cadenas de Valor</feld>
|
||||
<feld ind=" " nr="334">Elektronische Ressource</feld>
|
||||
<feld ind=" " nr="359">ECLAC</feld>
|
||||
<feld ind=" " nr="410">New York</feld>
|
||||
<feld ind=" " nr="412">United Nations</feld>
|
||||
<feld ind="a" nr="425">2017</feld>
|
||||
<feld ind=" " nr="433">240 p.</feld>
|
||||
<feld ind=" " nr="451">ECLAC Books ; no.145</feld>
|
||||
<feld ind="a" nr="452">2411-9385</feld>
|
||||
<feld ind="a" nr="540">ISBN 9789210585897</feld>
|
||||
<feld ind="a" nr="552">10.18356/6f8029f6-es</feld>
|
||||
<feld ind="a" nr="652">
|
||||
<uf code="a">Online-Ressource</uf>
|
||||
</feld>
|
||||
<feld ind="e" nr="655">
|
||||
<uf code="u">http://dx.doi.org/10.18356/6f8029f6-es</uf>
|
||||
<uf code="x">Resolving-System</uf>
|
||||
</feld>
|
||||
</datensatz>
|
||||
<datensatz mabVersion="M2.0" status="n" typ="h" xmlns="http://www.ddb.de/professionell/mabxml/mabxml-1.xsd">
|
||||
<feld ind=" " nr="001">(FR-PaOEC)c78e1213-ar</feld>
|
||||
<feld ind="a" nr="002">20171208</feld>
|
||||
<feld ind=" " nr="004">20171208</feld>
|
||||
<feld ind=" " nr="020">(FR-PaOEC)c78e1213-ar<61>OECD</feld>
|
||||
<feld ind=" " nr="025">c78e1213-ar</feld>
|
||||
<feld ind=" " nr="030">a|zuc||||||37</feld>
|
||||
<feld ind="b" nr="037">ara</feld>
|
||||
<feld ind=" " nr="050">||||||||g|||||</feld>
|
||||
<feld ind=" " nr="051">m|||||||</feld>
|
||||
<feld ind=" " nr="070">OECD</feld>
|
||||
<feld ind="a" nr="070">HBZ</feld>
|
||||
<feld ind="e" nr="078">
|
||||
<uf code="a">ZDB-164-UNL</uf>
|
||||
<uf code="a">ZDB-164-UNL-ebook</uf>
|
||||
</feld>
|
||||
<feld ind="b" nr="200">DESA</feld>
|
||||
<feld ind=" " nr="331">2017</feld>
|
||||
<feld ind=" " nr="334">Elektronische Ressource</feld>
|
||||
<feld ind=" " nr="359">DESA</feld>
|
||||
<feld ind=" " nr="410">New York</feld>
|
||||
<feld ind=" " nr="412">United Nations</feld>
|
||||
<feld ind="a" nr="425">2017</feld>
|
||||
<feld ind=" " nr="433">62 p.</feld>
|
||||
<feld ind="a" nr="540">ISBN 9789213617182</feld>
|
||||
<feld ind="a" nr="552">10.18356/c78e1213-ar</feld>
|
||||
<feld ind="a" nr="652">
|
||||
<uf code="a">Online-Ressource</uf>
|
||||
</feld>
|
||||
<feld ind="e" nr="655">
|
||||
<uf code="u">http://dx.doi.org/10.18356/c78e1213-ar</uf>
|
||||
<uf code="x">Resolving-System</uf>
|
||||
</feld>
|
||||
<feld ind=" " nr="775">
|
||||
<uf code="i">Parallelausgabe</uf>
|
||||
<uf code="t">, 2017 </uf>
|
||||
<uf code="z">9789213617205</uf>
|
||||
</feld>
|
||||
<feld ind=" " nr="775">
|
||||
<uf code="i">Parallelausgabe</uf>
|
||||
<uf code="t">2017 </uf>
|
||||
<uf code="z">9789213617199</uf>
|
||||
</feld>
|
||||
<feld ind=" " nr="775">
|
||||
<uf code="i">Parallelausgabe</uf>
|
||||
<uf code="t">The Sustainable Development Goals Report 2017</uf>
|
||||
<uf code="z">9789213617151</uf>
|
||||
</feld>
|
||||
<feld ind=" " nr="775">
|
||||
<uf code="i">Parallelausgabe</uf>
|
||||
<uf code="t">Informe de los Objetivos de Desarrollo Sostenible 2017</uf>
|
||||
<uf code="z">9789213617175</uf>
|
||||
</feld>
|
||||
<feld ind=" " nr="775">
|
||||
<uf code="i">Parallelausgabe</uf>
|
||||
<uf code="t">Rapport sur les Objectifs de D<>eveloppement Durable 2017</uf>
|
||||
<uf code="z">9789213617168</uf>
|
||||
</feld>
|
||||
</datensatz>
|
||||
</datei>
|
|
@ -0,0 +1,6 @@
|
|||
{"index":{"_index":"testindex","_type":"testtype","_id":"(FR-PaOEC)6bee255b-ar"}}
|
||||
{"_FORMAT":"MabXML","_TYPE":"h","_LEADER":"00000 1000000 000 ","001":["(FR-PaOEC)6bee255b-ar"],"002":["20171208"],"004":["20171208"],"020":["(FR-PaOEC)6bee255b-ar<61>OECD"],"025":["6bee255b-ar"],"030":["a|zuc||||||37"],"037":["ara"],"050":["||||||||g|||||"],"051":["m|||||||"],"070":["OECD","HBZ"],"078":[{"e":[{"a":["ZDB-164-UNL","ZDB-164-UNL-ebook"]}]}],"200":["OHCHR"],"331":[{"_":[]}],"334":["Elektronische Ressource"],"359":["OHCHR"],"410":["New York"],"412":["United Nations"],"425":["2017"],"433":["75 p."],"540":["ISBN 9789210579391"],"552":["10.18356/6bee255b-ar"],"652":[{"a":[{"a":"Online-Ressource"}]}],"655":[{"e":[{"u":"http://dx.doi.org/10.18356/6bee255b-ar"},{"x":"Resolving-System"}]}],"775":[{"_":[{"i":"Parallelausgabe"},{"t":"Human Rights and Traditional Justice Systems in Africa"},{"z":"9789210579377"}]}]}
|
||||
{"index":{"_index":"testindex","_type":"testtype","_id":"(FR-PaOEC)6f8029f6-es"}}
|
||||
{"_FORMAT":"MabXML","_TYPE":"h","_LEADER":"00000 1000000 000 ","001":["(FR-PaOEC)6f8029f6-es"],"002":["20171208"],"004":["20171208"],"020":["(FR-PaOEC)6f8029f6-es<65>OECD"],"025":["6f8029f6-es"],"030":["a|zuc||||||37"],"037":["spa"],"050":["||||||||g|||||"],"051":["s|||||||"],"070":["OECD","HBZ"],"078":[{"e":[{"a":["ZDB-164-UNL","ZDB-164-UNL-ebook"]}]}],"200":["ECLAC"],"331":["Pol<6F>itica Industrial Rural y Fortalecimiento de Cadenas de Valor"],"334":["Elektronische Ressource"],"359":["ECLAC"],"410":["New York"],"412":["United Nations"],"425":["2017"],"433":["240 p."],"451":["ECLAC Books ; no.145"],"452":["2411-9385"],"540":["ISBN 9789210585897"],"552":["10.18356/6f8029f6-es"],"652":[{"a":[{"a":"Online-Ressource"}]}],"655":[{"e":[{"u":"http://dx.doi.org/10.18356/6f8029f6-es"},{"x":"Resolving-System"}]}]}
|
||||
{"index":{"_index":"testindex","_type":"testtype","_id":"(FR-PaOEC)c78e1213-ar"}}
|
||||
{"_FORMAT":"MabXML","_TYPE":"h","_LEADER":"00000 1000000 000 ","001":["(FR-PaOEC)c78e1213-ar"],"002":["20171208"],"004":["20171208"],"020":["(FR-PaOEC)c78e1213-ar<61>OECD"],"025":["c78e1213-ar"],"030":["a|zuc||||||37"],"037":["ara"],"050":["||||||||g|||||"],"051":["m|||||||"],"070":["OECD","HBZ"],"078":[{"e":[{"a":["ZDB-164-UNL","ZDB-164-UNL-ebook"]}]}],"200":["DESA"],"331":["2017"],"334":["Elektronische Ressource"],"359":["DESA"],"410":["New York"],"412":["United Nations"],"425":["2017"],"433":["62 p."],"540":["ISBN 9789213617182"],"552":["10.18356/c78e1213-ar"],"652":[{"a":[{"a":"Online-Ressource"}]}],"655":[{"e":[{"u":"http://dx.doi.org/10.18356/c78e1213-ar"},{"x":"Resolving-System"}]}],"775":[{"_":[{"i":"Parallelausgabe"},{"t":", 2017"},{"z":"9789213617205"}]},{"_":[{"i":"Parallelausgabe"},{"t":"2017"},{"z":"9789213617199"}]},{"_":[{"i":"Parallelausgabe"},{"t":"The Sustainable Development Goals Report 2017"},{"z":"9789213617151"}]},{"_":[{"i":"Parallelausgabe"},{"t":"Informe de los Objetivos de Desarrollo Sostenible 2017"},{"z":"9789213617175"}]},{"_":[{"i":"Parallelausgabe"},{"t":"Rapport sur les Objectifs de D<>eveloppement Durable 2017"},{"z":"9789213617168"}]}]}
|
|
@ -0,0 +1,250 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<collection xmlns="info:lc/xmlns/marcxchange-v2" xsi:schemaLocation="info:lc/xmlns/marcxchange-v2 http://www.loc.gov/standards/iso25577/marcxchange-2-0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<record format="MARC21" type="Bibliographic">
|
||||
<leader>00000 1000000 000 </leader>
|
||||
<controlfield tag="001">(FR-PaOEC)6bee255b-ar</controlfield>
|
||||
<controlfield tag="002">20171208</controlfield>
|
||||
<controlfield tag="004">20171208</controlfield>
|
||||
<datafield ind2=" " ind1=" " tag="020">
|
||||
<subfield code="a">(FR-PaOEC)6bee255b-ar<61>OECD</subfield>
|
||||
</datafield>
|
||||
<datafield ind2=" " ind1=" " tag="025">
|
||||
<subfield code="a">6bee255b-ar</subfield>
|
||||
</datafield>
|
||||
<datafield ind2=" " ind1=" " tag="030">
|
||||
<subfield code="a">a|zuc||||||37</subfield>
|
||||
</datafield>
|
||||
<datafield ind2=" " ind1="b" tag="037">
|
||||
<subfield code="a">ara</subfield>
|
||||
</datafield>
|
||||
<datafield ind2=" " ind1=" " tag="050">
|
||||
<subfield code="a">||||||||g|||||</subfield>
|
||||
</datafield>
|
||||
<datafield ind2=" " ind1=" " tag="051">
|
||||
<subfield code="a">m|||||||</subfield>
|
||||
</datafield>
|
||||
<datafield ind2=" " ind1=" " tag="070">
|
||||
<subfield code="a">OECD</subfield>
|
||||
</datafield>
|
||||
<datafield ind2=" " ind1="a" tag="070">
|
||||
<subfield code="a">HBZ</subfield>
|
||||
</datafield>
|
||||
<datafield ind2=" " ind1="e" tag="078">
|
||||
<subfield code="a">ZDB-164-UNL</subfield>
|
||||
<subfield code="a">ZDB-164-UNL-ebook</subfield>
|
||||
</datafield>
|
||||
<datafield ind2=" " ind1="b" tag="200">
|
||||
<subfield code="a">OHCHR</subfield>
|
||||
</datafield>
|
||||
<datafield ind2=" " ind1=" " tag="331"></datafield>
|
||||
<datafield ind2=" " ind1=" " tag="334">
|
||||
<subfield code="a">Elektronische Ressource</subfield>
|
||||
</datafield>
|
||||
<datafield ind2=" " ind1=" " tag="359">
|
||||
<subfield code="a">OHCHR</subfield>
|
||||
</datafield>
|
||||
<datafield ind2=" " ind1=" " tag="410">
|
||||
<subfield code="a">New York</subfield>
|
||||
</datafield>
|
||||
<datafield ind2=" " ind1=" " tag="412">
|
||||
<subfield code="a">United Nations</subfield>
|
||||
</datafield>
|
||||
<datafield ind2=" " ind1="a" tag="425">
|
||||
<subfield code="a">2017</subfield>
|
||||
</datafield>
|
||||
<datafield ind2=" " ind1=" " tag="433">
|
||||
<subfield code="a">75 p.</subfield>
|
||||
</datafield>
|
||||
<datafield ind2=" " ind1="a" tag="540">
|
||||
<subfield code="a">ISBN 9789210579391</subfield>
|
||||
</datafield>
|
||||
<datafield ind2=" " ind1="a" tag="552">
|
||||
<subfield code="a">10.18356/6bee255b-ar</subfield>
|
||||
</datafield>
|
||||
<datafield ind2=" " ind1="a" tag="652">
|
||||
<subfield code="a">Online-Ressource</subfield>
|
||||
</datafield>
|
||||
<datafield ind2=" " ind1="e" tag="655">
|
||||
<subfield code="u">http://dx.doi.org/10.18356/6bee255b-ar</subfield>
|
||||
<subfield code="x">Resolving-System</subfield>
|
||||
</datafield>
|
||||
<datafield ind2=" " ind1=" " tag="775">
|
||||
<subfield code="i">Parallelausgabe</subfield>
|
||||
<subfield code="t">Human Rights and Traditional Justice Systems in Africa</subfield>
|
||||
<subfield code="z">9789210579377</subfield>
|
||||
</datafield>
|
||||
</record>
|
||||
<record format="MARC21" type="Bibliographic">
|
||||
<leader>00000 1000000 000 </leader>
|
||||
<controlfield tag="001">(FR-PaOEC)6f8029f6-es</controlfield>
|
||||
<controlfield tag="002">20171208</controlfield>
|
||||
<controlfield tag="004">20171208</controlfield>
|
||||
<datafield ind2=" " ind1=" " tag="020">
|
||||
<subfield code="a">(FR-PaOEC)6f8029f6-es<65>OECD</subfield>
|
||||
</datafield>
|
||||
<datafield ind2=" " ind1=" " tag="025">
|
||||
<subfield code="a">6f8029f6-es</subfield>
|
||||
</datafield>
|
||||
<datafield ind2=" " ind1=" " tag="030">
|
||||
<subfield code="a">a|zuc||||||37</subfield>
|
||||
</datafield>
|
||||
<datafield ind2=" " ind1="b" tag="037">
|
||||
<subfield code="a">spa</subfield>
|
||||
</datafield>
|
||||
<datafield ind2=" " ind1=" " tag="050">
|
||||
<subfield code="a">||||||||g|||||</subfield>
|
||||
</datafield>
|
||||
<datafield ind2=" " ind1=" " tag="051">
|
||||
<subfield code="a">s|||||||</subfield>
|
||||
</datafield>
|
||||
<datafield ind2=" " ind1=" " tag="070">
|
||||
<subfield code="a">OECD</subfield>
|
||||
</datafield>
|
||||
<datafield ind2=" " ind1="a" tag="070">
|
||||
<subfield code="a">HBZ</subfield>
|
||||
</datafield>
|
||||
<datafield ind2=" " ind1="e" tag="078">
|
||||
<subfield code="a">ZDB-164-UNL</subfield>
|
||||
<subfield code="a">ZDB-164-UNL-ebook</subfield>
|
||||
</datafield>
|
||||
<datafield ind2=" " ind1="b" tag="200">
|
||||
<subfield code="a">ECLAC</subfield>
|
||||
</datafield>
|
||||
<datafield ind2=" " ind1=" " tag="331">
|
||||
<subfield code="a">Pol<EFBFBD>itica Industrial Rural y Fortalecimiento de Cadenas de Valor</subfield>
|
||||
</datafield>
|
||||
<datafield ind2=" " ind1=" " tag="334">
|
||||
<subfield code="a">Elektronische Ressource</subfield>
|
||||
</datafield>
|
||||
<datafield ind2=" " ind1=" " tag="359">
|
||||
<subfield code="a">ECLAC</subfield>
|
||||
</datafield>
|
||||
<datafield ind2=" " ind1=" " tag="410">
|
||||
<subfield code="a">New York</subfield>
|
||||
</datafield>
|
||||
<datafield ind2=" " ind1=" " tag="412">
|
||||
<subfield code="a">United Nations</subfield>
|
||||
</datafield>
|
||||
<datafield ind2=" " ind1="a" tag="425">
|
||||
<subfield code="a">2017</subfield>
|
||||
</datafield>
|
||||
<datafield ind2=" " ind1=" " tag="433">
|
||||
<subfield code="a">240 p.</subfield>
|
||||
</datafield>
|
||||
<datafield ind2=" " ind1=" " tag="451">
|
||||
<subfield code="a">ECLAC Books ; no.145</subfield>
|
||||
</datafield>
|
||||
<datafield ind2=" " ind1="a" tag="452">
|
||||
<subfield code="a">2411-9385</subfield>
|
||||
</datafield>
|
||||
<datafield ind2=" " ind1="a" tag="540">
|
||||
<subfield code="a">ISBN 9789210585897</subfield>
|
||||
</datafield>
|
||||
<datafield ind2=" " ind1="a" tag="552">
|
||||
<subfield code="a">10.18356/6f8029f6-es</subfield>
|
||||
</datafield>
|
||||
<datafield ind2=" " ind1="a" tag="652">
|
||||
<subfield code="a">Online-Ressource</subfield>
|
||||
</datafield>
|
||||
<datafield ind2=" " ind1="e" tag="655">
|
||||
<subfield code="u">http://dx.doi.org/10.18356/6f8029f6-es</subfield>
|
||||
<subfield code="x">Resolving-System</subfield>
|
||||
</datafield>
|
||||
</record>
|
||||
<record format="MARC21" type="Bibliographic">
|
||||
<leader>00000 1000000 000 </leader>
|
||||
<controlfield tag="001">(FR-PaOEC)c78e1213-ar</controlfield>
|
||||
<controlfield tag="002">20171208</controlfield>
|
||||
<controlfield tag="004">20171208</controlfield>
|
||||
<datafield ind2=" " ind1=" " tag="020">
|
||||
<subfield code="a">(FR-PaOEC)c78e1213-ar<61>OECD</subfield>
|
||||
</datafield>
|
||||
<datafield ind2=" " ind1=" " tag="025">
|
||||
<subfield code="a">c78e1213-ar</subfield>
|
||||
</datafield>
|
||||
<datafield ind2=" " ind1=" " tag="030">
|
||||
<subfield code="a">a|zuc||||||37</subfield>
|
||||
</datafield>
|
||||
<datafield ind2=" " ind1="b" tag="037">
|
||||
<subfield code="a">ara</subfield>
|
||||
</datafield>
|
||||
<datafield ind2=" " ind1=" " tag="050">
|
||||
<subfield code="a">||||||||g|||||</subfield>
|
||||
</datafield>
|
||||
<datafield ind2=" " ind1=" " tag="051">
|
||||
<subfield code="a">m|||||||</subfield>
|
||||
</datafield>
|
||||
<datafield ind2=" " ind1=" " tag="070">
|
||||
<subfield code="a">OECD</subfield>
|
||||
</datafield>
|
||||
<datafield ind2=" " ind1="a" tag="070">
|
||||
<subfield code="a">HBZ</subfield>
|
||||
</datafield>
|
||||
<datafield ind2=" " ind1="e" tag="078">
|
||||
<subfield code="a">ZDB-164-UNL</subfield>
|
||||
<subfield code="a">ZDB-164-UNL-ebook</subfield>
|
||||
</datafield>
|
||||
<datafield ind2=" " ind1="b" tag="200">
|
||||
<subfield code="a">DESA</subfield>
|
||||
</datafield>
|
||||
<datafield ind2=" " ind1=" " tag="331">
|
||||
<subfield code="a">2017</subfield>
|
||||
</datafield>
|
||||
<datafield ind2=" " ind1=" " tag="334">
|
||||
<subfield code="a">Elektronische Ressource</subfield>
|
||||
</datafield>
|
||||
<datafield ind2=" " ind1=" " tag="359">
|
||||
<subfield code="a">DESA</subfield>
|
||||
</datafield>
|
||||
<datafield ind2=" " ind1=" " tag="410">
|
||||
<subfield code="a">New York</subfield>
|
||||
</datafield>
|
||||
<datafield ind2=" " ind1=" " tag="412">
|
||||
<subfield code="a">United Nations</subfield>
|
||||
</datafield>
|
||||
<datafield ind2=" " ind1="a" tag="425">
|
||||
<subfield code="a">2017</subfield>
|
||||
</datafield>
|
||||
<datafield ind2=" " ind1=" " tag="433">
|
||||
<subfield code="a">62 p.</subfield>
|
||||
</datafield>
|
||||
<datafield ind2=" " ind1="a" tag="540">
|
||||
<subfield code="a">ISBN 9789213617182</subfield>
|
||||
</datafield>
|
||||
<datafield ind2=" " ind1="a" tag="552">
|
||||
<subfield code="a">10.18356/c78e1213-ar</subfield>
|
||||
</datafield>
|
||||
<datafield ind2=" " ind1="a" tag="652">
|
||||
<subfield code="a">Online-Ressource</subfield>
|
||||
</datafield>
|
||||
<datafield ind2=" " ind1="e" tag="655">
|
||||
<subfield code="u">http://dx.doi.org/10.18356/c78e1213-ar</subfield>
|
||||
<subfield code="x">Resolving-System</subfield>
|
||||
</datafield>
|
||||
<datafield ind2=" " ind1=" " tag="775">
|
||||
<subfield code="i">Parallelausgabe</subfield>
|
||||
<subfield code="t">, 2017</subfield>
|
||||
<subfield code="z">9789213617205</subfield>
|
||||
</datafield>
|
||||
<datafield ind2=" " ind1=" " tag="775">
|
||||
<subfield code="i">Parallelausgabe</subfield>
|
||||
<subfield code="t">2017</subfield>
|
||||
<subfield code="z">9789213617199</subfield>
|
||||
</datafield>
|
||||
<datafield ind2=" " ind1=" " tag="775">
|
||||
<subfield code="i">Parallelausgabe</subfield>
|
||||
<subfield code="t">The Sustainable Development Goals Report 2017</subfield>
|
||||
<subfield code="z">9789213617151</subfield>
|
||||
</datafield>
|
||||
<datafield ind2=" " ind1=" " tag="775">
|
||||
<subfield code="i">Parallelausgabe</subfield>
|
||||
<subfield code="t">Informe de los Objetivos de Desarrollo Sostenible 2017</subfield>
|
||||
<subfield code="z">9789213617175</subfield>
|
||||
</datafield>
|
||||
<datafield ind2=" " ind1=" " tag="775">
|
||||
<subfield code="i">Parallelausgabe</subfield>
|
||||
<subfield code="t">Rapport sur les Objectifs de D<>eveloppement Durable 2017</subfield>
|
||||
<subfield code="z">9789213617168</subfield>
|
||||
</datafield>
|
||||
</record>
|
||||
</collection>
|
File diff suppressed because it is too large
Load diff
Loading…
Reference in a new issue