1 ******** 2 * * 3 * TODO * 4 * * 5 ******** 6 7 Lifetime of result Value Tree, make sure we keep pointers. Exslt 8 handling of node set values is especially nasty in this respect, 9 lots of potential mem leaks... 10 11 Pattern tester: 12 -> try to optimize for ID scan and tests. 13 14 Pattern scanner: 15 -> add error checks on all returns 16 17 Sorting: 18 -> add lang and case-order 19 -> add foreign sorting functions (interfaces ?). 20 21 ******** 22 * * 23 * DONE * 24 * * 25 ******** 26 27 Design: 28 - should transforms for a given stylesheet be thread clean, 29 -> the precompilation now occur only at stylesheet processing 30 time (except the binding for named templates and extension 31 functions which need to be computed once at run-time). 32 Multiple threads should be able to reuse the same stylesheet 33 now. 34 35 Embedding Stylesheets: 36 - example in 2.7 would force to validate, we do it by default now 37 38 ID and Key support: 39 -> Done 40 41 Extra functions: 42 -> document() should not be a problem since Result Tree Fragments are 43 implemented 44 => Done 45 46 Templates: 47 -> check the built-in template rule for attributes 48 -> make sure @xxx matches are applied 49 50 Contextual error reporting: 51 -> provide a couple of functions providing context analysis, not urgent 52 53 Validity: 54 -> should we add validation by default ? Make this an option 55 -> redirrect validity errors 56 => done added a special parsing mode 57 58 Import: 59 -> parse them 60 -> provide functions to circulate in the import tree of stylesheets 61 -> make sure we use the cascade wherever it's needed 62 63 Extra functions: 64 -> make a separate module. 65 => done functions.[ch] 66 67 Support Attribute value templates: 68 -> starts to be urgent. Design it in flexible ways but try to optimize 69 to handle most of it at the stylesheet parse time ... 70 => Done for the most part need to check all attributes in XSLT constructs 71 using them and use the dedicated readin function. 72 -> optimization by checking their existence at stylesheet parse time. 73 => done when building the preproc function 74 75 Sorting: 76 -> add support for imbricated sorts 77 => done but not well tested. 78 79 Separate util module: 80 -> macros, config, verbosity ? 81 => xsltutils.[ch] 82 83 Support for disable-output-escaping="yes": 84 -> looks problematic, libxml has no support for anything like this, 85 and unless adding a new node type :-( or tweaking text node and 86 output routines this is gonna be messy ... must be handled at libxml 87 level. 88 => Done with a trick, text node name is different, requires > 2.2.11 89 90 Pattern scanner: 91 -> compute priority 92 -> handle unions 93 -> support for mode 94 => done 95 96 Pattern tester: 97 -> also put fast lookup for "text()", "comment()", "node()" 98 based patterns lists. 99 => done 100 101 Support Attribute value templates: 102 -> namespace support for attribute value templates is not done, need 103 a small API redesign 104 105 Doc: 106 - put a page at http://xmlsoft.org/XSLT/ 107 - generate/transform the DocBook to HTML 108 - add HTML to package 109 - manpage and doc for xsltproc 110 111 112 Error handling: 113 -> check the version stuff, design a separate module for error interfacing 114 and default handling, parsing vs. runtime, fatal / compat / warning, 115 and lack of optionnal features. 116 -> reports context 117 118 ID and Key support: 119 -> done but namespace support in keys is not defined 120 -> make sure keys are recomputed on new document input 121 122 Profiler: 123 -> added looks good enough 124 -> autocorrection of initial calibration loop