XML::LibXML
===========

This module implements much of the DOM Level 2 API as an 
interface to the Gnome libxml2 library. This makes it a fast
and highly capable validating XML parser library, as well as
a high performance DOM.

IMPORTANT NOTE
==============

XML::LibXML was almost entirely reimplemented between version 1.40 
to version 1.49. This may cause problems on some production machines.
with version 1.50 a lot of compatibility fixes were applied, so 
programs written for XML::LibXML 1.40 or less should run with 
version 1.50 again.

Dependencies
============

Prior to installation you MUST have installed the libxml2
library. You can get the latest libxml2 version from 

      http://xmlsoft.org

Also XML::LibXML requires the following packages:

XML::LibXML::Common   - node type symbols and encoding functions
XML::SAX              - DOM building support from SAX
XML::NamespaceSupport - DOM building support from SAX
XML::NodeFilter       - Filter Class for XML::LibXML::Iterator
                        and XML::LibXML::NodeList::Iterator

These packages are required. If one is missing some tests most likely
will fail.

Installation
============

Then run:

 $ perl Makefile.PL
 $ make test
 $ su
 $ make install

Note On libxml2 Versions

  libxml2 claims binary compatibility between its patch levels. This is not 
  all true: 

  First of all XML::LibXML requires at least libxml2 2.4.20. For most OS this 
  means that an update of the prebuild packages is required, since most 
  distributors ship ancient libxml2 versions most users will need to upgrade 
  their installation. 

  If you already run an older version of XML::LibXML and you wish to upgrade
  to a bug fixed version of libxml2, you can upgrade the libraries from 
  libxml2 2.4.20 to 2.4.24 without recompiling XML::LibXML. libxml2 2.4.25 
  and later versions are not 100% binary compatible to older versions. So 
  if you intend to upgrade to such a version you will need to recompile 
  XML::LibXML as well. 

  Users of perl 5.005_03 and perl 5.6.1 with thread support will also like 
  to avoid libxml2 version 2.4.25 and use later versions instead. 

Parser documentation is in perldoc XML::LibXML. DOM documentation
starts in perldoc XML::LibXML::Document and perldoc
XML::LibXML::Node.

If your libxml2 installation is not within your $PATH. you can set 
the environment variable XMLPREFIX=$YOURLIBXMLPREFIX to make 
XML::LibXML recognize the correct libxml2 version in use.

e.g.

$ XMLPREFIX=/usr/brand-new perl Makefile.PL

will ask '/usr/brand-new/bin/xml2-config' about your real 
libxml2 configuration.

NOTES FOR HPUX
==============

XML::LibXML requires libxml2 2.4.20 or later. That means the current
binary libxml2 package for HPUX cannot be used with XML::LibXML. For
some reasons the HPUX cc will not compile libxml2 correct, which will
force you to recompile perl with gcc (if you havn't already done that).

Additionally I got these Note from Rozi Kovesdi:

> Here is my report if someone else runs into the same problem:
>
> Finally I am done with installing all the libraries and XML Perl
> modules
>
> The combination that worked best for me was:
> gcc
> GNU make
>
> Most important - before trying to install Perl modules that depend on
> libxml2:
>
> must set SHLIB_PATH  to include  the path to  libxml2 shared library
> 
> assuming that you used the default:
>
> export  SHLIB=/usr/local/lib
>
> also, make sure that the config  files have execute permission:
>
> /usr/local/bin/xml2-config
> /usr/local/bin/xslt-config
> 
> they did not have +x after they were installed by 'make install'
> and it took me a while to realize that this was my problem
> 
> or one can use:
> 
> perl Makefile.PL LIBS='-L/path/to/lib' INC='-I/path/to/include'

NOTES FOR Mac OS X
==================

XML::LibXML 1.54 is known not to work with Max OS X because of the known
'flat namespace' linking problem. This leads to conflicts with 
XML::LibXML::Common. I am aware that there are sollutions to this 
problem, but because of a lack of hardware I was not able to solve this
problem for this release. 

NOTES FOR M$ Windows
====================

Thanks to Randy Kobes there is a precompiled PPM package available on

http://theoryx5.uwinnipeg.ca/ppmpackages/

Usually it takes a little time to build the package for the latest
release. 

Contact
=======

For suggestions, bugreports etc. you may contact the maintainer directly
christian.glahn@uibk.ac.at 

Also XML::LibXML issues are discussed among other things on the
perl XML mailing list (perl-xml@listserv.ActiveState.com)

Package History
===============

Version < 0.98 were maintained by Matt Sergeant 
0.98 > Version > 1.49 were maintained by Matt Sergeant and Christian Glahn
Version >= 1.49 are maintained by Christian Glahn
 
License
=======

This is free software, you may use it and distribute it under the same
terms as Perl itself. 

Copyright 2001-2002 AxKit.com Ltd, All rights reserved.

DISCLAIMER
==========

THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
