case TypeTable.NUMERIC_TID:
v = this;
break;
case TypeTable.INTEGER_TID:
if(Double.isNaN(value)) {
throw new DynamicError("err:FOCA0002", "Can't convert xs:double(" + toString()
+ ") to xs:integer");
}
if(Double.isInfinite(value)) {
throw new DynamicError("err:FOCA0002", "Can't convert xs:double(" + toString()
+ ") to xs:integer");
}
v = XInteger.valueOf(asLong());
break;
case TypeTable.FLOAT_TID:
if(Double.isNaN(value)) {
v = XFloat.valueOf(Float.NaN);
} else if(value == Double.POSITIVE_INFINITY) {
v = XFloat.valueOf(Float.POSITIVE_INFINITY);
} else if(value == Double.NEGATIVE_INFINITY) {
v = XFloat.valueOf(Float.NEGATIVE_INFINITY);
} else {
v = XFloat.valueOf((float) value);
}
break;
case TypeTable.DECIMAL_TID:
if(Double.isNaN(value)) {
throw new DynamicError("err:FORG0001", "Can't convert xs:double(" + toString()
+ ") to xs:decimal");
}
if(Double.isInfinite(value)) {
throw new DynamicError("err:FOCA0002", "Can't convert xs:double(" + toString()
+ ") to xs:decimal");
}
v = XDecimal.valueOf(asDecimal());
break;
default: