blob: 2225635de6e0d11ffc35e904c60c1a3a7ef5c86c [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 Veillarde39a93d2001-04-28 14:35:02 +00005 $Id$
6
7 this tend to be outdated :-\ ...
Daniel Veillard361d8452000-04-03 19:48:13 +00008
Daniel Veillard75c29212000-03-14 18:33:47 +00009TODO:
10=====
11
Daniel Veillardbf432752000-11-12 15:56:56 +000012- Computation of base when HTTP redirect occurs, might affect HTTP
13 interfaces.
Daniel Veillard5d211f42000-04-07 17:00:24 +000014- DOM needs
Daniel Veillard5d211f42000-04-07 17:00:24 +000015 int xmlPruneProp(xmlNodePtr node, xmlAtttrPtr attr);
Daniel Veillarde0854c32000-08-27 21:12:29 +000016- listing all attributes in a node.
Daniel Veillard75c29212000-03-14 18:33:47 +000017- Correct standalone checking/emitting (hard)
18 2.9 Standalone Document Declaration
Daniel Veillard75c29212000-03-14 18:33:47 +000019- Better checking of external parsed entities TAG 1234
20- Find way of representing PERefs in the Dtd so that %entity; can
21 be saved back.
Daniel Veillarde39a93d2001-04-28 14:35:02 +000022 => seems impossible in a structure way
Daniel Veillard75c29212000-03-14 18:33:47 +000023- Go through erratas and do the cleanup.
Daniel Veillarde0854c32000-08-27 21:12:29 +000024 http://www.w3.org/XML/xml-19980210-errata ... started ...
Daniel Veillard361d8452000-04-03 19:48:13 +000025- Handle undefined namespaces in entity contents better ... at least
26 issue a warning
Daniel Veillard06047432000-04-24 11:33:38 +000027- fix --disable-corba configure switch handling, and use XML_WITHOUT_CORBA
28 not WITHOUT_CORBA flag
Daniel Veillardf0cc7cc2000-08-26 21:40:43 +000029- reported by Michael, update of doc node when pasting on a new document
30 There can be far more than simply the doc pointer which refers to
31 the old document, for example namespace declarations or entities
32 references can also be a nasty problem, far more than updating the
33 doc values.
Daniel Veillard46057e12000-09-24 18:49:59 +000034- jamesh suggestion: SAX like functions to save a document ie. call a
35 function to open a new element with given attributes, write character
36 data, close last element, etc
Daniel Veillarda6d8eb62000-12-27 10:46:47 +000037- htmlParseDoc has parameter encoding which is not used.
38 Function htmlCreateDocParserCtxt ignore it.
Daniel Veillard4a6845d2001-01-03 13:32:39 +000039- bug reported by Michael Meallin on validation problems
Daniel Veillard389e6b72001-01-15 19:41:13 +000040 => Actually means I need to add support (and warn) for non-deterministic
41 content model.
Daniel Veillardc2f4df22001-01-04 14:06:39 +000042- fix realloc() usage.
Daniel Veillard389e6b72001-01-15 19:41:13 +000043- compliance to XML-Namespace checking, see section 6 of
44 http://www.w3.org/TR/REC-xml-names/
45- Fix output of <tst val="x&#xA;y"/>
Daniel Veillardad8f99d2000-01-15 14:20:03 +000046
47TODO:
48=====
49
Daniel Veillard75c29212000-03-14 18:33:47 +000050- Get OASIS testsuite to a more friendly result, check all the results
Daniel Veillard496a1cf2000-05-03 14:20:55 +000051 once stable. Current state at:
Daniel Veillard75c29212000-03-14 18:33:47 +000052 http://xmlsoft.org/conf/result.html
Daniel Veillardad8f99d2000-01-15 14:20:03 +000053
Daniel Veillard3dd82e72000-03-20 11:48:04 +000054- Optimization of tag strings allocation ?
Daniel Veillard75c29212000-03-14 18:33:47 +000055
56- maintain coherency of namespace when doing cut'n paste operations
57 => the functions are coded, but need testing
58
Daniel Veillard3dd82e72000-03-20 11:48:04 +000059- function to rebuild the ID table
60- functions to rebuild the DTD hash tables (after DTD changes).
Daniel Veillard75c29212000-03-14 18:33:47 +000061
Daniel Veillard75c29212000-03-14 18:33:47 +000062
63EXTENSIONS:
64===========
Daniel Veillard3dd82e72000-03-20 11:48:04 +000065
Daniel Veillard75c29212000-03-14 18:33:47 +000066- Tools to produce man pages from the SGML docs.
Daniel Veillardad8f99d2000-01-15 14:20:03 +000067- Finish XPath
68 => attributes addressing troubles
69 => defaulted attributes handling
70 => namespace axis ?
71
72- Add Xpointer recognition/API
73
74- Add Xlink recognition/API
75 => started adding an xlink.[ch] with a unified API for XML and HTML.
Daniel Veillard496a1cf2000-05-03 14:20:55 +000076 it's crap :-(
Daniel Veillardad8f99d2000-01-15 14:20:03 +000077
78- Implement XSLT
79 => seems that someone volunteered ?!?
80
81- Implement XSchemas
Daniel Veillard496a1cf2000-05-03 14:20:55 +000082 => Really need to be done <grin/>
Daniel Veillardad8f99d2000-01-15 14:20:03 +000083
84- O2K parsing;
85 => this is a somewhat ugly mix of HTML and XML, adding a specific
86 routine in the comment parsing code of HTML and plug the XML
87 parsing one in-there should not be too hard. Key point is to get
88 XSL to transform all this to something decent ...
89
Daniel Veillardad8f99d2000-01-15 14:20:03 +000090- extend the shell with:
91 - edit
92 - load/save
93 - mv (yum, yum, but it's harder because directories are ordered in
94 our case, mvup and mvdown would be required)
95
Daniel Veillardad8f99d2000-01-15 14:20:03 +000096- Add HTML validation using the XHTML DTD
97 - problem: do we want to keep and maintain the code for handling
98 DTD/System ID cache directly in libxml ?
99
100- Add a DTD cache prefilled with xhtml DTDs and entities and a program to
101 manage them -> like the /usr/bin/install-catalog from SGML
102 right place seems $datadir/xmldtds
Daniel Veillard361d8452000-04-03 19:48:13 +0000103 Maybe this is better left to user apps
Daniel Veillardad8f99d2000-01-15 14:20:03 +0000104
105- Add output to XHTML in case of HTML documents.
106
Daniel Veillarde3d88ef2000-01-24 13:55:06 +0000107
Daniel Veillardad8f99d2000-01-15 14:20:03 +0000108Done:
109=====
110
Daniel Veillard1e851392000-10-15 10:02:56 +0000111- HTML: handling of Script and style data elements, need special code in
112 the parser and saving functions (handling of < > " ' ...):
113 http://www.w3.org/TR/html4/types.html#type-script
114 Attributes are no problems since entities are accepted.
Daniel Veillarde0854c32000-08-27 21:12:29 +0000115- DOM needs
116 xmlAttrPtr xmlNewDocProp(xmlDocPtr doc, const xmlChar *name, const xmlChar *value)
Daniel Veillard2f2bf412000-08-20 15:11:02 +0000117- problem when parsing hrefs with & with the HTML parser (IRC ac)
118- If the internal encoding is not UTF8 saving to a given encoding doesn't
119 work => fix to force UTF8 encoding ...
120 done, added documentation too
Daniel Veillard32bc74e2000-07-14 14:49:25 +0000121- Add an ASCII I/O encoder (asciiToUTF8 and UTF8Toascii)
122- Issue warning when using non-absolute namespaces URI.
123- the html parser should add <head> and <body> if they don't exist
124 started, not finished.
125 Done, the automatic closing is added and 3 testcases were inserted
Daniel Veillard3f6f7f62000-06-30 17:58:25 +0000126- Command to force the parser to stop parsing and ignore the rest of the file.
Daniel Veillard32bc74e2000-07-14 14:49:25 +0000127 xmlStopParser() should allow this, mostly untested
Daniel Veillardbe803962000-06-28 23:40:59 +0000128- support for HTML empty attributes like <hr noshade>
129- plugged iconv() in for support of a large set of encodings.
130- xmlSwitchToEncoding() rewrite done
Daniel Veillard496a1cf2000-05-03 14:20:55 +0000131- URI checkings (no fragments) rfc2396.txt
Daniel Veillard5d211f42000-04-07 17:00:24 +0000132- Added a clean mechanism for overload or added input methods:
133 xmlRegisterInputCallbacks()
Daniel Veillard361d8452000-04-03 19:48:13 +0000134- dynamically adapt the alloc entry point to use g_alloc()/g_free()
135 if the programmer wants it:
136 - use xmlMemSetup() to reset the routines used.
137- Check attribute normalization especially xmlGetProp()
138- Validity checking problems for NOTATIONS attributes
139- Validity checking problems for ENTITY ENTITIES attributes
140- Parsing of a well balanced chunk xmlParseBalancedChunkMemory()
141- URI module: validation, base, etc ... see uri.[ch]
142- turn tester into a generic program xmllint installed with libxml
Daniel Veillardec303412000-03-24 13:41:54 +0000143- extend validity checks to go through entities content instead of
144 just labelling them PCDATA
Daniel Veillard75c29212000-03-14 18:33:47 +0000145- Save Dtds using the children list instead of dumping the tables,
146 order is preserved as well as comments and PIs
147- Wrote a notice of changes requires to go from 1.x to 2.x
148- make sure that all SAX callbacks are disabled if a WF error is detected
149- checking/handling of newline normalization
150 http://localhost/www.xml.com/axml/target.html#sec-line-ends
151- correct checking of '&' '%' on entities content.
152- checking of PE/Nesting on entities declaration
153- checking/handling of xml:space
154 - checking done.
155 - handling done, not well tested
156- Language identification code, productions [33] to [38]
157 => done, the check has been added and report WFness errors
158- Conditional sections in DTDs [61] to [65]
159 => should this crap be really implemented ???
160 => Yep OASIS testsuite uses them
161- Allow parsed entities defined in the internal subset to override
162 the ones defined in the external subset (DtD customization).
163 => This mean that the entity content should be computed only at
164 use time, i.e. keep the orig string only at parse time and expand
165 only when referenced from the external subset :-(
166 Needed for complete use of most DTD from Eve Maler
167- Add regression tests for all WFC errors
168 => did some in test/WFC
169 => added OASIS testsuite routines
170 http://xmlsoft.org/conf/result.html
171
172- I18N: http://wap.trondheim.com/vaer/index.phtml is not XML and accepted
173 by the XML parser, UTF-8 should be checked when there is no "encoding"
174 declared !
175- Support for UTF-8 and UTF-16 encoding
176 => added some convertion routines provided by Martin Durst
177 patched them, got fixes from @@@
178 I plan to keep everything internally as UTF-8 (or ISO-Latin-X)
179 this is slightly more costly but more compact, and recent processors
180 efficiency is cache related. The key for good performances is keeping
181 the data set small, so will I.
182 => the new progressive reading routines call the detection code
183 is enabled, tested the ISO->UTF-8 stuff
Daniel Veillardad8f99d2000-01-15 14:20:03 +0000184- External entities loading:
185 - allow override by client code
186 - make sure it is alled for all external entities referenced
187 Done, client code should use xmlSetExternalEntityLoader() to set
188 the default loading routine. It will be called each time an external
189 entity entity resolution is triggered.
190- maintain ID coherency when removing/changing attributes
191 The function used to deallocate attributes now check for it being an
192 ID and removes it from the table.
193- push mode parsing i.e. non-blocking state based parser
194 done, both for XML and HTML parsers. Use xmlCreatePushParserCtxt()
195 and xmlParseChunk() and html counterparts.
196 The tester program now has a --push option to select that parser
197 front-end. Douplicated tests to use both and check results are similar.
198
199- Most of XPath, still see some troubles and occasionnal memleaks.
200- an XML shell, allowing to traverse/manipulate an XML document with
201 a shell like interface, and using XPath for the anming syntax
202 - use of readline and history added when available
203 - the shell interface has been cleanly separated and moved to debugXML.c
204- HTML parser, should be fairly stable now
205- API to search the lang of an attribute
206- Collect IDs at parsing and maintain a table.
207 PBM: maintain the table coherency
208 PBM: how to detect ID types in absence of DtD !
209- Use it for XPath ID support
210- Add validity checking
211 Should be finished now !
212- Add regression tests with entity substitutions
213
214- External Parsed entities, either XML or external Subset [78] and [79]
215 parsing the xmllang DtD now works, so it should be sufficient for
216 most cases !
217
218- progressive reading. The entity support is a first step toward
Daniel Veillard260a68f1998-08-13 03:39:55 +0000219 asbtraction of an input stream. A large part of the context is still
220 located on the stack, moving to a state machine and putting everyting
221 in the parsing context should provide an adequate solution.
Daniel Veillardad8f99d2000-01-15 14:20:03 +0000222 => Rather than progressive parsing, give more power to the SAX-like
223 interface. Currently the DOM-like representation is built but
224 => it should be possible to define that only as a set of SAX callbacks
225 and remove the tree creation from the parser code.
226 DONE
Daniel Veillard01791d51998-07-24 19:24:09 +0000227
Daniel Veillardad8f99d2000-01-15 14:20:03 +0000228- DOM support, instead of using a proprietary in memory
229 format for the document representation, the parser should
230 call a DOM API to actually build the resulting document.
231 Then the parser becomes independent of the in-memory
232 representation of the document. Even better using RPC's
233 the parser can actually build the document in another
234 program.
235 => Work started, now the internal representation is by default
236 very near a direct DOM implementation. The DOM glue is implemented
237 as a separate module. See the GNOME gdome module.
238
Daniel Veillard01791d51998-07-24 19:24:09 +0000239- C++ support : John Ehresman <jehresma@dsg.harvard.edu>
240- Updated code to follow more recent specs, added compatibility flag
Daniel Veillard260a68f1998-08-13 03:39:55 +0000241- Better error handling, use a dedicated, overridable error
242 handling function.
243- Support for CDATA.
244- Keep track of line numbers for better error reporting.
245- Support for PI (SAX one).
Daniel Veillardad8f99d2000-01-15 14:20:03 +0000246- Support for Comments (bad, should be in ASAP, they are parsed
247 but not stored), should be configurable.
248- Improve the support of entities on save (+SAX).
Daniel Veillard01791d51998-07-24 19:24:09 +0000249