Klassen entsprechend der XSD Definitionen

Die XSD ist erst einige Zeit nach Java entstanden. Hier können Datentypen sehr gut definiert werden, z.B. Strings mit maxLength, Werte-Bereichen. Für andere Datentypen gibt es auch entsprechende Restrictions. 
In der DDL von SQL kann eine Teilmenge hiervon definiert werden, einige Restriktionen, z.B. die Länge, sind sogar Pflicht.
Nur in Java kennen wir den String, das Integer, … ohne weitere Einschränkungen. Also werden Klassen erfunden, die ein Wrapper um einen String sind, um die Einschränkungen nachzubilden.
Hier ist Programmiersprache gefordert, Datentypen bereitzustellen, die vollständig der Definitionen aus einer XSD entsprechen.