Attean
view release on metacpan or search on metacpan
lib/AtteanX/Parser/RDFXML.pm view on Meta::CPAN
$self->push_namespace_pad( \%new );
}
}
sub push_base {
my $self = shift;
my $base = shift;
if ($base) {
my $uri = (blessed($base) and $base->isa('URI')) ? $base : URI->new($base->value );
$uri->fragment( undef );
$base = iri( "$uri" );
}
unshift( @{ $self->{base} }, $base );
}
sub pop_base {
my $self = shift;
shift( @{ $self->{base} } );
}
t/parser-rdfxml.t view on Meta::CPAN
subtest 'simple triple parse with namespaces' => sub {
my $map = URI::NamespaceMap->new();
my $parser = Attean->get_parser('RDFXML')->new( namespaces => $map );
my $store = Attean->get_store('Memory')->new();
my $content = <<"END";
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:eg="http://example.org/"
xml:base="http://example.org/dir/file">
<rdf:Description rdf:ID="frag" eg:value="v" />
</rdf:RDF>
END
my @list = $parser->parse_list_from_bytes($content);
is(scalar(@list), 1);
my ($t) = @list;
does_ok($t, 'Attean::API::Triple');
is($t->as_string, '<http://example.org/dir/file#frag> <http://example.org/value> "v" .');
is_deeply([sort $map->list_prefixes], [qw(eg rdf)]);
my $rdf = $map->namespace_uri('rdf');
isa_ok($rdf, 'URI::Namespace');
is($rdf->as_string, 'http://www.w3.org/1999/02/22-rdf-syntax-ns#');
};
subtest 'bnode prefix' => sub {
my $parser = Attean->get_parser('RDFXML')->new( bnode_prefix => 'foo' );
my ($t) = $parser->parse_list_from_bytes(<<"END");
( run in 0.993 second using v1.01-cache-2.11-cpan-364913b4093 )