DTD - Elemento

In a DTD, elements are declared using element declarations.

Declare an element

In DTDs, XML elements are declared using element declarations. Element declarations use the following syntax:

!ELEMENT element-name category

ou

!ELEMENT element-name (element-content)

Empty elements

Empty elements are declared with the category keyword EMPTY:

!ELEMENT element-name EMPTY

Exemplo:

!ELEMENT br EMPTY

XML example:

<br />

Elements that only contain PCDATA

Elements that only contain PCDATA are declared with #PCDATA inside parentheses:

!ELEMENT element-name (#PCDATA)

Exemplo:

!ELEMENT from (#PCDATA)

Elements with any content

Elements declared with the category keyword ANY can contain any combination of parseable data:

!ELEMENT element-name ANY

Exemplo:

!ELEMENT note ANY

Os elementos que contêm elementos filhos (sequência)

Os elementos que contêm um ou mais elementos filhos são declarados pelo nome dos elementos filhos entre parênteses:

<!ELEMENT 元素名称 (子元素名称 1)>

ou

<!ELEMENT 元素名称 (子元素名称 1,子元素名称 2,...)>

Exemplo:

<!ELEMENT note (to,from,heading,body)>

Quando os elementos filhos são declarados em uma sequência separada por vírgulas, esses elementos devem aparecer na mesma ordem no documento. Em uma declaração completa, os elementos filhos também devem ser declarados, e os elementos filhos podem ter seus próprios elementos filhos. A declaração completa do elemento "note" é:

<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to      (#PCDATA)>
<!ELEMENT from    (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body    (#PCDATA)>

Declarar elementos que aparecem apenas uma vez

<!ELEMENT 元素名称 (子元素名称)>

Exemplo:

<!ELEMENT note (message)>

O exemplo acima declara que o elemento filho "message" deve aparecer uma vez e apenas dentro do elemento "note".

Declarar elementos que devem aparecer pelo menos uma vez

<!ELEMENT 元素名称 (子元素名称+)>

Exemplo:

<!ELEMENT note (message+)>

O sinal de mais no exemplo acima declara que o elemento filho "message" deve aparecer pelo menos uma vez dentro do elemento "note".

Declarar elementos que podem aparecer zero ou várias vezes

<!ELEMENT 元素名称 (子元素名称*)>

Exemplo:

<!ELEMENT note (message*)>

O asterisco no exemplo acima declara que o elemento filho "message" pode aparecer zero ou várias vezes dentro do elemento "note".

Declarar elementos que podem aparecer zero ou uma vez

<!ELEMENT 元素名称 (子元素名称?)>

Exemplo:

<!ELEMENT note (message?)>

O ponto de interrogação no exemplo acima declara que o elemento filho "message" pode aparecer zero ou uma vez dentro do elemento "note".

Declarar conteúdo do tipo "não.../ou..."

Exemplo:

<!ELEMENT note (to,from,header,(message|body))>

O exemplo acima declara que o elemento "note" deve conter os elementos "to", "from", "header" e não os elementos "message" e "body".

Declaração de conteúdo misto

Exemplo:

<!ELEMENT note (#PCDATA|to|from|header|message)*>

O exemplo acima declara que o elemento "note" pode conter PCDATA que pode aparecer zero ou mais vezes, "to", "from", "header" ou "message".