Boring stuff for a Sunday evening:
[platform/upstream/libxslt.git] / TODO
1                   ********
2                  *        *
3                  *  TODO  *
4                  *        *
5                   ********
6
7 Doc:
8   - manpage and doc for xsltproc
9
10 Design:
11   - should transforms for a given stylesheet be thread clean,
12     or can a stylesheet be enriched with document specific
13     informations and cleaned up later ?
14   - seems that saving back XSLT stylesheet from a compiled form might
15     be a bit ugly ...
16     
17 Import:
18   -> parse them
19   -> provide functions to circulate in the import tree of stylesheets
20
21 Extra functions:
22   -> document() should not be a problem since Result Tree Fragments are
23      implemented
24   => started, incomplete
25   -> missing key support
26
27 ID and Key support:
28   -> Id should be simple, key will probably requires some hash tables.
29
30 Pattern tester:
31   -> try to optimize for ID scan and tests.
32
33 Pattern scanner:
34   -> add error checks on all returns
35
36 Error handling:
37   -> check the version stuff, design a separate module for error interfacing
38      and default handling, parsing vs. runtime, fatal / compat / warning,
39      and lack of optionnal features.
40
41 Support Attribute value templates:
42   -> optimization by checking their existence at stylesheet parse time.
43
44 Sorting:
45   -> add support for imbricated sorts
46   -> add lang and case-order
47   -> add foreign sorting functions (interfaces ?).
48
49 Validity:
50   -> should we add validation by default ? Make this an option
51   -> redirrect validity errors
52
53 Contextual error reporting:
54   -> provide a couple of functions providing context analysis, not urgent
55
56                   ********
57                  *        *
58                  *  DONE  *
59                  *        *
60                   ********
61
62 Extra functions:
63   -> make a separate module.
64   => done functions.[ch]
65
66 Support Attribute value templates:
67   -> starts to be urgent. Design it in flexible ways but try to optimize
68      to handle most of it at the stylesheet parse time ...
69   => Done for the most part need to check all attributes in XSLT constructs
70      using them and use the dedicated readin function.
71
72 Separate util module:
73   -> macros, config, verbosity ?
74   => xsltutils.[ch]
75
76 Support for disable-output-escaping="yes":
77   -> looks problematic, libxml has no support for anything like this,
78      and unless adding a new node type :-( or tweaking text node and
79      output routines this is gonna be messy ... must be handled at libxml
80      level.
81   => Done with a trick, text node name is different, requires > 2.2.11
82
83 Pattern scanner:
84   -> compute priority
85   -> handle unions
86   => done
87
88 Pattern tester:
89   -> also put fast lookup for "text()", "comment()", "node()"
90      based patterns lists.
91   => done
92
93 Doc:
94   - put a page at http://xmlsoft.org/XSLT/
95   - generate/transform the DocBook to HTML
96   - add HTML to package