blob: 2b4ae5ee6e6dec7049a1f471e14e0ab40596b975 [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 Veillard361d8452000-04-03 19:48:13 +00005
Daniel Veillard75c29212000-03-14 18:33:47 +00006TODO:
7=====
8
Daniel Veillard496a1cf2000-05-03 14:20:55 +00009- xmlSwitchToEncoding() need a rewrite for correct handling of conversion
10 error code conditions.
Daniel Veillard5d211f42000-04-07 17:00:24 +000011- DOM needs
12 xmlAttrPtr xmlNewDocProp(xmlDocPtr doc, const xmlChar *name, const xmlChar *value)
13 int xmlPruneProp(xmlNodePtr node, xmlAtttrPtr attr);
14- Fix DTD + namespace validity problem
15 "Not valid: root and DtD name do not match 'ROOT' and 'prefix:ROOT'"
Daniel Veillard75c29212000-03-14 18:33:47 +000016- add support for the trick from Henry conf/sun/valid/empty.xml
17- 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.
22- Go through erratas and do the cleanup.
23 http://www.w3.org/XML/xml-19980210-errata ... bummmer
Daniel Veillard361d8452000-04-03 19:48:13 +000024- Handle undefined namespaces in entity contents better ... at least
25 issue a warning
Daniel Veillard496a1cf2000-05-03 14:20:55 +000026- Issue warning when using non-absolute namespaces URI.
Daniel Veillard361d8452000-04-03 19:48:13 +000027- General checking of DTD validation in presence of namespaces ... hairy
Daniel Veillard06047432000-04-24 11:33:38 +000028- fix --disable-corba configure switch handling, and use XML_WITHOUT_CORBA
29 not WITHOUT_CORBA flag
Daniel Veillardad8f99d2000-01-15 14:20:03 +000030
31TODO:
32=====
33
Daniel Veillard75c29212000-03-14 18:33:47 +000034- Get OASIS testsuite to a more friendly result, check all the results
Daniel Veillard496a1cf2000-05-03 14:20:55 +000035 once stable. Current state at:
Daniel Veillard75c29212000-03-14 18:33:47 +000036 http://xmlsoft.org/conf/result.html
Daniel Veillardad8f99d2000-01-15 14:20:03 +000037
Daniel Veillard3dd82e72000-03-20 11:48:04 +000038- Optimization of tag strings allocation ?
Daniel Veillard75c29212000-03-14 18:33:47 +000039
40- maintain coherency of namespace when doing cut'n paste operations
41 => the functions are coded, but need testing
42
Daniel Veillard3dd82e72000-03-20 11:48:04 +000043- function to rebuild the ID table
44- functions to rebuild the DTD hash tables (after DTD changes).
Daniel Veillard75c29212000-03-14 18:33:47 +000045
Daniel Veillard75c29212000-03-14 18:33:47 +000046
47EXTENSIONS:
48===========
Daniel Veillard3dd82e72000-03-20 11:48:04 +000049
Daniel Veillard75c29212000-03-14 18:33:47 +000050- Tools to produce man pages from the SGML docs.
Daniel Veillardad8f99d2000-01-15 14:20:03 +000051- Finish XPath
52 => attributes addressing troubles
53 => defaulted attributes handling
54 => namespace axis ?
55
56- Add Xpointer recognition/API
57
58- Add Xlink recognition/API
59 => started adding an xlink.[ch] with a unified API for XML and HTML.
Daniel Veillard496a1cf2000-05-03 14:20:55 +000060 it's crap :-(
Daniel Veillardad8f99d2000-01-15 14:20:03 +000061
62- Implement XSLT
63 => seems that someone volunteered ?!?
64
65- Implement XSchemas
Daniel Veillard496a1cf2000-05-03 14:20:55 +000066 => Really need to be done <grin/>
Daniel Veillardad8f99d2000-01-15 14:20:03 +000067
68- O2K parsing;
69 => this is a somewhat ugly mix of HTML and XML, adding a specific
70 routine in the comment parsing code of HTML and plug the XML
71 parsing one in-there should not be too hard. Key point is to get
72 XSL to transform all this to something decent ...
73
Daniel Veillardad8f99d2000-01-15 14:20:03 +000074- extend the shell with:
75 - edit
76 - load/save
77 - mv (yum, yum, but it's harder because directories are ordered in
78 our case, mvup and mvdown would be required)
79
Daniel Veillardad8f99d2000-01-15 14:20:03 +000080- Add HTML validation using the XHTML DTD
81 - problem: do we want to keep and maintain the code for handling
82 DTD/System ID cache directly in libxml ?
83
84- Add a DTD cache prefilled with xhtml DTDs and entities and a program to
85 manage them -> like the /usr/bin/install-catalog from SGML
86 right place seems $datadir/xmldtds
Daniel Veillard361d8452000-04-03 19:48:13 +000087 Maybe this is better left to user apps
Daniel Veillardad8f99d2000-01-15 14:20:03 +000088
89- Add output to XHTML in case of HTML documents.
90
Daniel Veillarde3d88ef2000-01-24 13:55:06 +000091
Daniel Veillardad8f99d2000-01-15 14:20:03 +000092Done:
93=====
94
Daniel Veillard496a1cf2000-05-03 14:20:55 +000095- URI checkings (no fragments) rfc2396.txt
Daniel Veillard5d211f42000-04-07 17:00:24 +000096- Added a clean mechanism for overload or added input methods:
97 xmlRegisterInputCallbacks()
Daniel Veillard361d8452000-04-03 19:48:13 +000098- dynamically adapt the alloc entry point to use g_alloc()/g_free()
99 if the programmer wants it:
100 - use xmlMemSetup() to reset the routines used.
101- Check attribute normalization especially xmlGetProp()
102- Validity checking problems for NOTATIONS attributes
103- Validity checking problems for ENTITY ENTITIES attributes
104- Parsing of a well balanced chunk xmlParseBalancedChunkMemory()
105- URI module: validation, base, etc ... see uri.[ch]
106- turn tester into a generic program xmllint installed with libxml
Daniel Veillardec303412000-03-24 13:41:54 +0000107- extend validity checks to go through entities content instead of
108 just labelling them PCDATA
Daniel Veillard75c29212000-03-14 18:33:47 +0000109- Save Dtds using the children list instead of dumping the tables,
110 order is preserved as well as comments and PIs
111- Wrote a notice of changes requires to go from 1.x to 2.x
112- make sure that all SAX callbacks are disabled if a WF error is detected
113- checking/handling of newline normalization
114 http://localhost/www.xml.com/axml/target.html#sec-line-ends
115- correct checking of '&' '%' on entities content.
116- checking of PE/Nesting on entities declaration
117- checking/handling of xml:space
118 - checking done.
119 - handling done, not well tested
120- Language identification code, productions [33] to [38]
121 => done, the check has been added and report WFness errors
122- Conditional sections in DTDs [61] to [65]
123 => should this crap be really implemented ???
124 => Yep OASIS testsuite uses them
125- Allow parsed entities defined in the internal subset to override
126 the ones defined in the external subset (DtD customization).
127 => This mean that the entity content should be computed only at
128 use time, i.e. keep the orig string only at parse time and expand
129 only when referenced from the external subset :-(
130 Needed for complete use of most DTD from Eve Maler
131- Add regression tests for all WFC errors
132 => did some in test/WFC
133 => added OASIS testsuite routines
134 http://xmlsoft.org/conf/result.html
135
136- I18N: http://wap.trondheim.com/vaer/index.phtml is not XML and accepted
137 by the XML parser, UTF-8 should be checked when there is no "encoding"
138 declared !
139- Support for UTF-8 and UTF-16 encoding
140 => added some convertion routines provided by Martin Durst
141 patched them, got fixes from @@@
142 I plan to keep everything internally as UTF-8 (or ISO-Latin-X)
143 this is slightly more costly but more compact, and recent processors
144 efficiency is cache related. The key for good performances is keeping
145 the data set small, so will I.
146 => the new progressive reading routines call the detection code
147 is enabled, tested the ISO->UTF-8 stuff
Daniel Veillardad8f99d2000-01-15 14:20:03 +0000148- External entities loading:
149 - allow override by client code
150 - make sure it is alled for all external entities referenced
151 Done, client code should use xmlSetExternalEntityLoader() to set
152 the default loading routine. It will be called each time an external
153 entity entity resolution is triggered.
154- maintain ID coherency when removing/changing attributes
155 The function used to deallocate attributes now check for it being an
156 ID and removes it from the table.
157- push mode parsing i.e. non-blocking state based parser
158 done, both for XML and HTML parsers. Use xmlCreatePushParserCtxt()
159 and xmlParseChunk() and html counterparts.
160 The tester program now has a --push option to select that parser
161 front-end. Douplicated tests to use both and check results are similar.
162
163- Most of XPath, still see some troubles and occasionnal memleaks.
164- an XML shell, allowing to traverse/manipulate an XML document with
165 a shell like interface, and using XPath for the anming syntax
166 - use of readline and history added when available
167 - the shell interface has been cleanly separated and moved to debugXML.c
168- HTML parser, should be fairly stable now
169- API to search the lang of an attribute
170- Collect IDs at parsing and maintain a table.
171 PBM: maintain the table coherency
172 PBM: how to detect ID types in absence of DtD !
173- Use it for XPath ID support
174- Add validity checking
175 Should be finished now !
176- Add regression tests with entity substitutions
177
178- External Parsed entities, either XML or external Subset [78] and [79]
179 parsing the xmllang DtD now works, so it should be sufficient for
180 most cases !
181
182- progressive reading. The entity support is a first step toward
Daniel Veillard260a68f1998-08-13 03:39:55 +0000183 asbtraction of an input stream. A large part of the context is still
184 located on the stack, moving to a state machine and putting everyting
185 in the parsing context should provide an adequate solution.
Daniel Veillardad8f99d2000-01-15 14:20:03 +0000186 => Rather than progressive parsing, give more power to the SAX-like
187 interface. Currently the DOM-like representation is built but
188 => it should be possible to define that only as a set of SAX callbacks
189 and remove the tree creation from the parser code.
190 DONE
Daniel Veillard01791d51998-07-24 19:24:09 +0000191
Daniel Veillardad8f99d2000-01-15 14:20:03 +0000192- DOM support, instead of using a proprietary in memory
193 format for the document representation, the parser should
194 call a DOM API to actually build the resulting document.
195 Then the parser becomes independent of the in-memory
196 representation of the document. Even better using RPC's
197 the parser can actually build the document in another
198 program.
199 => Work started, now the internal representation is by default
200 very near a direct DOM implementation. The DOM glue is implemented
201 as a separate module. See the GNOME gdome module.
202
Daniel Veillard01791d51998-07-24 19:24:09 +0000203- C++ support : John Ehresman <jehresma@dsg.harvard.edu>
204- Updated code to follow more recent specs, added compatibility flag
Daniel Veillard260a68f1998-08-13 03:39:55 +0000205- Better error handling, use a dedicated, overridable error
206 handling function.
207- Support for CDATA.
208- Keep track of line numbers for better error reporting.
209- Support for PI (SAX one).
Daniel Veillardad8f99d2000-01-15 14:20:03 +0000210- Support for Comments (bad, should be in ASAP, they are parsed
211 but not stored), should be configurable.
212- Improve the support of entities on save (+SAX).
Daniel Veillard01791d51998-07-24 19:24:09 +0000213