GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
GRS1(3) User Contributed Perl Documentation GRS1(3)

Net::Z3950::Record::GRS1 - Perl package used to encode GRS-1 records.

  use Net::Z3950::GRS1;

  my $a_grs1_record = new Net::Z3950::Record::GRS1;
  my $another_grs1_record = new Net::Z3950::Record::GRS1;

  $a_grs1_record->AddElement($type, $value, $content);
  $a_grs1_record->Render();

This Perl module helps you to create and manipulate GRS-1 records (generic record syntax). So far, you have only access to three methods:

Creates a new GRS-1 object,

  my $grs1 = new Net::Z3950::GRS1;

Lets you add entries to a GRS-1 object. The method should be called this way,

  $grs1->AddElement($type, $value, $which, $content);

where $type should be an integer, and $value is free text. The $which argument should contain one of the constants listed in Appendix A. Finally, $content contains the "thing" that should be stored in this entry. The structure of $content should match the chosen element data type. For

  $which == Net::Z3950::GRS1::ElementData::String;

$content should be some kind of scalar. If on the other hand,

  $which == Net::Z3950::GRS1::ElementData::Subtree;

$content should be a GRS1 object.

This method digs through the GRS-1 data structure and renders the record. You call it this way,

  $grs1->Render();

If you want to access the rendered record through a variable, you can do it like this,

  my $record_as_string;
  $grs1->Render(POOL => \$record_as_string);

If you want it stored in a file, Render should be called this way,

  $grs1->Render(FILE => 'record.grs1');

When no file name is specified, you can choose to stream the rendered record, for instance,

  $grs1->Render(HANDLE => *STDOUT);             ## or
  $grs1->Render(HANDLE => *STDERR);             ## or
  $grs1->Render(HANDLE => *MY_HANDLE);

This method converts a hash into a GRS-1 object. Scalar entries within the hash are converted into GRS-1 string elements. A hash entry can itself be a reference to another hash. In this case, the new referenced hash will be converted into a GRS-1 subtree. The method is called this way,

  $grs1->Hash2grs($href, $mapping);

where $href is the hash to be converted and $mapping is referenced hash specifying the mapping between keys in $href and (type, value) pairs in the $grs1 object. The $mapping hash could for instance look like this,

  my $mapping = {
                        title   =>      [2, 1],
                        author  =>      [1, 1],
                        issn    =>      [3, 1]
                };

If the $grs1 object contains data prior to the invocation of Hash2grs, the new data represented by the hash is simply added.

These element data types are specified in the Z39.50 protocol:

  Net::Z3950::GRS1::ElementData::Octets
  Net::Z3950::GRS1::ElementData::Numeric
  Net::Z3950::GRS1::ElementData::Date
  Net::Z3950::GRS1::ElementData::Ext
  Net::Z3950::GRS1::ElementData::String                 <---
  Net::Z3950::GRS1::ElementData::TrueOrFalse
  Net::Z3950::GRS1::ElementData::OID
  Net::Z3950::GRS1::ElementData::IntUnit
  Net::Z3950::GRS1::ElementData::ElementNotThere
  Net::Z3950::GRS1::ElementData::ElementEmpty
  Net::Z3950::GRS1::ElementData::NoDataRequested
  Net::Z3950::GRS1::ElementData::Diagnostic
  Net::Z3950::GRS1::ElementData::Subtree                <---

Only the '<---' marked types are so far supported in this package.

Anders Sønderberg Mortensen <sondberg@indexdata.dk> Index Data ApS, Copenhagen, Denmark. 2001/03/09

Specification of the GRS-1 standard, for instance in the Z39.50 protocol specification.

Hey! The above document had some coding errors, which are explained below:
Around line 372:
Non-ASCII character seen before =encoding in 'Sønderberg'. Assuming CP1252
2015-01-29 perl v5.32.1

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.