summaryrefslogtreecommitdiffstats
path: root/libxslt/TODO
blob: 2c671fa9dbf002f7ee22e95224023ed43f48365f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
                  ********
                 *        *
                 *  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