Under section 3.2.7.1 of XMLSCHEMA-2 it reads
"'.' s+ (if present) represents the fractional seconds;"
Implying the RegEx for XsdTimeWithoutTimezoneComponent shouldn't be restrained to millaseconds, reading as
([0-1][0-9]|2[0-4]):(0[0-9]|[1-5][0-9]):(0[0-9]|[1-5][0-9])(\.[0-9]+)?
instead of
([0-1][0-9]|2[0-4]):(0[0-9]|[1-5][0-9]):(0[0-9]|[1-5][0-9])(\.[0-9]{3})?
Section 3.2.7.2 also states the fraction may not end with 0. A potential candidate may be
([0-1][0-9]|2[0-4]):(0[0-9]|[1-5][0-9]):(0[0-9]|[1-5][0-9])(\.([0-9]+[1-9])?)?
Under section 3.2.7.1 of XMLSCHEMA-2 it reads "'.' s+ (if present) represents the fractional seconds;" Implying the RegEx for XsdTimeWithoutTimezoneComponent shouldn't be restrained to millaseconds, reading as
([0-1][0-9]|2[0-4]):(0[0-9]|[1-5][0-9]):(0[0-9]|[1-5][0-9])(\.[0-9]+)?
instead of([0-1][0-9]|2[0-4]):(0[0-9]|[1-5][0-9]):(0[0-9]|[1-5][0-9])(\.[0-9]{3})?
Section 3.2.7.2 also states the fraction may not end with 0. A potential candidate may be
([0-1][0-9]|2[0-4]):(0[0-9]|[1-5][0-9]):(0[0-9]|[1-5][0-9])(\.([0-9]+[1-9])?)?