SobekCM_Marc_Library
所属分类:C#编程
开发工具:C#
文件大小:1515KB
下载次数:18
上传日期:2012-04-24 11:33:37
上 传 者:
huhuzhou
说明: marc格式读取c#实现
支持marc21
(marc read c# implement)
文件列表:
SobekCM_Marc_Library\DLLs\Zoom.net\COPYING.LIB.iconv (24940, 2010-12-08)
SobekCM_Marc_Library\DLLs\Zoom.net\iconv.dll (888832, 2010-12-08)
SobekCM_Marc_Library\DLLs\Zoom.net\libxml2.dll (898560, 2010-12-08)
SobekCM_Marc_Library\DLLs\Zoom.net\libxslt.dll (151552, 2010-12-08)
SobekCM_Marc_Library\DLLs\Zoom.net\LICENSE (1451, 2010-12-08)
SobekCM_Marc_Library\DLLs\Zoom.net\LICENSE.iconv (983, 2010-12-08)
SobekCM_Marc_Library\DLLs\Zoom.net\LICENSE.libxml2 (1064, 2010-12-08)
SobekCM_Marc_Library\DLLs\Zoom.net\LICENSE.yaz (1198, 2010-12-08)
SobekCM_Marc_Library\DLLs\Zoom.net\LICENSE.zlib (1112, 2010-12-08)
SobekCM_Marc_Library\DLLs\Zoom.net\LICENSE.Zoom.Net (1451, 2010-12-08)
SobekCM_Marc_Library\DLLs\Zoom.net\LICENSE.Zoom.Net.YazSharp (1451, 2010-12-08)
SobekCM_Marc_Library\DLLs\Zoom.net\yaz.dll (1069056, 2010-12-08)
SobekCM_Marc_Library\DLLs\Zoom.net\zlib1.dll (73728, 2010-12-08)
SobekCM_Marc_Library\DLLs\Zoom.net\Zoom.Net.dll (28672, 2010-12-08)
SobekCM_Marc_Library\DLLs\Zoom.net\Zoom.Net.Factory.config (574, 2010-12-08)
SobekCM_Marc_Library\DLLs\Zoom.net\Zoom.Net.pdb (28160, 2010-12-08)
SobekCM_Marc_Library\DLLs\Zoom.net\Zoom.Net.xml (15628, 2010-12-08)
SobekCM_Marc_Library\DLLs\Zoom.net\Zoom.Net.YazSharp.dll (32768, 2010-12-08)
SobekCM_Marc_Library\DLLs\Zoom.net\Zoom.Net.YazSharp.pdb (62976, 2010-12-08)
SobekCM_Marc_Library\DLLs\Zoom.net (0, 2012-04-24)
SobekCM_Marc_Library\DLLs (0, 2012-04-24)
SobekCM_Marc_Library\LICENSE_gpl.txt (35147, 2012-03-01)
SobekCM_Marc_Library\LICENSE_lgpl.txt (7651, 2012-03-01)
SobekCM_Marc_Library\Marc_Demo_App\app.config (144, 2012-03-01)
SobekCM_Marc_Library\Marc_Demo_App\bin\Debug\AgricNewCat02.dat (143266, 2008-01-14)
SobekCM_Marc_Library\Marc_Demo_App\bin\Debug\AgricNewCat02.xml (296, 2012-04-24)
SobekCM_Marc_Library\Marc_Demo_App\bin\Debug\CIMMYT01.dat (53265, 2007-10-26)
SobekCM_Marc_Library\Marc_Demo_App\bin\Debug\demo2.dat (1628, 2012-04-24)
SobekCM_Marc_Library\Marc_Demo_App\bin\Debug\demo2.xml (5692, 2012-04-24)
SobekCM_Marc_Library\Marc_Demo_App\bin\Debug\demo3.dat (1657, 2012-04-24)
SobekCM_Marc_Library\Marc_Demo_App\bin\Debug\demo3.xml (5867, 2012-04-24)
SobekCM_Marc_Library\Marc_Demo_App\bin\Debug\marc.dat (184425, 2012-04-24)
SobekCM_Marc_Library\Marc_Demo_App\bin\Debug\Marc_Demo_App.exe (7680, 2012-04-24)
SobekCM_Marc_Library\Marc_Demo_App\bin\Debug\Marc_Demo_App.exe.config (144, 2012-03-01)
SobekCM_Marc_Library\Marc_Demo_App\bin\Debug\Marc_Demo_App.pdb (13824, 2012-04-24)
SobekCM_Marc_Library\Marc_Demo_App\bin\Debug\Marc_Demo_App.vshost.exe (11600, 2012-04-24)
SobekCM_Marc_Library\Marc_Demo_App\bin\Debug\Marc_Demo_App.vshost.exe.config (144, 2012-03-01)
SobekCM_Marc_Library\Marc_Demo_App\bin\Debug\SobekCM_Marc_Library.dll (24064, 2012-04-24)
SobekCM_Marc_Library\Marc_Demo_App\bin\Debug\SobekCM_Marc_Library.pdb (65024, 2012-04-24)
SobekCM_Marc_Library\Marc_Demo_App\bin\Debug (0, 2012-04-24)
... ...
-------------------------
SobekCM MARC Library
-------------------------
LICENSE AND COPYRIGHT
Copyright 2005-2012 Mark Sullivan ( Mark.V.Sullivan@gmail.com )
This library is released under the Lesser GNU Public License, which is
included within the download.
PURPOSE
This is a C# library which contains classes for working in memory with
MARC records ( http://www.loc.gov/marc/ ). This allows records to be
read from MarcXML and Marc21 formats. Once in memory any field or subfield
can be edited, added, or deleted. Then the record can be queried or
saved again in either a MarcXML or Marc21 file format.
USE
This library has been developed over the last six years and is used in several
open-source projects and within the University of Florida Digital Library
Center workflow applications. The term 'SobekCM' references the two
open-source applications which have been previously released, but this
library should be able to be used across many different applications. I am
releasing it as open-source here as we are planning on using this library
more commonly in other upcoming projects the UF Libraries are involved in.
FUTURE PLANS
I plan to complete the Z39.50 portion of this library within the next couple
weeks and perhaps add a simple interface to the Marc record which allows you
to query for simple dublin core values ( i.e., title, creator, etc.. ) without
a full understanding of the MARC record format. I would also like to add better
error handling.
REQUIREMENTS
I find that this works best when working with either MarcXML or Marc21 that is
encoded with Unicode character encoding (rather than Marc character encoding).
OTHER IMPLEMENTATIONS
As I was preparing this for release, I became aware of another C# implementation of
the MARC record ( available at http://sourceforge.net/projects/csharpmarc/ ).
Comparing the two implementations showed there is really only one way to skin a
chicken, as our data objects are quite similar. I encourage you to look at the
other implementation, as well as this one.
There are a couple differences in our current implementations:
- In some ways I like his data model of seperating the control and data fields
into seperate classes which both inherit from an abstract fields class. I
actually begain implementation this way, but decided against the constant
casting and having to look in two different collections which this entailed.
- The other implementation has better error-handling and retains a collection of
warnings discovered during decoding. I like this approach, and may add this to
my implementation, which currently throws exceptions when an error is caught.
- The other implementation has better unit testing built into their implementation.
- Memory management in this implementation is superior as more of the reading is
handled as streams, rather than loading the entire Marc21 file into memory and
working on all the records from a list. This probably also impacted the way
error-handling and warnings were handled since in this implementation you generally
step through file, record-by-record.
- This implementation uses LINQ in both LINQ to XML and for querying within records.
- Memory management and speed are enhanced in this implementation with more
widespread use of the StringBuilder class, rather than concatenating separate
strings which is fairly costly procedure when performed repeatadly.
Again, I encourage you to look at the other implementation.
Mark Sullivan
Mark.V.Sullivan@gmail.com
近期下载者:
相关文件:
收藏者: