In XMLDatatypeUtil class there is isValidTime() method which determines whether value is valid xsd:time.
This regexp is incorrect as it does not permit milliseconds :
String regex = "\\d\\d:\\d\\d:\\d\\d(Z|(\\+|-)\\d\\d:\\d
which should be valid according to some sources :
so this will fail : "13:20:30.5555"^^xsd:time