Libxml2 is the XML C library developed for the Gnome project. The library code is portable (to Linux, Unix, Windows, embedded systems, etc.) and modular; most of the extensions can be compiled out. Libxml2 implements a number of existing standards related to markup languages, including the XML standard, Namespaces in XML, XML Base, Relax NG, RFC 2396, XPath, XPointer, HTML4, XInclude, SGML Catalogs, and XML Catalogs. In most cases, libxml tries to implement the specifications in a relatively strict way. To some extent, it provides support for the following specifications, but doesn't claim to implement them: DOM, FTP client, HTTP client, and SAX2. Support for W3C XML Schemas is in progress. It includes xmllint, a command line XML validator.
Libxslt is a C library for GNOME which allows developers to work with XSLT. It is based on libxml for XML parsing, tree manipulation, and XPath support. Also included is 'xsltproc', a command line XSLT processor. The library is written in plain C, making as few assumptions as possible, and sticking closely to ANSI C/POSIX for easy embedding. It should work on Linux, Unix, and Windows. Though not designed primarily with performances in mind, libxslt seems to be a relatively fast processor. It also include full support for the EXSLT set of extension functions as well as some common extensions present in other XSLT engines.
Gnosis Utils contains several Python modules for XML processing, plus other generally useful tools: xml.pickle (serializes objects to/from XML, API compatible with the standard pickle module), xml.objectify (turns arbitrary XML documents into Python objects), xml.validity (enforces XML validity constraints via DTD or Schema), xml.indexer (full text indexing/searching), and many more.
EmPy is a system for embedding Python expressions and statements in template text. It takes an EmPy source file, processes it, and produces output. This is accomplished via expansions, which are special signals to the EmPy system and are set off by a special prefix (by default the at sign, '@'). It can expand arbitrary Python expressions and statements in this way, as well as a variety of special forms. Textual data not explicitly delimited in this way is sent unaffected to the output, allowing Python to be used in effect as a markup language. Also supported are callbacks via hooks, recording and playback via diversions, and dynamic, chainable filters. The system is highly configurable via command line options and embedded commands.
The sourcecode XML metadata extraction tools are intended to be used for extracting and transforming XML-like markup embedded in source code comments into syntactically correct external entities or well-formed XML files. This can be used for JavaDoc-like code annotation, providing structured comments, or even embedding metadata used by the build process or configuration management tools.
ClearSilver is a high-performance, powerful, and language-neutral HTML template system. It enforces a separation between presentation code and application logic which makes writing, debugging, and maintaining Web pages easier. It can be used from C/C++, Python, Perl, Java, and Ruby. It runs on Windows and Unix.
Pysite is a tool written in Python to generate Web sites based on the contents of files in a given directory tree. It crawls through a specified directory tree looking for files matching certain configurable patterns (like intro, title-fr, and this-is-another-page-body), building up an output Web page for each set of files found. It features valid XHTML output, support for multiple language output, simple hierarchical templates (just put a template in a directory and it will be used for all subdirectories), and basic plaintext to XHTML conversion.