Release of libxml-1.8.8 and libxml2-2.1.0
- From: Daniel Veillard <Daniel Veillard w3 org>
- To: gnome-list gnome org
- Cc: gnome-announce-list gnome org
- Subject: Release of libxml-1.8.8 and libxml2-2.1.0
- Date: Thu, 29 Jun 2000 14:49:16 +0200
After numerous reports of problems related to the incompatibilities
and the fact that the suggested way to preserve compatibility using
a macro mechanism was not considered clean enough, I have tried to work
out a solution ensuring both libxml-1.x and libxml-2.x compatibility.
Downloads:
ftp://rpmfind.net/pub/libxml/
home page:
http://xmlsoft.org/
1.8.8 is mostly a comodity package for upgrading to libxml2 accoding to
new instructions at http://xmlsoft.org/upgrade.html.
It also fixes a nasty problem about & charref parsing
it is intended to be binary compatible with 1.8.7, unless you're
concerned about this you really should upgrade to 2.1.0 instead
2.1.0 also ease the upgrade from libxml v1 to the recent version. it
also contains numerous fixes and enhancements:
- added xmlStopParser() to stop parsing (mostly untested)
- improved a lot parsing speed when there is large CDATA blocs
- includes XPath patches provided by Picdar Technology
- tried to fix as much as possible DtD validation and namespace
related problems
- output to a given encoding has been added/tested
- lot of various fixes
If you are concerned by upgrading existing libxml v1 code to work
with libxml2, please read the following as well as the related page:
http://xmlsoft.org/upgrade.html
Both versions now offers the following:
- similar include naming, one should use #include<libxml/...> in both cases.
- similar identifiers defined via macros for the child and root fields:
respectively xmlChildrenNode and xmlRootNode
- a new macro LIBXML_TEST_VERSION which should be inserted once in the
client code
So the roadmap to upgrade your existing libxml applications is the following:
- install the libxml-1.8.8 (and libxml-devel-1.8.8) packages
- find all occurences where the xmlDoc root field is used and change
it to xmlRootNode
- similary find all occurences where the xmlNode childs field is used
and change it to xmlChildrenNode
- add an LIBXML_TEST_VERSION macro somewhere in your main() or in the
library init entry point
- Recompile, check compatibility, it should still work
- install libxml2-2.1.0, remove libxml-devel-1.8.8 and install
libxml2-devel-2.1.0 (libxml-1.8.8 can be kept installed for legacy stuff)
- remove your config.cache, relaunch your configuration mechanism,
and recompile, if steps 2 and 3 were done right it should compile as-is
- Test that your application is still running correctly, if not this
may be due to extra empty nodes due to formating spaces being kept in
libxml2 contrary to libxml1, in that case insert xmlKeepBlanksDefault(1)
in your code before calling the parser (next to LIBXML_TEST_VERSION is
a fine place).
At that point your code should be able to compile both with libxml2-devel-2.1.0
or libxml-devel-1.8.8 . Moreover in case of libxml.a mismatch with your
header, you will get a warning or an error.
Daniel
--
Daniel.Veillard@w3.org | W3C, INRIA Rhone-Alpes | Today's Bookmarks :
Tel : +33 476 615 257 | 655, avenue de l'Europe | Linux XML libxml WWW
Fax : +33 476 615 207 | 38330 Montbonnot FRANCE | Gnome rpm2html rpmfind
http://www.w3.org/People/all#veillard%40w3.org | RPM badminton Kaffe
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]