This is the TODO file for AxKit. Thank you for wanting to contribute! The first thing you probably want to do if you haven't already is to check out the xml-axkit module from the cvs.apache.org CVS in order to get the latest code, and to read the CONTRIB file. IMPORTANT: please do note that a feature being listed here does NOT mean that it has been endorsed by the AxKit community as something that must happen, as a good idea, or as something that if it happens should happen in the way that is described here. So before you jump on an item and hack it into AxKit you always want to ask the axkit-devel list about it and tell us what you think you'll be doing in that area. Paying a visit to #axkit can certainly help as well. In any case, the cumulated experience of the folks that dwell there will certainly be of great help to you as you try to add something to AxKit. Remember that this is a community thing, we need consensus ;-) . Eliminate dependency on Apache / mod_perl This is a rather large undertaking. It is not technically hard though. The current AxKit relies heavily on Apache and mod_perl, which means that it can't be used as a generic publishing system or as a CGI module. The Apache handler that drives the code needs to be abstracted away so that AxKit can be driven by any kind of request, the Configuration needs to have an alternate format to work outside of Apache, Apache::Fake needs to be used to emulate $r and other such things. . Documentation This is the job of the axkit-docs project. It really needs to be done and can use all the help that it gets. This would be a nice way to learn AxKit's internals if you are not familiar with them. Ask the axkit-docs@axkit.org list. . Make the configuration fully XML The configuration as it is now is ok overall, but it's hard to extend without writing some C code, which is a pain. Switching to an XML syntax would be a big win, though we don't want to make the mistakes the Cocoon folks made. We probably also want to make the syntax extensible with namespaces. . XSP executed twice when using the '.' href It has been reported that when using '.' as the href for the XSP stylesheet the XSP is executed twice. This has to be investigated, in the meantime one should use the preferred 'NULL' instead of '.'. . Splitting XSP out Currently XSP is tied into AxKit but it would make a marvellous standalone module for XML processing. . Better error messages here and there There are cases when the error messages aren't all that good. These need to be addressed. A good example is AxKit::XSP::Util that apparently doesn't warn properly when it fails to grab content, as well as XML::LibXML that happily blows up when it's fed an empty string. . SAX Language module There ought to be a module that can take SAX Machines descriptions (which probably need a language of some sort) and use those as any other part in the pipeline. . Provider Extensions for write access There are cases in which it could be useful to have a pipeline similar to the one AxKit has on the way out, but working in the opposite direction, say for instance to transform form input into storable XML. . New providers New plugin providers would surely help. A good example could be a provider that uses an XML DB on the backend. . Separate Provider for stylesheets It would appear that one of the main problems people have when writing providers is that stylesheets are also looked up through them, which causes various problems to people. One (backcompat) way of doing this would be to have it still work this way if no AxStyleProvider is setup, but AxStyleProvider would be able to override AxProvider. . More control on the interaction between the configuration and PIs Some would like it to be possible to use both the configuration and PIs simultaneously, either by having the possibility of ignoring PIs completely, or by allowing one to append/prepend/insert the PIs into the style list. . Relative URIs in XSLT This is a long standing issue that needs to be addressed as it confuses many people (and bothers the ones that aren't confused). . A good test suite Testing modperl apps is notoriously hard. Thankfully a framework has been created for that and it has to be adapted to AxKit. Also, eliminating the dependency on modperl might make that a lot easier. . Make Taint safe I believe AxKit doesn't run under PerlTaintCheck. This needs to be fixed. . i18n support AxKit should provide a global policy for xml:lang support. The way it is now, a user must either do processing of that element himself or rely on a particular module's implementation. Moreover, in XSP difficulties can arise. Having a global xml:lang policy would make multi-language support easier. . Binary data support It's easy to be bitten when dealing with binary support in AxKit. It should be possible to flag one's output (at *any* stage) as binary, and have binary-unsafe operations (such as char conversion, xml parsing, etc.) be skipped.