WebService::Validator:User:Contributed Perl WebService::Validator::CSS::W3C(3)NAMEWebService::Validator::CSS::W3C - Interface to the W3C CSS Validator
SYNOPSIS
use WebService::Validator::CSS::W3C;
my $css = "p { color: not-a-color }";
my $val = WebService::Validator::CSS::W3C->new;
my $ok = $val->validate(string => $css);
if ($ok and !$val->is_valid) {
print "Errors:\n";
printf " * %s\n", $_->{message}
foreach $val->errors
}
DESCRIPTION
This module is an interface to the W3C CSS Validation online service
http://jigsaw.w3.org/css-validator/ <http://jigsaw.w3.org/css-
validator/>, based on its SOAP 1.2 support. It helps to find errors in
Cascading Style Sheets.
The following methods are available:
my $val = WebService::Validator::CSS::W3C->new
my $val = WebService::Validator::CSS::W3C->new($ua)
my $val = WebService::Validator::CSS::W3C->new($ua, $url)
Creates a new WebService::Validator::CSS::W3C object. A custom
LWP::UserAgent object can be supplied which is then used for HTTP
communication with the CSS Validator. $url is the URL of the CSS
Validator, "http://jigsaw.w3.org/css-validator/validator" by
default.
my $success = $val->validate(%params)
Validate a style sheet, takes %params as defined below. Either
"string" or "uri" must be supplied. Returns a true value if the
validation succeeded (regardless of whether the style sheet
contains errors).
string => $css
A style sheet 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.
uri => $uri
The location of a style sheet or a HTML/XHTML/SVG document
containing or referencing style sheets.
medium => "print"
The medium for which the style sheet should apply, one of
"aural", "braille", "embossed", "handheld", "print", "screen",
"tty", "tv", and "presentation". A special value "all" can
also be specified. The default is "undef" in which case the CSS
Validator determines a value; this would currently be as if
"all" had been specified.
profile => "css3"
The CSS Version or profile to validate against, legal values
are "css1", "css2", "css21", "css3", "svg", "svgbasic",
"svgtiny", "mobile", "atsc-tv", and "tv". A special value
"none" can also be used. The default is "undef" in which case
the CSS Validator determines a default. This would currently
behave as if "css2" had been specified.
warnings => 2
An integer 0 - 10 that determines how many warning messages you
want to get back from the CSS Validator, 0 means no warnings,
10 would give most warnings, but is currently effectively the
same as 1. The defaut is "undef" in which case the CSS
Validator determines a default value; this is expected to be as
if 2 had been specified.
language => "de"
The desired language of the supposedly human-readable messages.
The string will passed as an "Accept-Language" header in the
HTTP request. The CSS Validator currently supports "en", "de",
"fr", "ja", "nl", "zh", and "zh-cn".
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 style sheet.
my $num_errors = $val->errorcount
returns the number of errors found for the checked style sheet.
Get the details of the errors with $val->errors (see below).
my @errors = $val->errors
Returns a list with information about the errors found for the
style sheet. An error is a hash reference; the example in the
synopsis would currently return something like
( {
context => 'p',
property => 'color',
expression => { start => '', end => 'not-a-color' }
errortype => 'parse-error',
message => 'not-a-color is not a color value',
line => 0,
} )
my $num_warnings = $val->warningcount
returns the number of warnings found for the checked style sheet.
Get the details of each warning with $val->warnings (see below).
my @warnings = $val->warnings
Returns a list with information about the warnings found for the
style sheet. This is currently of limited use as it is broken, see
<http://www.w3.org/Bugs/Public/show_bug.cgi?id=771> for details.
@@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://jigsaw.w3.org/css-validator/validator" 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 => $css)) {
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()" or "success()" before using the
object.
BUGS
This module uses the SOAP interface for the W3C CSS validatom, which
still has a number of bugs, tracked via W3C's Bugzilla,
<http://www.w3.org/Bugs/Public/>.
Please report bugs in the W3C CSS Validator to www-validator-css@w3.org
or enter them directly in Bugzilla (see above). Please report bugs in
this module via RT, <http://rt.cpan.org/>.
NOTE
This module is not directly associated with the W3C. Please remember
that the CSS Validator is a shared resource so do not abuse it: you
should sleep between requests, and consider installing the Validator
locally, see http://jigsaw.w3.org/css-validator/DOWNLOAD.html
<http://jigsaw.w3.org/css-validator/DOWNLOAD.html>.
AUTHOR
Bjoern Hoehrmann <bjoern@hoehrmann.de>
This module is licensed under the same terms as Perl itself.
perl v5.14.12011-07-20WebService::Validator::CSS::W3C(3)