2015-10-05 Kjell Ahlstedt 2.91.1 2015-10-01 Kjell Ahlstedt Inherit NonCopyable publicly Inherit NonCopyable publicly instead of privatly. It doesn't really matter, but private inheritance is unusual. There's no good reason to use it for NonCopyable. Bug #754673. 2015-10-01 Kjell Ahlstedt Element: Rename set/get_child_text() to set/get_first_child_text() * libxml++/nodes/element.[h|cc]: Rename set/get_child_text() to set/get_first_child_text() by analogy with Node::get_first_child(). * examples/dom_build/main.cc: * examples/dom_xpath/main.cc: * examples/import_node/main.cc: Replace set/get_child_text() by set/get_first_child_text(). Bug #754673. 2015-10-01 Kjell Ahlstedt Remove some unnecessary #include and reinterpret_cast 2015-10-01 Kjell Ahlstedt Move some code from DtdValidator to Dtd * libxml++/dtd.[h|cc]: * libxml++/validators/dtdvalidator.[h|cc]: Move the code for parsing a DTD from xmlpp::DtdValidator to xmlpp::Dtd. The code is arranged like that in the other validators. Bug #754673. 2015-09-29 Kjell Ahlstedt Node: Replace remove_child() by remove_node() * libxml++/nodes/node.[h|cc]: Replace remove_child() by the static remove_node(). Improve the documentation of remove_node() and the destructor. Bug #754673 2015-09-29 Kjell Ahlstedt Use std::string for filenames Since filenames are not necessarily UTF-8 encoded, store them in std::strings instead of Glib::ustrings. Bug #754673. 2015-09-28 Kjell Ahlstedt Document: Make some methods non-virtual * libxml++/document.h: Make some private methods non-virtual. Bug #754673. 2015-09-28 Kjell Ahlstedt Attribute and subclasses: Move some methods * libxml++/attribute.[h|cc]: Remove get_name(). Make get_value() virtual. Move set_value() and cobj() to AttributeNode. * libxml++/attributedeclaration.h: get_value() is overridden. * libxml++/attributenode.[h|cc]: Add get_value(), set_value(), cobj(). Bug #754673. 2015-09-28 Kjell Ahlstedt Move add_child() methods from Node to Element * libxml++/nodes/element.[h|cc]: * libxml++/nodes/node.[h|cc]: Move all add_child*() methods to Element and rename them to add_child_element*(). * examples/dom_build/main.cc: * examples/dom_update_namespace/main.cc: * examples/dtdvalidation/main.cc: * examples/sax_parser_build_dom/svgparser.cc: Change add_child() to add_child_element(). Bug #754673. 2015-09-24 Kjell Ahlstedt Validators: Move _xmlValidCtxt pointer to DtdValidator * libxml++/validators/validator.[h|cc]: * libxml++/validators/dtdvalidator.[h|cc]: Rename _xmlValidCtxt* valid_ to context_ and move it from Validator to DtdValidator. Rename initialize_valid() to initialize_context(). * libxml++/validators/schemavalidatorbase.[h|cc]: * libxml++/validators/relaxngvalidator.[h|cc]: * libxml++/validators/xsdvalidator.[h|cc]: Rename initialize_valid() to initialize_context(). Bug #754673. 2015-09-24 Kjell Ahlstedt Validators: Change which methods are virtual, add override * libxml++/validators/validator.h: Add some pure virtual methods. * libxml++/validators/dtdvalidator.[h|cc]: Only overridden methods are virtual. operator bool() is explicit and overridden. validate() returns void. * libxml++/validators/schemavalidatorbase.h: Replace operator const void*() by explicit operator bool(). Remove typedef BoolExpr. * libxml++/validators/relaxngvalidator.[h|cc]: * libxml++/validators/xsdvalidator.[h|cc]: Replace operator const void*() by explicit operator bool(). Add override. Bug #754673. 2015-09-23 Kjell Ahlstedt SaxParser: Start each parsing with a new Document for entity resolution * libxml++/parsers/saxparser.[h|cc]: Make entity_resolver_doc_ a unique_ptr. Create a new Document in an overridden initialize_context(). Bug #754673. 2015-09-23 Kjell Ahlstedt DomParser, SaxParser: Make some methods non-virtual * libxml++/parsers/domparser.h: Make parse_context() non-virtual. * libxml++/parsers/saxparser.h: Make parse_chunk(), finish_chunk_parsing() and parse() non-virtual. Bug #754673. 2015-09-23 Kjell Ahlstedt xmlpp::exception and its subclasses: Remove Raise() and Clone() Remove the virtual methods Raise() and Clone() from xmlpp::exception and its subclasses. These methods are not needed now that std::exception_ptr is used for storing and later rethrowing an exception. Bug #754673. 2015-09-22 Kjell Ahlstedt Remove the deprecated Schema and SchemaValidator classes * libxml++/schema.[h|cc]: * libxml++/validators/schemavalidator.[h|cc]: Remove these files. * examples/schemavalidation/main.cc: Remove test of SchemaValidator. * libxml++/filelist.am: Remove schema.h and schemavalidator.h. * libxml++/libxml++.h: Remove schemavalidator.h. Bug #754673. 2015-09-22 Kjell Ahlstedt Remove wrapped_exception * libxml++/exceptions/wrapped_exception.[h|cc]: Remove these files. * libxml++/filelist.am: Remove wrapped_exception.h. * libxml++/validators/validator.[h|cc]: * libxml++/parsers/parser.[h|cc]: Replace handleException(const exception&) by handle_exception(). Replace exception* exception_ by std::exception_ptr exception_ptr_. * libxml++/parsers/saxparser.cc: Call handle_exception() instead of handleException(). Bug #754673. 2015-09-21 Kjell Ahlstedt Parser: Replace ExtraParserData by private Pimpl struct * libxml++/parsers/parser.[h|cc]: Replace the ExtraParserData struct in parser.cc by a private Parser::Pimpl struct. Move some protected data to Pimpl. Add pure virtual parse_memory_raw(). Default in DOM parser is to throw both parse errors and validity errors in exceptions. * libxml++/parsers/domparser.h: * libxml++/parsers/saxparser.h: Add override to parse_memory_raw(). * libxml++/parsers/saxparser.cc: Call set_throw_messages(false) in ctor. Bug #754673. 2015-09-17 Kjell Ahlstedt Replace remaining auto_ptr by unique_ptr Replace the deprecated std::auto_ptr by std::unique_ptr in header files. Bug #753123. 2015-09-17 Knut Aksel Røysland Element::get_attribute(): Propagate const qualifier to Attribute * libxml++/nodes/element.[h|cc]: Let the const version of get_attribute() return a const Attribute*. Add a non-const version. Bug #632524. 2015-09-17 Knut Aksel Røysland Document::get_root_node(): Propagate const qualifier to root Element * libxml++/document.[h|cc]: Let the const version of get_root_node() return a const Element*. Add a non-const version. * examples/sax_parser_build_dom/main.cc: * examples/sax_parser_build_dom/svgdocument.[h|cc]: Add some const. Bug #632522. 2015-09-17 Kjell Ahlstedt Replace xmlpp::NodeSet by xmlpp::Node::NodeSet * libxml++/nodes/node.[h|cc]: Declare the NodeSet and const_NodeSet typedefs inside class Node. That's consistent with how Node::NodeList, Node::PrefixNsMap and Element::AttributeList are declared. 2015-09-17 Kjell Ahlstedt Element::get_attributes(): Propagate const qualifier to attributes * libxml++/nodes/element.[h|cc]: Add const_AttributeList. The const version of get_attributes() returns const_AttributeList instead of const AttributeList. * examples/dom_parser/main.cc: * examples/dom_xinclude/main.cc: Use "for(const auto&". Bug #338907. 2015-09-17 Kjell Ahlstedt Node::find(): Propagate const qualifier to found nodes * libxml++/nodes/node.[h|cc]: Add const_NodeSet. Add non-const versions of find() and let the const versions return const_NodeSet. * examples/dom_xpath/main.cc: Add some const. Bug #338907. 2015-09-17 Kjell Ahlstedt Node::get_children(): Propagate const qualifier to children * libxml++/nodes/node.[h|cc]: Add const_NodeList. The const version of get_children() returns const_NodeList instead of const NodeList. * examples/dom_parser/main.cc: Remove unused variable. Bug #338907. 2015-09-14 Kjell Ahlstedt Prepare for an ABI/API-breaking release * .gitignore: 2.6 -> *. * NEWS: Note that the next release will break ABI. * README: 2.6 -> 3.0 * configure.ac: Version 2.90.0, 2.6 -> 3.0, reset LIBXMLXX_SO_VERSION to 0:0:0. * docs/manual/libxml++_without_code.xml: 2.6 -> 3.0 * libxml++/libxml++.h: 2.6 -> 3.0 * libxml++-2.6.pc.in: Rename to libxml++.pc.in. * libxml++.pc.in: Rename from libxml++-2.6.pc.in. Bug #754673. The libxml++-2-40 branch is intended for future 2.40.x releases with the libxml++-2.6 ABI.