# X4O X4O is not an XML parser but a recursive self configuring XML dialect language library. X4O is very old code from pre 1.5 non-generics nice object java. ## 2025 TODO - Add 18 bit SAX4 XML read and write support - RM 8 bit String DEP, replace javax.el by simple obj map - Upgrade X4O element language to support 18 bit XML - Remove some features to ease "write" and SAX4 support - Move all XML uri's to oasis style thus replacing all internal http namespace locators - Add jaxb annotation support to define a x4o language and have XSD and documention tools - (DONE) Remove SAXException and replace with IOException for auto close tag printer API support - Cleanup old todo/ideas from below ## OLD todo - Fix debug output - RM function methods from Element interface - finish eld doc-output content - Make generic/safe? config bean - - Make language config done by driver xml parser - change (internal) x4o language to "x4o-" prefix so; x4o-cel,x4o-eld,x4o-meta - Add language locking, and lock eld/cel and add <lang>-eld wrap language for eld extentions per language - Add doc version upgrade handler - - per version step xslt doc upgrade (check dyna sax piplining hooking) - - per version eld + support code + backing objects (DONE) - - per version eld for dyna tree convert to new backing objects - Add *Local layer for X4OLanguage* classes - Add default define (EL) layer - Bring back xml read+write streaming language support - static field constant converter - add default list and map converter/handler - full Xinclude test - move loading back into sax phase so version can readout on root tag - tag aliases - [lang]-el-beans.xml loading - Add XML schema tags to ELD - Auto generate schemas from eld - Basic editor support - Make converter config/loading better - Single xsd output - class dtd entity loadings - new ns for entity catalog for class resource - Add w3c html namespace in eld for description tag - move Boolean default from code to xml + conf ### OLD IDEAS - add mini xslt parse on top of streaming api - add support javax.xml.xpath for xpath support - add java.script support - event listeners on all DOM tree element operations - custom and merga'ble parse phases for speed - make element tree jdom api compatible - Test if possible to use threadpool for executing phases test v2; - x4o-driver - x4o-s4j-jaxp (dom,sax,stax,xslt) (jsr; 5,63,173) - x4o-s4j-sax - x4o-s4j-stax - x4o-s4j-jaxb (jsr; 222) ### OLD v1 todo NON-CODE - Add tutorial - doc eld and x4o lang files ### OLD v1 todo CODE - Add (super) tag for extending tags of other namespace - XMLOverrideEvent - - inboud sax parser !! - - input stream output converter :) - eld static method binding for EL - (50%) converters - more junit tests - - multi and overrides in namespaces - - localoverride - (DONE) multi phase parsing - - for loop support - - templateing. - - merging of object tree's - - sax with all x4o feutures like templating - x4o:include option - - Xinclude option - - SAX events as input source - (70%) XML debug output ## OLD versions Version 0.8.7: - Created jdk7(CSS) javadoc compatible documentation - Create language task api and converted the current tasks - Renamed X4OLanguageContext to X4OLanguageSession - Renamed ElementNamespaceContext to ElementNamespace - Removed binding handler from element interface - Refactored all property keys with PropertyConfig bean - Change global attr to namespace attributes - Updated ant/maven plugins to new task and properties - Added options to xml writer like OUTPUT_LINE_BREAK_WIDTH Version 0.8.6: - Changed to X4ODriver interface - Added (simple) write support - Added ant and maven plugins Version 0.8.5: - Made module loading system - Added eld to schema generator - Added eld to html generator - Cleaned xml uri nameing - refactored ELD tag names - Made elddoc ~working - Changed phase enum to text phases Version 0.8.0: - Changed packages to org.x4o - Made converter two way - Added debug writer