Revision history for Perl extension XML::LibXML
1.65
   - 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)

1.64
   - fix reconcilation of the "xml" namespace [rt.cpan.org #26450] 
   - make tests pass with libxml2 2.9.29 - PI regression tests now
     accept "" as data of an empty PI [rt.cpan.org #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

1.63
   - added no_network parser flag
   - added support for exclusive canonicalization (http://www.w3.org/TR/xml-exc-c14n/)
   - 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)
 
1.62
   - 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

1.61
   - 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

1.60
   - getElementsById corrected to getElementById and the old name kept
     as an alias. Also re-implemented without XPath for improved
     performance
   - 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

1.59
   - 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)

1.58
   - 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

1.57
   - added cloneNode to XML::LibXML::Document
   - include Schema/RelaxNG code only with libxml2 >= 2.6.0 (to support old libxml2)
   - applied patch to example/cb_example.pl (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
       parsing. 
   - 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.

1.56 
   - 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

1.55
   - 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

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

1.54
   - 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 

1.53
   Parser
   - 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

1.52
   - 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

1.51
   - 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

1.50
   - 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
     THIS INTERFACE IS STILL EXPERIMENTAL
   - cloneNode clones now within documents
   - more documentation

1.49
   - 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 
         testcases)
   - 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
   - xpath.pl 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 [dhageman@dracken.com])
   - added serialization flags ($setTagCompression, $skipDtd and 
     $skipXMLDeclaration)
   - more documentation

1.40
   - 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:
       getChildrenByTagName
       getChildrenByTagNameNS
       getElementsByLocalName
   - 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

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

1.30
    - 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

1.00
    - 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

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

0.98
    - New have_library implementation

0.97
    - 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 
      $doc->is_valid([$dtd]))
    - Added doc files and test files to CPAN distro

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

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

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

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

0.91
    - 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