-# $Id: Record.pm,v 1.1 2006-06-20 12:28:26 mike Exp $
+# $Id: Record.pm,v 1.4 2006-07-18 11:09:51 mike Exp $
-package Net::Z3950::IRSpy::Record;
+package ZOOM::IRSpy::Record;
use 5.008;
use strict;
use warnings;
+use XML::LibXML;
+
+
=head1 NAME
-Net::Z3950::IRSpy::Record - record describing a target for IRSpy
+ZOOM::IRSpy::Record - record describing a target for IRSpy
=head1 SYNOPSIS
my $class = shift();
my($target, $zeerex) = @_;
- ### Should compile the ZeeRex record into something useful.
+ if (!defined $zeerex) {
+ $zeerex = _empty_zeerex_record($target);
+ }
+
+ my $parser = new XML::LibXML();
return bless {
target => $target,
- zeerex => $zeerex,
+ zeerex => $parser->parse_string($zeerex),
}, $class;
}
+sub _empty_zeerex_record {
+ my($target) = @_;
+
+ ### Doesn't recognise SRU/SRW URLs
+ my($host, $port, $db) = ZOOM::IRSpy::_parse_target_string($target);
+
+ return <<__EOT__;
+<explain xmlns="http://explain.z3950.org/dtd/2.0/">
+ <serverInfo protocol="Z39.50" version="1995">
+ <host>$host</host>
+ <port>$port</port>
+ <database>$db</database>
+ </serverInfo>
+</explain>
+__EOT__
+}
+
+
=head1 SEE ALSO
-Net::Z3950::IRSpy
+ZOOM::IRSpy
=head1 AUTHOR