******** * * * TODO * * * ******** Lifetime of result Value Tree, make sure we keep pointers. Exslt handling of node set values is especially nasty in this respect, lots of potential mem leaks... Pattern tester: -> try to optimize for ID scan and tests. Pattern scanner: -> add error checks on all returns Sorting: -> add lang and case-order -> add foreign sorting functions (interfaces ?). ******** * * * DONE * * * ******** Design: - should transforms for a given stylesheet be thread clean, -> the precompilation now occur only at stylesheet processing time (except the binding for named templates and extension functions which need to be computed once at run-time). Multiple threads should be able to reuse the same stylesheet now. Embedding Stylesheets: - example in 2.7 would force to validate, we do it by default now ID and Key support: -> Done Extra functions: -> document() should not be a problem since Result Tree Fragments are implemented => Done Templates: -> check the built-in template rule for attributes -> make sure @xxx matches are applied Contextual error reporting: -> provide a couple of functions providing context analysis, not urgent Validity: -> should we add validation by default ? Make this an option -> redirrect validity errors => done added a special parsing mode Import: -> parse them -> provide functions to circulate in the import tree of stylesheets -> make sure we use the cascade wherever it's needed Extra functions: -> make a separate module. => done functions.[ch] Support Attribute value templates: -> starts to be urgent. Design it in flexible ways but try to optimize to handle most of it at the stylesheet parse time ... => Done for the most part need to check all attributes in XSLT constructs using them and use the dedicated readin function. -> optimization by checking their existence at stylesheet parse time. => done when building the preproc function Sorting: -> add support for imbricated sorts => done but not well tested. Separate util module: -> macros, config, verbosity ? => xsltutils.[ch] Support for disable-output-escaping="yes": -> looks problematic, libxml has no support for anything like this, and unless adding a new node type :-( or tweaking text node and output routines this is gonna be messy ... must be handled at libxml level. => Done with a trick, text node name is different, requires > 2.2.11 Pattern scanner: -> compute priority -> handle unions -> support for mode => done Pattern tester: -> also put fast lookup for "text()", "comment()", "node()" based patterns lists. => done Support Attribute value templates: -> namespace support for attribute value templates is not done, need a small API redesign Doc: - put a page at http://xmlsoft.org/XSLT/ - generate/transform the DocBook to HTML - add HTML to package - manpage and doc for xsltproc Error handling: -> check the version stuff, design a separate module for error interfacing and default handling, parsing vs. runtime, fatal / compat / warning, and lack of optionnal features. -> reports context ID and Key support: -> done but namespace support in keys is not defined -> make sure keys are recomputed on new document input Profiler: -> added looks good enough -> autocorrection of initial calibration loop