Well this might appear weird, but I see, while converting a string to date, the value 20155-10-10 didn't throw an error saying invalid date.
the function used is as below
fn-bea:date-from-string-with-format("MM/dd/yyyy",'10/10/20155')
the above functioned returned date 20155-10-10, when above string is passed and was validated by the schema too. the field is declared as type xs:date
the prototype of the function is
fn-bea:date-from-string-with-format($format as xs:string?, $dateString as xs:string?) as xs:date?
please follow the link http://docs.oracle.com/cd/E13167_01/aldsp/docs25/xquery/extensions.html#wp1297249 for the function usage and example