Portions Copyright (C) 2000 Saxonica Limited and others
