Neste seus órgãos sociais o nós discutiremos sobre atributos do DTD. O atributo dá mais informação"sobre um elemento ou mais precisamente definir uma propriedade de um elemento. Um atributo de XML é sempre sob a forma de um par do nome de valentes. Um elemento pode ter todo o número de atributos originais.
Atributo declaração é muito semelhante ao elemento declarações de muitas maneiras à excepção de um, em vez de declarar admissível conteúdo para os elementos, você declarar uma lista de atributos permitidos para cada elemento. Estas listas são chamados ATTLIST declaração.
Sintaxe básica de DTD atributos declaração é a seguinte:
<!ATTLIST element-name attribute-name attribute-type attribute-value>
A sintaxe acima
O DTD atributos iniciar com <!ATTLIST palavra-chave se o elemento contém o atributo.
Elemento-name especifica o nome do elemento ao qual o atributo se aplica.
Atributo name especifica o nome do atributo que está incluído com o elemento de nome.
Atributo type define o tipo de atributos. Vamos discutir mais sobre isso nas seções a seguir.
Atributo-valor tem um valor fixo que os atributos devem definir. Vamos discutir mais sobre isso nas seções a seguir.
Abaixo está um exemplo simples para o atributo declaração DTD:
<?xml version = "1.0"?> <!DOCTYPE address [ <!ELEMENT address ( name )> <!ELEMENT name ( #PCDATA )> <!ATTLIST name id CDATA #REQUIRED> ]> <address> <name id="123">Tanmay Patil</name> </address>
Vamo-nos através do código acima:
Começar com a declaração em XML com a seguinte declaração:
<?xml version = "1.0"?>
Imediatamente a seguir ao cabeçalho XML é o tipo do documento declaração, comumente referido como o DOCTYPE:
<!DOCTYPE address [
O DOCTYPE informa ao parser que um DTD é associado a este documento XML. O DOCTYPE declaração tem um ponto de exclamação (!) no início do nome do elemento.
Segue-se o corpo da DTD. Aqui temos declarado elemento e atributo.
<!ELEMENT address ( name )> <!ELEMENT name ( #PCDATA )>
Atributo id para o elemento nome é definido como:
<!ATTLIST name id CDATA #REQUIRED>
Aqui é tipo de atributo CDATA e seu valor é#NECESSÁRIO.
Todos os atributos usados em um documento XML deve ser declarado no Document Type Definition (DTD) usando uma declaração Attribute-List
Os atributos só podem aparecer no início ou vazio tags.
A palavra-chave ATTLIST devem ser em maiúsculas
Nomes de atributos duplicados não serão permitidas dentro da lista de atributos de um determinado elemento.
Ao declarar que os atributos, você pode especificar o modo como o processador deve lidar com os dados que aparecem no valor. Podemos categorizar tipos de atributos em três categorias principais:
Tipo String
Permitem tipos
Tipos enumerados
Tabela a seguir apresenta um resumo dos diferentes tipos de atributos:
Tipo | Descrição |
---|---|
CDATA | CDATA é dados de caracteres (texto e não markup language). Trata-se de um atributo de cadeia. |
ID | É um identificador único do atributo. Ela não deve aparecer mais de uma vez. Trata-se de um tipo de atributo permitem. |
IDREF | Ele é usado para referenciar um ID de um outro elemento. Ele é usado para estabelecer conexões entre os elementos. Trata-se de um tipo de atributo permitem. |
IDREFS | Ele é usado para referenciar vários ID's. Trata-se de um tipo de atributo permitem. |
ENTIDADE | Ela representa uma entidade externa no documento. Trata-se de um tipo de atributo permitem. |
ENTIDADES | Ela representa uma lista de entidades externas no documento. Trata-se de um tipo de atributo permitem. |
NMTOKEN | É semelhante ao CDATA e o valor do atributo consiste de um XML válido. Trata-se de um tipo de atributo permitem. |
NMTOKENS | É semelhante ao CDATA e o valor do atributo é composto por uma lista de nomes XML válido. Trata-se de um tipo de atributo permitem. |
NOTATION | Um elemento será referenciado para uma anotação declarado no DTD documento. Trata-se de um atributo tipo enumerado. |
Enumeração | Ela permite definir uma lista específica de valores onde um dos valores deve corresponder. Trata-se de um atributo tipo enumerado. |
Dentro de cada atributo declaração, você deve especificar a forma como o valor será exibido no documento. Você pode especificar se um atributo:
Pode ter um valor padrão
Pode ter um valor fixo
É necessário
Está implícito
Ele contém o valor padrão. Os valores podem ser incluídas em aspas simples (') ou aspas duplas (")
SintaxeSintaxe é a seguinte de valor:
< !ATTLIST elemento e atributo de nome do atributo name e digite "default-valor">
Onde default-valor é o valor do atributo definido.
ExemploÉ um exemplo simples do atributo declaração com valor padrão:
<?xml version = "1.0"?> <!DOCTYPE address [ <!ELEMENT address ( name )> <!ELEMENT name ( #PCDATA )> <!ATTLIST name id CDATA "0"> ]> <address> <name id="123"> Tanmay Patil </name> </address>
A este exemplo temos elemento de nome com o atributo id cujo valor padrão é 0. O valor padrão é sido alojados dentro do entre aspas.
#FIXO de palavra-chave seguido do valor fixo é utilizado quando você deseja especificar que o valor do atributo é constante e não pode ser alterado. Uma utilização comum de atributos fixos é especificar os números de versão.
SintaxeSintaxe é a seguinte de valores fixos:
<!ATTLIST element-name attribute-name attribute-type #FIXED "value" >
Onde #fixo é um atributo valor definido.
ExemploÉ um exemplo simples do atributo declaração com valor fixo.
<?xml version="1.0"?> <!DOCTYPE address [ <!ELEMENT address (company)*> <!ELEMENT company (#PCDATA)> <!ATTLIST company name NMTOKEN #FIXED "howcodex"> ]> <address> <company name="howcodex">we are a free online teaching faculty</company> </address>
Neste exemplo, temos utilizado a palavra-chave #FIXADO em que indica que o valor "howcodex" é o único valor para o atributo name do elemento <empresa>. Se tentarmos mudar o atributo valor, então ele dá uma mensagem de erro.
Segue-se um inválido DTD:
<?xml version="1.0"?> <!DOCTYPE address [ <!ELEMENT address (company)*> <!ELEMENT company (#PCDATA)> <!ATTLIST company name NMTOKEN #FIXED "howcodex"> ]> <address> <company name="abc">we are a free online teaching faculty</company> </address>
Sempre que você quiser especificar que um atributo é necessário, use #NECESSÁRIA palavra-chave.
SintaxeSintaxe é a seguinte de #NECESSÁRIO:
<!ATTLIST element-name attribute-name attribute-type #REQUIRED>
Onde #exigido é um tipo de atributo definido.
ExemploSegue-se um exemplo simples de DTD atributo declaração com #OBRIGATÓRIO palavra-chave:
<?xml version = "1.0"?> <!DOCTYPE address [ <!ELEMENT address ( name )> <!ELEMENT name ( #PCDATA )> <!ATTLIST name id CDATA #REQUIRED> ]> <address> <name id="123"> Tanmay Patil </name> </address>
A este exemplo temos usado #NECESSÁRIA palavra-chave para especificar que o atributo id deve ser fornecida para o elemento de nome
Ao declarar os atributos que você sempre deve especificar uma declaração de valor. Se o atributo que você está declarando que não possui valor padrão, não tem valor fixo, e não é necessário, em seguida, você deve declarar que o atributo como implícita. Palavra-chave #IMPLÍCITA é usado para especificar um atributo como implícita.
SintaxeSintaxe é a seguinte de #IMPLÍCITA:
<!ATTLIST element-name attribute-name attribute-type #IMPLIED>
Onde #IMPLÍCITA é um tipo de atributo definido.
ExemploSegue-se um exemplo simples de #IMPLÍCITA
<?xml version = "1.0"?> <!DOCTYPE address [ <!ELEMENT address ( name )> <!ELEMENT name ( #PCDATA )> <!ATTLIST name id CDATA #IMPLIED> ]> <address> <name /> </address>
Neste exemplo, temos utilizado a palavra-chave #IMPLÍCITA que não queremos especificar quaisquer atributos para ser incluído no nome do elemento. Ela é opcional.