.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.42) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "XML::Validate::Base 3pm" .TH XML::Validate::Base 3pm "2022-06-28" "perl v5.34.0" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" XML::Validate::Base \- Abstract base class to be used by XML::Validate modules .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& use XML::Validate::Base; \& \& sub new { \& ... override new ... \& } \& \& sub validate { \& ... override validate ... \& } .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" XML::Validate::Base provides a base class with helpful subs for real XML::Validate modules. .SH "METHODS" .IX Header "METHODS" .IP "new(%options)" 4 .IX Item "new(%options)" Constructs a new validator. This method must be overridden. .IP "validate($xml)" 4 .IX Item "validate($xml)" Parses and validates \f(CW$xml\fR. Returns a true value on success, undef on failure. This method must be overridden. .IP "options" 4 .IX Item "options" An accessor for the options hashref. .IP "set_options($supplied_options,$valid_options)" 4 .IX Item "set_options($supplied_options,$valid_options)" Sets the options for the validator. \f(CW$supplied_options\fR and \f(CW$valid_options\fR are hash refs containing respectively the options supplied to the constructor and the valid options for validator along with their default values. .Sp If the supplied options hash ref contains an option not listed in valid options, this sub throws an exception. .IP "last_error" 4 .IX Item "last_error" Returns the error from the last validate call. This is a hash ref with the following fields: .RS 4 .IP "\(bu" 4 message .IP "\(bu" 4 line .IP "\(bu" 4 column .RE .RS 4 .Sp Note that the error gets cleared at the beginning of each \f(CW\*(C`validate\*(C'\fR call. .RE .IP "add_error($error)" 4 .IX Item "add_error($error)" Stores \f(CW$error\fR for retrieval by last_error. \f(CW$error\fR should be a hash ref. .IP "clear_errors" 4 .IX Item "clear_errors" Clears any errors held by the validator. .SH "VERSION" .IX Header "VERSION" \&\f(CW$Revision:\fR 1.9 $ on \f(CW$Date:\fR 2005/09/06 11:05:08 $ by \f(CW$Author:\fR johna $ .SH "AUTHOR" .IX Header "AUTHOR" Colin Robertson .SH "COPYRIGHT" .IX Header "COPYRIGHT" (c) \s-1BBC 2005.\s0 This program is free software; you can redistribute it and/or modify it under the \s-1GNU GPL.\s0 See the file \s-1COPYING\s0 in this distribution, or http://www.gnu.org/licenses/gpl.txt