Todos os atributos são declarados como tipos simples.
O que é um atributo?
Elementos simples não podem ter atributos. Se um elemento tem atributos, ele é considerado para ser de um tipo complexo. Mas o próprio atributo sempre é declarado como um tipo simples.
Como definir um atributo?
A sintaxe para definir um atributo é:
<xs:attribute name="xxx" type="yyy"/>
onde xxx é o nome do atributo e yyy especifica o tipo de dados do atributo.
Schema XML tem um monte de tipos de dados embutidos. Os tipos mais comuns são:
- xs: string
- xs: decimal
- xs: integer
- xs: boolean
- xs: date
- xs: tempo
Exemplo
Aqui é um elemento XML com um atributo:
<lastname lang="EN">Smith</lastname>
E aqui está o corresponding definição de atributo:
<xs:attribute name="lang" type="xs:string"/>
Padrão e valores fixos para atributos
Os atributos podem ter um valor padrão ou um valor fixo especificado.
Um valor padrão é automaticamente atribuído ao atributo quando nenhum outro valor for especificado.
No exemplo a seguir o valor padrão é "EN" :
<xs:attribute name="lang" type="xs:string" default="EN"/>
Um valor fixo também é atribuído automaticamente ao atributo, e você não pode especificar um outro valor.
No exemplo seguinte, o valor fixo é "EN" :
<xs:attribute name="lang" type="xs:string" fixed="EN"/>
Atributos opcionais e obrigatórios
Atributos são opcionais por padrão. Para especificar que o atributo é necessário, use a "use" atributo:
<xs:attribute name="lang" type="xs:string" use="required"/>
Restrições sobre o conteúdo
Quando um elemento XML ou atributo tem um tipo de dados definido, ele coloca restrições sobre o conteúdo do elemento ou atributo.
Se um elemento XML é do tipo "xs:date" e contém uma string como "Hello World" , o elemento não será validado.
Com esquemas XML, você também pode adicionar suas próprias restrições a seus elementos e atributos XML. Estas restrições são chamados facetas. Você pode ler mais sobre as facetas no próximo capítulo.