XML::SAX::PurePerl - Pure Perl XML Parser with SAX2 interface


  use XML::Handler::Foo;
  use XML::SAX::PurePerl;
  my $handler = XML::Handler::Foo->new();
  my $parser = XML::SAX::PurePerl->new(Handler => $handler);


This module implements an XML parser in pure perl. It is written around the upcoming perl 5.8's unicode support and support for multiple document encodings (using the PerlIO layer), however it has been ported to work with ASCII documents under lesser perl versions.

The SAX2 API is described in detail at, in the CVS archive, under libxml-perl/docs. Hopefully those documents will be in a better location soon.

Please refer to the SAX2 documentation for how to use this module - it is merely a front end to SAX2, and implements nothing that is not in that spec (or at least tries not to - please email me if you find errors in this implementation).


Currently lots, probably. At the moment the weakest area is parsing DOCTYPE declarations, though the code is in place to start doing this. Also parsing parameter entity references is causing me much confusion, since it's not exactly what I would call trivial, or well documented in the XML grammar. XML documents with internal subsets are likely to fail.

I am however trying to work towards full conformance using the Oasis test suite.


Matt Sergeant, Copyright 2001.

Please report all bugs to the Perl-XML mailing list at


This is free software. You may use it or redistribute it under the same terms as Perl 5.7.2 itself.