예제 #1
0
        static StaticTestRecords()
        {
            factory   = MarcFactory.Instance;
            chabon[0] = factory.NewRecord("00759cam a2200229 a 4500");
            chabon[0].AddVariableField(factory.NewControlField("001", "11939876"));
            chabon[0].AddVariableField(factory.NewControlField("005", "20041229190604.0"));
            chabon[0].AddVariableField(factory.NewControlField("008", "000313s2000    nyu           000 1 eng  "));
            chabon[0].AddVariableField(factory.NewDataField("020", ' ', ' ', "a", "0679450041 (acid-free paper)"));
            chabon[0].AddVariableField(factory.NewDataField("040", ' ', ' ', "a", "DLC", "c", "DLC", "d", "DLC"));
            chabon[0].AddVariableField(factory.NewDataField("100", '1', ' ', "a", "Chabon, Michael."));
            chabon[0].AddVariableField(factory.NewDataField("245", '1', '4', "a", "The amazing adventures of Kavalier and Clay :", "b", "a novel /", "c", "Michael Chabon."));
            chabon[0].AddVariableField(factory.NewDataField("260", ' ', ' ', "a", "New York :", "b", "Random House,", "c", "c2000."));
            chabon[0].AddVariableField(factory.NewDataField("300", ' ', ' ', "a", "639 p. ;", "c", "25 cm."));
            chabon[0].AddVariableField(factory.NewDataField("650", ' ', '0', "a", "Comic books, strips, etc.", "x", "Authorship", "v", "Fiction."));
            chabon[0].AddVariableField(factory.NewDataField("650", ' ', '0', "a", "Heroes in mass media", "v", "Fiction."));
            chabon[0].AddVariableField(factory.NewDataField("650", ' ', '0', "a", "Czech Americans", "v", "Fiction."));
            chabon[0].AddVariableField(factory.NewDataField("651", ' ', '0', "a", "New York (N.Y.)", "v", "Fiction."));
            chabon[0].AddVariableField(factory.NewDataField("650", ' ', '0', "a", "Young men", "v", "Fiction."));
            chabon[0].AddVariableField(factory.NewDataField("650", ' ', '0', "a", "Cartoonists", "v", "Fiction."));
            chabon[0].AddVariableField(factory.NewDataField("655", ' ', '7', "a", "Humorous stories.", "2", "gsafd"));
            chabon[0].AddVariableField(factory.NewDataField("655", ' ', '7', "a", "Bildungsromane.", "2", "gsafd"));

            chabon[1] = factory.NewRecord("00714cam a2200205 a 4500");
            chabon[1].AddVariableField(factory.NewControlField("001", "12883376"));
            chabon[1].AddVariableField(factory.NewControlField("005", "20030616111422.0"));
            chabon[1].AddVariableField(factory.NewControlField("008", "020805s2002    nyu    j      000 1 eng  "));
            chabon[1].AddVariableField(factory.NewDataField("020", ' ', ' ', "a", "0786808772"));
            chabon[1].AddVariableField(factory.NewDataField("020", ' ', ' ', "a", "0786816155 (pbk.)"));
            chabon[1].AddVariableField(factory.NewDataField("040", ' ', ' ', "a", "DLC", "c", "DLC", "d", "DLC"));
            chabon[1].AddVariableField(factory.NewDataField("100", '1', ' ', "a", "Chabon, Michael."));
            chabon[1].AddVariableField(factory.NewDataField("245", '1', '0', "a", "Summerland /", "c", "Michael Chabon."));
            chabon[1].AddVariableField(factory.NewDataField("250", ' ', ' ', "a", "1st ed."));
            chabon[1].AddVariableField(factory.NewDataField("260", ' ', ' ', "a", "New York :", "b", "Miramax Books/Hyperion Books for Children,", "c", "c2002."));
            chabon[1].AddVariableField(factory.NewDataField("300", ' ', ' ', "a", "500 p. ;", "c", "22 cm."));
            chabon[1].AddVariableField(factory.NewDataField("520", ' ', ' ', "a", "Ethan Feld, the worst baseball player in the history of the game, finds himself recruited by a 100-year-old scout to help a band of fairies triumph over an ancient enemy."));
            chabon[1].AddVariableField(factory.NewDataField("650", ' ', '1', "a", "Fantasy."));
            chabon[1].AddVariableField(factory.NewDataField("650", ' ', '1', "a", "Baseball", "v", "Fiction."));
            chabon[1].AddVariableField(factory.NewDataField("650", ' ', '1', "a", "Magic", "v", "Fiction."));

            summerland[0] = MakeSummerlandRecord();
        }
예제 #2
0
        public IEnumerable <IRecord> Read(Stream stream)
        {
            var collection = XElement.Load(stream);

            foreach (var recordElem in collection.Descendants(XName.Get(RECORD, Constants.MARCXML_NS_URI)))
            {
                record = factory.NewRecord();

                LoadRecord(recordElem, ref record);

                yield return(record);
            }
            yield break;
        }
예제 #3
0
        private static IRecord MakeSummerlandRecord()
        {
            var sumland = factory.NewRecord("00714cam a2200205 a 4500");

            sumland.AddVariableField(factory.NewControlField("001", "12883376"));
            sumland.AddVariableField(factory.NewControlField("005", "20030616111422.0"));
            sumland.AddVariableField(factory.NewControlField("008", "020805s2002    nyu    j      000 1 eng  "));
            sumland.AddVariableField(factory.NewDataField("020", ' ', ' ', "a", "0786808772"));
            sumland.AddVariableField(factory.NewDataField("020", ' ', ' ', "a", "0786816155 (pbk.)"));
            sumland.AddVariableField(factory.NewDataField("040", ' ', ' ', "a", "DLC", "c", "DLC", "d", "DLC"));
            sumland.AddVariableField(factory.NewDataField("100", '1', ' ', "a", "Chabon, Michael."));
            sumland.AddVariableField(factory.NewDataField("245", '1', '0', "a", "Summerland /", "c", "Michael Chabon."));
            sumland.AddVariableField(factory.NewDataField("250", ' ', ' ', "a", "1st ed."));
            sumland.AddVariableField(factory.NewDataField("260", ' ', ' ', "a", "New York :", "b", "Miramax Books/Hyperion Books for Children,", "c", "c2002."));
            sumland.AddVariableField(factory.NewDataField("300", ' ', ' ', "a", "500 p. ;", "c", "22 cm."));
            sumland.AddVariableField(factory.NewDataField("520", ' ', ' ', "a", "Ethan Feld, the worst baseball player in the history of the game, finds himself recruited by a 100-year-old scout to help a band of fairies triumph over an ancient enemy."));
            sumland.AddVariableField(factory.NewDataField("650", ' ', '1', "a", "Fantasy."));
            sumland.AddVariableField(factory.NewDataField("650", ' ', '1', "a", "Baseball", "v", "Fiction."));
            sumland.AddVariableField(factory.NewDataField("650", ' ', '1', "a", "Magic", "v", "Fiction."));
            return(sumland);
        }
예제 #4
0
        /// <summary>
        /// Returns the next record in the iteration.
        /// </summary>
        /// <returns></returns>
        private IRecord Next()
        {
            record = factory.NewRecord();

            try
            {
                byte[] byteArray = new byte[24];
                input.Read(byteArray);

                int    recordLength = ParseRecordLength(byteArray);
                byte[] recordBuf    = new byte[recordLength - 24];
                input.Read(recordBuf);
                ParseRecord(record, byteArray, recordBuf, recordLength);
                return(record);
            }
            catch (EndOfStreamException e)
            {
                throw new MarcException("Premature end of file encountered", e);
            }
            catch (IOException e)
            {
                throw new MarcException("an error occured reading input", e);
            }
        }