mldvx4 has asked for the wisdom of the Perl Monks concerning the following question:

If I read correctly in the manual page it is possible to add Dublin Core (DC) metadata to RSS 2.0 feeds, even via the XML::RSS module. I seem to be missing something.

#!/usr/bin/perl use XML::RSS; use strict; use warnings; my $rss = XML::RSS->new (version => '2.0'); $rss->channel(title => 'Example Corp, Inc', link => '', language => 'en', description => 'a one-stop-shop for all your Linux', ); $rss->add_item(title => "GTKeyboard 0.85", permaLink => "", description => 'blah blah', dc => { creator => 'an author', contributor => 'an editor', }, ); print $rss->as_string; exit(0);
If I run that, I get the following, without the Dublin Core. I was expecting the Dublin Core metadata elements to somehow show up.
<?xml version="1.0" encoding="UTF-8"?> <rss version="2.0" xmlns:blogChannel="" > <channel> <title>Example Corp, Inc</title> <link></link> <description>the one-stop-shop for all your Linux</description> <language>en</language> <item> <title>GTKeyboard 0.85</title> <description>blah blah</description> <guid isPermaLink="true">< +/guid> </item> </channel>

I see that xmlns:dc="" is missing from the RSS element.

Perhaps I have to add the namespace

If so, how do I add it for RSS 2.0, not 1.0? The module seems to accept both legitimate DC elements as well as random stuff when making objects but does not print them.



I've also tried,

my $rss = XML::RSS->new (version => '2.0', 'xmlns:dc'=>" +", );


my $rss = XML::RSS->new (version => '2.0', namespaces => { 'xmlns:dc'=>" +dc/elements/1.1/" }, );

Neither produce any visible changes, even using Data::Dumper.