/usr/share/perl5/HTTP/OAI/Metadata.pm is in libhttp-oai-perl 4.03-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 | package HTTP::OAI::Metadata;
@ISA = qw( HTTP::OAI::MemberMixin HTTP::OAI::SAX::Base );
use strict;
sub new
{
my( $class, %self ) = @_;
$self{doc} = XML::LibXML::Document->new( '1.0', 'UTF-8' );
$self{dom} = $self{current} = $self{doc}->createDocumentFragment;
return bless \%self, $class;
}
sub metadata { shift->dom( @_ ) }
sub dom { shift->_elem( "dom", @_ ) }
sub generate
{
my( $self, $driver ) = @_;
$driver->generate( $self->dom );
}
sub start_element
{
my( $self, $hash ) = @_;
my $node = $self->{doc}->createElementNS(
$hash->{NamespaceURI},
$hash->{Name},
);
foreach my $attr (values %{$hash->{Attributes}})
{
Carp::confess "Can't setAttribute without attribute name" if !defined $attr->{Name};
$node->setAttribute( $attr->{Name}, $attr->{Value} );
}
$self->{current} = $self->{current}->appendChild( $node );
}
sub end_element
{
my( $self, $hash ) = @_;
$self->{current} = $self->{current}->parentNode;
}
sub characters
{
my( $self, $hash ) = @_;
$self->{current}->appendText( $hash->{Data} );
}
1;
__END__
=head1 NAME
HTTP::OAI::Metadata - Base class for data objects that contain DOM trees
=head1 SYNOPSIS
use HTTP::OAI::Metadata;
$xml = XML::LibXML::Document->new();
$xml = XML::LibXML->new->parse( ... );
$md = new HTTP::OAI::Metadata(dom=>$xml);
print $md->dom->toString;
my $dom = $md->dom(); # Return internal DOM tree
=head1 METHODS
=over 4
=item $md->dom( [$dom] )
Return and optionally set the XML DOM object that contains the actual metadata. If you intend to use the generate() method $dom must be a XML_DOCUMENT_NODE.
=back
|