WebService::Validator::Feed::W3C - Interface to the W3C Feed Validation service
use WebService::Validator::Feed::W3C; my $feed_url = "http://www.example.com"; my $val = WebService::Validator::Feed::W3C->new; my $ok = $val->validate(uri => $feed_url); if ($ok and !$val->is_valid) { print "Errors:\n"; printf " * %s\n", $_->{message} foreach $val->errors }
This module is an interface to the W3C Feed Validation online service http://validator.w3.org/feed/, based on its SOAP 1.2 support. It helps to find errors in RSS or Atom feeds.
The following methods are available:
Creates a new WebService::Validator::Feed::W3C object. A custom LWP::UserAgent object can be supplied which is then used for HTTP communication with the W3C Feed Validation service. $url is the URL of the Feed Validator, http://validator.w3.org/feed/check.cgi by default.
http://validator.w3.org/feed/check.cgi
Validate a feed takes %params as defined below. Either string or uri must be supplied. Returns a true value if the validation succeeded (regardless of whether the feed contains errors).
%params
string
uri
An atom or RSS feed, as a string. It is currently unlikely that validation will work if the string is not a legal UTF-8 string. If a string is specified, the uri parameter will be ignored. Note that GET will be used to pass the string to the Validator, it might not work with overly long strings.
GET
The location of an RSS/Atom feed
Same as the return value of validate().
validate()
Returns a true value if the last attempt to validate() succeeded and the validator reported no errors in the feed.
Returns a list with information about the errors found for the feed. An error is a hash reference; the example in the synopsis would currently return something like
( { type -> 'MissingDescription', line => '23', column => '0', text => 'Missing channel element: description', element =>description, parent =>channel, } )
Returns a list with information about the warnings found for the feed
@@example
The LWP::UserAgent object you supplied to the constructor or a custom object created at construction time you can manipulate.
# set timeout to 30 seconds $val->user_agent->timeout(30);
You can also supply a new object to replace the old one.
Gets or sets the URI of the validator. If you did not specify a custom URI, http://validator.w3.org/feed/check.cgi by default.
The HTTP::Response object returned from the last request. This is useful to determine why validation might have failed.
if (!$val->validate(string => $feed_string)) { if (!$val->response->is_success) { print $val->response->message, "\n" } }
The URI object used for the last request.
The SOAP::SOM object for the last successful deserialization, check the return value of validate() or success() before using the object.
success()
Please remember that the Feed Validation service is a shared resource, so do not abuse it: you should make your scripts sleep between requests.
olivier Thereaux <ot@w3.org>
Based on the WebService::Validator::CSS::W3C module by Bjoern Hoehrmann <bjoern@hoehrmann.de> et.al.
This module is licensed under the same terms as Perl itself.
To install WebService::Validator::Feed::W3C, copy and paste the appropriate command in to your terminal.
cpanm
cpanm WebService::Validator::Feed::W3C
CPAN shell
perl -MCPAN -e shell install WebService::Validator::Feed::W3C
For more information on module installation, please visit the detailed CPAN module installation guide.