|
NAMEXML::Validate - an XML validator factorySYNOPSISmy $validator = new XML::Validate(Type => 'LibXML'); if ($validator->validate($xml)) { print "Document is valid\n"; } else { print "Document is invalid\n"; my $message = $validator->last_error()->{message}; my $line = $validator->last_error()->{line}; my $column = $validator->last_error()->{column}; print "Error: $message at line $line, column $column\n"; } DESCRIPTIONXML::Validate is a generic interface to different XML validation backends. For a list of backend included with this distribution see the README.If you want to write your own backends, the easiest way is probably to subclass XML::Validate::Base. Look at the existing backends for examples. METHODS
Note that the error gets cleared at the beginning of each "validate" call.
ERROR REPORTINGWhen a call to validate fails to parse the document, the error may be retrieved using last_error.On errors not related to the XML parsing methods will throw exceptions. Wrap calls with eval to catch them. BEST AVAILABLEThe BestAvailable backend type will check which backends are available and give you the "best" of those. For the default order of preference see the README with this distribution, but this can be changed with the option PrioritisedList.If Xerces and LibXML are available the following code will give you a LibXML backend: my $validator = new XML::Validate( Type => 'BestAvailable', Options => { PrioritisedList => [ qw( MSXML LibXML Xerces ) ] }, ); KNOWN ISSUESThere is a bug in versions 1.57 and 1.58 of XML::LibXML that causes an issue related to DTD loading. When a base parameter is used in conjunction with the load_ext_dtd method the base parameter is ignored and the current directory is used as the base parameter. In other words, when validating XML with LibXML any base parameter option will be ignored, which may result in unexpected DTD loading errors. This was reported as bug on November 30th 2005 and the bug report can be viewed here http://rt.cpan.org/Public/Bug/Display.html?id=16213VERSION$Revision: 1.25 $ on $Date: 2006/04/19 10:16:19 $ by $Author: mattheww $AUTHORNathan Carr, Colin Robertson<cpan _at_ bbc _dot_ co _dot_ uk> COPYRIGHT(c) BBC 2005. This program is free software; you can redistribute it and/or modify it under the GNU GPL. See the file COPYING in this distribution, or http://www.gnu.org/licenses/gpl.txt
Visit the GSP FreeBSD Man Page Interface. |