Revision history for Perl extension XML::LibXML

1.90            Sun Jan  8 20:57:58 IST 2012
    - Pull a commit from Aaron Crange to fix compilation bugs in Devel.xs:
        - local variable declarations must be in the PREINIT section,
        not `CODE`, at least for some compiler/OS combinations.
        - Thanks, Aaron!

1.89            Sat Dec 24 09:46:26 IDT 2011
    - Apply a patch with spelling fixes by Kevin Lyda :
        - Thanks to Kevin.
    - Apply a pull request by ElDiablo with the implementation of
    lib/XML/LibXML/ .
    - Adjust the Win32 Build Instructions in the README file.
        - Thanks to Christopher J. Madsen.

1.88            Wed Sep 21 12:54:33 IDT 2011
    - Add libxml2 2.7.8 as tested and working fine for the Makefile.PL.
    (Thanks to H. Merijn Brand.).
    - Apply a patch to perl-libxml-sax.c to use xmlChar * instead of char *.
    (Thanks to H. Merijn Brand.).
    - Correct the README so it won't read XML-LibXML-Common.
        - see
    - Add a patch to implement the no_defdtd option in recent libxml2's:
        - Thanks to .
    - Add scripts/ to modify the version number globally.
        - Up to then, the version numbers of the modules under lib/ had
        been 1.73.

1.87            Sat Aug 27 14:05:37 IDT 2011
    - Fix t/49callbacks_returning_undef.t to not read /etc/passed which may
    not be valid XML. Instead, we're reading a local file while using 
    URI::file (assuming it exists - else - we skip_all.)

1.86            Thu Aug 25 11:42:55 IDT 2011
    - Changed SvPVx_nolen() to SvPV_nolen() in LibXML.xs for better compatibility.
        - SvPVx_nolen() appears to be undocumented API.
        - Resolves
        - Thanks to Paul for the report.

1.85            Wed Aug 24 17:05:19 IDT 2011
    - Gracefully handle returned undef()s in the read callback under -w ($^W):
        - t/49callbacks_returning_undef.t
    - Add a patch from Mithaldu to get XML::LibXML to compile on Win32:
        - I'm applying it by faith, so if it breaks, blame him. (;-).
        - the patch adds -lllibgettextlib.dll to the Makefile.PL.

1.84            Sat Jul 23 23:12:28 IDT 2011
    - Fix for perl 5.8.x before 5.8.8:
        - "You can now use the x operator to repeat a qw// list. This used to raise a syntax error."
        - fixes .
        - thanks to for the report.

1.83            Sat Jul 23 14:28:40 IDT 2011
    - Fixed missing declarations after statements:
        - resolves again.
        - thanks to Vadim / VKON.
    - Fix docbook source validity
        - resolves
        - thanks to Ville Skytta / SCOP for the patch.
    - Applied patch from
        - [PATCH] Documentation spelling fixes
        - thanks to Ville Skytta / SCOP for the patch.
        - minor correction by the current maintainer (SHLOMIF).
    - Convert t/14sax.t to Counter and Stacker so the tests will be more
        - SHLOMIF

1.82            Wed Jul 20 23:43:53 IDT 2011
    - Moved some if blocks after the dSP; (which contains declarations) to be
    compliant with C89/C90, which don't allow declarations in the middle of
    a C function.
        - resolves
        - thanks to Vadim / VKON.
    - Fix :
        - "install_sax_driver doesn't like custom INSTALLARCHLIB"
        - thanks to Milki from U.Cal Berkeley.

1.81            Sat Jul 16 18:30:02 IDT 2011
    - Add scripts/ to remove the explicit objects dependency on 
    the "Makefile" file so after running scripts/ one won't have to
    rebuild the C-files.
    - Add no warnings 'recursion' to lib/XML/LibXML/ to get rid of
    a "Deep recursion" warning.
    - Fix "IDs of elements is lost when importing nodes"
        - With t/48importing_nodes_IDs_rt_69520.t .
        - Thanks to Yuriy Ustushenko.
    - Convert all remaining test scripts except t/14sax.t to
    Test::More .

1.80            Tue Jul 12 23:35:03 IDT 2011
    - Fix :
        - Compilation on strawberry perl.
        - The problem was that stderr required a dTHX; call previously.
    - DOM Normalisation patches and a fix for #69096
        - Thanks to Daniel Frett.
        - "findvalue from XML::LibXML 1.74 is very slow (regression)"
    - Fix :
        - "t/19die_on_invalid_utf8_rt_58848.t assumes errors will be objects:"
        - Thanks to TODDR.
        - Failed on older libxml2's.
    - Add a skip for t/60error_prev_chain.t in case $@ is true but not a ref.
        - Thanks to TODDR.

1.79            Fri Jul  8 20:02:32 IDT 2011
    - t/46err_column.t : add a skip for a test for CentOS/RHEL 4:
        - old version of libxml2 .
    - t/49global_extent.t : fix the double plan (present on libxml2
    below 2.6.27):
        - Thanks to Chris for reporting it.
    - double plan in t/61error.t .
        - in accordance to the previous change.

1.78            Wed Jul  6 20:23:58 IDT 2011
    - Change t/02parse.t to test for the localized error message:
    - Fix the skip() and 'plan skip_all' syntax in t/06elements.t and
    t/49global_extent.t for old versions of XML::LibXML:
        - It did not match the one specified in Test::More.
    - Convert more test scripts from to Test::More.

1.77            Fri Jul  1 22:27:56 IDT 2011
    - Change the signature of XML::LibXML::Reader::byteConsumed to be
    "long" instead of "int", so it can return values above 2**31 in
    64-bit platforms.
        - should fix
    - Change "a XML::LibXML::*" to "an XML::LibXML::*" in the documentation.
    - Document XML::LibXML::NamedNodeMap :
        - .
    - Add an external entity resolver (for XSLT/etc.):
        - Fixing .
        - Thanks to SAMSK for the patch.
    - Add the missing string comparison overload in
    lib/XML/LibXML/ :
        - Thanks to MSCHWERN .
    - Fix :
        - <<< In XML::LibXML, warnings are not suppressed when specifying the 
        recover() or recover_silently() flags as per the following excerpt from
        the manpage: >>>
        - Now XML-LibXML requires perl-5.8.x (to print to a buffer trick.).
        - Thanks to Michael Ludwig for the report.
    - Fix :
        - limit the length of the chain of the previous errors.
        - New files:
            - t/60error_prev_chain.t
            - example/JBR-ALLENtrees.htm
        - Thanks to SCOP.
    - Fix :
        - "Malformed UTF-8 character (fatal) at" exception thrown on invalid
        - Thanks to David E. Wheeler (DWHEELER) for the report.

1.76            Thu Jun 30 20:58:46 IDT 2011
    - Cleaned up t/28new_callbacks_multiple.t - convert to a Counter
     and Stacker class.
        - After that, the regression test for was added:
        - Already fixed in the trunk.
    - Add the file HACKING.txt with style guidelines.
    - Fix (with a test
    in t/49_load_html.t ) - uncovered some more bugs in the process
    documented in TODO.
        - << suppress_errors option not honored by load_html() method if set in 
        parser object >>
    - Created t/lib/ with slurp(), utf8_slurp() and, in the
    future, some other routines.
    - skipping for LIBXML_RUNTIME_VERSION() *less than* 2.7 instead of
    *more than* in t/09xpath.t :
        - Thanks to DOUGW .

1.75            Fri Jun 24 19:00:40 IDT 2011
    - Correct some typos reported in 
    - Fix the handling of XML::LibXML::InputCallbacks at load_xml().
        - The problem was that the input callbacks were not cloned in
    - Apply the patches from
        - Convert t/02parse.t to Test::More .
        - Thanks to TODDR .
        - Removed the diag() messages which were annoying.
    - Add 'make runtest' and 'make distruntest' targets to run the tests using 
    Test::Run ( ).
        - Adds colours and stuff like that.
    - Add << LICENSE => 'perl' >> to the Makefile.PL for a license
    meta-data in the META.YML.
    - Feature implementation: joining congruent character data together in
    SAX driver .
        - Apply a somewhat modified patch from:
    - Add t/pod.t .
    - Fix :
        - Apply modified patch in the bug report.
        - << If an element contains both a default namespace declaration and a 
        second namespace declaration, adding an attribute using the default 
        namespace declaration will cause that attribute to have the other 
        prefix. >>

1.74            Thu Jun 23 16:20:42 IDT 2011
    - More work on the t/*.t test scripts.
    - Add scripts/ to semi-automatically 
    convert a test script from to Test::More.
    - Change NodeSet to NodeList in the documentation of
    lib/XML/LibXML/ .
        - Resolved
    - Makefile.PL: now saying we are trying to link against -lm, -lz 
    and -lxml2 . Not only -lxml2:
        - << $node = XML::LibXML::Comment( $content ); >> is wrong.
    - Documentation: moved away from Indirect-object-notation and added
    some missing "my"s:
    - Fix failing t/01basic.t when compiling against libxml2 that comes from
        - Thanks to Evan Carroll ( ) for the 

1.73            Sat Jun 18 10:53:44 IDT 2011
    - Calculating $err->column() properly, so it won't be maxed out at
        - the context still maxes at 80 (to avoid wasting RAM) but we
        still continue past that to get the accurate verdict.
        - Thanks to SCOP.
    - Update the repository in the documentation to point to the one.
    - Revamped Makefile.PL:
        - Got rid of "\t" characters.
        - Add "use strict" and "use warnings".
        - Add resources and keywords to the META_MERGE.
        - Other changes.
    - Fix :
        - << when calling normalize on a node, processing of children nodes 
        will stop when an empty element node is encountered. >>
        - Thanks to Daniel Frett for the patch.
    - Apply the patch from Daniel Frett's InputCallbackFix branch.
        - a partial fix to .
        - Call two $parser->parse_string() in succession.
    - Apply the NestedParsing patch.
        - more of
        - Thanks to Daniel Frett for the patch.

        Updated how legacy parser local callbacks are utilized by
        init_callbacks so that the XML::LibXML::InputCallback object doesn't
        have to be temporarily modified during the parsing process.
        This change could break code for users that have subclassed
        XML::LibXML::InputCallback and overridden the init_callbacks method
    - Documentation fixes patch from Daniel Frett on:
        - From .

1.72            Thu Jun 16 19:26:13 IDT 2011
    - Removed a stray file from the MANIFEST
        - Warned on "kit not complete".
        - Thanks to obrien.jk

1.71            Tue Jun 14 19:43:50 IDT 2011
   - Apply 0001-XML-LibXML-Error-no-need-to-AUTOLOAD-domain.patch from - no need to
     AUTOLOAD 'domain' because a method like that exists.
        -- Applied by SHLOMIF.
        -- Thanks to Aaron Crane.
    - Apply 0002-XML-LibXML-Error-avoid-AUTOLOAD.patch from - get rid of
      AUTOLOAD completely.
        -- Applied by SHLOMIF.
        -- Thanks to Aaron Crane.
    - Apply 0003-XML-LibXML-Error-make-domain-work-for-unknown-domain.patch
      from - handle
      unknown domains.
        -- Applied by SHLOMIF.
        -- Thanks to Aaron Crane.
    - Apply 0004-XML-LibXML-Error-add-domains-from-newer-libxml2.patch
      from - add more
        -- Applied by SHLOMIF.
        -- Thanks to Aaron Crane.
    - Apply 0005-XML-LibXML-Error-avoid-malformed-UTF-8-warnings.patch
        -- Applied by SHLOMIF.
        -- Thanks to Aaron Crane.
    - In replaceDataString - use instead of a long (and
    incomplete) list of characters to escape.
        -- With test.
        -- also fix deleteDataString by making it use replaceDataString
        for help.
        -- Fixing
        -- Thanks to Daniel Perrett .

   - various fixes and improvements in the documentation
   - added (convenient yet non-standard) methods nonBlankChildNodes,
     firstNonBlankChild, nextNonBlankSibling, prevNonBlankSibling
     that skip empty or whitespace-only Text and CDATA nodes
   - exposed and documented external entity handler
   - XPathContext can now be passed to toStringC14N and toStringEC14N
     (e.g. to provide NS mapping for the XPath expression)
   - avoid using libxml2's globals (Nick Wellnhofer)
   - added interface to libxml2's regexp implementation: XML::LibXML::RegExp
   - added XML::LibXML->load_xml and XML::LibXML->load_html with
     uniform and cleaner API than the old parse_* family
   - cleanup code dealing with parsing flags
   - fix bogus validation results if revalidating a modified document
   - added 'eq' and 'cmp' overloading on XML::LibXML::Error and set fallback to 1
   - lots of bugs fixed

   - provide context and more accurate column number in
     structured errors
   - clarify license and copyright
   - support for Win32+mingw+ActiveState

   - merge with XML::LibXML::Common
   - fix compilation on Windows with mingw or msvc
   - fix a bug in structured errors preventing the previous errors from being reported
   - fix compilation bugs
   - fix encoding problem in reader
   - added getAttributeHash to the reader interface
   - fix segfaults: reconcileNs in domReplaceChild, findnodes with a doc fragment (S. Rezic)

   - fix incorrect output of getAttributeNS and possibly other methods on UTF-8
   - added $node_or_xpc->exists($xpath) method
   - remove accidental debug output from XML::LibXML::SAX::Builder

   - compilation problem fixes

   - many bugfixes (
   - added XML::LibXML::Pattern module and extended pattern support in Reader
   - added XML::LibXML::XPathExpression module that can pre-compile an XPath expression
   - reimplementation of the thread support (mostly by Tim Brody)
   - structured errors XML::LibXML::Error
   - memory leak fixes
   - documentation fixes
   - README - notes for building on Win32 (C.J. Madsen)

   - Perl-thread support contributed by Tim Brody [ #31945]
   - fix [ #30610] possible segmentation fault when importing nodes from a document to an element created with XML::LibXML::Element->new
   - fix [ #30261] Segmentation fault when extracting elements from an XML chunk
   - make Makefile.PL require Perl 5.6.1
   - minor fixes and additions to the documentation 
   - portability patch from [ #29627]
   - give registered Ns declarations precedence over document-specific ones
     in XML::LibXML::XPathContext; fixes [ #29650]

   - fix bug in t/40reader.t revealed by a bugfix in Test::More 0.71 (Jonathan Rockway)
   - fix possible SIGSEGV when PI's or attrs created with
     createDocument can get garbage-collected after their owning
     document (old-standing bug suddenly caught by XML::Compile regression tests)
   - skip tests for unsupported features on unsupported versions of Perl/libxml2
   - make Reader interface require Perl 5.8 (patches to extend to 5.6 are welcome)

   - fix reconcilation of the "xml" namespace [ #26450] 
   - make tests pass with libxml2 2.9.29 - PI regression tests now
     accept "" as data of an empty PI [ #27659]
   - strip-off UTF8 flag with $node->toString($format,1) for consistent
     behavior independent on the actual document encoding
   - fix in XML::LibXML::Reader::nextSiblingElment
   - fix synopsis for XML::LibXML::Reader
   - skip tests that require Encode module if not available (perl 5.6)
   - finally removed the iterator() method deprecated since 1.54
   - set_document_locator support in XML::LibXML::SAX::Parser
   - SYNOPSIS sections of the docs now mention which module to use
     and which other manpage to look into for inherited methods
   - XML::LibXML::Namespace API fixed in order to achieve
     an agreement between the docs and the implementation

   - added no_network parser flag
   - added support for exclusive canonicalization (
   - make XInclude reflect parser flags
   - documentation fixes
   - better namespace reconciliation implemented by Tim Brody
   - $doc->toString always returns octets
   - $doc->actualEncoding returns UTF8 if no document encoding is declared
     (unlike $doc->getEncoding, which returns undef)
   - interface to libxml2's pull-parser XML::LibXML::Reader
     (initiated by Heiko Klein)
   - make error messages intended to the user report the line of the
     application call rather than that of the internal XS call
   - XML::LibXML::Attr->serializeContent added (convenience function)
   - fix getAttributeNode etc. w.r.t. #FIXED attributes (as well as some
     cases with old buggy libxml2 versions)
   - warn if runtime libxml2 is older than the one used at the compile time
   - if compiled against libxml2 >= 2.6.27, new parse_html_* implementation is used
     allowing encoding and other options to be passed to the parser
   - DOM-compliant nodeNames: #comment, #text, #cdata, #document, #document-fragment
   - toString on empty text node returns empty string, not undef
   - cloneNode copies attributes on an element as required by the DOM spec

   - get{Elements,Children}By{TagName,TagNameNS,LocalName} now
     obey wildcards '*', getChildrenByLocalName was added.
   - XML::LibXML::XPathContext merged in
   - many new tests added
   - the module should now be fully compatibile with libxml2 >= 2.6.16
     (some older versions compile but have problems with namespaced attributes)
   - threads test skipped by default
   - documentation updates (namely DOM namespace conformance in XML::LibXML::DOM)
   - added setNamespaceDecl{URI,Prefix}
   - get/setAttribute(NS)? implementation made xmlns aware
   - all sub-modules have the same version as XML::LibXML

   - getElementsById corrected to getElementById and the old name kept
     as an alias. Also re-implemented without XPath for improved
   - DOM Level 3 method $attr->isId() added
   - make {get,set,has}Attribute(Node)? methods work with full
     attribute names rather than just localnames.
     (Although DOM Level 3 is not very clear about the behavior of
     these methods for an attributes with namespaces, it certainly
     does not imply that getAttribute('foo') should return value of a
     bar:foo, which was the old behavior.)
   - added publicId and systemId methods to XML::LibXML::Dtd

   - new parser and callback code (Christian Glahn)
   - new XML::LibXML::InputCallback class
   - many bug fixes (including several memory leaks)
   - documentation and regression fixes and enhancements
   - Perl wrappers for parse_html_*
   - make sure parse_* methods are not called on class (bug 11126)
   - DOM Layer 3 conformance fixes:
     * lookupNamespaceURI(empty_or_undef) now returns the default NS
   - faster getChildrenByTagNameNS implementation
   - remove the SGML parser code no longer supported by libxml (Michael Kröll)

   - fixed a pointer initialization in parse_xml_chunk(), fixes 
     random several segmentation faults on document fragments.
   - added NSCLEAN feature to the parser interface (bug 4560)
   - minor code cleanups
   - updated libxml2 blacklist.
   - fixed croak while requesting nodeName() of CDATA sections (bug 1694).
   - more documentation updates

   - added cloneNode to XML::LibXML::Document
   - include Schema/RelaxNG code only with libxml2 >= 2.6.0 (to support old libxml2)
   - applied patch to example/ (bug 4262)
   - fixed insertBefore/insertAfter on empty elements (bug 3691)
   - more DOM conformant XML::LibXML->createDocument API (by Robin Berjon)
   - fixed encoding problems with API calls in document encoding
   - improved support for importing DTD subsets
   - fixed DTD validation error reporting problems with libxml2-2.6.x
   - fixed compilation problems with libxml2-2.6.x
   - fixed XML::LibXML::Number to support negative numbers
   - added XML Schema validation interface (XML::LibXML::Schema)
   - added XML RelaxNG validation interface (XML::LibXML::RelaxNG)
   - Michael K. Edwards' patch applied with some amendments from Petr Pajas:
     * add debian build files (I added SKIP_SAX_INSTALL flag for
       Makefile.PL and changed the patch so that it doesn't disable
       sax parser registration completely by default, and rather made
       debian build use this flag)
     * general cleanup (use SV_nolen, etc.)
     * SAX parsers cleanup
     * general error reporting code cleanup/rewrite, try preventing 
       possible memory leaks
     * recover(1) now triggers warnings (disable with $SIG{__WARN__}=sub {})
       (fixes bug 1968, too)
     * slighlty more strict parse_string behavior (now same as when
       parsing fh, etc): e.g. parse_string("<foo:bar>"), i.e prefix without 
       NS declaration, raises error unless recover(1) is used
     * documentation fixes/updates
     * slightly updated test set to reflect the new slightly more strict
   - fixed default c14n XPath to include attributes and namespaces (Petr Pajas)
   - make libxml2's xmlXPathOrderDocElems available through a new 
     $doc->indexElements method
   - added version information of libxml2
   - Les Richardson's documentation patch applied.

   - added line number interface (thanks to Peter Haworth)
   - patch to make perl 5.8.1 and XML::LibXML work together (thanks to François Pons)
   - added getElementById to XML::LibXML::Document (thanks to Robin Berjon)
   - fixes symbol problem with versions of libxml2 compiled without 
     thread support (reported by Randal L. Schwartz)
   - tiny code clean ups 
   - corrected tested versions after a local setup problem

   - fixed possible problems with math.h
   - added C14N interface "toStringC14N()" (thanks to Chip Turner)
   - fixed default namespace bug with libxml2 2.5.8 (by Vaclav Barta)
   - fixed a NOOP in the XPath code.
   - fixed insertBefore() behaviour to be DOM conform
   - fixed a minor problem in Makefile.PL
   - improved more documentation
   - converted documentation to DocBook

Version 1.54 fixes potentional buffer overflows were possible with earlier
versions of the package. 

   - fixed some major bugs, works now with libxml2 2.5.x
   - fixed problem with empty document fragments
   - bad tag and attribute names cannot be created anymore
   - Catalog interface is aware about libxml2 configuration
   - XML::LibXML should work now on systems without having zlib installed
   - cleaned the error handling code, which 
     - fixes bad reporting of the validating parser
     - fixes bad reporting in xpath functions
   - added getElementsBy*Name() functions for the Document Class
   - fixed memory management problem introduced in 1.53
     (that fixes a lot strange things)
   - interface for raw libxml2 DOM building functions 
     (currently just addChild() and addNewChild(), others will follow)
   - fixed namespace handling if nodes are imported to a new DOM.
   - fixed segmentation fault during validation under libxml2 2.4.25
   - fixed bad CDATA handing in XML::LibXML::SAX::Builder
   - fixed namespace handing in XML::LibXML::SAX
   - fixed attribute handing in XML::LibXML::SAX
   - fixed memory leak       in XML::LibXML::SAX
   - fixed memory leak       in XML::LibXML::Document
   - fixed segfault while appending entity ref nodes to documents
   - fixed some backward compatibility issues
   - fixed cloning with namespaces misbehaviour
   - fixed parser problems with libxml2 2.5.3+
   - moved iterator classes into a separate package
     (after realizing some CPAN testers refuse to read their warnings
     from Makefile.PL)
   - improved parser testsuite
   - improved M
   - more documentation 

   - catalog interface
   - enabled SGML parsing
   - implemented libxml2 dom recovering
   - parsing into GDOME nodes is now possible
   - XML::LibXML::SAX is now faster
   - made XML::LibXML::SAX parser running without errors in most (all?) cases 
     (DTD handling is still not implemented).    

   DOM interface
   - Node Iterator class
   - NodeList Iterator class
   - introduced XML::GDOME import and export. (EXPERIMENTAL)
   - more security checks

   general blur
   - removed code shared with XML::GDOME to a separate XML::LibXML::Common
     module (check CPAN)
   - removed some redundand code
   - more documentation (and docu fixes) (thanks to Petr Pajas)

   major fixes:
   - possible buffer overflow with broken XML:
     This may effect all older versions of XML::LibXML, please upgrade!

   - a bug while replacing the document element.
   - very stupid encoding bug. all UTF8 strings will now be marked as 
     UTF8 correctly
   - namespace functions to work with empty namespaces
   - toFH()
   - namespace setting in XPath functions:
     the namespaces of the document element will always be added now
   - threaded perl 5.8.0 issues
   - calling external entity handlers work again
   - XML::LibXML::SAX::Parser will not throw warnings on DTD nodes

   - fixed some typos (thanks to Randy Kobes and Hildo Biersma)
   - fixed namespace node handling
   - fixed empty Text Node bug
   - corrected the parser default values.
   - added some documentation

   - fixed parser bug with broken XML declarations
   - fixed memory management within documents that have subsets
   - fixed some threaded perl issues
     (special thanks to Andreas Koenig for the patch)
   - applied Win32 tests 
     (special thanks to Randy Kobes for the patch)
   - fixed findnodes() and find() to return empty arrays in array context
     if the statement was legal but produced no result.
   - fixed namespace handling in xpath functions
   - fixed local namespace handling in DOM functions
   - pretty formating to all serializing functions
     *NOTE* the XML::LibXML::Node::toString interface changed
     check the XML::LibXML::Node man page 
   - made xpath functions verbose to perl (one can wrap evals now)
   - improved native SAX interface
   - improved XML::LibXML::SAX::Builder
   - added getNamespaces to the node interface
   - better libxml2 version testing
   - more documentation

   - fixed major problems with the validating parser
   - fixed default behaviour of the generic parser
   - fixed attribute setting of the string parser
   - fixed external entity loading for entity expansion
   - fixed nodeValue() to handle entities and entity refs correctly
   - SAX::Parser ignores now hidden XINCLUDE nodes.
   - fixed SAX::Builder to recognize namespace declarations correctly
   - compatibility fixes
   - importNode() bug fix 
   - fixed library tests and output in Makefile.PL
   - added setOwnerDocument() again
   - XML::LibXML::Document::process_xincludes reintroduced
   - global callbacks reintroduced
     NOTE: the Interface changed here, read XML::LibXML manpage!
   - code cleanings
   - push parser interface
   - basic native libxml2 SAX interface
   - cloneNode clones now within documents
   - more documentation

   - memory management has been completely rewritten.
        now the module should not cause that many memory leaks 
        (special thanks to Merijn Broeren and Petr Pajas for providing 
   - more libxml2 functions are used
   - DOM API is more Level 3 conform
   - ownerDocument fixed
   - parser validation bug fixed (reported by Erik Ray)
   - made parse_xml_chunk() report errors
   - fixed the PI interface
   - example 
   - better namespace support
   - improved NamedNodeMap support
   - restructured the interfaces
   - HTML document nodes are recognized as HTML doc nodes instead of plain nodes
   - XML::LibXML::SAX::Parser able to handle HTML docs now 
     (patch by D. Hageman [])
   - added serialization flags ($setTagCompression, $skipDtd and 
   - more documentation

   - new parsefunction: $parser->parse_xml_chunk($string);
   - appendChild( $doc_fragment ) bug fixed
   - removed obsolete files (parser.?)
   - fixed getElementsByTagName and getElementsByTagNameNS to fit the spec
   - new functions in XML::LibXML::Element:
   - minor fixes and extensions of the tests
   - more docu ;)
   - SAX added comment and PI support
   - SAX added start_prefix_mapping/end_prefix_mapping
   - Fixed find() bug with no results
   - Added use IO::Handle so FH reads work
   - A number of segfault fixes
   - constants added without XML_ prefix

    - Removed C-layer parser implementation.
    - Added support for prefixes in find* functions
    - More memory leak fixes (in custom DOMs)
    - Allow global callbacks

    - Full PI access
    - New parser implementation (safer)
    - Callbacks API changed to be on the object, not the class
    - SAX uses XML::SAX now (required)
    - Memory leak fixes
    - applied a bunch of patches provided by T.J. Mather

    - Added SAX serialisation
    - Added a SAX builder module
    - Fixed findnodes in scalar context to return a NodeList object
    - Added findvalue($xpath)
    - Added find(), which returns different things depending on the XPath
    - Added Boolean, Number and Literal data types

    - Added support for $doc->URI getter/setter

    - New have_library implementation

    - Addition of Dtd string parser
    - Added support for namespace nodes (e.g. $element->getNamespaces())
    - Some memory leak and segfault fixes
    - Added $doc->validate([$dtd]) which throws exceptions (augments 
    - Added doc files and test files to CPAN distro

    - Addition of HTML parser
    - getOwner method added
    - Element->getAttributes() added
    - Element->getAttributesNS(URI) added
    - Documentation updates
    - Memory leak fixes
    - Bug Fixes

    - Some DOM Level 2 cleanups
    - getParentNode returns XML::LibXML::Document if we get the 
      document node

    - Addition of DOM Level 2 APIs
    - some more segfault fixes
    - Document is now a Node (which makes lots of things easier)

    - Many segfault and other bug fixes
    - More DOM API methods added

    - Removed from XML::LibXSLT distribution
    - Added DOM API (phish)

0.01  Sat Mar  3 17:08:00 2001
	- original version; created by h2xs 1.19