Unix/Linux Go Back    

RedHat 9 (Linux i386) - man page for xml::filter::saxt (redhat section 3)

Linux & Unix Commands - Search Man Pages
Man Page or Keyword Search:   man
Select Man Page Set:       apropos Keyword Search (sections above)

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

       XML::Filter::SAXT - Replicates SAX events to several SAX event handlers

	$saxt = new XML::Filter::SAXT ( { Handler => $out1 },
					{ DocumentHandler => $out2 },
					{ DTDHandler => $out3,
					  Handler => $out4

	$perlsax = new XML::Parser::PerlSAX ( Handler => $saxt );
	$perlsax->parse ( [OPTIONS] );

       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 han-
       dler. The hash keys can be: DocumentHandler, DTDHandler, EntityResolver or Handler, where
       Handler is a combination of the previous three and acts as the default handler.	E.g. if
       DocumentHandler is not specified, it will try to use Handler.


       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);
	   # 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

       This is still alpha software.  Package names and interfaces are subject to change.

       Send bug reports, hints, tips, suggestions to Enno Derksen at <enno@att.com>.

perl v5.8.0				    2000-02-11			     XML::Filter::SAXT(3)
Unix & Linux Commands & Man Pages : ©2000 - 2018 Unix and Linux Forums

All times are GMT -4. The time now is 08:15 AM.