Building the Comparator code
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
To build the comparator code, the following is required in your classpath.
	
	xerces.jar 
	xmerge.jar 

To Build type
	
	javac *.java
