tutoriais mais recente desenvolvimento web
 

DTD - Atributos


Em uma DTD, atributos são declarados com uma declaração ATTLIST.


declarando Atributos

Uma declaração de atributo tem a seguinte sintaxe:

<!ATTLIST element-name attribute-name attribute-type attribute-value>

DTD example:

<!ATTLIST payment type CDATA "check">

XML example:

<payment type="check" />

O attribute-type pode ser um dos seguintes:

Digitar Descrição
CDATA O valor é dados de caracteres
( en1 | en2 |..) O valor deve ser um de uma lista enumerada
ID O valor é uma identificação única
IDREF O valor é o ID de um outro elemento
IDREFS O valor é uma lista de outros ids
NMTOKEN O valor é um nome XML válido
NMTOKENS O valor é uma lista de nomes XML válidos
ENTITY O valor é uma entidade
ENTITIES O valor é uma lista de entidades
NOTATION O valor é um nome de uma notação
xml: O valor é um valor pré-definido xml

O attribute-value pode ser um dos seguintes:

Valor Explicação
value O valor padrão do atributo
#REQUIRED O atributo é obrigatório
#IMPLIED O atributo é opcional
#FIXED value O valor do atributo é fixa

Um valor de atributo padrão

DTD:
<!ELEMENT square EMPTY>
<!ATTLIST square width CDATA "0">

Valid XML:
<square width="100" />

No exemplo acima, o "square" elemento é definido como sendo um elemento vazio com uma "width" atributo do tipo CDATA. Se não houver largura for especificado, ele tem um valor padrão de 0.


#REQUERIDOS

Sintaxe

<!ATTLIST element-name attribute-name attribute-type #REQUIRED>

Exemplo

DTD:
<!ATTLIST person number CDATA #REQUIRED>

Valid XML:
<person number="5677" />

Invalid XML:
<person />

Utilizar a palavra-chave #REQUIRED se você não tem uma opção para um valor padrão, mas ainda querem forçar o atributo de estar presente.


#IMPLÍCITA

Sintaxe

<!ATTLIST element-name attribute-name attribute-type #IMPLIED>

Exemplo

DTD:
<!ATTLIST contact fax CDATA #IMPLIED>

Valid XML:
<contact fax="555-667788" />

Valid XML:
<contact />

Utilizar a palavra-chave #IMPLIED se você não quer forçar o autor para incluir um atributo, e você não tem uma opção para um valor padrão.


#FIXO

Sintaxe

<!ATTLIST element-name attribute-name attribute-type #FIXED "value">

Exemplo

DTD:
<!ATTLIST sender company CDATA #FIXED "Microsoft">

Valid XML:
<sender company="Microsoft" />

Invalid XML:
<sender company="w3ii" />

Utilizar a palavra-chave #FIXED quando você quer um atributo para ter um valor fixo, sem permitir que o autor a alterá-lo. Se um autor inclui um outro valor, o analisador XML retornará um erro.


Valores de Atributo enumeradas

Sintaxe

<!ATTLIST element-name attribute-name (en1|en2|..) default-value>

Exemplo

DTD:
<!ATTLIST payment type (check|cash) "cash">

XML example:
<payment type="check" />
or
<payment type="cash" />

Use valores de atributos enumerados quando quiser que o valor do atributo para ser um de um conjunto fixo de valores legais.