NAME
WebService::Validator::Feed::W3C - Interface to the W3C Feed Validation service
SYNOPSIS
my
$val
= WebService::Validator::Feed::W3C->new;
my
$ok
=
$val
->validate(
uri
=>
$feed_url
);
if
(
$ok
and !
$val
->is_valid) {
"Errors:\n"
;
printf
" * %s\n"
,
$_
->{message}
foreach
$val
->errors
}
DESCRIPTION
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:
- my $val = WebService::Validator::Feed::W3C->new
- my $val = WebService::Validator::Feed::W3C->new($ua)
- my $val = WebService::Validator::Feed::W3C->new($ua, $url)
-
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. - my $success = $val->validate(%params)
-
Validate a feed takes
%params
as defined below. Eitherstring
oruri
must be supplied. Returns a true value if the validation succeeded (regardless of whether the feed contains errors).- string => $feed_string
-
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 thatGET
will be used to pass the string to the Validator, it might not work with overly long strings. - uri => $feed_uri
-
The location of an RSS/Atom feed
- my $success = $val->success
-
Same as the return value of
validate()
. - my $is_valid = $val->is_valid
-
Returns a true value if the last attempt to
validate()
succeeded and the validator reported no errors in the feed. - my @errors = $val->errors
-
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,
} )
- my @warnings = $val->warnings
-
Returns a list with information about the warnings found for the feed
@@example
- my $ua = $val->user_agent
- my $ua = $val->user_agent($new_ua)
-
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.
- my $uri = $val->validator_uri
- my $uri = $val->validator_uri($validator_uri)
-
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. - my $response = $val->response
-
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"
}
}
- my $uri = $val->request_uri
-
The URI object used for the last request.
- my $som = $val->som
-
The SOAP::SOM object for the last successful deserialization, check the return value of
validate()
orsuccess()
before using the object.
NOTE
Please remember that the Feed Validation service is a shared resource, so do not abuse it: you should make your scripts sleep between requests.
AUTHOR
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.