Javadoc
This implementation of compare_to is allowed to do two
unusual things:
(1) it can assume that the xmlobj passed has a primitive
type underlying the instance type that matches the
current instance, and that neither is nil.
(2) it is allowed to return 2 for "incomparable";
it should not throw an exception.