DTD - Elementos


Advertisements

Os elementos de XML podem ser definidos como blocos de apartamentos de um original de XML. Os elementos podem comportar-se enquanto um recipiente para guardar o texto, elementos, atributos, o meio objeta ou mistura de tudo.

Um elemento do DTD é declarado com uma declaração de ELEMENTO. Quando um arquivo de XML é validado pelo DTD, o parser verifica inicialmente para ver se há o elemento da raiz e os elementos da criança são validados então.

Sintaxe

Todas as declarações de elemento do DTD têm este formulário geral:

&lt!ELEMENT elementname (content)>
  • ELEMENT a declaração é usada para indicar o parser que você está a ponto de definir um elemento.

  • elementname é o nome de elemento (igualmente chamado identificador genérico) que você está definindo.

  • índice define que índice (eventualmente) pode ir dentro do elemento.

Tipos satisfeitos do elemento

O índice da declaração de elementos em um DTD pode ser categorizado como abaixo:

  • Índice vazio

  • Índice do elemento

  • Índice misturado

  • Algum índice

Índice vazio

Este é um exemplo especial da declaração de elemento. Esta declaração de elemento não contém nenhum índice. Estes são declarados com a palavra-chave EMPTY.

Sintaxe

Seguir é a sintaxe para a declaração de elemento vazia:

<!ELEMENT elementname EMPTY >

Na sintaxe acima:

  • ELEMENTO é a declaração de elemento da categoria EMPTY

  • elementname é o nome do elemento vazio.

Exemplo

Seguir é um exemplo simples que demonstra a declaração de elemento vazia:

<?xml version="1.0"?>
<!DOCTYPE hr[
   <!ELEMENT address EMPTY>    
]>
<address />

Neste exemplo endereço é declarado como um elemento vazio. The markup for endereço o elemento apareceria como <address />.

Índice do elemento

Na declaração de elemento com índice do elemento, o índice seria elementos permissíveis dentro dos parênteses. Nós podemos igualmente incluir mais de um elemento.

Sintaxe

Seguir é uma sintaxe da declaração de elemento com índice do elemento:

<!ELEMENT elementname (child1, child2...)>
  • ELEMENTO é a etiqueta da declaração de elemento

  • elementname é o nome do elemento.

  • criança1, criança2.. são os elementos e cada elemento deve ter sua própria definição dentro do DTD.

Exemplo

O exemplo abaixo demonstra um exemplo simples para a declaração de elemento com índice do elemento:

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE address [
   <!ELEMENT address (name,company,phone)>
   <!ELEMENT name (#PCDATA)>
   <!ELEMENT company (#PCDATA)>
   <!ELEMENT phone (#PCDATA)>
]>
<address>
   <name>Tanmay Patil</name>
   <company>Howcodex</company>
   <phone>(011) 123-4567</phone>
</address>

No exemplo acima, endereço é o elemento de pai e nome, Empresa e phone_no são seus elementos da criança.

Lista de operadores e de regras da sintaxe

A tabela abaixo mostra a lista de operadores e de regras da sintaxe qual pode ser aplicado em definir elementos da criança:

Operador Sintaxe Descrição Exemplo
+ <!ELEMENT element-name (child1+)> Indica que o elemento da criança pode ocorrer umas ou várias vezes dentro do elemento de pai. <!ELEMENT address (name+)>

Elemento da criança nome pode ocorrer umas ou várias vezes dentro do nome de elemento endereço.

* <!ELEMENT element-name (child1*)> Indica que o elemento da criança pode ocorrer zero ou mais vezes dentro do elemento de pai. <!ELEMENT address (name*)>

Elemento da criança nome pode ocorrer zero ou mais vezes dentro do nome de elemento endereço.

? <!ELEMENT element-name (child1?)> Indica que o elemento da criança pode ocorrer zero ou umas vezes dentro do elemento de pai. <!ELEMENT address (name?)>

Elemento da criança nome pode ocorrer zero ou umas vezes dentro do nome de elemento endereço.

, <!ELEMENT element-name (child1, child2)> Dá a sequência dos elementos da criança separados pela vírgula que deve ser incluída o no elemento-nome. <!ELEMENT address (name, company)>

Sequência de elementos da criança nome, Empresa, qual deve ocorrer na mesma ordem dentro do nome de elemento endereço.

| <!ELEMENT element-name (child1 | child2)> Reserva fazer escolhas no elemento da criança. <!ELEMENT address (name | company)>

Permite que você escolha o um ou outro de elementos da criança i.e. nome or Empresa, qual deve ocorrer dentro dentro do nome de elemento endereço.

Regras

Nós precisamos de seguir determinadas regras se há mais de um índice do elemento:

  • Sequências - Frequentemente os elementos dentro dos originais do DTD devem aparecer em uma ordem distinta. Se este é o caso, você define o índice usando uma sequência. Por exemplo:

    <!ELEMENT address (name,company,phone)>
    

    A declaração indica que <endereço> o elemento deve ter exatamente três crianças - <nome>, <Empresa>, e <telefone> - e isso devem aparecer nesta ordem.

  • Escolhas: Supõe o para precisar de reservar um elemento ou outro, mas não ambos. Nesses casos você deve usar a tubulação (|) caráter. As funções da tubulação como um exclusive OU. Por exemplo:

    <!ELEMENT address (mobile | landline)>
    

Índice misturado do elemento

Esta é a combinação de (#PCDATA) e elementos das crianças. PCDATA representa dados de caráter analisados gramaticalmente, isto é, o texto que não é margem de benefício. Dentro dos modelos satisfeitos misturados, o texto pode publicar-se por si só ou pode ser intercalado entre elementos. As regras para modelos satisfeitos misturados são similares ao índice do elemento como discutido na seção precedente.

Sintaxe

Seguir é uma sintaxe genérica para índice misturado do elemento:

<!ELEMENT elementname (#PCDATA|child1|child2)*>
  • ELEMENTO é a etiqueta da declaração de elemento.

  • nome de elemento é o nome do elemento.

  • PCDATA é o texto que não é margem de benefício. #PCDATA deve vir primeiramente na declaração satisfeita misturada.

  • criança1, criança2.. são os elementos e cada elemento deve ter sua própria definição dentro do DTD.

  • O operador (*) deve seguir o índice misturado declaração se os elementos das crianças são incluídos

  • O (#PCDATA) as declarações de elemento das crianças devem ser separadas pelo (|) operador.

Exemplo

Seguir é um exemplo simples que demonstra a declaração de elemento satisfeita misturada em um DTD.

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE address [
   <!ELEMENT address (#PCDATA|name)*>
   <!ELEMENT name (#PCDATA)>
]>
<address>
   Here's a bit of text mixed up with the child element.
   <name>Tanmay Patil</name>
</address>

ALGUM índice do elemento

Você pode declarar um elemento usando TODA A palavra-chave no índice. É referido o mais frequentemente como elemento misturado da categoria. ALGUM é útil quando você tem para decidir ainda os índices permissíveis do elemento.

Sintaxe

Seguir é a sintaxe para declarar elementos com TODO O índice:

<!ELEMENT elementname ANY>

Aqui, TODA A palavra-chave indica esse texto (PCDATA) e/ou todos os elementos declarados dentro do DTD podem ser usados dentro do índice do <nome de elemento> elemento. Podem ser usados em toda a ordem qualquer número de épocas. Contudo, ALGUM palavra-chave não permite que você inclua os elementos que não são declarados dentro do descolamento.

Exemplo

Seguir é um exemplo simples que demonstra a declaração de elemento com TODO O índice:

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE address [
   <!ELEMENT address ANY>
]>
<address>
  Here's a bit of sample text
</address>
Advertisements