You might like to read
darobin's recent comments about XML Schema on use.perl. Whilst thinking about XML Schema and DTDs, take a look at
Relax NG, an interesting schema language developed outside the W3C that sits somehwere between the simplicity of DTDs and the power of schemas.