O que são os arquivos XSD ?

Em resposta a um usuário:

Arquivos XSD (XML Schema Definition) são usados para descrever o “formato/padrão” que um arquivo XML deve seguir, ou seja, ele tem que indicar quais nodes (<node1><subnode1/></node1>) ele pode conter, quais subnodes e atributos esses nodes podem ter, e muito mais.

Indica o tipo dos valores que esses nodes e atributos (<node1 atributo1=’abc’/>) podem armazenar, o tamanho dos dados caso se aplique (string de 10 caracteres), se um determinado node é obrigatório ou não (nillable=”true”), quais possíveis valores uma enumeração pode assumir, etc…

Enfim, define toda a estrutura do arquivo XML ao qual ele é aplicado.
Ele é muito utilizado como base de validação, para garantir que um XML está seguindo o padrão/formato correto.

Podemos ver um exemplo no seguinte post, onde o arquivo XSD é utilizado pelo Visual Studio para, além de validar a estrutura do XML, possibilitar o preenchimento automático dos nodes e atributos no seu editor de código via Intellisense.

Você pode gerar arquivos XSD a partir de classes do próprio C# para que sejam usadas em métodos de serialização/deserialização, utilizando, entre outros, o aplicativo XSD.exe da Microsoft.

É interessante observar que o WSDL (definição da interface de um webservice) contem uma parte que descreve o formato das entidades/classes trafegadas pelo serviço em seus métodos. O esquema pode ser visualizado nos nodes wsdl:types ou através do node de include/importação xsd:import (melhor prática, mas pode não ser utilizada por limitações tecnológicas).


Alguns links interessantes:

  • http://www.w3schools.com/schema/

  • http://www.w3.org/TR/xmlschema-1/