57fbb00a0ed341cc6ed5a1179c810a94918bfd46
[platform/upstream/libxslt.git] / TODO
1                   ********
2                  *        *
3                  *  TODO  *
4                  *        *
5                   ********
6 Design:
7   - should transforms for a given stylesheet be thread clean,
8     or can a stylesheet be enriched with document specific
9     informations and cleaned up later ?
10   - seems that saving back XSLT stylesheet from a compiled form might
11     be a bit ugly ...
12     
13 Import:
14   -> parse them
15   -> provide functions to circulate in the import tree of stylesheets
16
17 Extra functions:
18   -> make a separate module.
19   -> document() should not be a problem since Result Tree Fragments are
20      implemnted
21   -> others 
22
23 ID and Key support:
24   -> Id should be simple, key will probably requires some hash tables.
25
26 Pattern tester:
27   -> try to optimize for ID scan and tests.
28
29 Pattern scanner:
30   -> add error checks on all returns
31   -> handle unions
32
33 Error handling:
34   -> check the version stuff, design a separate module for error interfacing
35      and default handling, parsing vs. runtime, fatal / compat / warning,
36      and lack of optionnal features.
37
38 Support Attribute value templates:
39   -> starts to be urgent. Design it in flexible ways but try to optimize
40      to handle most of it at the stylesheet parse time ...
41   => Done for the most part need to check all attributes in XSLT constructs
42      using them and use the dedicated readin function.
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 Separate util module:
63   -> macros, config, verbosity ?
64   => xsltutils.[ch]
65
66 Support for disable-output-escaping="yes":
67   -> looks problematic, libxml has no support for anything like this,
68      and unless adding a new node type :-( or tweaking text node and
69      output routines this is gonna be messy ... must be handled at libxml
70      level.
71   => Done with a trick, text node name is different, requires > 2.2.11
72
73 Pattern scanner:
74   -> compute priority
75   => done
76
77 Pattern tester:
78   -> also put fast lookup for "text()", "comment()", "node()"
79      based patterns lists.
80   => done