NAME

RDF::Trine::NamespaceMap - Collection of Namespaces

VERSION

This document describes RDF::Trine::NamespaceMap version 1.019

SYNOPSIS

    use RDF::Trine::NamespaceMap;
    my $map = RDF::Trine::NamespaceMap->new( \%namespaces );
    $serializer->serialize_model_to_string( $model, namespaces => $map );

    $map->add_mapping( foaf => 'http://xmlns.com/foaf/0.1/' );
    my $foaf_namespace = $map->foaf;
    my $foaf_person    = $map->foaf('Person');

DESCRIPTION

This module provides an object to manage multiple namespaces for creating RDF::Trine::Node::Resource objects and for serializing.

METHODS

new ( [ \%namespaces ] )

Returns a new namespace map object. You can pass a hash reference with mappings from local names to namespace URIs (given as string or RDF::Trine::Node::Resource).

add_mapping ( $name => $uri )

Adds a new namespace to the map. The namespace URI can be passed as string or some object, that provides an uri_value method.

remove_mapping ( $name )

Removes a namespace from the map.

namespace_uri ( $name )

Returns the namespace object (if any) associated with the given name.

list_namespaces

Returns an array of RDF::Trine::Namespace objects with all the namespaces.

list_prefixes

Returns an array of prefixes.

uri ( $prefixed_name )

Returns a URI (as RDF::Trine::Node::Resource) for an abbreviated string such as 'foaf:Person'.

prefix_for uri ($uri)

Returns the associated prefix (or potentially multiple prefixes, in list context) for the given URI.

abbreviate uri ($uri)

Complement to "namespace_uri". Returns the given URI in foo:bar format or undef if it wasn't matched, therefore the idiom

    my $str = $nsmap->abbreviate($uri_node) || $uri_node->uri_value;

may be useful for certain serialization tasks.

WARNING

Avoid using the names 'can', 'isa', 'VERSION', and 'DOES' as namespace prefix, because these names are defined as method for every Perl object by default. The method names 'new' and 'uri' are also forbidden.

BUGS

Please report any bugs or feature requests to through the GitHub web interface at https://github.com/kasei/perlrdf/issues.

AUTHOR

Gregory Todd Williams <gwilliams@cpan.org>

COPYRIGHT

Copyright (c) 2006-2012 Gregory Todd Williams. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.