Conclusion

  • DTD's are Namespace unaware

  • DTD's only allow a limited amount of types for attributes

  • DTD's do not allow to specify element content types except for PCDATA

  • DTD's allow you to specify default and fixed values

  • Tools will try to resolve references in DOCTYPEs.

  • A DTD grammar cannot be defined using XML

  • A DTD allows only one root element to be specified.

  • DTD's are another leftover from SGML