Data typing in XML is weak
DTDs use a strange non-XML syntax
Limited compatiblity with namespaces
Limited extensibility
Schemas fix all these problems
There are multiple schema languages including:
Rick Jelliffe's Schematron
Murato Makoto's RELAX
James Clark's TreX
The W3C XML Schema Language