=============== ToDo's for lxml =============== lxml ==== Exposing libxml2 functionalities -------------------------------- * Test XML entities, also in an ElementTree context. In general ---------- * test namespaces more in-depth * more testing on multi-threading * better exception messages for XPath and schemas based on error log, e.g. missing namespace mappings in XPath ElementTree ----------- * _setroot(), even though this is not strictly a public method. QName ----- * expose prefix support? Objectify --------- * emulate setting special __attributes__ on ObjectifiedElement's as Python attributes, not XML children Features -------- * RelaxNG compact notation (rnc versus rng) support. Currently not supported by libxml2 (patch exists) lxml 2.0 ======== * reformat error log lines, add column number * always use '' as URL when tree was parsed from string? (can libxml2 handle this?) * clean up (and remove?) duplicated API for extension functions * allow (and prefer) Namespace classes local to a parser * remove first 'context' argument from extension functions * find a way to integrate Schematron (if it's available) * always use ns-prefixed type names in objectify's ``xsi:type`` attributes * remove ``findOrBuildNodeNs()`` from C-API (replaced by findOrBuildNodeNsPrefix) * follow PEP 8 in API naming (avoidCamelCase in_favour_of_underscores) * clean support for entities (maybe an Entity element class?) Changes in 2.0 -------------- * network access in parsers disabled by default