public static int compareTypedLiterals(Node n1, Node n2) {
if (n1.isLiteral() && n2.isLiteral()) {
Object v1 = n1.getLiteralValue();
Object v2 = n2.getLiteralValue();
if (v1 instanceof XSDDateTime && v2 instanceof XSDDateTime) {
XSDDateTime a = (XSDDateTime) v1;
XSDDateTime b = (XSDDateTime) v2;
return a.compare(b);
} else {
if (v1 instanceof Number && v2 instanceof Number) {
if (v1 instanceof Float || v1 instanceof Double
|| v2 instanceof Float || v2 instanceof Double) {