new(this.value, [this.type = xsInteger, int? intValue]) : intValue = intValue ?? (value.isValidInt ? value.toInt() : null);