hab/simplemarc

对MARC记录的简化、只读访问。

v0.2.3 2019-06-28 08:01 UTC

This package is not auto-updated.

Last update: 2024-09-14 17:37:22 UTC


README

与MARC记录一起工作。

SimpleMARC版权所有(c)2013-2018年,由Herzog August Bibliothek Wolfenbüttel拥有并发布,受GNU通用公共许可证v3条款约束。

SimpleMARC记录

SimpleMARC记录提供对MARC记录的简化、只读访问。与PEAR File_MARC不同,它不会创建MARC记录的完整内存表示,而是利用MARC目录从MARC记录中检索信息。

MARC数据本身由原生PHP字符串(控制字段)或原生PHP数组(数据字段)表示。控制字段简单地是字段值,而数据字段编码如下

array(CODE => array(POS => VALUE, …), …)

  • CODE是子字段代码
  • POS是子字段位置的零索引
  • VALUE是包含子字段值的字符串

MARC字段通过缩写表示法进行寻址。对于控制字段,缩写与字段标记相同,对于数据字段,缩写将字段标记和指示符通过正斜杠(ASCII 47)作为分隔符连接起来。空指示符由空格字符(ASCII 32)表示。

方法

[array] Record::select(SELECTOR)

SELECTOR是正则表达式的主体,与字段缩写进行匹配。返回值是一个按缩写索引的字段数据数组。

SimpleMARC构建器

SimpleMARC构建器提供MARC记录的构建器。

方法

[Builder] Builder::reset()

为新的记录重置构建器。

[Builder] Builder::setRecordStatus(STATUS)

设置记录状态(记录位置5)。

  • STATUS是一个包含记录状态的字符串

默认为‘n - 新’。

[Builder] Builder::setTypeOfRecord(TYPE)

设置记录类型(记录位置6)。

  • TYPE是一个包含记录类型的字符串

默认为‘a - 语言材料’。

[Builder] Builder::setBibliographicLevel(LEVEL)

设置文献级别(记录位置7)。

  • LEVEL是一个包含文献级别的字符串

默认为‘m - 单行本/项目’。

[Builder] Builder::setTypeOfControl(TYPE)

设置控制类型(记录位置8)。

  • TYPE是一个包含控制类型的字符串

默认为‘# - 未指定类型’。

[Builder] Builder::setEncodingLevel(LEVEL)

设置编码级别(记录位置17)。

  • LEVEL是一个包含编码级别的字符串

默认为‘u - 未知’。

[Builder] Builder::setDescriptiveCatalogingForm(FORM)

设置描述性编目形式(记录位置18)。

  • FORM是一个包含描述性编目形式的字符串

默认为‘u - 未知’。

[Builder] Builder::setMultipartResourceRecordLevel(LEVEL)

设置多部分资源记录级别(记录位置19)。

  • LEVEL是一个包含多部分资源记录级别的字符串

默认为‘# - 未指定或不适用’。

[Builder] Builder::addControlField(NUMBER, VALUE)

添加MARC控制字段。

  • NUMBER是一个包含控制字段编号的字符串
  • VALUES是一个包含控制字段值的字符串

[Builder] Builder::addDataField(NUMBER, INDICATORS, array SUBFIELDS)

  • NUMBER是一个包含数据字段编号的字符串
  • INDICATORS是两个字符的数据字段指示符字符串
  • SUBFIELDS是一个表示数据字段子字段的数组

SUBFIELDS数组中的每个元素都期望是形式为[CODE, VALUE]的数组,其中

  • CODE是一个包含子字段代码的字符串
  • VALUES 是一个包含子字段值的字符串

[字符串] Builder::build()

最终构建记录并返回 SimpleMARC Record 类的一个实例。

SimpleMARC XmlWriter

SimpleMARC XmlWriter 将 MARC 记录序列化为 MARC21 XML。

方法

[字符串] XmlWriter::write(RECORD)

返回 RECORD 的 MARC21 XML 表示形式。

  • RECORD 是 SimpleMARC Record 的一个实例