Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

xml::dom::valparser(3) [redhat man page]

XML::DOM::ValParser(3)					User Contributed Perl Documentation				    XML::DOM::ValParser(3)

NAME
XML::DOM::ValParser - an XML::DOM::Parser that validates at parse time SYNOPSIS
use XML::DOM::ValParser; my %expat_options = (KeepCDATA => 1, Handlers => [ Unparsed => &my_Unparsed_handler ]); my $parser = new XML::DOM::ValParser (%expat_options); eval { local $XML::Checker::FAIL = &my_fail; my $doc = $parser->parsefile ("fail.xml"); ... XML::DOM::Document was created sucessfully ... }; if ($@) { # Either XML::Parser (expat) threw an exception or my_fail() died. ... your error handling code here ... # Note that the XML::DOM::Document is automatically disposed off and # will be garbage collected } # Throws an exception (with die) when an error is encountered, this # will stop the parsing process. # Don't die if a warning or info message is encountered, just print a message. sub my_fail { my $code = shift; die XML::Checker::error_string ($code, @_) if $code < 200; XML::Checker::print_error ($code, @_); } DESCRIPTION
Use XML::DOM::ValParser wherever you would use XML::DOM::Parser and your XML will be checked using XML::Checker at parse time. See XML::DOM for details on XML::DOM::Parser options. See XML::Checker for details on setting the fail handler (my_fail.) The following handlers are currently supported, just like XML::DOM::Parser: Init, Final, Char, Start, End, Default, Doctype, CdataStart, CdataEnd, XMLDecl, Entity, Notation, Proc, Default, Comment, Attlist, Element, Unparsed. XML
::DOM::ValParser XML::DOM::ValParser extends from XML::Checker::Parser. It creates an XML::Checker object and routes all event handlers through the checker, before processing the events to create the XML::DOM::Document. Just like XML::Checker::Parser, the checker object can be retrieved with the getChecker() method and can be reused later on (provided that the DOCTYPE section of the XML::DOM::Document did not change in the mean time.) You can control which errors are fatal (and therefore should stop creation of the XML::DOM::Document) by filtering the appropriate error codes in the global $XML::Checker::FAIL handler (see "ERROR_HANDLING" in XML::Checker) and calling die or croak appropriately. Just like XML::Checker::Parser, XML::DOM::ValParser supports the SkipExternalDTD and SkipInsignifWS options. See XML::Checker::Parser for details. AUTHOR
Send bug reports, hints, tips, suggestions to Enno Derksen at <enno@att.com>. SEE ALSO
XML::DOM, XML::Checker ("SEE_ALSO" in XML::Checker) perl v5.8.0 2000-01-31 XML::DOM::ValParser(3)

Check Out this Related Man Page

XML::Filter::SAXT(3)					User Contributed Perl Documentation				      XML::Filter::SAXT(3)

NAME
XML::Filter::SAXT - Replicates SAX events to several SAX event handlers SYNOPSIS
$saxt = new XML::Filter::SAXT ( { Handler => $out1 }, { DocumentHandler => $out2 }, { DTDHandler => $out3, Handler => $out4 } ); $perlsax = new XML::Parser::PerlSAX ( Handler => $saxt ); $perlsax->parse ( [OPTIONS] ); DESCRIPTION
SAXT is like the Unix 'tee' command in that it multiplexes the input stream to several output streams. In this case, the input stream is a PerlSAX event producer (like XML::Parser::PerlSAX) and the output streams are PerlSAX handlers or filters. The SAXT constructor takes a list of hash references. Each hash specifies an output handler. The hash keys can be: DocumentHandler, DTDHan- dler, EntityResolver or Handler, where Handler is a combination of the previous three and acts as the default handler. E.g. if Documen- tHandler is not specified, it will try to use Handler. EXAMPLE In this example we use XML::Parser::PerlSAX to parse an XML file and to invoke the PerlSAX callbacks of our SAXT object. The SAXT object then forwards the callbacks to XML::Checker, which will 'die' if it encounters an error, and to XML::Hqandler::BuildDOM, which will store the XML in an XML::DOM::Document. use XML::Parser::PerlSAX; use XML::Filter::SAXT; use XML::Handler::BuildDOM; use XML::Checker; my $checker = new XML::Checker; my $builder = new XML::Handler::BuildDOM (KeepCDATA => 1); my $tee = new XML::Filter::SAXT ( { Handler => $checker }, { Handler => $builder } ); my $parser = new XML::Parser::PerlSAX (Handler => $tee); eval { # This is how you set the error handler for XML::Checker local $XML::Checker::FAIL = &my_fail; my $dom_document = $parser->parsefile ("file.xml"); ... your code here ... }; if ($@) { # Either XML::Parser::PerlSAX threw an exception (bad XML) # or XML::Checker found an error and my_fail died. ... your error handling code here ... } # XML::Checker error handler sub my_fail { my $code = shift; die XML::Checker::error_string ($code, @_) if $code < 200; # warnings and info messages are >= 200 } CAVEATS
This is still alpha software. Package names and interfaces are subject to change. AUTHOR
Send bug reports, hints, tips, suggestions to Enno Derksen at <enno@att.com>. perl v5.8.0 2000-02-11 XML::Filter::SAXT(3)
Man Page