diff --git a/src/main/java/org/xbib/marc/json/MarcJsonWriter.java b/src/main/java/org/xbib/marc/json/MarcJsonWriter.java index 170f977..1e1142a 100644 --- a/src/main/java/org/xbib/marc/json/MarcJsonWriter.java +++ b/src/main/java/org/xbib/marc/json/MarcJsonWriter.java @@ -32,37 +32,55 @@ import java.io.OutputStreamWriter; import java.io.UncheckedIOException; import java.io.Writer; import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.nio.file.Paths; import java.util.Collections; import java.util.List; import java.util.Map; +import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; +import java.util.logging.Level; +import java.util.logging.Logger; /** * This Marc Writer is a MarcContentHandler that writes Marc events to JSON. */ public class MarcJsonWriter extends MarcContentHandler implements Flushable, Closeable { + private static final Logger logger = Logger.getLogger(MarcJsonWriter.class.getName()); + public static final String LEADER_TAG = "_LEADER"; public static final String FORMAT_TAG = "_FORMAT"; public static final String TYPE_TAG = "_TYPE"; - private final Lock lock = new ReentrantLock(); - - private final BufferedWriter writer; + private final Lock lock; private final StringBuilder sb; + private BufferedWriter writer; + private Marc.Builder builder; - private boolean fatalErrors = false; + private boolean fatalErrors; private boolean jsonlines; private Exception exception; + private String fileNamePattern; + + private AtomicInteger fileNameCounter; + + private int splitlimit; + + /** + * Flag for indicating if writer is at top of file. + */ + private boolean top; + public MarcJsonWriter(OutputStream out) throws IOException { this(out, false); } @@ -77,9 +95,23 @@ public class MarcJsonWriter extends MarcContentHandler implements Flushable, Clo public MarcJsonWriter(Writer writer, boolean jsonlines) throws IOException { this.writer = new BufferedWriter(writer); - this.sb = new StringBuilder(); this.jsonlines = jsonlines; + this.lock = new ReentrantLock(); + this.sb = new StringBuilder(); this.builder = Marc.builder(); + this.top = true; + } + + public MarcJsonWriter(String fileNamePattern, int splitlimit) throws IOException { + this.fileNameCounter = new AtomicInteger(0); + this.fileNamePattern = fileNamePattern; + this.splitlimit = splitlimit; + this.writer = newWriter(fileNamePattern, fileNameCounter); + this.lock = new ReentrantLock(); + this.sb = new StringBuilder(); + this.builder = Marc.builder(); + this.top = true; + this.jsonlines = true; } private static String escape(String value) { @@ -126,7 +158,6 @@ public class MarcJsonWriter extends MarcContentHandler implements Flushable, Clo @Override public void beginRecord(String format, String type) { - super.beginRecord(format, type); setFormat(format); setType(type); } @@ -156,6 +187,7 @@ public class MarcJsonWriter extends MarcContentHandler implements Flushable, Clo writer.write(sb.toString()); sb.setLength(0); recordCounter.incrementAndGet(); + afterRecord(); } catch (Exception e) { handleException(new IOException(e)); } finally { @@ -165,7 +197,6 @@ public class MarcJsonWriter extends MarcContentHandler implements Flushable, Clo @Override public void endRecord() { - super.endRecord(); if (format != null) { builder.setFormat(format); } @@ -209,7 +240,9 @@ public class MarcJsonWriter extends MarcContentHandler implements Flushable, Clo if (marcRecord.isEmpty()) { return; } - if (recordCounter.get() > 0) { + if (top) { + top = false; + } else { sb.append(jsonlines ? "\n" : ","); } sb.append("{"); @@ -344,4 +377,28 @@ public class MarcJsonWriter extends MarcContentHandler implements Flushable, Clo public void flush() throws IOException { writer.flush(); } + + /** + * Split records, if configured. + */ + private void afterRecord() { + if (fileNamePattern != null) { + if (getRecordCounter() % splitlimit == 0) { + try { + endCollection(); + close(); + writer = newWriter(fileNamePattern, fileNameCounter); + top = true; + beginCollection(); + } catch (IOException e) { + logger.log(Level.SEVERE, e.getMessage(), e); + } + } + } + } + + private static BufferedWriter newWriter(String fileNamePattern, AtomicInteger fileNameCounter) throws IOException { + return Files.newBufferedWriter(Paths.get(String.format(fileNamePattern, fileNameCounter.getAndIncrement()))); + } + } diff --git a/src/main/java/org/xbib/marc/xml/MarcContentHandler.java b/src/main/java/org/xbib/marc/xml/MarcContentHandler.java index 0a748ee..45cf963 100644 --- a/src/main/java/org/xbib/marc/xml/MarcContentHandler.java +++ b/src/main/java/org/xbib/marc/xml/MarcContentHandler.java @@ -57,20 +57,20 @@ public class MarcContentHandler private static final Logger logger = Logger.getLogger(MarcContentHandler.class.getName()); + protected final AtomicInteger recordCounter = new AtomicInteger(); + protected Deque stack = new LinkedList<>(); protected Map listeners = new HashMap<>(); - protected MarcListener marcListener; - protected StringBuilder content = new StringBuilder(); + protected MarcListener marcListener; + protected String format; protected String type; - protected final AtomicInteger recordCounter = new AtomicInteger(); - protected MarcValueTransformers marcValueTransformers; private MarcFieldTransformers marcFieldTransformers; @@ -79,7 +79,6 @@ public class MarcContentHandler private List marcFieldList = new LinkedList<>(); - private Set validNamespaces = new HashSet<>(Arrays.asList(MARCXCHANGE_V1_NS_URI, MARCXCHANGE_V2_NS_URI, MARC21_SCHEMA_URI)); @@ -186,31 +185,31 @@ public class MarcContentHandler @Override public void record(MarcRecord marcRecord) { - try { - beginRecord(marcRecord.getFormat(), marcRecord.getType()); - leader(marcRecord.getRecordLabel().toString()); - for (MarcField marcField : marcRecord.getFields()) { - field(marcField); - } - endRecord(); - } finally { - recordCounter.incrementAndGet(); + beginRecord(marcRecord.getFormat(), marcRecord.getType()); + leader(marcRecord.getRecordLabel().toString()); + for (MarcField marcField : marcRecord.getFields()) { + field(marcField); } + endRecord(); } @Override public void endRecord() { - if (marcFieldTransformers != null) { - for (MarcField marcField : marcFieldTransformers.transform(marcFieldList)) { - if (!marcField.isEmpty() && marcListener != null) { - marcListener.field(marcField); + try { + if (marcFieldTransformers != null) { + for (MarcField marcField : marcFieldTransformers.transform(marcFieldList)) { + if (!marcField.isEmpty() && marcListener != null) { + marcListener.field(marcField); + } } + marcFieldTransformers.reset(); + marcFieldList.clear(); } - marcFieldTransformers.reset(); - marcFieldList.clear(); - } - if (marcListener != null) { - marcListener.endRecord(); + if (marcListener != null) { + marcListener.endRecord(); + } + } finally { + recordCounter.incrementAndGet(); } } diff --git a/src/main/java/org/xbib/marc/xml/MarcXchangeWriter.java b/src/main/java/org/xbib/marc/xml/MarcXchangeWriter.java index 3041cb1..65a9629 100644 --- a/src/main/java/org/xbib/marc/xml/MarcXchangeWriter.java +++ b/src/main/java/org/xbib/marc/xml/MarcXchangeWriter.java @@ -36,6 +36,7 @@ import java.util.Collections; import java.util.Iterator; import java.util.LinkedList; import java.util.List; +import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; import java.util.logging.Level; @@ -79,6 +80,8 @@ public class MarcXchangeWriter extends MarcContentHandler implements Flushable, private final Namespace namespace; + private final Lock lock; + private Writer writer; private boolean indent; @@ -103,14 +106,10 @@ public class MarcXchangeWriter extends MarcContentHandler implements Flushable, private String fileNamePattern; - private int fileNameCounter; - - private long recordCounter; + private AtomicInteger fileNameCounter; private int splitlimit; - private final Lock lock = new ReentrantLock(); - /** * Create a MarcXchange writer on an underlying output stream. * @param out the underlying output stream @@ -148,6 +147,7 @@ public class MarcXchangeWriter extends MarcContentHandler implements Flushable, public MarcXchangeWriter(Writer writer, boolean indent) throws IOException { this.writer = writer; this.indent = indent; + this.lock = new ReentrantLock(); this.documentStarted = false; this.collectionStarted = false; eventFactory = XMLEventFactory.newInstance(); @@ -163,10 +163,10 @@ public class MarcXchangeWriter extends MarcContentHandler implements Flushable, * @throws IOException if writer can not be created */ public MarcXchangeWriter(boolean indent, String fileNamePattern, int splitlimit) throws IOException { - this.fileNameCounter = 0; + this.fileNameCounter = new AtomicInteger(0); this.fileNamePattern = fileNamePattern; this.splitlimit = splitlimit; - this.recordCounter = 0L; + this.lock = new ReentrantLock(); this.writer = newWriter(fileNamePattern, fileNameCounter); this.indent = indent; this.documentStarted = false; @@ -183,32 +183,12 @@ public class MarcXchangeWriter extends MarcContentHandler implements Flushable, */ public MarcXchangeWriter(XMLEventConsumer consumer) { this.xmlEventConsumer = consumer; + this.lock = new ReentrantLock(); this.eventFactory = XMLEventFactory.newInstance(); this.namespace = eventFactory.createNamespace("", NAMESPACE_URI); this.namespaces = Collections.singletonList(namespace).iterator(); } - private static Writer newWriter(String fileNamePattern, int fileNameCounter) throws IOException { - return Files.newBufferedWriter(Paths.get(String.format(fileNamePattern, fileNameCounter))); - } - - private void setupEventConsumer(Writer writer, boolean indent) throws IOException { - XMLOutputFactory outputFactory = XMLOutputFactory.newInstance(); - try { - outputFactory.setProperty("com.ctc.wstx.useDoubleQuotesInXmlDecl", Boolean.TRUE); - } catch (IllegalArgumentException e) { - logger.log(Level.FINEST, e.getMessage(), e); - } - try { - this.xmlEventConsumer = indent ? - new IndentingXMLEventWriter(outputFactory.createXMLEventWriter(writer)) : - outputFactory.createXMLEventWriter(writer); - this.namespaces = Collections.singletonList(namespace).iterator(); - } catch (XMLStreamException e) { - throw new IOException(e); - } - } - @Override public MarcXchangeWriter setFormat(String format) { super.setFormat(format); @@ -406,10 +386,9 @@ public class MarcXchangeWriter extends MarcContentHandler implements Flushable, if (recordStarted) { xmlEventConsumer.add(eventFactory.createEndElement(RECORD_ELEMENT, namespaces)); afterRecord(); - flush(); recordStarted = false; } - } catch (IOException | XMLStreamException e) { + } catch (XMLStreamException e) { handleException(new IOException(e)); } } @@ -445,8 +424,8 @@ public class MarcXchangeWriter extends MarcContentHandler implements Flushable, if (xmlEventConsumer instanceof XMLEventWriter) { ((XMLEventWriter) xmlEventConsumer).flush(); } - flush(); - } catch (IOException | XMLStreamException e) { + afterRecord(); + } catch (XMLStreamException e) { handleException(new IOException(e)); } finally { lock.unlock(); @@ -486,19 +465,17 @@ public class MarcXchangeWriter extends MarcContentHandler implements Flushable, } /** - * Split records, if configured. + * Split records if configured. */ - protected void afterRecord() { + private void afterRecord() { if (fileNamePattern != null) { - recordCounter++; - if (recordCounter > splitlimit) { + if (getRecordCounter() % splitlimit == 0) { try { endCollection(); writer.close(); - writer = newWriter(fileNamePattern, fileNameCounter++); + writer = newWriter(fileNamePattern, fileNameCounter); setupEventConsumer(writer, indent); beginCollection(); - recordCounter = 0L; } catch (IOException e) { logger.log(Level.SEVERE, e.getMessage(), e); } @@ -506,6 +483,27 @@ public class MarcXchangeWriter extends MarcContentHandler implements Flushable, } } + private static Writer newWriter(String fileNamePattern, AtomicInteger fileNameCounter) throws IOException { + return Files.newBufferedWriter(Paths.get(String.format(fileNamePattern, fileNameCounter.getAndIncrement()))); + } + + private void setupEventConsumer(Writer writer, boolean indent) throws IOException { + XMLOutputFactory outputFactory = XMLOutputFactory.newInstance(); + try { + outputFactory.setProperty("com.ctc.wstx.useDoubleQuotesInXmlDecl", Boolean.TRUE); + } catch (IllegalArgumentException e) { + logger.log(Level.FINEST, e.getMessage(), e); + } + try { + this.xmlEventConsumer = indent ? + new IndentingXMLEventWriter(outputFactory.createXMLEventWriter(writer)) : + outputFactory.createXMLEventWriter(writer); + this.namespaces = Collections.singletonList(namespace).iterator(); + } catch (XMLStreamException e) { + throw new IOException(e); + } + } + private String transform(String value) { return marcValueTransformers != null ? marcValueTransformers.transform(value) : value; } diff --git a/src/test/java/org/xbib/marc/MarcTest.java b/src/test/java/org/xbib/marc/MarcTest.java index 3c952f2..97a9452 100644 --- a/src/test/java/org/xbib/marc/MarcTest.java +++ b/src/test/java/org/xbib/marc/MarcTest.java @@ -31,6 +31,8 @@ import java.io.InputStream; import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; import java.text.Normalizer; +import java.util.List; +import java.util.stream.Collectors; /** * @@ -158,10 +160,25 @@ public class MarcTest extends Assert { .build() .writeCollection(); assertNull(writer.getException()); + assertEquals(10, writer.getRecordCounter()); } assertThat(file, CompareMatcher.isIdenticalTo(getClass().getResource(s + ".xml").openStream())); } + @Test + public void testRecordStream() throws Exception { + String s = "IRMARC8.bin"; + InputStream in = getClass().getResource(s).openStream(); + Marc.Builder builder = Marc.builder() + .setInputStream(in) + .setCharset(StandardCharsets.UTF_8); + List recordIDs = builder.recordStream().map(r -> r.get("001").toString()).collect(Collectors.toList()); + in.close(); + assertEquals("[{1=ocn132792681}, {1=ocn132786677}, {1=ocn125170297}, {1=ocn137607921}, {1=ocn124081299}, " + + "{1=ocn135450843}, {1=ocn137458539}, {1=ocn124411460}, {1=ocn131225106}, {1=ocn124450154}]", + recordIDs.toString()); + } + /** * ZDB MARC Bibliographic. */ diff --git a/src/test/java/org/xbib/marc/SplitMarcTest.java b/src/test/java/org/xbib/marc/MarcXchangeWriterTest.java similarity index 82% rename from src/test/java/org/xbib/marc/SplitMarcTest.java rename to src/test/java/org/xbib/marc/MarcXchangeWriterTest.java index 8156bad..b207e46 100644 --- a/src/test/java/org/xbib/marc/SplitMarcTest.java +++ b/src/test/java/org/xbib/marc/MarcXchangeWriterTest.java @@ -30,7 +30,7 @@ import java.text.Normalizer; /** * */ -public class SplitMarcTest extends Assert { +public class MarcXchangeWriterTest extends Assert { @Test public void splitMARC() throws Exception { @@ -38,7 +38,7 @@ public class SplitMarcTest extends Assert { InputStream in = getClass().getResource("/org/xbib/marc//" + s).openStream(); MarcValueTransformers marcValueTransformers = new MarcValueTransformers(); marcValueTransformers.setMarcValueTransformer(value -> Normalizer.normalize(value, Normalizer.Form.NFC)); - MarcXchangeWriter writer = new MarcXchangeWriter(true, "build/%d.xml", 2) + MarcXchangeWriter writer = new MarcXchangeWriter(true, "build/%d.xml", 3) .setMarcValueTransformers(marcValueTransformers); Marc.builder() .setInputStream(in) @@ -46,12 +46,16 @@ public class SplitMarcTest extends Assert { .setMarcListener(writer) .build() .writeCollection(); - File f1 = new File("build/0.xml"); - assertThat(f1, CompareMatcher.isIdenticalTo(getClass().getResource("0.xml").openStream())); - File f2 = new File("build/1.xml"); - assertThat(f2, CompareMatcher.isIdenticalTo(getClass().getResource("1.xml").openStream())); - File f3 = new File("build/2.xml"); - assertThat(f3, CompareMatcher.isIdenticalTo(getClass().getResource("2.xml").openStream())); + File f0 = new File("build/0.xml"); + assertThat(f0, CompareMatcher.isIdenticalTo(getClass().getResource("0.xml").openStream())); + File f1 = new File("build/1.xml"); + assertThat(f1, CompareMatcher.isIdenticalTo(getClass().getResource("1.xml").openStream())); + File f2 = new File("build/2.xml"); + assertThat(f2, CompareMatcher.isIdenticalTo(getClass().getResource("2.xml").openStream())); + File f3 = new File("build/3.xml"); + assertThat(f3, CompareMatcher.isIdenticalTo(getClass().getResource("3.xml").openStream())); + File f4 = new File("build/4.xml"); + assertFalse(f4.exists()); } } diff --git a/src/test/java/org/xbib/marc/json/MarcJsonWriterTest.java b/src/test/java/org/xbib/marc/json/MarcJsonWriterTest.java index f77271a..d437609 100644 --- a/src/test/java/org/xbib/marc/json/MarcJsonWriterTest.java +++ b/src/test/java/org/xbib/marc/json/MarcJsonWriterTest.java @@ -16,12 +16,16 @@ */ package org.xbib.marc.json; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; import static org.xbib.helper.StreamMatcher.assertStream; import org.junit.Test; import org.xbib.marc.Marc; import org.xbib.marc.MarcRecordAdapter; import org.xbib.marc.MarcXchangeConstants; +import org.xbib.marc.transformer.value.MarcValueTransformers; import org.xbib.marc.xml.MarcContentHandler; import java.io.File; @@ -29,6 +33,7 @@ import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.InputStream; import java.nio.charset.Charset; +import java.text.Normalizer; /** * @@ -156,4 +161,32 @@ public class MarcJsonWriterTest { assertStream(s, getClass().getResource("/org/xbib/marc/json/" + s + ".json").openStream(), new FileInputStream(file)); } + + @Test + public void splitMARC() throws Exception { + String s = "IRMARC8.bin"; + InputStream in = getClass().getResource("/org/xbib/marc//" + s).openStream(); + MarcValueTransformers marcValueTransformers = new MarcValueTransformers(); + marcValueTransformers.setMarcValueTransformer(value -> Normalizer.normalize(value, Normalizer.Form.NFC)); + MarcJsonWriter writer = new MarcJsonWriter("build/%d.json", 3); + writer.setMarcValueTransformers(marcValueTransformers); + Marc.builder() + .setInputStream(in) + .setCharset(Charset.forName("ANSEL")) + .setMarcListener(writer) + .build() + .writeCollection(); + assertEquals(10, writer.getRecordCounter()); + File f0 = new File("build/0.json"); + assertTrue(f0.exists() && f0.length() == 6022); + File f1 = new File("build/1.json"); + assertTrue(f1.exists() && f1.length() == 7150); + File f2 = new File("build/2.json"); + assertTrue(f2.exists() && f2.length() == 6424); + File f3 = new File("build/3.json"); + assertTrue(f3.exists() && f3.length() == 2114); + File f4 = new File("build/4.json"); + assertFalse(f4.exists()); + } + } diff --git a/src/test/resources/org/xbib/marc/0.json b/src/test/resources/org/xbib/marc/0.json new file mode 100644 index 0000000..b0c0a56 --- /dev/null +++ b/src/test/resources/org/xbib/marc/0.json @@ -0,0 +1,3 @@ +{"_FORMAT":null,"_TYPE":null,"_LEADER":"01626cam 2200445 a 4500","001":["ocn132792681"],"003":["OCoLC"],"005":["20070605101501.0"],"008":["060314s2004 ja a b 001 0 jpn d"],"040":[{"__":[{"a":"LWU"},{"c":"SMFRE"}]}],"066":[{"__":[{"c":"$1"}]}],"020":[{"__":[{"a":"4784212078"}]},{"__":[{"a":"9784784212071"}]}],"035":[{"__":[{"a":"(OCoLC)132792681"}]},{"__":[{"a":"(CStRLIN)DCFO06-B527"}]}],"041":[{"0_":[{"a":"jpn"},{"b":"eng"}]}],"043":[{"__":[{"a":"a-ja---"}]}],"079":[{"__":[{"a":"ocm56902747"}]}],"084":[{"__":[{"a":"750.21"},{"2":"njb"}]}],"090":[{"__":[{"a":"NK1071"},{"b":".A87 2004"}]}],"049":[{"__":[{"a":"OCLC"}]}],"245":[{"00":[{"6":"880-01"},{"a":"Ātsu ando kurafutsu to Nihon ="},{"b":"The arts & crafts movement and Japan /"},{"c":"Dezainshi Fōramu hen ; Fujita Haruhiko sekinin henshū."}]}],"246":[{"31":[{"a":"Arts & crafts movement and Japan"}]}],"260":[{"__":[{"6":"880-02"},{"a":"Kyōto-shi :"},{"b":"Shibunkaku Shuppan,"},{"c":"2004."}]}],"300":[{"__":[{"a":"288 p. :"},{"b":"ill. ;"},{"c":"21 cm."}]}],"500":[{"__":[{"a":"Includes index."}]}],"546":[{"__":[{"a":"Summary in English."}]}],"504":[{"__":[{"a":"Includes bibliographical references."}]}],"650":[{"_0":[{"a":"Arts and crafts movement"},{"z":"Japan."}]},{"_0":[{"a":"Folk art"},{"z":"Japan."}]}],"700":[{"1_":[{"6":"880-03"},{"a":"Fujita, Haruhiko,"},{"d":"1951-"}]}],"710":[{"2_":[{"6":"880-04"},{"a":"Dezainshi Fōramu."}]}],"852":[{"0_":[{"a":"DSI-F"},{"b":"main"},{"h":"NK1071"},{"i":".A87 2004"},{"x":"CIN=hr; OID=hr"}]}],"880":[{"00":[{"6":"245-01/$1"},{"a":"アーツ・アンド・クラフツと日本 ="},{"b":"The arts & crafts movement and Japan /"},{"c":"デザイン史フォーラム編 ; 藤田治彦責任編集."}]},{"__":[{"6":"260-02/$1"},{"a":"京都市 :"},{"b":"思文閣出版,"},{"c":"2004."}]},{"1_":[{"6":"700-03/$1"},{"a":"藤田治彦,"},{"d":"1951-"}]},{"2_":[{"6":"710-04/$1"},{"a":"デザイン史フォーラム."}]}],"901":[{"__":[{"a":"*bn=main;ov=.B1748129;"}]}],"903":[{"__":[{"c":"c. 1"}]}],"994":[{"__":[{"a":"C0"},{"b":"OCL"}]}]} +{"_FORMAT":null,"_TYPE":null,"_LEADER":"01914cam 2200493 a 4500","001":["ocn132786677"],"003":["OCoLC"],"005":["20070605101501.0"],"008":["060801s2005 ko a b 000 0 eng d"],"040":[{"__":[{"a":"CUI"},{"c":"SMFRE"}]}],"066":[{"__":[{"c":"$1"}]}],"020":[{"__":[{"a":"8986090236"}]},{"__":[{"a":"9788986090239"}]}],"035":[{"__":[{"a":"(OCoLC)132786677"}]},{"__":[{"a":"(CStRLIN)DCFO06-B1570"}]}],"041":[{"1_":[{"a":"eng"},{"h":"kor"}]}],"043":[{"__":[{"a":"a-kr---"}]}],"079":[{"__":[{"a":"ocm69375356"}]}],"090":[{"__":[{"a":"NK7984.6.A1"},{"b":"F73 2005"}]}],"049":[{"__":[{"a":"OCLC"}]}],"245":[{"00":[{"6":"880-01"},{"a":"Fragrance of Korea :"},{"b":"the ancient gilt-bronze incense burner of Baekje=Paekche Kŭmdong Taehyangno /"},{"c":"[edited by Korea Foundation]."}]}],"246":[{"31":[{"6":"880-02"},{"a":"Paekche Kŭmdong taehyangno"}]}],"260":[{"__":[{"a":"Seoul, Korea :"},{"b":"The Korea Foundation,"},{"c":"2005."}]}],"300":[{"__":[{"a":"144 p. :"},{"b":"col. ill. ;"},{"c":"31 cm."}]}],"500":[{"__":[{"a":""Photography by Han Seok-hong Photo Studio, Translated by Miwha Stevenson ..., Content edited by Yi Song-mi ..., Copyedited (English) by Rose E. Lee"--P. facing t.p."}]}],"504":[{"__":[{"a":"Includes bibliographical references."}]}],"650":[{"_0":[{"6":"880-03"},{"a":"Kŭmdong taehyangno."}]},{"_0":[{"a":"Gilt bronzes, Korean"},{"y":"To 935."}]},{"_0":[{"a":"Incense burners and containers"},{"z":"Korea."}]}],"651":[{"_0":[{"6":"880-04"},{"a":"Paekche (Kingdom)"},{"x":"Antiquities."}]}],"700":[{"1_":[{"a":"Stevenson, Miwha."}]},{"1_":[{"a":"Sŏng-mi, Yi."}]},{"1_":[{"a":"Lee, Rose E."}]}],"710":[{"2_":[{"a":"Han Seok-hong Photo Studio."}]},{"2_":[{"6":"880-05"},{"a":"Hanʼguk Kukche Kyoryu Chaedan."}]}],"852":[{"0_":[{"a":"DSI-F"},{"b":"main"},{"h":"NK7984.6.A1"},{"i":"F73 2005"}]}],"880":[{"00":[{"6":"245-01/$1"},{"a":"Fragrance of Korea :"},{"b":"the ancient gilt-bronze incense burner of Baekje=백제금동대향로 /"},{"c":"[edited by Korea Foundation]."}]},{"31":[{"6":"246-02/$1"}]},{"_0":[{"6":"650-03/$1"},{"a":"금동대향로."}]},{"_4":[{"6":"651-04/$1"},{"a":"백제 (Kingdom)"},{"x":"Antiquities."}]},{"2_":[{"6":"710-05/$1"},{"a":"한국국제교류재단."}]}],"901":[{"__":[{"a":"*bn=main;"}]}],"903":[{"__":[{"c":"c. 1"}]}],"994":[{"__":[{"a":"C0"},{"b":"OCL"}]}]} +{"_FORMAT":null,"_TYPE":null,"_LEADER":"01246nam 2200373 a 4500","001":["ocn125170297"],"003":["OCoLC"],"005":["20070605101501.0"],"008":["060919s2006 cc a 000 0 chi "],"040":[{"__":[{"a":"CaOTRM"},{"b":"eng"},{"c":"RON"}]}],"066":[{"__":[{"c":"$1"}]}],"020":[{"__":[{"a":"750101843X"}]},{"__":[{"a":"9787501018437"}]}],"035":[{"__":[{"a":"(OCoLC)125170297"}]},{"__":[{"a":"(CStRLIN)ONRO06-B481"}]}],"050":[{"_4":[{"a":"NK1483.A1"},{"b":"J56 2006"}]}],"079":[{"__":[{"a":"ocm71289809"}]}],"090":[{"__":[{"a":"NK1483.A1"},{"b":"J56 2006"}]}],"049":[{"__":[{"a":"OCLC"}]}],"100":[{"1_":[{"6":"880-01"},{"a":"Jin, Zhu"}]}],"245":[{"10":[{"6":"880-02"},{"a":"Fu Lu Shou Xi Da Guan/"},{"c":"Jin Zhu, Wang Zhijun Bian zhu."}]}],"260":[{"__":[{"6":"880-03"},{"a":"Beijing :"},{"b":"Wen wu chu ban she,"},{"c":"2006"}]}],"300":[{"__":[{"a":"ii, 229p."},{"b":"ill. ;"},{"c":"26cm."}]}],"650":[{"_0":[{"a":"Chinese language"},{"x":"Calligraphy study."}]},{"_0":[{"a":"Chinese language"},{"x":["Writing","History"]}]},{"_0":[{"a":"Festivals"},{"z":"China"}]}],"651":[{"_0":[{"a":"China"},{"x":"Social life and custom"}]}],"700":[{"1_":[{"a":"Wang, Zhijun."}]}],"852":[{"0_":[{"a":"CaOTRM"},{"b":"CaOTRMF"},{"h":"NK1483.A1"},{"i":"J56 2006"},{"x":"CIN=KMW; OID=KMW"}]}],"880":[{"1_":[{"6":"100-01/$1"}]},{"10":[{"6":"245-02/$1"},{"a":"福禄寿喜大观/"},{"c":"金铢,王志军编著."}]},{"__":[{"6":"260-03/$1"},{"a":"北京 :"},{"b":"文物出版社,"},{"c":"2006"}]}],"906":[{"__":[{"a":"NK1483 .A1 J56 2006"},{"i":"31761066877267"},{"m":"ROM"},{"l":"ROMFAREAST"},{"t":"BOOK"}]}],"994":[{"__":[{"a":"C0"},{"b":"OCL"}]}]} \ No newline at end of file diff --git a/src/test/resources/org/xbib/marc/0.xml b/src/test/resources/org/xbib/marc/0.xml index ee2bcc1..32dcb4d 100644 --- a/src/test/resources/org/xbib/marc/0.xml +++ b/src/test/resources/org/xbib/marc/0.xml @@ -1,126 +1,130 @@ - + + - 01737nam 22004334a 4500 - ocn137607921 + 01626cam 2200445 a 4500 + ocn132792681 OCoLC 20070605101501.0 - 060223s2004 ye b 000 0 ara - - 2005311567 - + 060314s2004 ja a b 001 0 jpn d - DLC-R - NYP + LWU + SMFRE - (3 + $1 + + + 4784212078 + + + 9784784212071 - (OCoLC)137607921 + (OCoLC)132792681 - (CStRLIN)NYPN06-B180 + (CStRLIN)DCFO06-B527 - - lcode - pcc + + jpn + eng - ma----- - - - PJ7538 - .L57 2004 + a-ja--- - ocm60522147 + ocm56902747 + + + 750.21 + njb - *OEM 06-1987 + NK1071 + .A87 2004 OCLC 880-01 - Liqāʼāt wa-shahādāt adabīyah / - Najīb Maḥfūẓ ... [et al.] ; ajrá al-liqāʼāt Ḥasan ʻAlī Mijallī. + Ātsu ando kurafutsu to Nihon = + The arts & crafts movement and Japan / + Dezainshi Fōramu hen ; Fujita Haruhiko sekinin henshū. - - 880-02 - al-Ṭabʻah 1. + + Arts & crafts movement and Japan - 880-03 - Ṣanʻāʼ : - Markaz ʻAbbādī lil-Dirāsāt wa-al-Nashr, + 880-02 + Kyōto-shi : + Shibunkaku Shuppan, 2004. - 153 p. ; - 23 cm. + 288 p. : + ill. ; + 21 cm. - - 880-04 - Maktabat al-dirāsāt al-fikrīyah wa-al-naqdīyah + + Includes index. + + + Summary in English. Includes bibliographical references. - - In Arabic. + + Arts and crafts movement + Japan. - Arabic literature - 20th century - History and criticism. - - - Authors, Arab - 20th century - Interviews. - - - Intellectuals - Arab countries - Interviews. + Folk art + Japan. - Maḥfūẓ, Najīb, - 1911- + 880-03 + Fujita, Haruhiko, + 1951- - - Mijallī, Ḥasan ʻAlī. + + 880-04 + Dezainshi Fōramu. - - New York Public Library - ho - *OEM 06-1987 - OID=AME;CIN=GYG + + DSI-F + main + NK1071 + .A87 2004 + CIN=hr; OID=hr - 245-01/(3/r - &#x200F;لقاءات وشهادات أدبية /&#x200F; - &#x200F;نجيب محفوظ ... [et al.] ؛ أجرى اللقاءات حسن علي مجلي. + 245-01/$1 + アーツ・アンド・クラフツと日本 = + The arts & crafts movement and Japan / + デザイン史フォーラム編 ; 藤田治彦責任編集. - 250-02/(3/r - &#x200F;الطبعة 1. + 260-02/$1 + 京都市 : + 思文閣出版, + 2004. - - 260-03/(3/r - &#x200F;صنعاء :&#x200F; - &#x200F;2004. + + 700-03/$1 + 藤田治彦, + 1951- - - 440-04/(3/r + + 710-04/$1 + デザイン史フォーラム. - - *OEM 06-1987 - 33433069567414 - ho - - - 002 + + *bn=main;ov=.B1748129; + + + c. 1 C0 @@ -128,181 +132,139 @@ - 02647cas 2200589 a 4500 - ocn124081299 + 01914cam 2200493 a 4500 + ocn132786677 OCoLC 20070605101501.0 - 970414c19789999iluqr p g 0 a0eng d - - 86641268 - sn 84012219 - + 060801s2005 ko a b 000 0 eng d - ICD-L - FC0 + CUI + SMFRE - - 0897-1277 - 0022-6793 + + $1 - - 399610 - USPS + + 8986090236 + + + 9788986090239 - (OCoLC)124081299 + (OCoLC)132786677 - (CStRLIN)NYHL97-S162 + (CStRLIN)DCFO06-B1570 - - lc - nsdp + + eng + kor - n-us--- - - - K10 - .U67 + a-kr--- - ocm05266384 + ocm69375356 - - 344/.095/05 - - - 342.49505 - 19 + + NK7984.6.A1 + F73 2005 OCLC - - Jurimetrics - (Chic. Ill.) - - - Jurimetrics - (Chicago, Ill.) - - Jurimetrics. + 880-01 + Fragrance of Korea : + the ancient gilt-bronze incense burner of Baekje=Paekche Kŭmdong Taehyangno / + [edited by Korea Foundation]. - - Jurimetrics journal of law, science and technology - <fall 1991-> - - - Jurimetrics journal - 1978- + + 880-02 + Paekche Kŭmdong taehyangno - Chicago, Ill. : - Section of Science & Technology, American Bar Association, - c1979- + Seoul, Korea : + The Korea Foundation, + 2005. - v. : - ill. ; - 23 cm. - - - Quarterly - - - Vol. 19, no. 2 (winter 1978)- + 144 p. : + col. ill. ; + 31 cm. - Title from cover. + "Photography by Han Seok-hong Photo Studio, Translated by Miwha Stevenson ..., Content edited by Yi Song-mi ..., Copyedited (English) by Rose E. Lee"--P. facing t.p. - - "Journal of law, science and technology." - - - Index to legal periodicals - 0019-4077 - - - Legal resource index - 1980- - - - Computer & control abstracts - 0036-8113 - winter 1978- - - - Electrical & electronics abstracts - 0036-8105 - winter 1978- - - - Physics abstracts - 0036-8091 - winter 1978- - - - Special issue for 1979 called also v. 19, no. 5. - - - Special issue 1979 contains proceedings of the Section's annual meeting. - - - Vols. for spring 1985-winter 1986 issued by: American Bar Association Section of Science and Technology and the Arizona State University College of Law; spring 1986-<fall 1987> by the American Bar Association Section of Science and Technology, and the Center for the Study of Law, Science, and Technology of the Arizona State University College of Law. + + Includes bibliographical references. - Science and law - United States - Periodicals. + 880-03 + Kŭmdong taehyangno. - Technology and law - United States - Periodicals. + Gilt bronzes, Korean + To 935. - Judicial process - United States - Periodicals. + Incense burners and containers + Korea. - - Legal research - Data processing - United States - Periodicals. + + 880-04 + Paekche (Kingdom) + Antiquities. - - Information storage and retrieval systems - Law - United States - Periodicals. + + Stevenson, Miwha. + + + Sŏng-mi, Yi. + + + Lee, Rose E. - American Bar Association. - Section of Science and Technology. + Han Seok-hong Photo Studio. - Arizona State University. - College of Law. + 880-05 + Hanʼguk Kukche Kyoryu Chaedan. - - Arizona State University. - Center for the Study of Law, Science, and Technology. + + DSI-F + main + NK7984.6.A1 + F73 2005 - - Jurimetrics journal - 0022-6793 - (DLC) 92657369 - (OCoLC)1754902 + + 245-01/$1 + Fragrance of Korea : + the ancient gilt-bronze incense burner of Baekje=백제금동대향로 / + [edited by Korea Foundation]. - - NNHHR - MAIN - \PER - 1 - OID=CCS + + 246-02/$1 + + + 650-03/$1 + 금동대향로. + + + 651-04/$1 + 백제 (Kingdom) + Antiquities. + + + 710-05/$1 + 한국국제교류재단. + + + *bn=main; + + + c. 1 C0 @@ -310,105 +272,112 @@ - 01347cam 2200373 i 4500 - ocn135450843 + 01246nam 2200373 a 4500 + ocn125170297 OCoLC 20070605101501.0 - 850910s1976 caua bc 001 0 eng d - - 76013691 - + 060919s2006 cc a 000 0 chi - UBY - UBY + CaOTRM + eng + RON + + + $1 - 0875870708 : - $5.00 + 750101843X - 9780875870700 + 9787501018437 - (OCoLC)135450843 + (OCoLC)125170297 - (UPB)notisADN0346 + (CStRLIN)ONRO06-B481 - - (CStRLIN)UTBG85-B43642 - - - n-us--- - - - N6538.N5 - D74 + + NK1483.A1 + J56 2006 - ocm02318292 - ocm02550323 - ocm03890870 - - - 709/.73 + ocm71289809 - N6538 - .N5\D74 + NK1483.A1 + J56 2006 OCLC - Driskell, David C. + 880-01 + Jin, Zhu - Two centuries of Black American art : - [exhibition], Los Angeles County Museum of Art, the High Museum of Art, Atlanta, Museum of Fine Arts, Dallas, the Brooklyn Museum / - David C. Driskell ; with catalog notes by Leonard Simon. - - - 1st ed. + 880-02 + Fu Lu Shou Xi Da Guan/ + Jin Zhu, Wang Zhijun Bian zhu. - [Los Angeles] : - Los Angeles County Museum of Art ; - New York : - Knopf : - distributed by Random House, - 1976. + 880-03 + Beijing : + Wen wu chu ban she, + 2006 - 221 p. : - ill. (some col.) ; - 28 cm. - - - Bibliography: p. 206-219. - - - Includes index. + ii, 229p. + ill. ; + 26cm. - Afro-American art - Exhibitions. + Chinese language + Calligraphy study. + + + Chinese language + Writing + History + + + Festivals + China + + + China + Social life and custom - Simon, Leonard, - 1936- + Wang, Zhijun. - - Los Angeles County Museum of Art. + + CaOTRM + CaOTRMF + NK1483.A1 + J56 2006 + CIN=KMW; OID=KMW - - UPB - MAN - N6538 - .N5\D74 - c.1 001 - c.2 002 - OID=SYL + + 100-01/$1 + + + 245-02/$1 + 福禄寿喜大观/ + 金铢,王志军编著. + + + 260-03/$1 + 北京 : + 文物出版社, + 2006 + + + NK1483 .A1 J56 2006 + 31761066877267 + ROM + ROMFAREAST + BOOK C0 diff --git a/src/test/resources/org/xbib/marc/1.json b/src/test/resources/org/xbib/marc/1.json new file mode 100644 index 0000000..79ac9a3 --- /dev/null +++ b/src/test/resources/org/xbib/marc/1.json @@ -0,0 +1,3 @@ +{"_FORMAT":null,"_TYPE":null,"_LEADER":"01737nam 22004334a 4500","001":["ocn137607921"],"003":["OCoLC"],"005":["20070605101501.0"],"008":["060223s2004 ye b 000 0 ara "],"010":[{"__":[{"a":" 2005311567"}]}],"040":[{"__":[{"a":"DLC-R"},{"c":"NYP"}]}],"066":[{"__":[{"c":"(3"}]}],"035":[{"__":[{"a":"(OCoLC)137607921"}]},{"__":[{"a":"(CStRLIN)NYPN06-B180"}]}],"042":[{"__":[{"a":["lcode","pcc"]}]}],"043":[{"__":[{"a":"ma-----"}]}],"050":[{"00":[{"a":"PJ7538"},{"b":".L57 2004"}]}],"079":[{"__":[{"a":"ocm60522147"}]}],"090":[{"__":[{"a":"*OEM 06-1987"}]}],"049":[{"__":[{"a":"OCLC"}]}],"245":[{"00":[{"6":"880-01"},{"a":"Liqāʼāt wa-shahādāt adabīyah /"},{"c":"Najīb Maḥfūẓ ... [et al.] ; ajrá al-liqāʼāt Ḥasan ʻAlī Mijallī."}]}],"250":[{"__":[{"6":"880-02"},{"a":"al-Ṭabʻah 1."}]}],"260":[{"__":[{"6":"880-03"},{"a":"Ṣanʻāʼ :"},{"b":"Markaz ʻAbbādī lil-Dirāsāt wa-al-Nashr,"},{"c":"2004."}]}],"300":[{"__":[{"a":"153 p. ;"},{"c":"23 cm."}]}],"440":[{"_0":[{"6":"880-04"},{"a":"Maktabat al-dirāsāt al-fikrīyah wa-al-naqdīyah"}]}],"504":[{"__":[{"a":"Includes bibliographical references."}]}],"546":[{"__":[{"a":"In Arabic."}]}],"650":[{"_0":[{"a":"Arabic literature"},{"y":"20th century"},{"v":"History and criticism."}]},{"_0":[{"a":"Authors, Arab"},{"y":"20th century"},{"v":"Interviews."}]},{"_0":[{"a":"Intellectuals"},{"z":"Arab countries"},{"v":"Interviews."}]}],"700":[{"1_":[{"a":"Maḥfūẓ, Najīb,"},{"d":"1911-"}]},{"1_":[{"a":"Mijallī, Ḥasan ʻAlī."}]}],"852":[{"8_":[{"a":"New York Public Library"},{"b":"ho"},{"h":"*OEM 06-1987"},{"x":"OID=AME;CIN=GYG"}]}],"880":[{"00":[{"6":"245-01/(3/r"},{"a":"‏لقاءات وشهادات أدبية /‏"},{"c":"‏نجيب محفوظ ... [et al.] ؛ أجرى اللقاءات حسن علي مجلي."}]},{"__":[{"6":"250-02/(3/r"},{"a":"‏الطبعة 1."}]},{"__":[{"6":"260-03/(3/r"},{"a":"‏صنعاء :‏"},{"c":"‏2004."}]},{"_0":[{"6":"440-04/(3/r"}]}],"901":[{"_1":[{"a":"*OEM 06-1987"},{"i":"33433069567414"},{"l":"ho"},{"s":"-"},{"t":"002"}]}],"994":[{"__":[{"a":"C0"},{"b":"OCL"}]}]} +{"_FORMAT":null,"_TYPE":null,"_LEADER":"02647cas 2200589 a 4500","001":["ocn124081299"],"003":["OCoLC"],"005":["20070605101501.0"],"008":["970414c19789999iluqr p g 0 a0eng d"],"010":[{"__":[{"a":" 86641268 "},{"z":"sn 84012219 "}]}],"040":[{"__":[{"a":"ICD-L"},{"c":"FC0"}]}],"022":[{"0_":[{"a":"0897-1277"},{"y":"0022-6793"}]}],"032":[{"__":[{"a":"399610"},{"b":"USPS"}]}],"035":[{"__":[{"a":"(OCoLC)124081299"}]},{"__":[{"a":"(CStRLIN)NYHL97-S162"}]}],"042":[{"__":[{"a":["lc","nsdp"]}]}],"043":[{"__":[{"a":"n-us---"}]}],"050":[{"0_":[{"a":"K10"},{"b":".U67"}]}],"079":[{"__":[{"a":"ocm05266384"}]}],"082":[{"0_":[{"a":"344/.095/05"}]},{"__":[{"a":"342.49505"},{"2":"19"}]}],"049":[{"__":[{"a":"OCLC"}]}],"210":[{"0_":[{"a":"Jurimetrics"},{"b":"(Chic. Ill.)"}]}],"222":[{"_0":[{"a":"Jurimetrics"},{"b":"(Chicago, Ill.)"}]}],"245":[{"00":[{"a":"Jurimetrics."}]}],"246":[{"13":[{"a":"Jurimetrics journal of law, science and technology"},{"f":""}]},{"13":[{"a":"Jurimetrics journal"},{"f":"1978-"}]}],"260":[{"__":[{"a":"Chicago, Ill. :"},{"b":"Section of Science & Technology, American Bar Association,"},{"c":"c1979-"}]}],"300":[{"__":[{"a":"v. :"},{"b":"ill. ;"},{"c":"23 cm."}]}],"310":[{"__":[{"a":"Quarterly"}]}],"362":[{"0_":[{"a":"Vol. 19, no. 2 (winter 1978)-"}]}],"500":[{"__":[{"a":"Title from cover."}]},{"__":[{"a":""Journal of law, science and technology.""}]}],"510":[{"1_":[{"a":"Index to legal periodicals"},{"x":"0019-4077"}]},{"1_":[{"a":"Legal resource index"},{"b":"1980-"}]},{"2_":[{"a":"Computer & control abstracts"},{"x":"0036-8113"},{"b":"winter 1978-"}]},{"2_":[{"a":"Electrical & electronics abstracts"},{"x":"0036-8105"},{"b":"winter 1978-"}]},{"2_":[{"a":"Physics abstracts"},{"x":"0036-8091"},{"b":"winter 1978-"}]}],"515":[{"__":[{"a":"Special issue for 1979 called also v. 19, no. 5."}]}],"525":[{"__":[{"a":"Special issue 1979 contains proceedings of the Section's annual meeting."}]}],"550":[{"__":[{"a":"Vols. for spring 1985-winter 1986 issued by: American Bar Association Section of Science and Technology and the Arizona State University College of Law; spring 1986- by the American Bar Association Section of Science and Technology, and the Center for the Study of Law, Science, and Technology of the Arizona State University College of Law."}]}],"650":[{"_0":[{"a":"Science and law"},{"z":"United States"},{"x":"Periodicals."}]},{"_0":[{"a":"Technology and law"},{"z":"United States"},{"x":"Periodicals."}]},{"_0":[{"a":"Judicial process"},{"z":"United States"},{"x":"Periodicals."}]},{"_0":[{"a":"Legal research"},{"x":["Data processing","Periodicals."]},{"z":"United States"}]},{"_0":[{"a":"Information storage and retrieval systems"},{"x":["Law","Periodicals."]},{"z":"United States"}]}],"710":[{"2_":[{"a":"American Bar Association."},{"b":"Section of Science and Technology."}]},{"2_":[{"a":"Arizona State University."},{"b":"College of Law."}]},{"2_":[{"a":"Arizona State University."},{"b":"Center for the Study of Law, Science, and Technology."}]}],"780":[{"00":[{"t":"Jurimetrics journal"},{"x":"0022-6793"},{"w":["(DLC) 92657369","(OCoLC)1754902"]}]}],"852":[{"__":[{"a":"NNHHR"},{"b":"MAIN"},{"j":"\PER"},{"t":"1"},{"x":"OID=CCS"}]}],"994":[{"__":[{"a":"C0"},{"b":"OCL"}]}]} +{"_FORMAT":null,"_TYPE":null,"_LEADER":"01347cam 2200373 i 4500","001":["ocn135450843"],"003":["OCoLC"],"005":["20070605101501.0"],"008":["850910s1976 caua bc 001 0 eng d"],"010":[{"__":[{"a":" 76013691 "}]}],"040":[{"__":[{"a":"UBY"},{"c":"UBY"}]}],"020":[{"__":[{"a":"0875870708 :"},{"c":"$5.00"}]},{"__":[{"a":"9780875870700"}]}],"035":[{"__":[{"a":"(OCoLC)135450843"}]},{"__":[{"a":"(UPB)notisADN0346"}]},{"__":[{"a":"(CStRLIN)UTBG85-B43642"}]}],"043":[{"__":[{"a":"n-us---"}]}],"050":[{"0_":[{"a":"N6538.N5"},{"b":"D74"}]}],"079":[{"__":[{"a":"ocm02318292"},{"z":["ocm02550323","ocm03890870"]}]}],"082":[{"__":[{"a":"709/.73"}]}],"090":[{"__":[{"a":"N6538"},{"b":".N5\D74"}]}],"049":[{"__":[{"a":"OCLC"}]}],"100":[{"1_":[{"a":"Driskell, David C."}]}],"245":[{"10":[{"a":"Two centuries of Black American art :"},{"b":"[exhibition], Los Angeles County Museum of Art, the High Museum of Art, Atlanta, Museum of Fine Arts, Dallas, the Brooklyn Museum /"},{"c":"David C. Driskell ; with catalog notes by Leonard Simon."}]}],"250":[{"__":[{"a":"1st ed."}]}],"260":[{"__":[{"a":["[Los Angeles] :","New York :"]},{"b":["Los Angeles County Museum of Art ;","Knopf :","distributed by Random House,"]},{"c":"1976."}]}],"300":[{"__":[{"a":"221 p. :"},{"b":"ill. (some col.) ;"},{"c":"28 cm."}]}],"504":[{"__":[{"a":"Bibliography: p. 206-219."}]}],"500":[{"__":[{"a":"Includes index."}]}],"650":[{"_0":[{"a":"Afro-American art"},{"x":"Exhibitions."}]}],"700":[{"1_":[{"a":"Simon, Leonard,"},{"d":"1936-"}]}],"710":[{"2_":[{"a":"Los Angeles County Museum of Art."}]}],"852":[{"__":[{"a":"UPB"},{"b":"MAN"},{"h":"N6538"},{"i":".N5\D74"},{"x":["c.1 001","c.2 002","OID=SYL"]}]}],"994":[{"__":[{"a":"C0"},{"b":"OCL"}]}]} \ No newline at end of file diff --git a/src/test/resources/org/xbib/marc/1.xml b/src/test/resources/org/xbib/marc/1.xml index b5bbca4..ee2bcc1 100644 --- a/src/test/resources/org/xbib/marc/1.xml +++ b/src/test/resources/org/xbib/marc/1.xml @@ -1,90 +1,126 @@ - 01215cam 2200313 a 4500 - ocn137458539 + 01737nam 22004334a 4500 + ocn137607921 OCoLC 20070605101501.0 - 900119s1974 maua 100 0 eng d + 060223s2004 ye b 000 0 ara - 74081739 + 2005311567 - MSR - MSR + DLC-R + NYP + + + (3 - (OCoLC)137458539 + (OCoLC)137607921 - (CStRLIN)MOSA90-B178 + (CStRLIN)NYPN06-B180 - - F61 - .C71 vol. 48 - NK2438.B6 + + lcode + pcc + + + ma----- + + + PJ7538 + .L57 2004 - ocm01364905 - ocm06844451 + ocm60522147 - NK2438.B6 - B68 1974 + *OEM 06-1987 OCLC - Boston furniture of the eighteenth century : - a conference held by the Colonial Society of Massachusetts, 11 and 12 May 1972. + 880-01 + Liqāʼāt wa-shahādāt adabīyah / + Najīb Maḥfūẓ ... [et al.] ; ajrá al-liqāʼāt Ḥasan ʻAlī Mijallī. + + + 880-02 + al-Ṭabʻah 1. - Boston : - Colonial Society of Massachusetts ; - [Charlottesville] : - distributed by the University Press of Virginia, - c1974. + 880-03 + Ṣanʻāʼ : + Markaz ʻAbbādī lil-Dirāsāt wa-al-Nashr, + 2004. - xvi, 316 p. : - ill. ; - 25 cm. + 153 p. ; + 23 cm. - Publications of the Colonial Society of Massachusetts ; - v. 48 + 880-04 + Maktabat al-dirāsāt al-fikrīyah wa-al-naqdīyah - - Bibliography: p. 303-305. + + Includes bibliographical references. - - Includes index. + + In Arabic. - Furniture, Colonial - Massachusetts - Boston - Congresses. + Arabic literature + 20th century + History and criticism. - Furniture, Early American - Massachusetts - Boston - Congresses. + Authors, Arab + 20th century + Interviews. - - Colonial Society of Massachusetts. + + Intellectuals + Arab countries + Interviews. - - MoSR - STK - NK2438.B6 - B68 1974 - 21260 - CIN=MLC; OID=MLC + + Maḥfūẓ, Najīb, + 1911- - - R + + Mijallī, Ḥasan ʻAlī. + + + New York Public Library + ho + *OEM 06-1987 + OID=AME;CIN=GYG + + + 245-01/(3/r + &#x200F;لقاءات وشهادات أدبية /&#x200F; + &#x200F;نجيب محفوظ ... [et al.] ؛ أجرى اللقاءات حسن علي مجلي. + + + 250-02/(3/r + &#x200F;الطبعة 1. + + + 260-03/(3/r + &#x200F;صنعاء :&#x200F; + &#x200F;2004. + + + 440-04/(3/r + + + *OEM 06-1987 + 33433069567414 + ho + - + 002 C0 @@ -92,230 +128,287 @@ - 01731cam 2200457 a 4500 - ocn124411460 + 02647cas 2200589 a 4500 + ocn124081299 OCoLC 20070605101501.0 - 070222s2007 is a b 001 0ceng d + 970414c19789999iluqr p g 0 a0eng d + + 86641268 + sn 84012219 + - NNYI - VXJ + ICD-L + FC0 - - (2 + + 0897-1277 + 0022-6793 - - 9652293865 - - - 9789652293862 + + 399610 + USPS - (OCoLC)124411460 + (OCoLC)124081299 - (CStRLIN)NYJH07-B409 + (CStRLIN)NYHL97-S162 - - eng - heb + + lc + nsdp - e-hu--- - a-is--- + n-us--- - - DS135.H93 - A147313 2007 + + K10 + .U67 - ocm85564516 + ocm05266384 + + + 344/.095/05 + + + 342.49505 + 19 + + + OCLC + + + Jurimetrics + (Chic. Ill.) + + + Jurimetrics + (Chicago, Ill.) + + + Jurimetrics. + + + Jurimetrics journal of law, science and technology + <fall 1991-> + + + Jurimetrics journal + 1978- + + + Chicago, Ill. : + Section of Science & Technology, American Bar Association, + c1979- + + + v. : + ill. ; + 23 cm. + + + Quarterly + + + Vol. 19, no. 2 (winter 1978)- + + + Title from cover. + + + "Journal of law, science and technology." + + + Index to legal periodicals + 0019-4077 + + + Legal resource index + 1980- + + + Computer & control abstracts + 0036-8113 + winter 1978- + + + Electrical & electronics abstracts + 0036-8105 + winter 1978- + + + Physics abstracts + 0036-8091 + winter 1978- + + + Special issue for 1979 called also v. 19, no. 5. + + + Special issue 1979 contains proceedings of the Section's annual meeting. + + + Vols. for spring 1985-winter 1986 issued by: American Bar Association Section of Science and Technology and the Arizona State University College of Law; spring 1986-<fall 1987> by the American Bar Association Section of Science and Technology, and the Center for the Study of Law, Science, and Technology of the Arizona State University College of Law. + + + Science and law + United States + Periodicals. + + + Technology and law + United States + Periodicals. + + + Judicial process + United States + Periodicals. + + + Legal research + Data processing + United States + Periodicals. + + + Information storage and retrieval systems + Law + United States + Periodicals. + + + American Bar Association. + Section of Science and Technology. + + + Arizona State University. + College of Law. + + + Arizona State University. + Center for the Study of Law, Science, and Technology. + + + Jurimetrics journal + 0022-6793 + (DLC) 92657369 + (OCoLC)1754902 + + + NNHHR + MAIN + \PER + 1 + OID=CCS + + + C0 + OCL + + + + 01347cam 2200373 i 4500 + ocn135450843 + OCoLC + 20070605101501.0 + 850910s1976 caua bc 001 0 eng d + + 76013691 + + + UBY + UBY + + + 0875870708 : + $5.00 + + + 9780875870700 + + + (OCoLC)135450843 + + + (UPB)notisADN0346 + + + (CStRLIN)UTBG85-B43642 + + + n-us--- + + + N6538.N5 + D74 + + + ocm02318292 + ocm02550323 + ocm03890870 + + + 709/.73 - DS135.H93 - A14513 2007 + N6538 + .N5\D74 OCLC - Gur, David, - 1926- - - - 880-01 - Aḥim le-hitnagdut ule-hatsalah. - English + Driskell, David C. - Brothers for resistance and rescue : - the underground Zionist youth movement in Hungary during World War II / - David Gur ; edited by Eli Netzer ; translated by Pamela Segev & Avri Fischer. + Two centuries of Black American art : + [exhibition], Los Angeles County Museum of Art, the High Museum of Art, Atlanta, Museum of Fine Arts, Dallas, the Brooklyn Museum / + David C. Driskell ; with catalog notes by Leonard Simon. - Enlarged and revised ed. + 1st ed. - Jerusalem : - Gefen, - 2007. + [Los Angeles] : + Los Angeles County Museum of Art ; + New York : + Knopf : + distributed by Random House, + 1976. - 270 p. : - ill. ; - 28 p. - - - Introduction by Randolph L. Brahan. + 221 p. : + ill. (some col.) ; + 28 cm. - Includes bibliographical references (p. 261-264) and index. - - - Jews - Hungary - Biography. - - - Jewish youth - Hungary - Biography. - - - Zionism - Hungary - History - 20th century. - - - World War, 1939-1945 - Jewish resistance - Hungary. - - - Jews, Hungarian - Israel - Biography. - - - Holocaust survivors - Israel - Biography. - - - Netser, Eli. - - - Segev, Pamela. - - - Fischer, Avri. - - - Library of the Jewish Theological Seminary - JT1 - MAIN - OVERSIZE - DS135.H93 - A14513 2007 - 31407002756237 - CIN=RL; OID=RL - - - 240-01/(2/r - &#x200F;אחים להתנגדות ולהצלה.&#x200F; - &#x200F;English - - - C0 - OCL - - - - 02310cjm 2200349 a 4500 - ocn131225106 - OCoLC - 20070605101501.0 - sd |||gnammned - 051219p2004 sa mun g l mul d - - CtY - YUS - - - ACM-CD023/3 - African Cream Music - - - (OCoLC)131225106 - - - (CtY)7143913 - - - (CStRLIN)CTYA7143913-R - - - eng - xho - - - f-sa--- - - - ML3760 - .W55 2004 - - - ocm64169861 - - - ML3760 - .W55 2004 (LC) - - - OCLC - - - The winds of change - [sound recording] : - [a journey through the key music and moments that gave birth to a free, democratic South Africa]. - - - [South Africa?] : - African Cream Music, - 2004. - - - 2 sound discs : - digital ; - 4 3/4 in. + - 1 booklet + Bibliography: p. 206-219. - Compact discs. - - - Subtitle from booklet. - - - Various artists. - - - CD. 1. Nkosi sikelel' iAfrika (Tumelo Maloi) -- Winds of change (Harold Macmillan) -- Zono zam (Dorothy Masuka) -- Nobel Prize Award (Chief Albert Luthuli) -- Zandile (Jazz Ministers) -- Rivonia trial speech (Nelson Mandela) -- Woza ANC (Freedom Choir, ACFC) -- Ag pleez deddy (Jeremy Taylor) -- Kalamazoo (Pops Mohamed) -- Fight to the end (JB Vorster) -- Joyin umkhonto wesizwe (ACFC) -- Burnout (Sipho "Hotstix" Mabuse) -- Total onslaught (PW Botha) -- State of emergency (Amampondo) -- Paradise road (Joy) -- AWB speech (Eugene Terreblanche) -- Slovo no tambo (ACFC) -- Bayeza (Soul Brothers) -- Tsoha/vuka (ACFC) -- Asimbonanga (Jonny Clegg) -- CD. 2. Whispers in the deep (Stimela) -- Thula Sizwe (ACFC) -- Halala Afrika (Johannes Kerkorrel) -- Papa stop the war (Chicco) -- Unbanning speech (FW De Klerk) -- Shosholoza (ACFCA) -- Bring him back home (Hugh Masekela) -- Inauguration speech (Nelson Mandela) -- Man of the world (Yvonne Chaka Chaka) -- Neva again (Prophets of Da City) -- Waar was jy (Skeem) -- I am an African (Thabo Mbeki) -- Power of Africa (Yvonne Chaka Chaka) -- Yehlisan umoya ma-Afrika (Busi Mhlongo) -- Sabela (Sibongile Khumalo) -- Inauguration speech (Nelson Mandela) -- Nkosi sikelel' iAfrika (ACFC). + Includes index. - Music - African. + Afro-American art + Exhibitions. - - Speeches, addresses, etc. + + Simon, Leonard, + 1936- - - CtY - sml - ML3760 - .W55 2004 (LC) + + Los Angeles County Museum of Art. + + + UPB + MAN + N6538 + .N5\D74 + c.1 001 + c.2 002 + OID=SYL C0 diff --git a/src/test/resources/org/xbib/marc/2.json b/src/test/resources/org/xbib/marc/2.json new file mode 100644 index 0000000..84be60a --- /dev/null +++ b/src/test/resources/org/xbib/marc/2.json @@ -0,0 +1,3 @@ +{"_FORMAT":null,"_TYPE":null,"_LEADER":"01215cam 2200313 a 4500","001":["ocn137458539"],"003":["OCoLC"],"005":["20070605101501.0"],"008":["900119s1974 maua 100 0 eng d"],"010":[{"__":[{"a":" 74081739 "}]}],"040":[{"__":[{"a":"MSR"},{"c":"MSR"}]}],"035":[{"__":[{"a":"(OCoLC)137458539"}]},{"__":[{"a":"(CStRLIN)MOSA90-B178"}]}],"050":[{"__":[{"a":["F61","NK2438.B6"]},{"b":".C71 vol. 48"}]}],"079":[{"__":[{"a":"ocm01364905"},{"z":"ocm06844451"}]}],"090":[{"__":[{"a":"NK2438.B6"},{"b":"B68 1974"}]}],"049":[{"__":[{"a":"OCLC"}]}],"245":[{"00":[{"a":"Boston furniture of the eighteenth century :"},{"b":"a conference held by the Colonial Society of Massachusetts, 11 and 12 May 1972."}]}],"260":[{"__":[{"a":["Boston :","[Charlottesville] :"]},{"b":["Colonial Society of Massachusetts ;","distributed by the University Press of Virginia,"]},{"c":"c1974."}]}],"300":[{"__":[{"a":"xvi, 316 p. :"},{"b":"ill. ;"},{"c":"25 cm."}]}],"440":[{"_0":[{"a":"Publications of the Colonial Society of Massachusetts ;"},{"v":"v. 48"}]}],"500":[{"__":[{"a":"Bibliography: p. 303-305."}]},{"__":[{"a":"Includes index."}]}],"650":[{"_0":[{"a":"Furniture, Colonial"},{"z":["Massachusetts","Boston"]},{"x":"Congresses."}]},{"_0":[{"a":"Furniture, Early American"},{"z":["Massachusetts","Boston"]},{"x":"Congresses."}]}],"710":[{"2_":[{"a":"Colonial Society of Massachusetts."}]}],"852":[{"__":[{"a":"MoSR"},{"b":"STK"},{"h":"NK2438.B6"},{"i":"B68 1974"},{"x":["21260","CIN=MLC; OID=MLC"]}]}],"901":[{"__":[{"a":"R"}]}],"994":[{"__":[{"a":"C0"},{"b":"OCL"}]}]} +{"_FORMAT":null,"_TYPE":null,"_LEADER":"01731cam 2200457 a 4500","001":["ocn124411460"],"003":["OCoLC"],"005":["20070605101501.0"],"008":["070222s2007 is a b 001 0ceng d"],"040":[{"__":[{"a":"NNYI"},{"c":"VXJ"}]}],"066":[{"__":[{"c":"(2"}]}],"020":[{"__":[{"a":"9652293865"}]},{"__":[{"a":"9789652293862"}]}],"035":[{"__":[{"a":"(OCoLC)124411460"}]},{"__":[{"a":"(CStRLIN)NYJH07-B409"}]}],"041":[{"1_":[{"a":"eng"},{"h":"heb"}]}],"043":[{"__":[{"a":["e-hu---","a-is---"]}]}],"050":[{"00":[{"a":"DS135.H93"},{"b":"A147313 2007"}]}],"079":[{"__":[{"a":"ocm85564516"}]}],"090":[{"__":[{"a":"DS135.H93"},{"b":"A14513 2007"}]}],"049":[{"__":[{"a":"OCLC"}]}],"100":[{"1_":[{"a":"Gur, David,"},{"d":"1926-"}]}],"240":[{"10":[{"6":"880-01"},{"a":"Aḥim le-hitnagdut ule-hatsalah."},{"l":"English"}]}],"245":[{"10":[{"a":"Brothers for resistance and rescue :"},{"b":"the underground Zionist youth movement in Hungary during World War II /"},{"c":"David Gur ; edited by Eli Netzer ; translated by Pamela Segev & Avri Fischer."}]}],"250":[{"__":[{"a":"Enlarged and revised ed."}]}],"260":[{"__":[{"a":"Jerusalem :"},{"b":"Gefen,"},{"c":"2007."}]}],"300":[{"__":[{"a":"270 p. :"},{"b":"ill. ;"},{"c":"28 p."}]}],"500":[{"__":[{"a":"Introduction by Randolph L. Brahan."}]}],"504":[{"__":[{"a":"Includes bibliographical references (p. 261-264) and index."}]}],"650":[{"_0":[{"a":"Jews"},{"z":"Hungary"},{"v":"Biography."}]},{"_0":[{"a":"Jewish youth"},{"z":"Hungary"},{"v":"Biography."}]},{"_0":[{"a":"Zionism"},{"z":"Hungary"},{"x":"History"},{"y":"20th century."}]},{"_0":[{"a":"World War, 1939-1945"},{"x":"Jewish resistance"},{"z":"Hungary."}]},{"_0":[{"a":"Jews, Hungarian"},{"z":"Israel"},{"v":"Biography."}]},{"_0":[{"a":"Holocaust survivors"},{"z":"Israel"},{"v":"Biography."}]}],"700":[{"1_":[{"a":"Netser, Eli."}]},{"1_":[{"a":"Segev, Pamela."}]},{"1_":[{"a":"Fischer, Avri."}]}],"852":[{"01":[{"a":"Library of the Jewish Theological Seminary"},{"b":"JT1"},{"c":"MAIN"},{"k":"OVERSIZE"},{"h":"DS135.H93"},{"i":"A14513 2007"},{"p":"31407002756237"},{"x":"CIN=RL; OID=RL"}]}],"880":[{"10":[{"6":"240-01/(2/r"},{"a":"‏אחים להתנגדות ולהצלה.‏"},{"l":"‏English"}]}],"994":[{"__":[{"a":"C0"},{"b":"OCL"}]}]} +{"_FORMAT":null,"_TYPE":null,"_LEADER":"02310cjm 2200349 a 4500","001":["ocn131225106"],"003":["OCoLC"],"005":["20070605101501.0"],"007":["sd |||gnammned"],"008":["051219p2004 sa mun g l mul d"],"040":[{"__":[{"a":"CtY"},{"c":"YUS"}]}],"028":[{"00":[{"a":"ACM-CD023/3"},{"b":"African Cream Music"}]}],"035":[{"__":[{"a":"(OCoLC)131225106"}]},{"__":[{"a":"(CtY)7143913"}]},{"__":[{"a":"(CStRLIN)CTYA7143913-R"}]}],"041":[{"0_":[{"a":["eng","xho"]}]}],"043":[{"__":[{"a":"f-sa---"}]}],"050":[{"_4":[{"a":"ML3760"},{"b":".W55 2004"}]}],"079":[{"__":[{"a":"ocm64169861"}]}],"090":[{"__":[{"a":"ML3760"},{"b":".W55 2004 (LC)"}]}],"049":[{"__":[{"a":"OCLC"}]}],"245":[{"04":[{"a":"The winds of change"},{"h":"[sound recording] :"},{"b":"[a journey through the key music and moments that gave birth to a free, democratic South Africa]."}]}],"260":[{"__":[{"a":"[South Africa?] :"},{"b":"African Cream Music,"},{"c":"2004."}]}],"300":[{"__":[{"a":"2 sound discs :"},{"b":"digital ;"},{"c":"4 3/4 in. +"},{"e":"1 booklet"}]}],"500":[{"__":[{"a":"Compact discs."}]},{"__":[{"a":"Subtitle from booklet."}]}],"511":[{"__":[{"a":"Various artists."}]}],"505":[{"0_":[{"a":"CD. 1. Nkosi sikelel' iAfrika (Tumelo Maloi) -- Winds of change (Harold Macmillan) -- Zono zam (Dorothy Masuka) -- Nobel Prize Award (Chief Albert Luthuli) -- Zandile (Jazz Ministers) -- Rivonia trial speech (Nelson Mandela) -- Woza ANC (Freedom Choir, ACFC) -- Ag pleez deddy (Jeremy Taylor) -- Kalamazoo (Pops Mohamed) -- Fight to the end (JB Vorster) -- Joyin umkhonto wesizwe (ACFC) -- Burnout (Sipho "Hotstix" Mabuse) -- Total onslaught (PW Botha) -- State of emergency (Amampondo) -- Paradise road (Joy) -- AWB speech (Eugene Terreblanche) -- Slovo no tambo (ACFC) -- Bayeza (Soul Brothers) -- Tsoha/vuka (ACFC) -- Asimbonanga (Jonny Clegg) -- CD. 2. Whispers in the deep (Stimela) -- Thula Sizwe (ACFC) -- Halala Afrika (Johannes Kerkorrel) -- Papa stop the war (Chicco) -- Unbanning speech (FW De Klerk) -- Shosholoza (ACFCA) -- Bring him back home (Hugh Masekela) -- Inauguration speech (Nelson Mandela) -- Man of the world (Yvonne Chaka Chaka) -- Neva again (Prophets of Da City) -- Waar was jy (Skeem) -- I am an African (Thabo Mbeki) -- Power of Africa (Yvonne Chaka Chaka) -- Yehlisan umoya ma-Afrika (Busi Mhlongo) -- Sabela (Sibongile Khumalo) -- Inauguration speech (Nelson Mandela) -- Nkosi sikelel' iAfrika (ACFC)."}]}],"650":[{"_0":[{"a":"Music"},{"z":"African."}]},{"_0":[{"a":"Speeches, addresses, etc."}]}],"852":[{"01":[{"a":"CtY"},{"b":"sml"},{"h":"ML3760"},{"i":".W55 2004 (LC)"}]}],"994":[{"__":[{"a":"C0"},{"b":"OCL"}]}]} \ No newline at end of file diff --git a/src/test/resources/org/xbib/marc/2.xml b/src/test/resources/org/xbib/marc/2.xml index aed8d48..b5bbca4 100644 --- a/src/test/resources/org/xbib/marc/2.xml +++ b/src/test/resources/org/xbib/marc/2.xml @@ -1,125 +1,321 @@ - 01613cam 2200409 a 4500 - ocn124450154 + 01215cam 2200313 a 4500 + ocn137458539 OCoLC - 20070605103524.0 - 970411s1947 nyu 001 0 rus d + 20070605101501.0 + 900119s1974 maua 100 0 eng d + + 74081739 + - NNC - VXJ - - - (N + MSR + MSR - (OCoLC)124450154 + (OCoLC)137458539 - (CStRLIN)NYJH97-B3375 + (CStRLIN)MOSA90-B178 - - rus - yid - - - n-us--- + + F61 + .C71 vol. 48 + NK2438.B6 - ocm42037006 + ocm01364905 + ocm06844451 - PJ5192.R8 - F4 + NK2438.B6 + B68 1974 OCLC - 880-01 - Evreĭskai͡a poėzii͡a : - antologii͡a / - Leonid Grebnev (L. Faĭnberg). - - - Yiddish poetry + Boston furniture of the eighteenth century : + a conference held by the Colonial Society of Massachusetts, 11 and 12 May 1972. - 880-02 - Nʹi͡u-Ĭork : - Izd. Soi͡uza russkikh evreev v Nʹi͡u-Iorke, - 1947. + Boston : + Colonial Society of Massachusetts ; + [Charlottesville] : + distributed by the University Press of Virginia, + c1974. - 240 p. ; - 23 cm. + xvi, 316 p. : + ill. ; + 25 cm. + + + Publications of the Colonial Society of Massachusetts ; + v. 48 - No more published? - - - Tom 1. Amerika. + Bibliography: p. 303-305. Includes index. - - Author's autograph presentation copy to Moses Shifris. + + Furniture, Colonial + Massachusetts + Boston + Congresses. - Yiddish poetry - United States. + Furniture, Early American + Massachusetts + Boston + Congresses. - - Yiddish poetry - Translations into Russian - Collections. - - - Russian poetry - Translations from Yiddish - Collections. - - - 880-03 - Feinberg, Leon, - 1897-1969 - Presentation inscription to Moses Shifris. - - - 880-04 - Feinberg, Leon, - 1897-1969. + + Colonial Society of Massachusetts. - NNJ - PUBL - PJ5192.R8 - F4 - 1 - CIN=AMW; OID=UTC + MoSR + STK + NK2438.B6 + B68 1974 + 21260 + CIN=MLC; OID=MLC - - 245-01/(N - Еврейская поэзия : - антология / - Леонид Гребнев [Л. Файнберг]. + + R - - 260-02/(N - Нью-Йорк : - Изд. Союза русских евреев в Нью-Йорке, - 1947. + + C0 + OCL - - 600-03/(N - Файнберг, Леон, - 1897-1969. + + + 01731cam 2200457 a 4500 + ocn124411460 + OCoLC + 20070605101501.0 + 070222s2007 is a b 001 0ceng d + + NNYI + VXJ - - 700-04/(N - Файнберг, Леон, - 1897-1969. + + (2 + + + 9652293865 + + + 9789652293862 + + + (OCoLC)124411460 + + + (CStRLIN)NYJH07-B409 + + + eng + heb + + + e-hu--- + a-is--- + + + DS135.H93 + A147313 2007 + + + ocm85564516 + + + DS135.H93 + A14513 2007 + + + OCLC + + + Gur, David, + 1926- + + + 880-01 + Aḥim le-hitnagdut ule-hatsalah. + English + + + Brothers for resistance and rescue : + the underground Zionist youth movement in Hungary during World War II / + David Gur ; edited by Eli Netzer ; translated by Pamela Segev & Avri Fischer. + + + Enlarged and revised ed. + + + Jerusalem : + Gefen, + 2007. + + + 270 p. : + ill. ; + 28 p. + + + Introduction by Randolph L. Brahan. + + + Includes bibliographical references (p. 261-264) and index. + + + Jews + Hungary + Biography. + + + Jewish youth + Hungary + Biography. + + + Zionism + Hungary + History + 20th century. + + + World War, 1939-1945 + Jewish resistance + Hungary. + + + Jews, Hungarian + Israel + Biography. + + + Holocaust survivors + Israel + Biography. + + + Netser, Eli. + + + Segev, Pamela. + + + Fischer, Avri. + + + Library of the Jewish Theological Seminary + JT1 + MAIN + OVERSIZE + DS135.H93 + A14513 2007 + 31407002756237 + CIN=RL; OID=RL + + + 240-01/(2/r + &#x200F;אחים להתנגדות ולהצלה.&#x200F; + &#x200F;English + + + C0 + OCL + + + + 02310cjm 2200349 a 4500 + ocn131225106 + OCoLC + 20070605101501.0 + sd |||gnammned + 051219p2004 sa mun g l mul d + + CtY + YUS + + + ACM-CD023/3 + African Cream Music + + + (OCoLC)131225106 + + + (CtY)7143913 + + + (CStRLIN)CTYA7143913-R + + + eng + xho + + + f-sa--- + + + ML3760 + .W55 2004 + + + ocm64169861 + + + ML3760 + .W55 2004 (LC) + + + OCLC + + + The winds of change + [sound recording] : + [a journey through the key music and moments that gave birth to a free, democratic South Africa]. + + + [South Africa?] : + African Cream Music, + 2004. + + + 2 sound discs : + digital ; + 4 3/4 in. + + 1 booklet + + + Compact discs. + + + Subtitle from booklet. + + + Various artists. + + + CD. 1. Nkosi sikelel' iAfrika (Tumelo Maloi) -- Winds of change (Harold Macmillan) -- Zono zam (Dorothy Masuka) -- Nobel Prize Award (Chief Albert Luthuli) -- Zandile (Jazz Ministers) -- Rivonia trial speech (Nelson Mandela) -- Woza ANC (Freedom Choir, ACFC) -- Ag pleez deddy (Jeremy Taylor) -- Kalamazoo (Pops Mohamed) -- Fight to the end (JB Vorster) -- Joyin umkhonto wesizwe (ACFC) -- Burnout (Sipho "Hotstix" Mabuse) -- Total onslaught (PW Botha) -- State of emergency (Amampondo) -- Paradise road (Joy) -- AWB speech (Eugene Terreblanche) -- Slovo no tambo (ACFC) -- Bayeza (Soul Brothers) -- Tsoha/vuka (ACFC) -- Asimbonanga (Jonny Clegg) -- CD. 2. Whispers in the deep (Stimela) -- Thula Sizwe (ACFC) -- Halala Afrika (Johannes Kerkorrel) -- Papa stop the war (Chicco) -- Unbanning speech (FW De Klerk) -- Shosholoza (ACFCA) -- Bring him back home (Hugh Masekela) -- Inauguration speech (Nelson Mandela) -- Man of the world (Yvonne Chaka Chaka) -- Neva again (Prophets of Da City) -- Waar was jy (Skeem) -- I am an African (Thabo Mbeki) -- Power of Africa (Yvonne Chaka Chaka) -- Yehlisan umoya ma-Afrika (Busi Mhlongo) -- Sabela (Sibongile Khumalo) -- Inauguration speech (Nelson Mandela) -- Nkosi sikelel' iAfrika (ACFC). + + + Music + African. + + + Speeches, addresses, etc. + + + CtY + sml + ML3760 + .W55 2004 (LC) C0 diff --git a/src/test/resources/org/xbib/marc/3.json b/src/test/resources/org/xbib/marc/3.json new file mode 100644 index 0000000..7a97d8e --- /dev/null +++ b/src/test/resources/org/xbib/marc/3.json @@ -0,0 +1 @@ +{"_FORMAT":null,"_TYPE":null,"_LEADER":"01613cam 2200409 a 4500","001":["ocn124450154"],"003":["OCoLC"],"005":["20070605103524.0"],"008":["970411s1947 nyu 001 0 rus d"],"040":[{"__":[{"a":"NNC"},{"c":"VXJ"}]}],"066":[{"__":[{"c":"(N"}]}],"035":[{"__":[{"a":"(OCoLC)124450154"}]},{"__":[{"a":"(CStRLIN)NYJH97-B3375"}]}],"041":[{"1_":[{"a":"rus"},{"h":"yid"}]}],"043":[{"__":[{"a":"n-us---"}]}],"079":[{"__":[{"a":"ocm42037006"}]}],"090":[{"__":[{"a":"PJ5192.R8"},{"b":"F4"}]}],"049":[{"__":[{"a":"OCLC"}]}],"245":[{"00":[{"6":"880-01"},{"a":"Evreĭskai͡a poėzii͡a :"},{"b":"antologii͡a /"},{"c":"Leonid Grebnev (L. Faĭnberg)."}]}],"246":[{"15":[{"a":"Yiddish poetry"}]}],"260":[{"__":[{"6":"880-02"},{"a":"Nʹi͡u-Ĭork :"},{"b":"Izd. Soi͡uza russkikh evreev v Nʹi͡u-Iorke,"},{"c":"1947."}]}],"300":[{"__":[{"a":"240 p. ;"},{"c":"23 cm."}]}],"500":[{"__":[{"a":"No more published?"}]},{"__":[{"a":"Includes index."}]}],"505":[{"0_":[{"a":"Tom 1. Amerika."}]}],"590":[{"__":[{"a":"Author's autograph presentation copy to Moses Shifris."}]}],"650":[{"_0":[{"a":"Yiddish poetry"},{"z":"United States."}]},{"_0":[{"a":"Yiddish poetry"},{"x":["Translations into Russian","Collections."]}]},{"_0":[{"a":"Russian poetry"},{"x":["Translations from Yiddish","Collections."]}]}],"600":[{"14":[{"6":"880-03"},{"a":"Feinberg, Leon,"},{"d":"1897-1969"},{"x":"Presentation inscription to Moses Shifris."}]}],"700":[{"1_":[{"6":"880-04"},{"a":"Feinberg, Leon,"},{"d":"1897-1969."}]}],"852":[{"__":[{"a":"NNJ"},{"b":"PUBL"},{"h":"PJ5192.R8"},{"i":"F4"},{"t":"1"},{"x":"CIN=AMW; OID=UTC"}]}],"880":[{"00":[{"6":"245-01/(N"},{"a":"Еврейская поэзия :"},{"b":"антология /"},{"c":"Леонид Гребнев [Л. Файнберг]."}]},{"__":[{"6":"260-02/(N"},{"a":"Нью-Йорк :"},{"b":"Изд. Союза русских евреев в Нью-Йорке,"},{"c":"1947."}]},{"14":[{"6":"600-03/(N"},{"a":"Файнберг, Леон,"},{"d":"1897-1969."}]},{"1_":[{"6":"700-04/(N"},{"a":"Файнберг, Леон,"},{"d":"1897-1969."}]}],"994":[{"__":[{"a":"C0"},{"b":"OCL"}]}]} \ No newline at end of file diff --git a/src/test/resources/org/xbib/marc/3.xml b/src/test/resources/org/xbib/marc/3.xml new file mode 100644 index 0000000..aed8d48 --- /dev/null +++ b/src/test/resources/org/xbib/marc/3.xml @@ -0,0 +1,129 @@ + + + 01613cam 2200409 a 4500 + ocn124450154 + OCoLC + 20070605103524.0 + 970411s1947 nyu 001 0 rus d + + NNC + VXJ + + + (N + + + (OCoLC)124450154 + + + (CStRLIN)NYJH97-B3375 + + + rus + yid + + + n-us--- + + + ocm42037006 + + + PJ5192.R8 + F4 + + + OCLC + + + 880-01 + Evreĭskai͡a poėzii͡a : + antologii͡a / + Leonid Grebnev (L. Faĭnberg). + + + Yiddish poetry + + + 880-02 + Nʹi͡u-Ĭork : + Izd. Soi͡uza russkikh evreev v Nʹi͡u-Iorke, + 1947. + + + 240 p. ; + 23 cm. + + + No more published? + + + Tom 1. Amerika. + + + Includes index. + + + Author's autograph presentation copy to Moses Shifris. + + + Yiddish poetry + United States. + + + Yiddish poetry + Translations into Russian + Collections. + + + Russian poetry + Translations from Yiddish + Collections. + + + 880-03 + Feinberg, Leon, + 1897-1969 + Presentation inscription to Moses Shifris. + + + 880-04 + Feinberg, Leon, + 1897-1969. + + + NNJ + PUBL + PJ5192.R8 + F4 + 1 + CIN=AMW; OID=UTC + + + 245-01/(N + Еврейская поэзия : + антология / + Леонид Гребнев [Л. Файнберг]. + + + 260-02/(N + Нью-Йорк : + Изд. Союза русских евреев в Нью-Йорке, + 1947. + + + 600-03/(N + Файнберг, Леон, + 1897-1969. + + + 700-04/(N + Файнберг, Леон, + 1897-1969. + + + C0 + OCL + + + \ No newline at end of file