== 0.9.7 / 2008-12-08 Charlie Savage

* Added SAX2 support.  SAX handlers now define two new callbacks,
  on_start_element_ns and on_end_element_ns methods.  These
  new callbacks support namespaces, making them superior to the older
  callbacks on_start_element and on_end_element methods.  The old callbacks
  are still supported, but may be deprecated in the future depending
  on community feedback.

* Added SAX support for libxml's structured error handling.
  That menas sax handlers now define a new callback, on_error,
  which takes one parameter, an instance of XML::Error.  The older
  on_parser_error, on_parser_warning and on_parser_fatal_error
  callbacks are no longer suported so you must port your code.
  Note that the older callbacks took one string parameter, instead of
  an XML::Error object.

* Experimental work-around for libxml error handling bug - see
  http://mail.gnome.org/archives/xml/2008-December/msg00014.html
  for more information.

* Fix compilation bugs on Solaris.


== 0.9.6 / 2008-12-08 Charlie Savage

* Refactored namespace handling.  The existing, and inconsistent,
  namespace methods defined on XML::Node have been deprecated.  
  They have been replaced by a the new XML::Namespaces class.
  Use this class to inspect a node's namespace, its default
  namespace, its namespace definitions and which namespaces
  are in scope.  It can be accessed via the the
  XML::Node#namespaces method.

* Rationalized XML::Document#save, XML::Document#to_s and
  XML::Node#to_s to take an optional hash table of parameters 
  that control how output is generated. Supported parameters
  include setting indentation on or off, the indentation level
  and the output encoding.  This is an API change and may break
  existing calls to XML::Document#save.  However, the previous
  API was broken - setting the encoding resulted in an error so
  its unlikely anyone is using it.

* Rationalized XML::Document#debug, XML::Node#debug, XML::XPath::XPathObject#Debug.

* Deprecated a number of duplicate dump* and debug_* methods in
  XML::Document and XML::Node.

* Additional Ruby 1.9.1 compatability fixes.

* Cleaned up header file guards.

== 0.9.5 / 2008-11-29 Charlie Savage

* Ruby 1.9.1 preview release compatability (Felipe Contreras)

* Update Node#remove! to return the removed node and to set
  its document to nil.  This allows the node to be either
  moved to another document, another part of the same document
  or to be freed on the next garbage collection once its
  references have gone out of scope.

* Fix bug where XPathExpression#compile mistakenly overwrote
  RegExp#compile.

* Update Node to use standard ruby allocators and initializers.

* Update HTML parser to be more forgiving of invalid documents.

* Update include paths for Darwin Ports on OS X.

* Updated C code base to use BSD/Allman style


== 0.9.4 / 2008-11-24 Charlie Savage

* Update HTML parser so that it can read files, strings and io
  streams.

* Update HTML parser to support user specified encodings.

* Additional C code cleanup.

== 0.9.3 / 2008-11-22 Charlie Savage

* Fixed segmentation fault caused by documents being freed
  before xpath results that referenced the document (take 2).

* Allowed sax parser to use io stream

* Combined encoding and input classes

* Cleaned up C code - removed remaining legacy structures,
  added static to most methods, changed C namespace from ruby_xml
  to rxml

== 0.9.2 / 2008-11-19 Charlie Savage

* Add support for compiled XPath expressions (donated by Pavel Valodzka)

* Fixes for compiling on OS X 10.5.4 and 10.5.5

== 0.9.1 / 2008-11-18 Charlie Savage

* Expose LibXML's encoding support via a new Encoding object.

* Revamp error handling to be much easier to use.  Errors are now
  wrapped by the new XML::Error class and are thrown as exceptions
  when it is appropriate.

* Fixed segmentation fault caused by documents being freed
  before xpath results that referenced the document.

* Add Node#register_default_namespace to simplify default namespace handling.

* Significantly improve documentation

* A number of bug fixes and patches.

== 0.9.0 / 2008-11-18 Charlie Savage

* Version 0.9.0 was removed due to packaging errors.


== 0.8.3 / 2008-07-21 Charlie Savage

* Missed several files in last release

== 0.8.2 / 2008-07-21 Charlie Savage

* To use LibXML you can either require 'xml' or require 'libxml'. 
  The differences is that require 'xml' mixes the LibXML module into
  the global namespace, thereby allowing you to write code such
  as document = XML::Document.new.  Note that this is different 
  from 0.8.0 and 0.8.1 and may require updating your code.

* Support RelaxNG validation (thanks to Morus Walter)

* Support passing IO objects to XmlReaders (thanks to Tom Hughes)

* Fix segmentation fault caused by adding an attribute to a CDATA node

* Moved node checking functions from C to Ruby

* Improved Windows support - libxml-ruby should now work out of the box.

* Improved Windows support - turned on libxml's zlib and iconv support.


== 0.8.1 / 2008-07-09 Charlie Savage

* Reimplmented Node#each_attr for backwards compatability

* Moved node type test to Ruby.


== 0.8.0 / 2008-07-09 Charlie Savage

* Fixed bug in returning attributes from XPath results

* Fixed DOM traversal methods

* Changed Node#children to return an array of nodes

* Fixed bug in returning attributes from XPath results

* Refactored XPath support, providing more user hooks in the XPath::Context class

* Added Node#properties for backwards compatibility

* Updated setup.rb

* Added more tests

* Updated rdocs and README file

* Moved libxml into LibXML namespace


== 0.7.0 / 2008-07-09 Charlie Savage

* Added new attributes class to provide a more natural way of working with attributes

* Fixed XML::Attr to better support namespaces

* Added documentation on how to use namespaces with XPath

* Removed allocation of extraneous structures used to wrap nodes, namespaces and attributes

* Cleaned up tests and added new test suite

* Updated rdocs and README file

* Cleaned out most of the bug list


== 0.6.0 / 2008-07-01 Charlie Savage

* Fixed memory allocation errors in Windows.  On Windows, it is essential that the same library that allocates memory must free it. Thus ALLOC calls must be matched to ruby_xfree calls, which they were not.  In addition, in one case Ruby was allocating memory to be freed by libxml.  On Windows, that's a segmentation fault.  On Linux it might fly, but still seems like a bad idea.

* Fixed segmentation fault in xml reader expand (same xml tree freed twice)

* Applied a number of patches from Tom Bagby, including fixes for xpath segmentation faults and fixes for various memory leaks

* Cleaned up a number of compiler warnings

* Renamed libxml_so.so to libxml_ruby.so (same for xslt).  That wasn't actually my original intention, but um, it kind of sort of happened.  It should not be noticeable from an end-user perspective.

* Added rake files for building with MingW

* Added rake files for packing gems.  Note that I did this outside the existing rake tasks because I didn't see how they were actually building the gems.

* Cleaned up the tests and added a few more based on bug reports from the Tracker and mailing list.

* Cleaned out the patch queue and went through about 1/2 the bug list


=== 2007-11-16 "Dan Janowski" <danj at 3skel.com>

* Merged Dan's MEM2 branch to trunk.

== 0.5.3 /

=== 2007-11-16 "Dan Janowski" <danj at 3skel.com>

* Merged Dan's MEM2 branch to trunk.


== 0.5.2 / 2007-10-10

=== 2007-10-10 "Dan Janowski" <danj at 3skel.com>

* (Dan, fill in the major points of the changes you made up to here -thanks)

=== 2007-01-14 "Laurent Sansonetti" <lrz at chopine.be>

* Added some preliminary RDoc comments for XML::Reader.

=== 2006-12-05 "Laurent Sansonetti" <lrz at chopine.be>

* Added XML::Reader, a set of bindings to the xmlTextReader API.


== 0.3.8.4 / 2006-12-02

=== 2006-04-15 "Ross Bamform" <rosco at roscopeco.co.uk>

* Implemented SAX parser callback handling.

=== 2006-04-12 "Ross Bamford" <rosco at roscopeco.co.uk>

* Integrated and tested community patches.
* Defined XML::Node (hash) equality in terms of XML representation.

=== 2006-04-12 "Tim Yamin" <plasmaroo at gentoo.org>

* Fixed XML::Node#content inoperable bug  (plasmaroo) [patch]
* Fixed memory leak in same

=== 2006-04-12 "Mark Van Holstyn" <mvette13 at gmail.com>

* Added XML::Node::Set#first  (mvette13) [patch]
* Added XML::Node::Set#empty?
* Fixed XML::Node::Set#to_a
* Added XML::Node#find_first
* Added XML::Node#remove!

=== 2006-03-27 "Ross Bamford" <rosco at roscopeco.co.uk>

* Integrated contributed XML::Parser.register_error_handler patch  (rosco)

=== 2006-02-27 "Ross Bamford" <rosco at roscopeco.co.uk>

* Fixed all multiple symbol definitions for -fno-common.
* Removed OSX -fno-common workaround.


== 0.3.6 / 2006-02-23

=== 2006-02-21 "Ross Bamford" <rosco at roscopeco.co.uk>

* Patched extconf.rb with OSX -fno-common workaround
* Added gem and packaging support to Rakefile
* Moved version update to Rakefile
* Removed legacy project utility scripts

=== 2005-02-19 "Ross Bamford" <rosco at roscopeco.co.uk>

* Fixed doublefree bug in ruby_xml_attr.
* Fixed small leak in parser

=== 2005-12-18 "Ross Bamford" <rosco at roscopeco.co.uk>

* Updated for GCC 4.0 (community patches)
* Fixed default validation bug
* Refactored project, removed outdated files, cleaned up tests.
* Added RDoc documentation across .c files.
* Fixed up a few strings.

=== 2004-04-04 "Mangler Jurgen" <et@wkv.at>

* ruby_xml_node.cz: fixed ruby_xml_node_property_set. The ill-behaviour
  was, that there was added a second attribute of the same
  name, when you were setting the value of an already existing
  attribute.

=== 2004-03-17 "Lukas Svoboda" <luks@fi.muni.cz>

* ruby_xml_node.c: ruby_xml_node_to_s now returns XML subtree dump.

=== 2004-02-27 "Martin Povolny" <martin@solnet.cz>

* ruby_xml_node.c: added XML::Node.copy, this makes possible building
  of xml documents from nodes taken from other xml documents
  without making ruby SIGSEGV (see tests/copy_bug.rb).

=== 2004-02-26 "Martin Povolny" <martin@solnet.cz>

* ruby_xml_dtd.c, ruby_xml_dtd.h, ruby_xml_schema.c, ruby_xml_schema.h:
  more work on validation, now you can actually validate
  document using dtd or xml schema, also solved warning and
  error propagation (see tests/{dtd|schema}-test.rb).

=== 2003-12-30 "Martin Povolny" <martin@solnet.cz>

* ruby_xml_dtd.c, ruby_xml_dtd.h, ruby_xml_schema.c, ruby_xml_schema.h:
  prelimitary support for dtd and schema validation

=== 2003-09-15 "Martin Povolny" <martin@solnet.cz>

* ruby_xml_input_cbg.c, libxml.c: added class InputCallbacks to make
  possible registering custom input callbacks
  handlers (xmlRegisterInputCallbacks) written in ruby

=== 2003-08-01 "Martin Povolny" <martin@solnet.cz>

* ruby_xml_document.c: corrected argument handling in ruby_xml_document_find
* ruby_xml_node.c: corrected argument handling in ruby_xml_node_find



