NAME

Net::Z3950::Record - base class for records retrieved from a Z39.50 server

SYNOPSIS

$rs = $conn->resultSet();
$rec = $rs->record($n);
print $rec->render();

DESCRIPTION

A Record object represents a record retrieved from a Z39.50 server. In fact, the Net::Z3950::Record class itself is never instantiated: instead, the Net::Z3950 module creates objects of subclasses such as Net::Z3950::Record::SUTRS, Net::Z3950::Record::GRS1, Net::Z3950::Record::USMARC and Net::Z3950::Record::XML. This class defines a common interface which must be supported by all such subclasses.

METHODS

nfields()

$count = $rec->nfields();

Returns the number of fields in the record $rec.

render()

print $rec->render();

Returns a human-readable string representing the content of the record $rec in a form appropriate to its specific type.

rawdata()

$raw = $rec->rawdata();

Returns the raw form of the data in the record, which will in general be different in form for different record syntaxes.

SUBCLASSES

Net::Z3950::Record::SUTRS

Represents a a record using the Simple Unstructured Text Record Syntax (SUTRS) - a simple flat string containing the record's data in a form suitable for presentation to humans (so that the render() and rawdata() methods return the same thing.)

See Appendix REC.2 (Simple Unstructured Text Record Syntax) of the Z39.50 Standard for more information.

Net::Z3950::Record::GRS1

Represents a record using Generic Record Syntax 1 (GRS1) - a list of tagged fields where each tag is made up of a tag type and tag value, and each field may be of any type, including numeric, string, and recursively contained sub-record. Fields may also be annotated with metadata, variant information etc.

See Appendix REC.5 (Generic Record Syntax 1) of the Z39.50 Standard for more information.

Net::Z3950::Record::USMARC, Net::Z3950::Record::UKMARC, Net::Z3950::Record::NORMARC, Net::Z3950::Record::LIBRISMARC, Net::Z3950::Record::DANMARC, Net::Z3950::Record::UNIMARC

Represents a record using the appropriate MARC (MAchine Readable Catalogue) format - binary formats used extensively in libraries.

For further information on the MARC formats, see the Library of Congress Network Development and MARC Standards Office web page at http://lcweb.loc.gov/marc/ and the MARC module in Ed Summers's directory at CPAN, http://cpan.valueclick.com/authors/id/E/ES/ESUMMERS/

Net::Z3950::Record::XML

Represents a a record using XML (Extended Markup Language), as defined by the W3C. Rendering is not currently defined: this module treats the record as a single opaque lump of data, to be parsed by other software.

For more information about XML, see http://www.w3.org/XML/

Net::Z3950::Record::HTML

Represents a a record using HTML (HyperText Markup Language), as defined by the W3C. Rendering is not currently defined: this module treats the record as a single opaque lump of data, to be handled by other software.

For more information about HTML, see http://www.w3.org/MarkUp/

Net::Z3950::Record::OPAC

Represents a a record using the OPAC (Online Public Access Catalogue) record syntax, as defined in Appendix 5 (REC) of the Z39.50 standard at http://lcweb.loc.gov/z3950/agency/asn1.html#RecordSyntax-opac

Net::Z3950::Record::MAB

Represents a record using the MAB record syntax (Maschinelles Austauschformat fuer Bibliotheken, ftp://ftp.ddb.de/pub/mab/); an interchange format defined by Die Deutsche Bibliothek (German National Library).

### others, not yet supported

AUTHOR

Mike Taylor <mike@indexdata.com>

First version Sunday 4th May 2000.