XSD vs. DTD
A definição de esquema XML (também conhecida como XSD) é uma das diversas linguagens de esquema XML. Esse idioma específico foi publicado como uma recomendação do W3C. Foi a linguagem de protótipo para aqueles que se seguiram que foram capazes de separar a linguagem de esquema para XML e a primeira a obter o status de recomendação pelo W3C. Como forma de evitar confusão com outros usos da frase XML Schema, muitos usuários começaram a se referir à linguagem como WSD (a fim de diferenciá-la como uma linguagem recomendada pelo W3C - sigla para W3C XML Schema). Ainda, outros usuários se referiram à sua forma mais comum, XSD - significando XML Schema Document.
A Definição do tipo de documento (também conhecida como DTD) é um conjunto de declarações de marcação usadas especificamente para definir um tipo de documento para linguagens de marcação da família SGML (as três mais comuns sendo SGML, XML e HTML). Como é, DTD é um tipo específico de Esquema XML. As DTDs usam uma sintaxe formal concisa, o que significa que é uma declaração de marcação que declara os elementos e referências exatos que podem aparecer em um tipo de documento específico. Ele também declara quais são os conteúdos e atributos dos elementos. Outro aspecto importante da DTD é sua capacidade de declarar entidades que têm a possibilidade de serem usadas no documento de instância.
O XSD pode ser usado para expressar um conjunto de regras às quais um documento XML deve aderir. Os documentos XML devem estar em conformidade com esse conjunto de regras para serem considerados 'válidos' de acordo com seu esquema específico. O que diferencia o XSD de outras linguagens de esquema XML é que ele também foi projetado com a ideia de que determinar a validade de um documento produziria uma coleção de informações que aderiam a tipos de dados específicos. Embora esse conjunto de informações pós-validação seja útil no desenvolvimento de software de processamento de documentos XML, sua dependência de tipos de dados específicos é um recurso que atraiu uma quantidade considerável de críticas.
DTD são predominantes em aplicativos que precisam de caracteres especiais de publicação (as Referências de entidade de caracteres XML e HTML, por exemplo). Esses caracteres especiais de publicação vieram dos conjuntos maiores, que foram definidos como recursos do esforço padrão ISO SGML. Uma Definição de Tipo de Documento específica associa uma DTD a um documento XML. As DTDs aparecem no doctypedecl - um fragmento sintático - próximo ao início de um documento XML. Esta declaração estabelece que o documento XML é uma instância de um tipo referenciado e definido por DTD. Há duas declarações específicas que a DTD faz: Um subconjunto interno, que faz parte da DTD no próprio documento, e um subconjunto externo, localizado em um arquivo de texto separado.
Resumo:
1. XSD é uma linguagem de esquema XML recomendada pelo W3C; DTD é um conjunto de declarações de marcação usadas para definir um tipo de documento.
2. XSD é usado para expressar um conjunto de regras às quais um documento XML deve aderir; uma Definição de Tipo de Documento associa uma DTD a um documento XML.