|
NAMENet::Z3950::Record::GRS1 - Perl package used to encode GRS-1 records.SYNOPSISuse 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(); DESCRIPTIONThis Perl module helps you to create and manipulate GRS-1 records (generic record syntax). So far, you have only access to three methods:newCreates a new GRS-1 object,my $grs1 = new Net::Z3950::GRS1; AddElementLets 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. RenderThis 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); Hash2grsThis 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. APPENDIX AThese 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. AUTHORAnders Sønderberg Mortensen <sondberg@indexdata.dk> Index Data ApS, Copenhagen, Denmark. 2001/03/09SEE ALSOSpecification of the GRS-1 standard, for instance in the Z39.50 protocol specification.POD ERRORSHey! The above document had some coding errors, which are explained below:
Visit the GSP FreeBSD Man Page Interface. |