$Id: README,v 1.10 2003/10/21 16:01:54 kmacleod Exp $

libxml-perl

Collection of Perl modules for working with XML.

INTRODUCTION

libxml-perl is a collection of smaller Perl modules, scripts, and documents for working with XML in Perl. libxml-perl software works in combination with XML::Parser, PerlSAX, XML::DOM, XML::Grove and others.

See the file Changes for user-visible changes and ChangeLog for detailed changes. See the `examples' directory for examples. POD style documentation is included in all non-alpha modules and scripts. You should also be able to use the 'perldoc' utility to extract documentation from the module files directly. HTML formatted docs are available at the libxml-perl home page <http://bitsko.slc.ut.us/libxml-perl/>.

Newer versions of this module can be found on CPAN at <http://www.perl.com/CPAN/modules/by-module/XML/>. To join the Perl-XML mailing list, send an email message to ListManager@ActiveState.com with the following text in the body: Subscribe Perl-XML

View the Perl XML FAQ at
<http://www.perlxml.com/faq/perl-xml-faq.html>.

Copyright (C) 1998 Ken MacLeod and others This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

MODULES

The following modules are marked with their release status:

STABLE -- has been in use for a while with few or no outstanding

bugs
BETA -- interfaces are stable but there may still be bugs ALPHA -- interfaces are changing, there may be lots of bugs, and

there may not be docs available yet

    XML::Parser::PerlSAX       STABLE
        XML::Parser::PerlSAX is a PerlSAX parser using XML::Parser
        (which uses James Clark's Expat XML Parser).

    XML::Handler::Sample       STABLE
        XML::Handler::Sample is a PerlSAX handler that simply prints
        out the event names as they are parsed by a PerlSAX parser.
        It can be used for debugging or as a template for building new
        handlers.  XML::Handler::Sample contains handlers for all
        known parser events.

    XML::ESISParser            STABLE
        XML::ESISParser is a validating PerlSAX parser using James
        Clark's `nsgmls' SGML/XML Parser.  ESISParser supports both
        XML and SGML document instances.  Unless you need validation,
        you should probably be using XML::Parser::PerlSAX or
        XML::Parser.

        XML::ESISParser with XML::Grove obsolete the
        SGML::SPGroveBuilder and SGML::Grove modules.

XML::Handler::XMLWriter STABLE

        A PerlSAX handler for writing readable XML (in contrast to
        Canonical XML, for example).  XMLWriter is also subclassable
        and supports calling start and end methods by element-names
        (subclassed from XML::Handler::Subs).  XMLWriter is similar to
        XML::Parser's Stream style.

    XML::Handler::Subs         STABLE
        A PerlSAX handler base class that calls start and end methods
        by element-names.  Subs is similar to XML::Parser's Subs
        style.

XML::Handler::CanonXMLWriter STABLE

        A PerlSAX handler that outputs in Canonical XML
        <http://www.jclark.com/xml/canonxml.html>.  This module is
        generally only used for debugging.

    Data::Grove                STABLE
    Data::Grove::Parent        STABLE
    Data::Grove::Visitor       STABLE
        Data::Grove and it's helpers provide a base class for deeply
        nested or directed graph structures.  Used by XML::Grove (and
        others soon).

    XML::SAX2Perl              ALPHA
    XML::Perl2SAX              ALPHA
        SAX2Perl and Perl2SAX are SAX Parser<->DocumentHandler
        filters.  These modules translate parse events between the
        Java/CORBA style SAX methods and PerlSAX style methods.

    XML::PatAct::MatchName     ALPHA
        MatchName is a pattern matching module that can be used with
        PatAct action modules.  MatchName uses simple element names or
        element name lists to match names to actions.

    XML::PatAct::ToObjects     ALPHA
        ToObjects is a PatAct action module.  ToObjects can be used to
        create application-ready Perl objects from XML instances.

    XML::PatAct::Amsterdam     ALPHA
        Amsterdam is a PatAct action module.  Amsterdam can be used to
        apply a very simple form of style-sheet to an XML instance by
        using ``before'' and ``after'' strings that are output before
        and after the contents of elements.

XML::PatAct::PatternTempl BETA
XML::PatAct::ActionTempl BETA

        PatternTempl and ActionTempl are template files that
        pattern/action module writers can copy to create new modules.
        See Creating PatAct Modules for more information.

DOCUMENTS

sax-2.0.html, sax-2.0-adv.html

        PerlSAX 2.0 bindings.  Maintained by Robin Berjon and the
        XML-Perl mailing list.

PerlSAX

        This document defines a Perl binding to SAX 1.0.  PerlSAX-
        based parser modules implement and possibly extend the
        interface described in PerlSAX.

UsingPerlSAX

        A brief introduction to PerlSAX using the XML::Parser::PerlSAX
        module.

UsingPatActModules

        Describes how to use pattern/action modules to transform XML
        instances.

CreatingPatActModules

        A document for module writers who are writing new pattern/
        action modules.

modules.xml

        modules.xml contains a listing of all Perl XML packages and
        their public modules categorized by several topics.

INSTALLATION

In order to use this package you will need Perl version 5.005 or better. Several other modules may also be required to use some modules in libxml-perl, including XML::Parser, XML::DOM, and XML::Grove. These are all available in the XML module directory on CPAN.

<http://www.perl.com/CPAN/modules/by-module/XML/>

You install libxml-perl, as you would install any perl module library, by running these commands:

        perl Makefile.PL
        make
        make test
        make install

If you want to install a private copy of libxml-perl in your home directory, then you should try to produce the initial Makefile with something like this command:

perl Makefile.PL PREFIX=~/perl