XML Validator

This is a validator for XML documents with the foillowing features:

Subversion Tunnels

Subversion supports sending its communication via custom tunnels in addition to the predefined SSH tunnel. New tunnels are defined in the [tunnels] section of your global configuration in /etc/subversion/config or your private configuration in ~/.subversion/config


The OpenSSL library provides access to SSL encrypted tunnels. Most of its functionality is accessible via the openssl command which is shipped with the OpenSSL package.

Null Entity Resolver

Instead of permitting the XML parser to download document type definitions, this entity resolver returns an empty string for all entities.

Merging Subversion Repositories

If you have for some reason started out with separate subversion repositories for different aspects of your project but realized that this setup does not make sense anymore, you can use the following instructions to merge repositories.


Although many linux distributions are preconfigured for various locales, they may need further user customization to support the desired features.


Although java.lang.Object declares and implements a method finalize() which is meant to be called by the garbage collector to allow the object to gain control one last time to free resources and finish sanely, I found out in a rather painful way that finalize() will only be called by the garbage collector and not when exiting the program. This means that all the objects that have been in use shortly before shutdown of the virtual machine do not get the chance to close sanely.

Escaping URLs

To ensure that URLs can be displayed regardless of the locale, special characters are substituted by a percent sign followed by their two digit hexadecimal equivalent.

Documenting Perl Regular Expressions

Regular expressions can easily be documented which is demonstrated in the following example matching floating point numbers:

XML Parser

In one of my projects I needed to process XML files with document type definitions (DTD). The first couple of attempt failed miserably. But after some research I managed to cope: