summaryrefslogtreecommitdiff
path: root/TODO
blob: b2cbd4328ac61d592a9895d77af274018acca527 (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
125
126
127
128
129
130
                  ********
                 *        *
                 *  TODO  *
                 *        *
                  ********

Design:
  - seems that saving back XSLT stylesheet from a compiled form might
    be a bit ugly ... Yes forget about it, it's just twaeked to the extreme

ID and Key support:
  -> done but namespace support in keys is not defined
  -> make sure keys are recomputed on new document input

Pattern tester:
  -> try to optimize for ID scan and tests.

Pattern scanner:
  -> add error checks on all returns

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.
  -> catch recursion end of 5.4 ...

Support Attribute value templates:
  -> namespace support for attribute value templates is not done, need
     a small API redesign

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

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

Profiler:
  -> added looks good enough
  -> autocorrection of initial calibration loop