Atributo do XSD

Todos os atributos são declarados como tipos simples.

O que é um atributo?

Elementos simples não podem ter atributos. Se um elemento tiver atributos, ele será tratado como um tipo composto. No entanto, os atributos sempre são declarados como tipos simples.

Como declarar um atributo?

A sintaxe para definir um atributo é:

<xs:attribute name="xxx" type="yyy"/>

Aqui, xxx representa o nome do atributo, e yyy especifica o tipo de dados do atributo. O XML Schema possui muitos tipos de dados internos.

Os tipos mais comuns são:

  • xs:string
  • xs:decimal
  • xs:integer
  • xs:boolean
  • xs:date
  • xs:time

Exemplo

Este é um elemento XML com atributo:

<lastname lang="EN">Smith</lastname>

Esta é a definição correspondente do atributo:

<xs:attribute name="lang" type="xs:string"/>

Valor padrão e fixo do atributo

Os atributos podem ter um valor padrão ou fixo especificado.

Quando nenhum outro valor for especificado, o valor padrão será automaticamente atribuído ao elemento.

No exemplo a seguir, o valor padrão é "EN":

<xs:attribute name="lang" type="xs:string" default="EN"/>

O valor fixo também será automaticamente atribuído ao elemento, e você não pode especificar outro valor.

No exemplo a seguir, o valor fixo é "EN":

<xs:attribute name="lang" type="xs:string" fixed="EN"/>

Atributos opcionais e obrigatórios

Por padrão, os atributos são opcionais. Para especificar que um atributo é obrigatório, use o atributo "use":

<xs:attribute name="lang" type="xs:string" use="required"/>

Restrição de conteúdo

Quando um elemento XML ou atributo possui um tipo de dados definido, restrições são adicionadas ao conteúdo do elemento ou atributo.

Se o tipo do elemento XML for "xs:date" e o conteúdo contido for uma string semelhante a "Hello World", o elemento não será (validado).

Através do XML schema, você também pode adicionar suas próprias restrições aos seus elementos e atributos XML. Essas restrições são chamadas de facet (notação do editor: significa face de poliedro, pode ser traduzida como face de restrição). Você aprenderá mais sobre facet na próxima seção.