tutoriais mais recente desenvolvimento web
 

Atributos XSD


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.