Alvis-Convert
view release on metacpan or search on metacpan
lib/Alvis/Document/Meta.pm view on Meta::CPAN
########################################################################
#
# Parses a Meta specification for a document and maps fields to
# Dublin Core.
#
# -- Kimmo Valtonen
#
########################################################################
use strict;
$Alvis::Document::Meta::VERSION = '0.1';
#########################################################################
#
# Mappings
#
#########################################################################
#
# Metadata mappings. Ripped off Anders's e-mail.
#
my %MetaMap=(
"rights" => "dc:rights",
"coverage" => "dc:coverage",
"creator" => "dc:creator",
"content" => "dc:description",
"geo.country" => "dc:coverage",
"email" => "dc:publisher",
"language " => "dc:language",
"identifier-url" => "dc:identifier",
"timemodified" => "dc:date",
"last-modified" => "dc:date",
"copyright " => "dc:copyright",
"classification " => "dc:subject",
"url" => "dc:identifier",
"timecreated " => "dc:date",
"category" => "dc:subject",
"description " => "dc:description",
"location" => "dc:coverage",
"originator" => "dc:creator",
"subject" => "dc:subject",
"author " => "dc:creator",
"publisher " => "dc:publisher",
"pd" => "dc:date",
"publisher-email" => "dc:publisher",
"abstract" => "dc:description",
"documenttype" => "dc:type",
"content-type"=>"dc:type",
"doc-rights" => "dc:rights",
"page-topic" => "dc:subject",
"keyword" => "dc:subject",
"document-rights" => "dc:rights",
"keywords " => "dc:subject",
"resource-type " => "dc:type",
"summary" => "dc:description",
"creation-date" => "dc:date",
"type " => "dc:type",
"document-classification" => "dc:subject",
"country" => "dc:coverage",
"progid" => "dc:format",
"content-language " => "dc:language",
"title " => "dc:title",
"created" => "dc:date",
"doc-type" => "dc:type",
"mimetype" => "dc:type",
"server"=>"server"
);
my %DCMap=(
"dc:coverage" => "dc:coverage",
"dc:date.x-metadatalastmodified" => "dc:date",
"dc:language" => "dc:language",
"dc:title" => "dc:title",
"dc:date.created" => "dc:date",
"dc:format" => "dc:format",
"dc:description" => "dc:description",
"dc:source" => "dc:source",
"dc:date.modified" => "dc:date",
"dc:creator" => "dc:creator",
"dc:coverage.placename" => "dc:coverage",
"dc:rights" => "dc:rights",
"dc:subject" => "dc:subject",
"dc:contributor" => "dc:contributor",
"dc:type" => "dc:type",
"dc:identifier" => "dc:identifier",
"dc:publisher" => "dc:publisher",
"dc:date" => "dc:date"
);
#########################################################################
my ($ERR_OK,
$ERR_UNK_FIELD_NAME,
$ERR_PARSE
)=(0..2);
my %ErrMsgs=($ERR_OK=>"",
$ERR_UNK_FIELD_NAME=>"Unrecognized field name.",
$ERR_PARSE=>"Parsing the meta text failed."
);
sub new
{
my $proto=shift;
my $class=ref($proto)||$proto;
my $parent=ref($proto)&&$proto;
my $self={};
bless($self,$class);
$self->_set_err_state($ERR_OK);
$self->_init(@_);
if (defined($self->{text}))
{
if (!$self->parse($self->{text}))
{
$self->_set_err_state($ERR_PARSE,
"Text:\"$self->{text}\".");
( run in 2.079 seconds using v1.01-cache-2.11-cpan-ceb78f64989 )