Revision history for Perl extension XML::LibXML
1.70
-
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
1.69_2
-
provide context and more accurate column number in
structured errors
-
clarify license and copyright
-
support for Win32+mingw+ActiveState
1.69_1
-
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)
1.69
-
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
1.68
-
compilation problem fixes
1.67
-
many bugfixes (rt.cpan.org)
-
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)
1.66
-
Perl-thread support contributed by Tim Brody [rt.cpan.org #31945]
-
fix [rt.cpan.org #30610] possible segmentation fault when importing nodes from a document to an element created with XML::LibXML::Element->new
-
fix [rt.cpan.org #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 [rt.cpan.org #29627]
-
give registered Ns declarations precedence over document-specific ones
in XML::LibXML::XPathContext; fixes [rt.cpan.org #29650]
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
-
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