Here is what you should do.
You need to download the source code of the actual validator that W3C uses
and
design a SOAP interface for the script. You can get this job done very
easily with
SOAP::Lite.
You can then either contact the W3C validator team and get it hosted on
their server,
or host it on your own box.
Then, you will need to write a very simply CPAN module using same
SOAP::Lite,
may be with about 20 lines of code to talk to your SOAP server.
Final interface of your module may look something like:
use W3C::Validator::Markup;
my $val = new W3C::Validator::Markup();
$val->validate($markup_as_string);
if ( $val->is_valid() ) {
print "Good job!\n";
if ( $val->warnings ) {
print "There are some minor warnings though\n";
}
} else {
print "Nah, doesn't validate. Because...\n";
while ( my $errobj = $val->errors ) {
printf "Line %d, column: %d: %s\n\t",
$errobj->line_number, $errobj->col_number, $errobj->line;
print "Description: %s\n", $errobj->description()
}
}
$val->finish(); # <-- free up the buffer
--
sherzod
: -----Original Message-----
: From: Struan Donald [mailto:[EMAIL PROTECTED]
: Sent: Tuesday, October 28, 2003 1:38 PM
: To: [EMAIL PROTECTED]
: Subject: module to access w3c validator
:
:
: Hi,
:
: I've been looking at getting at the W3C's HTML validation
: service and
: as there's nothing there that does what I want I was looking at
: knocking something up.
:
: Having checked with the maintainer of W3C::LogValidator we came up
: with WWW::Validator::W3CMarkup as a name.
:
: Does this sound reasonable to everyone out there and is there
: something out there that I've missed?
:
: The other question is that I was also going to write a
: version that
: wraps up the XML output you can get from the Validator
: but I'm really
: not sure what to call it.
:
: Essentially the difference between the two will be that the basic
: version will just let you know if the webpage passed or
: failed. The
: one that takes the XML will be able to return you a list
: of the errors
: in the document. WWW::Validator::W3CMarkup::Detailed was
: on thought I
: had but that seems a little clumsy.
:
: The logic in splitting these into two modules is so that
: people don't
: need to install a load of XML processing stuff unless
: they really need
: it.
:
: thanks
:
: Struan
: