This project aims at designing and implementing a lightweight, consistent, set of stream-oriented XML utilities, inspired by traditional Unix programs such as grep, join and sed.
These tools are intended for inclusion in the NetBSD operating system. However, in keeping with the portability motto of the project, and given the nature of the utilities, integration into other systems is a very real possibility.
There are still some design issues to be discussed but this part is mostly done. The core components are being improved as new needs arise with new tools, and a first tool, xmlgrep, is already usable.
Work is underway on xmlsed: the core components are being updated to accommodate for the features that will be introduced with xmlsed. Also, some parts of the design still need to be polished. Please check my xmltools blog for more details.
You can also check the TODO file in the source distribution for points that will need to be addressed before the project can be considered complete, but are not the top priority right now.
The latest development version can be tracked from my Git repository at git.huoc.org. I will start pushing major updates to this CVS once the code base becomes more stable.
For the time being, you will need a version of expat (the one available from pkgsrc is fine) in order to compile the sources, and everything is still quite experimental and subject to change. The pattern syntax should can be considered somewhat mature, though.
The project's deliverables will be in the form of binaries built around a core component implementing the stream-oriented parsing and matching model.
Mandatory (must-have) components:
Optional (would-be-nice) components:
Specific points related to the development of xmltools will be discussed on my xmltools blog.
The man pages provided with the project are the main source of documentation. At this time, there are two: xmlgrep(1) and xmlcompat(7).
If you are interested in the internals of the tools, you should read the code (especially the comments at the beginning of the various files).
There are also various old design documents and an even older prototype are available at my Git repository.