blob: 83561cc18d5528fea71d12dc276c91d47b67a663 [file] [log] [blame]
Daniel Veillard01791d51998-07-24 19:24:09 +00001
Daniel Veillardad8f99d2000-01-15 14:20:03 +00002 TODO for the XML parser and stuff:
3 ==================================
Daniel Veillard01791d51998-07-24 19:24:09 +00004
Daniel Veillard75c29212000-03-14 18:33:47 +00005TODO:
6=====
7
8- extend validity checks to go through entities content instead of
9 just labelling them PCDATA
10- add support for the trick from Henry conf/sun/valid/empty.xml
11- Correct standalone checking/emitting (hard)
12 2.9 Standalone Document Declaration
13- URI checkings (no fragments) rfc2396.txt
14- Better checking of external parsed entities TAG 1234
15- Find way of representing PERefs in the Dtd so that %entity; can
16 be saved back.
17- Go through erratas and do the cleanup.
18 http://www.w3.org/XML/xml-19980210-errata ... bummmer
Daniel Veillardad8f99d2000-01-15 14:20:03 +000019
20TODO:
21=====
22
Daniel Veillard75c29212000-03-14 18:33:47 +000023- Get OASIS testsuite to a more friendly result, check all the results
24 once stable.
25 http://xmlsoft.org/conf/result.html
Daniel Veillardad8f99d2000-01-15 14:20:03 +000026
Daniel Veillard3dd82e72000-03-20 11:48:04 +000027- Optimization of tag strings allocation ?
Daniel Veillard75c29212000-03-14 18:33:47 +000028
29- maintain coherency of namespace when doing cut'n paste operations
30 => the functions are coded, but need testing
31
Daniel Veillard3dd82e72000-03-20 11:48:04 +000032- function to rebuild the ID table
33- functions to rebuild the DTD hash tables (after DTD changes).
Daniel Veillard75c29212000-03-14 18:33:47 +000034
Daniel Veillard75c29212000-03-14 18:33:47 +000035
Daniel Veillard75c29212000-03-14 18:33:47 +000036
Daniel Veillard75c29212000-03-14 18:33:47 +000037
38EXTENSIONS:
39===========
Daniel Veillard3dd82e72000-03-20 11:48:04 +000040
41- Check attribute normalization especially xmlGetProp()
42- Validity checking problems for NOTATIONS attributes
43- Validity checking problems for ENTITY ENTITIES attributes
44- dynamically adapt the alloc entry point to use g_alloc()/g_free()
45 if the programmer wants it:
46 - use xmlMemSetup() to reset the routines used.
47- Parsing of a well balanced chunk
Daniel Veillard75c29212000-03-14 18:33:47 +000048- URI module: validation, base, etc ...
49- Tools to produce man pages from the SGML docs.
Daniel Veillardad8f99d2000-01-15 14:20:03 +000050- Finish XPath
51 => attributes addressing troubles
52 => defaulted attributes handling
53 => namespace axis ?
54
55- Add Xpointer recognition/API
56
57- Add Xlink recognition/API
58 => started adding an xlink.[ch] with a unified API for XML and HTML.
59
60- Implement XSLT
61 => seems that someone volunteered ?!?
62
63- Implement XSchemas
64
65- O2K parsing;
66 => this is a somewhat ugly mix of HTML and XML, adding a specific
67 routine in the comment parsing code of HTML and plug the XML
68 parsing one in-there should not be too hard. Key point is to get
69 XSL to transform all this to something decent ...
70
Daniel Veillardad8f99d2000-01-15 14:20:03 +000071- extend the shell with:
72 - edit
73 - load/save
74 - mv (yum, yum, but it's harder because directories are ordered in
75 our case, mvup and mvdown would be required)
76
Daniel Veillardad8f99d2000-01-15 14:20:03 +000077- Add HTML validation using the XHTML DTD
78 - problem: do we want to keep and maintain the code for handling
79 DTD/System ID cache directly in libxml ?
80
81- Add a DTD cache prefilled with xhtml DTDs and entities and a program to
82 manage them -> like the /usr/bin/install-catalog from SGML
83 right place seems $datadir/xmldtds
84
85- turn tester into a generic program xml-test installed with xml-devel
86
87- Add output to XHTML in case of HTML documents.
88
Daniel Veillarde3d88ef2000-01-24 13:55:06 +000089
Daniel Veillardad8f99d2000-01-15 14:20:03 +000090Done:
91=====
92
Daniel Veillard75c29212000-03-14 18:33:47 +000093- Save Dtds using the children list instead of dumping the tables,
94 order is preserved as well as comments and PIs
95- Wrote a notice of changes requires to go from 1.x to 2.x
96- make sure that all SAX callbacks are disabled if a WF error is detected
97- checking/handling of newline normalization
98 http://localhost/www.xml.com/axml/target.html#sec-line-ends
99- correct checking of '&' '%' on entities content.
100- checking of PE/Nesting on entities declaration
101- checking/handling of xml:space
102 - checking done.
103 - handling done, not well tested
104- Language identification code, productions [33] to [38]
105 => done, the check has been added and report WFness errors
106- Conditional sections in DTDs [61] to [65]
107 => should this crap be really implemented ???
108 => Yep OASIS testsuite uses them
109- Allow parsed entities defined in the internal subset to override
110 the ones defined in the external subset (DtD customization).
111 => This mean that the entity content should be computed only at
112 use time, i.e. keep the orig string only at parse time and expand
113 only when referenced from the external subset :-(
114 Needed for complete use of most DTD from Eve Maler
115- Add regression tests for all WFC errors
116 => did some in test/WFC
117 => added OASIS testsuite routines
118 http://xmlsoft.org/conf/result.html
119
120- I18N: http://wap.trondheim.com/vaer/index.phtml is not XML and accepted
121 by the XML parser, UTF-8 should be checked when there is no "encoding"
122 declared !
123- Support for UTF-8 and UTF-16 encoding
124 => added some convertion routines provided by Martin Durst
125 patched them, got fixes from @@@
126 I plan to keep everything internally as UTF-8 (or ISO-Latin-X)
127 this is slightly more costly but more compact, and recent processors
128 efficiency is cache related. The key for good performances is keeping
129 the data set small, so will I.
130 => the new progressive reading routines call the detection code
131 is enabled, tested the ISO->UTF-8 stuff
Daniel Veillardad8f99d2000-01-15 14:20:03 +0000132- External entities loading:
133 - allow override by client code
134 - make sure it is alled for all external entities referenced
135 Done, client code should use xmlSetExternalEntityLoader() to set
136 the default loading routine. It will be called each time an external
137 entity entity resolution is triggered.
138- maintain ID coherency when removing/changing attributes
139 The function used to deallocate attributes now check for it being an
140 ID and removes it from the table.
141- push mode parsing i.e. non-blocking state based parser
142 done, both for XML and HTML parsers. Use xmlCreatePushParserCtxt()
143 and xmlParseChunk() and html counterparts.
144 The tester program now has a --push option to select that parser
145 front-end. Douplicated tests to use both and check results are similar.
146
147- Most of XPath, still see some troubles and occasionnal memleaks.
148- an XML shell, allowing to traverse/manipulate an XML document with
149 a shell like interface, and using XPath for the anming syntax
150 - use of readline and history added when available
151 - the shell interface has been cleanly separated and moved to debugXML.c
152- HTML parser, should be fairly stable now
153- API to search the lang of an attribute
154- Collect IDs at parsing and maintain a table.
155 PBM: maintain the table coherency
156 PBM: how to detect ID types in absence of DtD !
157- Use it for XPath ID support
158- Add validity checking
159 Should be finished now !
160- Add regression tests with entity substitutions
161
162- External Parsed entities, either XML or external Subset [78] and [79]
163 parsing the xmllang DtD now works, so it should be sufficient for
164 most cases !
165
166- progressive reading. The entity support is a first step toward
Daniel Veillard260a68f1998-08-13 03:39:55 +0000167 asbtraction of an input stream. A large part of the context is still
168 located on the stack, moving to a state machine and putting everyting
169 in the parsing context should provide an adequate solution.
Daniel Veillardad8f99d2000-01-15 14:20:03 +0000170 => Rather than progressive parsing, give more power to the SAX-like
171 interface. Currently the DOM-like representation is built but
172 => it should be possible to define that only as a set of SAX callbacks
173 and remove the tree creation from the parser code.
174 DONE
Daniel Veillard01791d51998-07-24 19:24:09 +0000175
Daniel Veillardad8f99d2000-01-15 14:20:03 +0000176- DOM support, instead of using a proprietary in memory
177 format for the document representation, the parser should
178 call a DOM API to actually build the resulting document.
179 Then the parser becomes independent of the in-memory
180 representation of the document. Even better using RPC's
181 the parser can actually build the document in another
182 program.
183 => Work started, now the internal representation is by default
184 very near a direct DOM implementation. The DOM glue is implemented
185 as a separate module. See the GNOME gdome module.
186
Daniel Veillard01791d51998-07-24 19:24:09 +0000187- C++ support : John Ehresman <jehresma@dsg.harvard.edu>
188- Updated code to follow more recent specs, added compatibility flag
Daniel Veillard260a68f1998-08-13 03:39:55 +0000189- Better error handling, use a dedicated, overridable error
190 handling function.
191- Support for CDATA.
192- Keep track of line numbers for better error reporting.
193- Support for PI (SAX one).
Daniel Veillardad8f99d2000-01-15 14:20:03 +0000194- Support for Comments (bad, should be in ASAP, they are parsed
195 but not stored), should be configurable.
196- Improve the support of entities on save (+SAX).
Daniel Veillard01791d51998-07-24 19:24:09 +0000197