TODO 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278
  1. 124907 HTML parse buffer problem when parsing larse in-memory docs
  2. 124110 DTD validation && wrong namespace
  3. 123564 xmllint --html --format
  4. TODO for the XML parser and stuff:
  5. ==================================
  6. $Id$
  7. this tend to be outdated :-\ ...
  8. DOCS:
  9. =====
  10. - use case of using XInclude to load for example a description.
  11. order document + product base -(XSLT)-> quote with XIncludes
  12. |
  13. HTML output with description of parts <---(XSLT)--
  14. TODO:
  15. =====
  16. - XInclude at the SAX level (libSRVG)
  17. - fix the C code prototype to bring back doc/libxml-undocumented.txt
  18. to a reasonable level
  19. - Computation of base when HTTP redirect occurs, might affect HTTP
  20. interfaces.
  21. - Computation of base in XInclude. Relativization of URIs.
  22. - listing all attributes in a node.
  23. - Better checking of external parsed entities TAG 1234
  24. - Go through erratas and do the cleanup.
  25. http://www.w3.org/XML/xml-19980210-errata ... started ...
  26. - jamesh suggestion: SAX like functions to save a document ie. call a
  27. function to open a new element with given attributes, write character
  28. data, close last element, etc
  29. + inversted SAX, initial patch in April 2002 archives.
  30. - htmlParseDoc has parameter encoding which is not used.
  31. Function htmlCreateDocParserCtxt ignore it.
  32. - fix realloc() usage.
  33. - Stricten the UTF8 conformance (Martin Duerst):
  34. http://www.w3.org/2001/06/utf-8-test/.
  35. The bad files are in http://www.w3.org/2001/06/utf-8-wrong/.
  36. - xml:id normalized value
  37. TODO:
  38. =====
  39. - move all string manipulation functions (xmlStrdup, xmlStrlen, etc.) to
  40. global.c. Bjorn noted that the following files depends on parser.o solely
  41. because of these string functions: entities.o, global.o, hash.o, tree.o,
  42. xmlIO.o, and xpath.o.
  43. - Optimization of tag strings allocation ?
  44. - maintain coherency of namespace when doing cut'n paste operations
  45. => the functions are coded, but need testing
  46. - function to rebuild the ID table
  47. - functions to rebuild the DTD hash tables (after DTD changes).
  48. EXTENSIONS:
  49. ===========
  50. - Tools to produce man pages from the SGML docs.
  51. - Add Xpointer recognition/API
  52. - Add Xlink recognition/API
  53. => started adding an xlink.[ch] with a unified API for XML and HTML.
  54. it's crap :-(
  55. - Implement XSchemas
  56. => Really need to be done <grin/>
  57. - datatype are complete, but structure support is very limited.
  58. - extend the shell with:
  59. - edit
  60. - load/save
  61. - mv (yum, yum, but it's harder because directories are ordered in
  62. our case, mvup and mvdown would be required)
  63. Done:
  64. =====
  65. - Add HTML validation using the XHTML DTD
  66. - problem: do we want to keep and maintain the code for handling
  67. DTD/System ID cache directly in libxml ?
  68. => not really done that way, but there are new APIs to check elements
  69. or attributes. Otherwise XHTML validation directly ...
  70. - XML Schemas datatypes except Base64 and BinHex
  71. - Relax NG validation
  72. - XmlTextReader streaming API + validation
  73. - Add a DTD cache prefilled with xhtml DTDs and entities and a program to
  74. manage them -> like the /usr/bin/install-catalog from SGML
  75. right place seems $datadir/xmldtds
  76. Maybe this is better left to user apps
  77. => use a catalog instead , and xhtml1-dtd package
  78. - Add output to XHTML
  79. => XML serializer automatically recognize the DTd and apply the specific
  80. rules.
  81. - Fix output of <tst val="x&#xA;y"/>
  82. - compliance to XML-Namespace checking, see section 6 of
  83. http://www.w3.org/TR/REC-xml-names/
  84. - Correct standalone checking/emitting (hard)
  85. 2.9 Standalone Document Declaration
  86. - Implement OASIS XML Catalog support
  87. http://www.oasis-open.org/committees/entity/
  88. - Get OASIS testsuite to a more friendly result, check all the results
  89. once stable. the check-xml-test-suite.py script does this
  90. - Implement XSLT
  91. => libxslt
  92. - Finish XPath
  93. => attributes addressing troubles
  94. => defaulted attributes handling
  95. => namespace axis ?
  96. done as XSLT got debugged
  97. - bug reported by Michael Meallin on validation problems
  98. => Actually means I need to add support (and warn) for non-deterministic
  99. content model.
  100. - Handle undefined namespaces in entity contents better ... at least
  101. issue a warning
  102. - DOM needs
  103. int xmlPruneProp(xmlNodePtr node, xmlAtttrPtr attr);
  104. => done it's actually xmlRemoveProp xmlUnsetProp xmlUnsetNsProp
  105. - HTML: handling of Script and style data elements, need special code in
  106. the parser and saving functions (handling of < > " ' ...):
  107. http://www.w3.org/TR/html4/types.html#type-script
  108. Attributes are no problems since entities are accepted.
  109. - DOM needs
  110. xmlAttrPtr xmlNewDocProp(xmlDocPtr doc, const xmlChar *name, const xmlChar *value)
  111. - problem when parsing hrefs with & with the HTML parser (IRC ac)
  112. - If the internal encoding is not UTF8 saving to a given encoding doesn't
  113. work => fix to force UTF8 encoding ...
  114. done, added documentation too
  115. - Add an ASCII I/O encoder (asciiToUTF8 and UTF8Toascii)
  116. - Issue warning when using non-absolute namespaces URI.
  117. - the html parser should add <head> and <body> if they don't exist
  118. started, not finished.
  119. Done, the automatic closing is added and 3 testcases were inserted
  120. - Command to force the parser to stop parsing and ignore the rest of the file.
  121. xmlStopParser() should allow this, mostly untested
  122. - support for HTML empty attributes like <hr noshade>
  123. - plugged iconv() in for support of a large set of encodings.
  124. - xmlSwitchToEncoding() rewrite done
  125. - URI checkings (no fragments) rfc2396.txt
  126. - Added a clean mechanism for overload or added input methods:
  127. xmlRegisterInputCallbacks()
  128. - dynamically adapt the alloc entry point to use g_alloc()/g_free()
  129. if the programmer wants it:
  130. - use xmlMemSetup() to reset the routines used.
  131. - Check attribute normalization especially xmlGetProp()
  132. - Validity checking problems for NOTATIONS attributes
  133. - Validity checking problems for ENTITY ENTITIES attributes
  134. - Parsing of a well balanced chunk xmlParseBalancedChunkMemory()
  135. - URI module: validation, base, etc ... see uri.[ch]
  136. - turn tester into a generic program xmllint installed with libxml
  137. - extend validity checks to go through entities content instead of
  138. just labelling them PCDATA
  139. - Save Dtds using the children list instead of dumping the tables,
  140. order is preserved as well as comments and PIs
  141. - Wrote a notice of changes requires to go from 1.x to 2.x
  142. - make sure that all SAX callbacks are disabled if a WF error is detected
  143. - checking/handling of newline normalization
  144. http://localhost/www.xml.com/axml/target.html#sec-line-ends
  145. - correct checking of '&' '%' on entities content.
  146. - checking of PE/Nesting on entities declaration
  147. - checking/handling of xml:space
  148. - checking done.
  149. - handling done, not well tested
  150. - Language identification code, productions [33] to [38]
  151. => done, the check has been added and report WFness errors
  152. - Conditional sections in DTDs [61] to [65]
  153. => should this crap be really implemented ???
  154. => Yep OASIS testsuite uses them
  155. - Allow parsed entities defined in the internal subset to override
  156. the ones defined in the external subset (DtD customization).
  157. => This mean that the entity content should be computed only at
  158. use time, i.e. keep the orig string only at parse time and expand
  159. only when referenced from the external subset :-(
  160. Needed for complete use of most DTD from Eve Maler
  161. - Add regression tests for all WFC errors
  162. => did some in test/WFC
  163. => added OASIS testsuite routines
  164. http://xmlsoft.org/conf/result.html
  165. - I18N: http://wap.trondheim.com/vaer/index.phtml is not XML and accepted
  166. by the XML parser, UTF-8 should be checked when there is no "encoding"
  167. declared !
  168. - Support for UTF-8 and UTF-16 encoding
  169. => added some convertion routines provided by Martin Durst
  170. patched them, got fixes from @@@
  171. I plan to keep everything internally as UTF-8 (or ISO-Latin-X)
  172. this is slightly more costly but more compact, and recent processors
  173. efficiency is cache related. The key for good performances is keeping
  174. the data set small, so will I.
  175. => the new progressive reading routines call the detection code
  176. is enabled, tested the ISO->UTF-8 stuff
  177. - External entities loading:
  178. - allow override by client code
  179. - make sure it is alled for all external entities referenced
  180. Done, client code should use xmlSetExternalEntityLoader() to set
  181. the default loading routine. It will be called each time an external
  182. entity entity resolution is triggered.
  183. - maintain ID coherency when removing/changing attributes
  184. The function used to deallocate attributes now check for it being an
  185. ID and removes it from the table.
  186. - push mode parsing i.e. non-blocking state based parser
  187. done, both for XML and HTML parsers. Use xmlCreatePushParserCtxt()
  188. and xmlParseChunk() and html counterparts.
  189. The tester program now has a --push option to select that parser
  190. front-end. Douplicated tests to use both and check results are similar.
  191. - Most of XPath, still see some troubles and occasionnal memleaks.
  192. - an XML shell, allowing to traverse/manipulate an XML document with
  193. a shell like interface, and using XPath for the anming syntax
  194. - use of readline and history added when available
  195. - the shell interface has been cleanly separated and moved to debugXML.c
  196. - HTML parser, should be fairly stable now
  197. - API to search the lang of an attribute
  198. - Collect IDs at parsing and maintain a table.
  199. PBM: maintain the table coherency
  200. PBM: how to detect ID types in absence of DtD !
  201. - Use it for XPath ID support
  202. - Add validity checking
  203. Should be finished now !
  204. - Add regression tests with entity substitutions
  205. - External Parsed entities, either XML or external Subset [78] and [79]
  206. parsing the xmllang DtD now works, so it should be sufficient for
  207. most cases !
  208. - progressive reading. The entity support is a first step toward
  209. asbtraction of an input stream. A large part of the context is still
  210. located on the stack, moving to a state machine and putting everyting
  211. in the parsing context should provide an adequate solution.
  212. => Rather than progressive parsing, give more power to the SAX-like
  213. interface. Currently the DOM-like representation is built but
  214. => it should be possible to define that only as a set of SAX callbacks
  215. and remove the tree creation from the parser code.
  216. DONE
  217. - DOM support, instead of using a proprietary in memory
  218. format for the document representation, the parser should
  219. call a DOM API to actually build the resulting document.
  220. Then the parser becomes independent of the in-memory
  221. representation of the document. Even better using RPC's
  222. the parser can actually build the document in another
  223. program.
  224. => Work started, now the internal representation is by default
  225. very near a direct DOM implementation. The DOM glue is implemented
  226. as a separate module. See the GNOME gdome module.
  227. - C++ support : John Ehresman <jehresma@dsg.harvard.edu>
  228. - Updated code to follow more recent specs, added compatibility flag
  229. - Better error handling, use a dedicated, overridable error
  230. handling function.
  231. - Support for CDATA.
  232. - Keep track of line numbers for better error reporting.
  233. - Support for PI (SAX one).
  234. - Support for Comments (bad, should be in ASAP, they are parsed
  235. but not stored), should be configurable.
  236. - Improve the support of entities on save (+SAX).