Buggy code:
fRegistry . put ( "timeDuration" , new TimeDurationDatatypeValidator ( ) ) ; fRegistry . put ( "recurringDuration" , new RecurringDurationDatatypeValidator ( ) ) ; fRegistry . put ( "binary" , new BinaryDatatypeValidator ( ) ) ; fRegistry . put ( "uriReference" , new URIReferenceDatatypeValidator ( ) ) ; fRegistry . put ( "ID" , new IDDatatypeValidator ( ) ) ; fRegistry . put ( "IDREF" , new IDREFDatatypeValidator ( ) ) ; fRegistry . put ( "ENTITY" , new ENTITYDatatypeValidator ( ) ) ; fRegistry . put ( "NOTATION" , new NOTATIONDatatypeValidator ( ) ) ; fRegistry . put ( "QName" , new QNameDatatypeValidator ( ) ) ; Hashtable facets = new Hashtable ( ) ; facets . put ( ELT_PATTERN , "([a-zA-Z]{2}|[iI]-[a-zA-Z]+|[xX]-[a-zA-Z]+)(-[a-zA-Z]+)*" ) ; createDatatypeValidator ( "language" , new StringDatatypeValidator ( ) , facets , false ) ; createDatatypeValidator ( "IDREFS" , new IDREFDatatypeValidator ( ) , null , true ) ; createDatatypeValidator ( "ENTITIES" , new ENTITYDatatypeValidator ( ) , null , true ) ; facets = new Hashtable ( ) ; facets . put ( ELT_PATTERN , "\\c+" ) ; createDatatypeValidator ( "NMTOKEN" , new StringDatatypeValidator ( ) , facets , false ) ; createDatatypeValidator ( "NMTOKENS" , getDatatypeValidator ( "NMTOKEN" ) , null , true ) ; facets = new Hashtable ( ) ; facets . put ( ELT_PATTERN , "\\i\\c*" ) ; createDatatypeValidator ( "Name" , new StringDatatypeValidator ( ) , facets , false ) ; facets = new Hashtable ( ) ; facets . put ( ELT_PATTERN , "[\\i-[:]][\\c-[:]]*" ) ; createDatatypeValidator ( "NCName" , new StringDatatypeValidator ( ) , facets , false ) ; facets = new Hashtable ( ) ; facets . put ( ELT_SCALE , "0" ) ; createDatatypeValidator ( "integer" , new DecimalDatatypeValidator ( ) , facets , false ) ; facets = new Hashtable ( ) ; facets . put ( ELT_MAXINCLUSIVE , "0" ) ; createDatatypeValidator ( "nonPositiveInteger" , getDatatypeValidator ( "integer" ) , facets , false ) ; facets = new Hashtable ( ) ; facets . put ( ELT_MAXINCLUSIVE , "-1" ) ; createDatatypeValidator ( "negativeInteger" , getDatatypeValidator ( "nonPositiveInteger" ) , facets , false ) ; facets = new Hashtable ( ) ; facets . put ( ELT_MAXINCLUSIVE , "9223372036854775807" ) ; facets . put ( ELT_MININCLUSIVE , "-9223372036854775808" ) ; createDatatypeValidator ( "long" , getDatatypeValidator ( "integer" ) , facets , false ) ; facets = new Hashtable ( ) ; facets . put ( ELT_MAXINCLUSIVE , "2147483647" ) ; facets . put ( ELT_MININCLUSIVE , "-2147483648" ) ; createDatatypeValidator ( "int" , getDatatypeValidator ( "long" ) , facets , false ) ; facets = new Hashtable ( ) ; facets . put ( ELT_MAXINCLUSIVE , "32767" ) ; facets . put ( ELT_MININCLUSIVE , "-32768" ) ; createDatatypeValidator ( "short" , getDatatypeValidator ( "int" ) , facets , false ) ; facets = new Hashtable ( ) ; facets . put ( ELT_MAXINCLUSIVE , "127" ) ; facets . put ( ELT_MININCLUSIVE , "-128" ) ; createDatatypeValidator ( "byte" , getDatatypeValidator ( "short" ) , facets , false ) ; facets = new Hashtable ( ) ; facets . put ( ELT_MININCLUSIVE , "0" ) ; createDatatypeValidator ( "nonNegativeInteger" , getDatatypeValidator ( "integer" ) , facets , false ) ; facets = new Hashtable ( ) ; facets . put ( ELT_MAXINCLUSIVE , "18446744073709551615" ) ; createDatatypeValidator ( "unsignedLong" , getDatatypeValidator ( "nonNegativeInteger" ) , facets , false ) ; facets = new Hashtable ( ) ; facets . put ( ELT_MAXINCLUSIVE , "4294967295" ) ; createDatatypeValidator ( "unsignedInt" , getDatatypeValidator ( "unsignedLong" ) , facets , false ) ; facets = new Hashtable ( ) ; facets . put ( ELT_MAXINCLUSIVE , "65535" ) ; createDatatypeValidator ( "unsignedShort" , getDatatypeValidator ( "unsignedInt" ) , facets , false ) ; facets = new Hashtable ( ) ; facets . put ( ELT_MAXINCLUSIVE , "255" ) ; createDatatypeValidator ( "unsignedByte" , getDatatypeValidator ( "unsignedShort" ) , facets , false ) ; facets = new Hashtable ( ) ; <START_BUG> facets . put ( ELT_MAXINCLUSIVE , "255" ) ; <END_BUG> createDatatypeValidator ( "positiveInteger" , getDatatypeValidator ( "nonNegativeInteger" ) , facets , false ) ; facets = new Hashtable ( ) ; facets . put ( ELT_DURATION , "P0Y" ) ; facets . put ( ELT_PERIOD , "P0Y" ) ; createDatatypeValidator ( "timeInstant" , getDatatypeValidator ( "recurringDuration" ) , facets , false ) ; facets = new Hashtable ( ) ; facets . put ( ELT_DURATION , "P0Y" ) ; createDatatypeValidator ( "time" , getDatatypeValidator ( "recurringDuration" ) , facets , false ) ; facets = new Hashtable ( ) ; facets . put ( ELT_PERIOD , "P0Y" ) ; createDatatypeValidator ( "timePeriod" , getDatatypeValidator ( "recurringDuration" ) , facets , false ) ; facets = new Hashtable ( ) ; facets . put ( ELT_DURATION , "PT24H" ) ; createDatatypeValidator ( "date" , getDatatypeValidator ( "timePeriod" ) , facets , false ) ; facets = new Hashtable ( ) ; facets . put ( ELT_DURATION , "P1M" ) ; createDatatypeValidator ( "month" , getDatatypeValidator ( "timePeriod" ) , facets , false ) ; facets = new Hashtable ( ) ; facets . put ( ELT_DURATION , "P1Y" ) ; createDatatypeValidator ( "year" , getDatatypeValidator ( "timePeriod" ) , facets , false ) ; facets = new Hashtable ( ) ; facets . put ( ELT_DURATION , "P100Y" ) ; createDatatypeValidator ( "century" , getDatatypeValidator ( "timePeriod" ) , facets , false ) ; facets = new Hashtable ( ) ; facets . put ( ELT_PERIOD , "P1Y" ) ; facets . put ( ELT_DURATION , "PT24H" ) ; createDatatypeValidator ( "recurringDate" , getDatatypeValidator ( "recurringDuration" ) , facets , false ) ; } catch ( InvalidDatatypeFacetException ex ) { ex . printStackTrace ( ) ; } } public void resetRegistry ( ) { } public DatatypeValidator createDatatypeValidator ( String typeName , DatatypeValidator base , Hashtable facets , boolean list ) throws InvalidDatatypeFacetException { }

Fix:
facets . put ( ELT_MININCLUSIVE , "1" ) ;