pkgsrc/textproc/libxml++5.0/DESCR
wiz 5895878c76 textproc/libxml++5.0: import libxml++5.0-5.0.1
libxml++ is a C++ wrapper for the libxml XML parser library. It has SAX and
DOM-like APIs, but does not attempt to conform exactly to the DOM
specifications because they are not aimed at C++. Its API is much simpler
than the underlying libxml C API.

This package follows the libxml++-5.0 API.

Changes compared to libxml++:

5.0.1 (stable):

Build:
* libxml++config.h.*: Don't dllimport on MinGW
  (Chun-wei Fan) Issue gtkmm#90 (Lukas K.)
* Meson build: Make it possible to use libxml++ as a subproject
  (Kjell Ahlstedt)
* Meson build: No implicit_include_directories
  (Kjell Ahlstedt)
* MSVC build: Export classes selectively
  (Chun-wei Fan)

Documentation:
* docs/index.md: Describe the different libxml++ ABIs
  (Kjell Ahlstedt) Issue #20 (Tom Schoonjans)


5.0.0 (stable):

This is the first stable release in the libxml++-5.0 ABI series.
It is parallel-installable with the libxml++-2.6, libxml++-3.0
and libxml++-4.0 ABIs.

The tarball for 5.0.0 has been created with 'meson dist'.
If you build with Autotools from the tarball, please read
the relevant part of the README file.

Build:
* Add NMake Makefiles
  Remove Visual Studio 2010 projects
  (Chun-wei Fan) Pull request #10
* Use __declspec(dllexport) when building on Visual Studio
  Stop using gendef.exe
  (Chun-wei Fan) Pull request #15
* Add support for building with Meson
  (Kjell Ahlstedt, Chun-wei Fan) Pull request #16, #17, issue #19


4.9.1 (unstable):

* Change ABI name from libxml++-4.0 to libxml++-5.0
  There is also a libxml++-4-0 branch for the libxml++-4.0 ABI,
  which still uses glibmm-2.64.
  And there is a libxml++-3-0 branch for the libxml++-3.0 ABI,
  which still uses glibmm-2.4.
* Build: Remove dependency on glibmm and don't use Glib::ustring
  For now, the API uses an xmlpp::ustring alias of std::string
  where it previously used Glib::ustring.

3.9.1 (unstable):

* Change ABI name to libxml++-4.0
  There is also a libxml++-3-2 branch for the libxml++-3.0 ABI,
  which still uses glibmm-2.4.
* Build:
  - Use glibmm-2.64 instead of glibmm-2.4.
  - Require C++17.
* Parser: Make some methods const

3.2.0 (stable):

* Document, DomParser: Improve XInclude processing:
  Document:
    Add process_xinclude() overload that takes a fixup_base_uris parameter.
  DomParser:
    Add set/get_xinclude_options() and add optional XInclude processing to the
    parse methods.
  (Kjell Ahlstedt) Bug 781566
* Add explicit keyword to some single-parameter constructors.
  (Murray Cumming)
* tests: Don't require C++17
  (Kjell Ahlstedt)
* Build: Fix srcdir != buildir build.
  (Kjell Ahlstedt, Murray Cumming)

3.0.1 (stable):

* Element::remove_attribute(): Delete the C++ wrapper
  (Harald Schmalzl, Kjell Ahlstedt) Bug #768404.

3.0.0 (stable):

* This is the first stable release of libxml++-3.0. ABI and API are
  incompatible with libxml++-2.6. These two series of libxml++ can be
  installed in parallel.
  Applications that want to upgrade from libxml++-2.6 to libxml++-3.0
  must change their pkg-config check to libxml++-3.0.
  (Kjell Ahlstedt) Bug #754673.

* This release is identical to the unstable 2.91.3, except for the so name,
  which has now been bumped.
  (Kjell Ahlstedt) Bug #760574 (Dominique Leuenberger)

2.91.3 (unstable):

* Element: Remove a redundant nullptr check
  (Renu Tyagi) Bug #757515

* Use scoped enums (enum class) instead of unscoped enums
* Document: Test for nullptr in a constructor
* DomParser: Make operator bool() explicit
  (Kjell Ahlstedt)

* The ABI and API are not identical to libxml++ 2.91.2.
  There may be more changes in ABI and/or API before the first stable
  libxml++-3.0 release.

2.91.2 (unstable):

* Remove the preprocessor constant LIBXMLCPP_EXCEPTIONS_ENABLED.
  It was always 1.

* Add a config-time test for support of std::exception_ptr. Don't try to
  use std::exception_ptr on a system where it does not exist.
  This includes re-implementing the wrapped_exception class and the
  raise() and clone() methods in xmlpp::exception and its subclasses.
  (Daniel Trebbien, Kjell Ahlstedt) Bug #757042 (Michael Biebl)

* The ABI is not identical to that of libxml++ 2.91.1.
  There may be more changes in ABI and/or API before the first stable
  libxml++-3.0 release.

2.91.1 (unstable):

* Renamed ABI from libxml++-2.6 to libxml++-3.0.
  This requires applications to change their pkg-config check to libxml++-3.0
  when they wish to use libxml++ 2.9x or 3.x instead of libxml++ 2.x.
  (Kjell Ahlstedt) Bug #754673.
  There may be more changes in ABI and/or API before the first stable
  libxml++-3.0 release.

* Node: Add const_NodeList and use it in a const version of get_children().
  Add const_NodeSet and use it in a const version of find().
  Replace xmlpp::NodeSet by xmlpp::Node::NodeSet.
  Element: Add const_Attribute_list and use it in a const version of
  get_attributes().
  (Kjell Ahlstedt) Bug #338907 (Marcos Mayorga)
* Document: Add a non-const version of get_root_node(). Let the const version
  return a const pointer.
  (Knut Aksel Røysland) Bug #632522
* Element: Add a non-const version of get_attribute(). Let the const version
  return a const pointer.
  (Knut Aksel Røysland) Bug #632524
* Replace the deprecated std::auto_ptr by std::unique_ptr
  (Kjell Ahlstedt) Bug #753123
* DomParser: The default behaviour is to throw both parse errors and
  validity errors in an exception instead of printing some messages on stderr.
* Parser: Some protected data has become private.
* Several classes: Some virtual methods have become non-virtual, and some
  non-virtual methods have become virtual.
* Remove class xmlpp::wrapped_exception and the deprecated classes
  Schema and SchemaValidator.
* xmlpp::exception and its subclasses: Remove Raise() and Clone().
* SaxParser: Start each parsing with a new Document for entity resolution.
* Move all Node::add_child*() methods to Element and rename them to
  add_child_element*().
* Attribute: Move set_value() to AttributeNode.
* Use std::string instead of Glib::ustring for filenames.
* Node: Replace remove_child() by remove_node().
* Move some code from DtdValidator to Dtd.
* Element: Rename set/get_child_text() to set/get_first_child_text().
2021-05-31 22:27:02 +00:00

6 lines
294 B
Text

libxml++ is a C++ wrapper for the libxml XML parser library. It has SAX and
DOM-like APIs, but does not attempt to conform exactly to the DOM
specifications because they are not aimed at C++. Its API is much simpler
than the underlying libxml C API.
This package follows the libxml++-5.0 API.