XML: Como assim XSD?

Introdução

No primeiro artigo foi iniciada a apresentação da XML, enquanto o segundo artigo mostrou o que é um documento XML válido e como é possível validar-lo. Neste artigo você verá como criar um XML Schema (Esquema XML), mas como foi dito no segundo artigo, e não deve ser esquecido, um XML Schema também é um documento XML.

Relembrar é viver

Como mostrado no segundo artigo, o XML Schema por si só é um documento XML, logo, todas as regras aplicadas a um documento XML também devem ser aplicadas ao XML Schema. A grande diferença é que o XML Schema descreve a estrutura de documento XML, além de ser uma alternativa aos DTD (Document Type Definition – Definição de Tipos de Documento). O XML Schema é uma linguagem que também pode ser designada como XSD (XML Schema Definition – Definição de Esquema XML).

tigre_pensando

Já no primeiro artigo foi dito que um documento XML é usada para representar dados e não descrever aparência, como é feito pela HTML, sendo a XML o resultado de estudos do W3C (World Wide Web Consortium – Consórcio da Rede Mundial de Computadores).

Elemento da XML

Um elemento simples pode ser definido como um elemento XML que suporta apenas valores, enquanto um elemento complexo são divididos em 4 (quatro) categorias:

  1. Elementos vazios.
  2. Elementos que só contêm outros elementos.
  3. Elementos que só contêm valores.
  4. Elementos que contêm outros elementos e valores.

Obs.: No decorre do artigo a criação do arquivo XSD será baseado no namespace “http://www.w3.org/2001/XMLSchema”, para maiores esclarecimentos leia o segundo artigo desta série.

A partir deste ponto o artigo será divido em exemplos explicados para facilitar a sua compreensão, seguindo a filosofia do nosso blog “Retirando dúvida de forma clara, objetiva e sem dá voltas“.

O primeiro exemplo

Nesse exemplo será criado um documento para armazenar o nome e idade de uma pessoa.

Explicando o documento

O documento informa que o arquivo terá um elemento raiz chamado pessoa, esse elemento raiz é do tipo complexo contendo dois elemento simples (nome e idade). O elemento nome tem o valor Tadeu já o elemento idade contém o valor 42. Este documento pode ser validado pelo esquema abaixo:

 Explicando o esquema

O XSD declara que o documento para ser válido deve ter um elemento complexo chamado pessoa, esse elemento complexo deve ter os elementos simples nome e idade, onde nome é do tipo xsd:stringidade do tipo xsd:integer.

Elemento: Omissão de Valor vs. Valor Fixo

Um elemento pode ter um valor omitido (default) ou fixo (fixed).

Explicando o esquema

O esquema informa que o elemento cor_1 é do tipo xsd:string e se nada for especificado receberá o valor vermelho. O elemento cor_2 também é do tipo xsd:string e o seu valor vermelho não pode ser mudado.

Elemento: Definindo atributo

Um elemento pode ter nenhum, um ou vários atributos definidos.

Explicando o documento

Esse documento já foi quase todo explicado, sendo acrescentado apenas o elemento apelido, que tem o atributo idioma com o valor pt-br.

Explicando o esquema

O esquema define que o elemento apelido é do tipo simples, só aceita valores xsd:string e tem o atributo idioma que também só aceita valores xsd:string.

Atributo: Omissão de Valor vs. Valor Fixo

Assim como os elementos, os atributos podem ter um valor omitido (default) ou fixo (fixed).

Explicando o esquema

O atributo idioma_1 tem o valor fixo em pt-br, por sua vez, o atributo idioma_2 tem en como valor caso nada seja especificado.

Atributo: Opcional vs. Requerido

Um atributo pode ser opcional ou requerido (exigido, obrigatório).

Explicando o esquema

O atributo idioma_1 foi definido como uso obrigatório, já o atributo idioma_2 foi definido como uso opcional.

Faixa de valores

É possível especificar as faixas de valores que um elemento ou atributo pode receber.

Explicando o esquema

O elemento idade pode ter valores do tipo xsd:integer compreendidos entre 20 (vinte) e 70 (setenta), incluído os mesmos.

Comprimento do valor

O tamanho mínimo e máximo de um valor (em caractere alfanumérico) pode ser determinado no esquema.

Explicando o esquema

O elemento password é do tipo xsd:string e deve ter no mínimo 5 (cinco) e no máximo 10 (dez) caracteres.

Padronizando valores

Os valores a serem incluídos podem ser restringidos por uma padronização definida no esquema.

Explicando o esquema

O elemento letra é do tipo xsd:string e permite uma e somente uma única letra minúscula entre a e z, inclusive. O elemento telefone é do tipo xsd:string, devendo deve iniciar com os caracteres 3511, seguido por um traço, seguido por 4(quatro) dígitos entre 0 (zero) e 9 (nove), inclusive.

O elemento palavra é do tipo xsd:string, esse elemento aceita 0 (zero) ou mais ocorrências de letras minúscula entre a e z, inclusive. Por fim, o elemento sexo também é do tipo xsd:string e só aceita como valor a letra m ou f.

Conclusão

Neste artigo foram dados exemplos que podem ser estudados e incluídos na criação de um XML Schema, o próximo artigo continuará apresentando novos exemplos, mostrando como é possível criar um arquivo XSD robusto e de forma simples.

Se você ainda não leu o primeiro e o segundo artigo desta série, leia agora, pois eles são a base para esse artigo e para o próximo.

Até o próximo artigo.

Assuntos relacionados:

XML: Solução para interoperabilidade?

XML: O documento é válido?

XML: Mais sobre XSD

Possui mestrado em Computação Aplicada pela Universidade Estadual do Ceará (2010), especialização em Engenharia de Software pela Faculdade de Juazeiro do Norte (2010), graduação em Automática pelo Centro Federal de Educação Tecnológica do Ceará (2005). Tem experiência na área de Ciência da Computação , com ênfase em Sistemas de Computação, atuando principalmente nos seguintes temas: Desenvolvimento dos programas de computador IndSist, Store, Teacher entre outros. Desenvolvimento dos programas Mobile-Android Agenda Iterativa e Guia Cariris.Disciplinas que ministra ou ministrou no ensino superior: Linguagem de Programação, Paradigma de Programação, Estrutura de Dados, Engenharia de Software, Banco de Dados. Currículo Lattes