TO DO LIST ========== By all means help yourself to any of these tasks if you fancy rolling your sleeves up and doing some development, tuning, testing or documentation. Any contributions will be greatly received. Development Tasks ================= * As suggested by Robert Lebowitz, consider the pretty printing and OutputFormat to allow very large text nodes to wrap their text at (say) 80 characters per line. * Implement a Saxon adapter so that the SAxon XSLT engine can work natively on top of dom4j. * implement a Locator Element that maintains the column & line number that errors may occur on for better debugging. * implement a proper lazy tree parsing mechanism using the XPP pull parser. * JDBC ResultSet implementation of an Element so that XPath and XSLT can be easily done on a JDBC result set. * Integrate Dennis Sosnoski's XML-Stream work for the default serialization mechansism * Support XPath and XSLT patterns in the ElementHandler mechansim * As suggested by Kesav Kumar Kolla, implement a better, mutable Swing TreeModel possibly along with an optional document event mechansim * get the DOM implementation to pass the DOM conformance tests at http://xmlconf.sourceforge.net/ * a persistent dom4j implementation using XMLDB or some other persistence mechansim * investigate the generation of more optimal Element implementations based on a schema definition, which could still take additional extra schema adjuncts if necessary but would by default use instance member variables for attributes. e.g. could generate public class CustomerElement extends DefaultElement { private String id; private String name; private String location; ... } So the performance benefit of using a bean would remain yet the XPath, XML, SAX benefits would remain, indeed the use of the 'bean' would be invisible. Though this might well be similar to using the BeanElement. Documentation ============= * make cookbook fit for dom4j 1.2 * adding UML diagramms into cookbook * add a easier instruction for programmers that starts to use xml and a instruction for programmers that came form jdom world * add the test-suite html output created by junit-report to project page. * improve FOp output for source code samples Test completed ============== These features have been developed but require more testing to determine that they are complete... * support for setExpandEntities(true) to expand entities, so that text using "&" could just be treated as a String. So A & B could be treated as a single Element with a Text node containing a String "A & B" * merging adjacent text nodes; use an internal StringBuffer to add multiple characters() SAX events together. * whilespace removal option. Without access to a schema or DTD its hard to do proper whitespace removal thanks to mixed content, however a simple option for data-related XML applications, to ignoring all whieespace-only nodes such that James would only contain 1 child element and not 2 whilespace nodes. * support of XMLDB native database (org.dom4j.persistence)