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