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(""), 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