21 Definición do tipo de documento

<!--
Isto é a DTD Estrita de HTML, que exlui os atributos e elementos
de apresentación que W3C espera se vaian deixando atrás conforme
madura a aceitación das follas de estilo. Os autores deberian usar a DTD
Estrita sempre que for posíbel, mais poden usar a DTD Transicional cando
requiran a aceitación de atributos e elementos de apresentación.

A HTML 4 inclui mecanismos para follas de estilo, scripts,
obxectos embebidos, aceitación mellorada de texto de direita a esquerda
e dirección do texto mesturada e melloras nos formulários para
a acesibilidade para persoas con discapacidades.

Borrador: $Data: 1999/12/24 22:40:35 $

Autores:
Dave Raggett <dsr@w3.org>
Arnaud Le Hors <lehors@w3.org>
Ian Jacobs <ij@w3.org>

Hai máis información sobre a HTML 4.01 disponíbel en inglés en:

http://www.w3.org/TR/1999/REC-html401-19991224 A especificación da HTML 4.01 inclui restricións sintácticas adicionais que non se poden expresar dentro das DTD. --> <!-- Uso típico: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> ... </head> <body> ... </body> </html> O URI usado como identificador do sistema co identificador público permite que o axente de usuário traia os conxuntos de DTD e entidades segundo os necesitar. O FPI para a DTD de HTML 4.01 Transicional é: "-//W3C//DTD HTML 4.01 Transitional//EN" Esta versión da DTD transicional é: http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd Se estiver a a escreber un documento que inclua molduras, o FPI seguinte: "-//W3C//DTD HTML 4.01 Frameset//EN" Esta versión da DTD de grupos de molduras é: http://www.w3.org/TR/1999/REC-html401-19991224/frameset.dtd Use os seguintes URI (relativos) para se referir às definicións de DTD e entidades desta especificación: "strict.dtd"
"loose.dtd"
"frameset.dtd"
"HTMLlat1.ent"
"HTMLsymbol.ent"
"HTMLspecial.ent"

-->

<!--================== Nomes importados ====================================-->
<!-- Cámbio de rasgos para os documentos de grupo de molduras -->
<!ENTITY % HTML.Frameset "IGNORE">

<!ENTITY % ContentType "CDATA"
-- tipo de médio,como se indica en [RFC2045] --> <!ENTITY % ContentTypes "CDATA"
-- lista separada por vírgulas de tipos de médios, como se indica en [RFC2045] --> <!ENTITY % Charset "CDATA"
-- unha codificación de caracteres, como se indica en [RFC2045] --> <!ENTITY % Charsets "CDATA"
-- unha lista separada por espazos de codificacións de caracteres, como se indica en [RFC2045] --> <!ENTITY % LanguageCode "NAME"
-- un código de idioma, como se indica en [RFC1766] --> <!ENTITY % Character "CDATA"
-- un carácter único de [ISO10646]
-->

<!ENTITY % LinkTypes "CDATA"
-- Lista separada por espazos de tipos de vínculos
-->

<!ENTITY % MediaDesc "CDATA"
-- lista simples ou separada por vírgulas de descritores de médios
-->

<!ENTITY % URI "CDATA"
-- un Identificador uniforme de recursos,
ver [URI] --> <!ENTITY % Datetime "CDATA" -- información de data e hora. formato de data ISO -->


<!ENTITY % Script "CDATA" -- expresión de script -->

<!ENTITY % StyleSheet "CDATA" -- dados de folla de estilo -->



<!ENTITY % Text "CDATA">


<!-- Entidades paramétricas -->

<!ENTITY % head.misc "SCRIPT|STYLE|META|LINK|OBJECT" -- elementos do cabezallo repetíbeis -->

<!ENTITY % heading "H1|H2|H3|H4|H5|H6">

<!ENTITY % list "UL | OL">

<!ENTITY % preformatted "PRE">


<!--================ Entidades mnemotécnicas de caracteres =========================-->

<!ENTITY % HTMLlat1 PUBLIC
"-//W3C//ENTITIES Latin1//EN//HTML"
"HTMLlat1.ent">
%HTMLlat1; <!ENTITY % HTMLsymbol PUBLIC
"-//W3C//ENTITIES Symbols//EN//HTML"
"HTMLsymbol.ent">
%HTMLsymbol; <!ENTITY % HTMLspecial PUBLIC
"-//W3C//ENTITIES Special//EN//HTML"
"HTMLspecial.ent">
%HTMLspecial; <!--=================== Atributos xenéricos ===============================--> <!ENTITY % coreattrs "id ID #IMPLIED -- identificador único para todo o documento --
class CDATA #IMPLIED -- lista de clases separada por espazos --
style %StyleSheet; #IMPLIED -- información de estilo asociado --
title %Text; #IMPLIED -- título consultivo --"
>

<!ENTITY % i18n "lang %LanguageCode; #IMPLIED -- código de idioma --
dir (ltr|rtl) #IMPLIED -- dirección do texto débil ou neutro --"
>

<!ENTITY % eventos "onclick %Script; #IMPLIED -- fixo-se clic sobre un botón do ponteiro --
ondblclick %Script; #IMPLIED -- fixo-se dobre clic sobre un botón do ponteiro --
onmousedown %Script; #IMPLIED -- premeu-se un botón do ponteiro --
onmouseup %Script; #IMPLIED -- soltou-se un botón do ponteiro --
onmouseover %Script; #IMPLIED -- moveu-se un ponteiro --
onmousemove %Script; #IMPLIED -- moveu-se un ponteiro para o interior --
onmouseout %Script; #IMPLIED -- moveu-se para fora un ponteiro --
onkeypress %Script; #IMPLIED -- premeu-se unha tecla e soltou-se --
onkeydown %Script; #IMPLIED -- premeu-se unha tecla --
onkeyup %Script; #IMPLIED -- soltou-se unha tecla --"
>

<!-- Cámbio de rasgos reservado -->
<!ENTITY % HTML.Reserved "IGNORE">

<!-- Os atributos seguintes están reservados para un posíbel uso futuro -->
<![ %HTML.Reserved; [
<!ENTITY % reserved "datasrc %URI; #IMPLIED -- unha Fonte de Dados simples ou tabular --
datafld CDATA #IMPLIED -- o nome da propriedade ou coluna --
dataformatas (plaintext|html) texto simples -- texto ou html --"
>
]]>

<!ENTITY % reserved "">

<!ENTITY % attrs "%coreattrs; %i18n; %events;">


<!--=================== Código do texto ======================================-->

<!ENTITY % fontstyle "TT | I | B | BIG | SMALL">

<!ENTITY % phrase "EM | STRONG | DFN | CODE |
SAMP | KBD | VAR | CITE | ABBR | ACRONYM" >

<!ENTITY % special "A | IMG | OBJECT | BR | SCRIPT | MAP | Q | SUB | SUP | SPAN | BDO"> <!ENTITY % formctrl "INPUT | SELECT | TEXTAREA | LABEL | BUTTON">

<!-- %inline; cobre elementos na liña ou "a nível de texto" -->
<!ENTITY % inline "#PCDATA | %fontstyle; | %phrase; | %special; | %formctrl;">

<!ELEMENT (%fontstyle;|%phrase;) - - (%inline;)*>
<!ATTLIST (%fontstyle;|%phrase;)
%attrs; -- %coreattrs, %i18n, %events --
>

<!ELEMENT (SUB|SUP) - - (%inline;)* -- subíndice, superíndice -->
<!ATTLIST (SUB|SUP)
%attrs; -- %coreattrs, %i18n, %events --
>

<!ELEMENT SPAN - - (%inline;)* -- contentor xenérico de linguaxe ou estilo -->
<!ATTLIST SPAN
%attrs; -- %coreattrs, %i18n, %events --
%reserved; -- reservado para un posíbel uso futuro --
>

<!ELEMENT BDO - - (%inline;)* -- anulación da bidireccionalidade da internacionalización (I18N BiDi)-->
<!ATTLIST BDO
%coreattrs; -- id, clase, estilo, título --
lang %LanguageCode; #IMPLIED -- código de idioma --
dir (ltr|rtl) #REQUIRED -- direccionalidade --
>


<!ELEMENT BR - O EMPTY -- salto de liña forzado -->
<!ATTLIST BR
%coreattrs; -- id, clase, estilo, título --
>

<!--================== modelos de conteúdo HTML ===============================-->

<!--
A HTML ten dous modelos de conteúdo básicos:

%inline; elementos a nível de carácter e cadeas de texto
%block; elementos ao nível do bloco, p.ex. parágrafos e listas
-->

<!ENTITY % block "P | %heading; | %list; | %preformatted; | DL | DIV | NOSCRIPT |
BLOCKQUOTE | FORM | HR | TABLE | FIELDSET | ADDRESS">

<!ENTITY % flow "%block; | %inline;">

<!--=================== Corpo do documento ====================================-->

<!ELEMENT BODY O O (%block;|SCRIPT)+ +(INS|DEL) -- corpo do documento -->
<!ATTLIST BODY
%attrs; -- %coreattrs, %i18n, %events --
onload %Script; #IMPLIED -- o documento foi carregado --
onunload %Script; #IMPLIED -- o documento foi retirado --
>

<!ELEMENT ADDRESS - - (%inline;)* -- información sobre o autor -->
<!ATTLIST ADDRESS
%attrs; -- %coreattrs, %i18n, %events --
>

<!ELEMENT DIV - - (%flow;)* -- contentor xenérico de linguaxe ou estilo -->
<!ATTLIST DIV
%attrs; -- %coreattrs, %i18n, %events --
%reserved; -- reservado para un posíbel uso futuro --
>


<!--================== O elemento áncora ================================-->

<!ENTITY % Shape "(rect|circle|poly|default)">
<!ENTITY % Coords "CDATA" -- lista de lonxitudes separada por vírgulas -->

<!ELEMENT A - - (%inline;)* -(A) -- anchor -->
<!ATTLIST A
%attrs; -- %coreattrs, %i18n, %events --
charset %Charset; #IMPLIED -- codificación de caracteres do recurso vinculado --
type %ContentType; #IMPLIED -- tipo de conteúdo consultivo --
name CDATA #IMPLIED -- final de vínculo con nome --
href %URI; #IMPLIED -- URI de recurso vinculado --
hreflang %LanguageCode; #IMPLIED -- código de idioma --
rel %LinkTypes; #IMPLIED -- tipos de vínculos directos --
rev %LinkTypes; #IMPLIED -- tipos de vínculos inversos --
accesskey %Character; #IMPLIED -- carácter da tecla de aceso --
shape %Shape; rect -- para usar con mapas de imaxes do lado do cliente --
coords %Coords; #IMPLIED -- para usar con mapas de imaxes do lado do servidor --
tabindex NUMBER #IMPLIED -- posición na orde de tabulación --
onfocus %Script; #IMPLIED -- o elemento recebeu o foco --
onblur %Script; #IMPLIED -- o elemento perdeu o foco --
>

<!--================== Mapas de imaxes do lado do cliente ============================-->

<!-- Estes poden-se colocar no mesmo documento ou agrupadas nun
documento separado, ainda que isto non se usa ainda moito -->

<!ELEMENT MAP - - ((%block;) | AREA)+ -- mapa de imaxes do lado do cliente -->
<!ATTLIST MAP
%attrs; -- %coreattrs, %i18n, %events --
name CDATA #REQUIRED -- para referéncia por usemap --
>

<!ELEMENT AREA - O EMPTY -- área de mapa de imaxes do lado do cliente -->
<!ATTLIST AREA
%attrs; -- %coreattrs, %i18n, %events --
shape %Shape; rect -- controla a interpretación das coordenadas --
coords %Coords; #IMPLIED -- lista de lonxitudes separadas por vírgulas --
href %URI; #IMPLIED -- URI de recurso vinculado --
nohref (nohref) #IMPLIED -- esta rexión non ten acción --
alt %Text; #REQUIRED -- descrición breve --
tabindex NUMBER #IMPLIED -- posición na orde de tabulación --
accesskey %Character; #IMPLIED -- carácter da tecla de acesibilidade --
onfocus %Script; #IMPLIED -- o elemento recebeu o foco --
onblur %Script; #IMPLIED -- o elemento perdeu o foco --
>

<!--================== O elemento LINK ==================================-->

<!--
Os valores de relación poden-se usar en princípio:

a) para barras de ferramentas e de menus específicas do documento cando se
usaren co elemento LINK no cabezallo do documento, p.ex.:
início, índice, anterior, seguinte, índice de matérias, fin, axuda
b) para vincular cunha folla de estilo separada (rel=stylesheet)
c) para facer un vínculo a un script (rel=script)
d) polas follas de estilo para controlar como se mostran as coleccións de
nodos html en documentos impresos
e) para facer un vínculo a unha versión imprimíbel deste documento,
p.ex., unha versión en postscript ou pdf (rel=alternate media=print)
-->

<!ELEMENT LINK - O EMPTY -- un vínculo independente do meio -->
<!ATTLIST LINK
%attrs; -- %coreattrs, %i18n, %events --
charset %Charset; #IMPLIED -- codificación de caracteres do recurso vinculado --
href %URI; #IMPLIED -- URI do recurso vinculado --
hreflang %LanguageCode; #IMPLIED -- código de idioma --
type %ContentType; #IMPLIED -- tipo de conteúdo consultivo --
rel %LinkTypes; #IMPLIED -- tipos de vínculos directos --
rev %LinkTypes; #IMPLIED -- tipos de vínculos inversos --
media %MediaDesc; #IMPLIED -- para mostrar nestes meios --
>

<!--=================== Imaxes ===========================================-->

<!-- Lonxitudes definidas en DTD estrita para recheo de cela/espaciado entre celas -->
<!ENTITY % Length "CDATA" -- nn para pontos (píxeis) ou nn% para lonxitude percentual -->
<!ENTITY % MultiLength "CDATA" -- ponto, percentaxe ou relativa -->

<![ %HTML.Frameset; [
<!ENTITY % MultiLengths "CDATA" -- lista de lonxitudes múltiplas separadas por vírgulas -->
]]>

<!ENTITY % Pixels "CDATA" -- inteiro que representa a lonxitude en pontos -->


<!-- Para evitar problemas con axentes de usuário que usen só texto, asi
como para facer o conteúdo das imaxes comprensíbel e navegável
para usuários con axentes de usuário non visuais, deberá fornecer
unha descrición con ALT e evitar mapas de imaxes do lado do servidor -->
<!ELEMENT IMG - O EMPTY -- Imaxe embebida -->
<!ATTLIST IMG
%attrs; -- %coreattrs, %i18n, %events --
src %URI; #REQUIRED -- URI da imaxe a embeber --
alt %Text; #REQUIRED -- descrición breve --
longdesc %URI; #IMPLIED -- vínculo a descrición longa
(complementa alt) --
name CDATA #IMPLIED -- nome da imaxe para scripts --
height %Length; #IMPLIED -- anular a altura --
width %Length; #IMPLIED -- anular o ancho --
usemap %URI; #IMPLIED -- usar mapa de imaxes do lado do cliente --
ismap (ismap) #IMPLIED -- usar mapa de imaxes do lado do servidor --
>

<!-- USEMAP aponta para un elemento MAP que pode estar neste documento
ou nun documento externo, ainda que o último non se usa moito -->

<!--==================== OBJECT ======================================-->
<!--
OBJECT usa-se para incrustar obxectos como parte das páxinas HTML
Os elementos PARAM deberian preceder outro conteúdo. O modelo de conteúdo mixto
da SGML tecnicalmente imposibilita que isto se especifique formalmente ...
-->

<!ELEMENT OBJECT - - (PARAM | %flow;)*
-- obxecto embebido xenérico -->
<!ATTLIST OBJECT
%attrs; -- %coreattrs, %i18n, %events --
declare (declare) #IMPLIED -- declarar unha flag mais non a crear --
classid %URI; #IMPLIED -- identifica unha implementación --
codebase %URI; #IMPLIED -- URI base para classid, data, archive--
data %URI; #IMPLIED -- referéncia aos dados dun obxecto --
type %ContentType; #IMPLIED -- tipo de conteúdo para os dados --
codetype %ContentType; #IMPLIED -- tipo de conteúdo para o código --
archive CDATA #IMPLIED -- lista de URI separados por espazos --
standby %Text; #IMPLIED -- mensaxe para mostrar mentres se está a carregar --
height %Length; #IMPLIED -- anular a altura --
width %Length; #IMPLIED -- anular o ancho --
usemap %URI; #IMPLIED -- usar mapa de imaxes do lado do cliente --
name CDATA #IMPLIED -- enviar como parte dun formulário --
tabindex NUMBER #IMPLIED -- posición na orde de tabulación --
%reserved; -- reservado para un posíbel uso futuro --
>

<!ELEMENT PARAM - O EMPTY -- valor de propriedade con nome -->
<!ATTLIST PARAM
id ID #IMPLIED -- identificador único para todo o documento --
name CDATA #REQUIRED -- nome da propriedade --
value CDATA #IMPLIED -- valor da propriedade --
valuetype (DATA|REF|OBJECT) DATA -- Como interpretar o valor --
type %ContentType; #IMPLIED -- tipo de conteúdo para o valor
cando valuetype=ref --
>


<!--=================== Liña horizontal ==================================-->

<!ELEMENT HR - O EMPTY -- Liña horizontal -->
<!ATTLIST HR
%attrs; -- %coreattrs, %i18n, %events --
>

<!--=================== Parágrafos =======================================-->

<!ELEMENT P - O (%inline;)* -- parágrafo -->
<!ATTLIST P
%attrs; -- %coreattrs, %i18n, %events --
>

<!--=================== Títulos =========================================-->

<!--
Hai seis níveis de títulos, de H1 (o máis importante)
a H6 (o menos importante).
-->

<!ELEMENT (%heading;) - - (%inline;)* -- título -->
<!ATTLIST (%heading;)
%attrs; -- %coreattrs, %i18n, %events --
>

<!--=================== Texto pré-formatado ================================-->

<!-- exclui o código para as imaxes e alteracións no tamaño da letra -->
<!ENTITY % pre.exclusion "IMG|OBJECT|BIG|SMALL|SUB|SUP">

<!ELEMENT PRE - - (%inline;)* -(%pre.exclusion;) -- texto pré-formatado -->
<!ATTLIST PRE
%attrs; -- %coreattrs, %i18n, %events --
>

<!--===================== Citacións na liña ==================================-->

<!ELEMENT Q - - (%inline;)* -- citación breve na liña -->
<!ATTLIST Q
%attrs; -- %coreattrs, %i18n, %events --
cite %URI; #IMPLIED -- URI de documento de orixe ou mensaxe --
>

<!--=================== Citacións de bloco ================================-->

<!ELEMENT BLOCKQUOTE - - (%block;|SCRIPT)+ -- citación longa -->
<!ATTLIST BLOCKQUOTE
%attrs; -- %coreattrs, %i18n, %events --
cite %URI; #IMPLIED -- URI de documento de orixe ou mensaxe --
>

<!--=================== Texto inserido/eliminado ============================-->


<!-- INS/DEL tratan-se por inclusión en BODY -->
<!ELEMENT (INS|DEL) - - (%flow;)* -- texto inserido, texto eliminado -->
<!ATTLIST (INS|DEL)
%attrs; -- %coreattrs, %i18n, %events --
cite %URI; #IMPLIED -- información sobre a razón do cámbio --
datetime %Datetime; #IMPLIED -- data e hora do cámbio --
>

<!--=================== Listas ============================================-->

<!-- listas de definicións - DT para o termo, DD para a sua definición -->

<!ELEMENT DL - - (DT|DD)+ -- lista de definicións -->
<!ATTLIST DL
%attrs; -- %coreattrs, %i18n, %events --
>

<!ELEMENT DT - O (%inline;)* -- termo da definición -->
<!ELEMENT DD - O (%flow;)* -- descrición da definición -->
<!ATTLIST (DT|DD)
%attrs; -- %coreattrs, %i18n, %events --
>


<!ELEMENT OL - - (LI)+ -- lista ordenada -->
<!ATTLIST OL
%attrs; -- %coreattrs, %i18n, %events --
>

<!-- Listas sen ordenar (UL) estilos con imaxes -->
<!ELEMENT UL - - (LI)+ -- lista sen ordenar -->
<!ATTLIST UL
%attrs; -- %coreattrs, %i18n, %events --
>



<!ELEMENT LI - O (%flow;)* -- elemento da lista -->
<!ATTLIST LI
%attrs; -- %coreattrs, %i18n, %events --
>

<!--================ Formulários ===============================================-->
<!ELEMENT FORM - - (%block;|SCRIPT)+ -(FORM) -- formulário interactivo -->
<!ATTLIST FORM
%attrs; -- %coreattrs, %i18n, %events --
action %URI; #REQUIRED -- procesador de formulários do lado do servidor --
method (GET|POST) GET -- método HTTP usado para enviar o formulário --
enctype %ContentType; "application/x-www-form-urlencoded"
accept %ContentTypes; #IMPLIED -- lista de tipos MIME para enviar ficheiros --
name CDATA #IMPLIED -- nome do formulário para os scripts --
onsubmit %Script; #IMPLIED -- enviou-se o formulário --
onreset %Script; #IMPLIED -- limpou-se o formulário --
accept-charset %Charsets; #IMPLIED -- lista de conxuntos de caracteres aceitados --
>

<!-- Cada etiqueta non debe conter máis de UN campo -->
<!ELEMENT LABEL - - (%inline;)* -(LABEL) -- texto de etiqueta de campo de formulário -->
<!ATTLIST LABEL
%attrs; -- %coreattrs, %i18n, %events --
for IDREF #IMPLIED -- equivale ao valor ID do campo --
accesskey %Character; #IMPLIED -- carácter da tecla de acesibilidade --
onfocus %Script; #IMPLIED -- o elemento recebeu o foco --
onblur %Script; #IMPLIED -- o elemento perdeu o foco --
>

<!ENTITY % InputType "(TEXT | PASSWORD | CHECKBOX | RADIO | SUBMIT | RESET | FILE | HIDDEN | IMAGE | BUTTON)" > <!-- nome de atributo requerido por todos, exceito submit e reset --> <!ELEMENT INPUT - O EMPTY -- control de formulário -->
<!ATTLIST INPUT
%attrs; -- %coreattrs, %i18n, %events --
type %InputType; TEXT -- que tipo de control se necesita --
name CDATA #IMPLIED -- enviar como parte do formulário --
value CDATA #IMPLIED -- especificar para botóns de rádio e cadros de verificación --
checked (checked) #IMPLIED -- para botóns de rádio e cadros de verificación --
disabled (disabled) #IMPLIED -- non disponíbel neste contexto --
readonly (readonly) #IMPLIED -- para texto e contrasinais --
size CDATA #IMPLIED -- específico de cada tipo de campo --
maxlength NUMBER #IMPLIED -- número máximo de caracteres para os campos de texto --
src %URI; #IMPLIED -- para campos con imaxes --
alt CDATA #IMPLIED -- descrición abreviada --
usemap %URI; #IMPLIED -- usar mapa de imaxes do lado do cliente --
ismap (ismap) #IMPLIED -- usar mapa de imaxes do lado do servidor --
tabindex NUMBER #IMPLIED -- posición na orde de tabulación --
accesskey %Character; #IMPLIED -- carácter da tecla de acesibilidade --
onfocus %Script; #IMPLIED -- o elemento recebeu o foco --
onblur %Script; #IMPLIED -- o elemento perdeu o foco --
onselect %Script; #IMPLIED -- seleccionou-se texto --
onchange %Script; #IMPLIED -- mudou o valor do elemento --
accept %ContentTypes; #IMPLIED -- lista de tipos MIME para enviar ficheiros --
%reserved; -- reservado par un posíbel uso futuro --
>

<!ELEMENT SELECT - - (OPTGROUP|OPTION)+ -- selector de opcións -->
<!ATTLIST SELECT
%attrs; -- %coreattrs, %i18n, %events --
name CDATA #IMPLIED -- nome do campo --
size NUMBER #IMPLIED -- filas visíbeis --
multiple (multiple) #IMPLIED -- por omisión é selección simples --
disabled (disabled) #IMPLIED -- non disponíbel neste contexto --
tabindex NUMBER #IMPLIED -- posición na orde de tabulación --
onfocus %Script; #IMPLIED -- o elemento recebeu o foco --
onblur %Script; #IMPLIED -- o elemento perdeu o foco --
onchange %Script; #IMPLIED -- mudou o valor do elemento --
%reserved; -- reservado para un posíbel uso futuro --
>

<!ELEMENT OPTGROUP - - (OPTION)+ -- grupo de opcións -->
<!ATTLIST OPTGROUP
%attrs; -- %coreattrs, %i18n, %events --
disabled (disabled) #IMPLIED -- non disponíbel neste contexto --
label %Text; #REQUIRED -- para o seu uso en menus hierárquicos --
>

<!ELEMENT OPTION - O (#PCDATA) -- escolla seleccionábel -->
<!ATTLIST OPTION
%attrs; -- %coreattrs, %i18n, %events --
selected (selected) #IMPLIED
disabled (disabled) #IMPLIED -- non disponíbel neste contexto --
label %Text; #IMPLIED -- para o seu uso en menus hierárquicos --
value CDATA #IMPLIED -- por omisión, o conteúdo do elemento --
>

<!ELEMENT TEXTAREA - - (#PCDATA) -- campo de texto de várias liñas -->
<!ATTLIST TEXTAREA
%attrs; -- %coreattrs, %i18n, %events --
name CDATA #IMPLIED
rows NUMBER #REQUIRED
cols NUMBER #REQUIRED
disabled (disabled) #IMPLIED -- non disponíbel neste contexto --
readonly (readonly) #IMPLIED
tabindex NUMBER #IMPLIED -- posición na orde de tabulación --
accesskey %Character; #IMPLIED -- carácter da tecla de acesibilidade --
onfocus %Script; #IMPLIED -- o elemento recebeu o foco --
onblur %Script; #IMPLIED -- o elemento perdeu o foco --
onselect %Script; #IMPLIED -- seleccionou-se texto --
onchange %Script; #IMPLIED -- mudou o valor do elemento --
%reserved; -- reservado par un posíbel uso futuro --
>

<!--
#PCDATA está para resolver o problema do conteúdo mixto,
a especificación di que aqui só se permiten espazos en branco!
-->
<!ELEMENT FIELDSET - - (#PCDATA,LEGEND,(%flow;)*) -- grupo de contróis do formulário -->
<!ATTLIST FIELDSET
%attrs; -- %coreattrs, %i18n, %events --
>

<!ELEMENT LEGEND - - (%inline;)* -- lexenda do grupo de contróis -->

<!ATTLIST LEGEND
%attrs; -- %coreattrs, %i18n, %events --
accesskey %Character; #IMPLIED -- carácter da tecla de acesibilidade --
>

<!ELEMENT BUTTON - -
(%flow;)* -(A|%formctrl;|FORM|FIELDSET)
-- push button -->
<!ATTLIST BUTTON
%attrs; -- %coreattrs, %i18n, %events --
name CDATA #IMPLIED
value CDATA #IMPLIED -- remeter ao servidor ao enviar --
type (button|submit|reset) submit -- para usar como botón de formulário --
disabled (disabled) #IMPLIED -- non disponíbel neste contexto --
tabindex NUMBER #IMPLIED -- posición na orde de tabulación --
accesskey %Character; #IMPLIED -- carácter da tecla de acesibilidade --
onfocus %Script; #IMPLIED -- o elemento recebeu o foco --
onblur %Script; #IMPLIED -- o elemento perdeu o foco --
%reserved; -- reservado par un posíbel uso futuro --
>

<!--======================= Tabelas =======================================-->

<!-- Padrón de tabelas HTML IETF, ver [RFC1942] -->

<!--
O atributo BORDER determina o ancho da moldura que rodea a
tabela. As unidades por omisión son pontos da pantalla.

O atributo FRAME especifica que partes da moltura que rodea a
haberia que mostrar. Os valores non son os mesmos que os de
CALS para evitar un conflito de nomes co atributo VALIGN.

O valor "border" inclue-se por compatibilidade para trás con
<TABLE BORDER>, que produce frame=border e border=implied
Para <TABLE BORDER=1> obten-se border=1 e frame=implied. Neste
caso, resulta apropriado tratar isto como frame=border por compatibilidade
para trás cos navegadores existentes.
-->
<!ENTITY % TFrame "(void|above|below|hsides|lhs|rhs|vsides|box|border)">

<!--
O atributo RULES define que liñas se han de deseñar entre as celas:

Se RULES estiver ausente, entón asuma:
"none" se BORDER estiver ausente ou BORDER=0; en caso contrário, "all"
-->

<!ENTITY % TRules "(none | groups | rows | cols | all)">

<!-- colocación horizontal da tabela con relación ao documento -->
<!ENTITY % TAlign "(left|center|right)">

<!-- atributos de aliñamento horizontal para os conteúdos das celas -->
<!ENTITY % cellhalign "align (left|center|right|justify|char) #IMPLIED
char %Character; #IMPLIED -- carácter de aliñamento, p.ex.: char=':' --
charoff %Length; #IMPLIED -- separación do carácter de aliñamento --"
>

<!-- atributos de aliñamento vertical para os conteúdos das celas -->
<!ENTITY % cellvalign "valign (top|middle|bottom|baseline) #IMPLIED"
>

<!ELEMENT TABLE - -
(CAPTION?, (COL*|COLGROUP*), THEAD?, TFOOT?, TBODY+)>
<!ELEMENT CAPTION - - (%inline;)* -- título de tabela -->
<!ELEMENT THEAD - O (TR)+ -- cabezallo de tabela -->
<!ELEMENT TFOOT - O (TR)+ -- rodapé de tabela -->
<!ELEMENT TBODY O O (TR)+ -- corpo de tabela -->
<!ELEMENT COLGROUP - O (COL)* -- grupo de colunas de tabela -->
<!ELEMENT COL - O EMPTY -- coluna de tabela -->
<!ELEMENT TR - O (TH|TD)+ -- fila de tabela -->
<!ELEMENT (TH|TD) - O (%flow;)* -- cela de cabezallo de tabela, cela de dados de tabela-->

<!ATTLIST TABLE -- elemento de tabela --
%attrs; -- %coreattrs, %i18n, %events --
summary %Text; #IMPLIED -- propósito/estrutura para saída de voz --
width %Length; #IMPLIED -- ancho de tabela --
border %Pixels; #IMPLIED -- controla o ancho da moldura arredor da tabela --
frame %TFrame; #IMPLIED -- que partes da moldura mostrar --
rules %TRules; #IMPLIED -- liñas entre filas e colunas --
cellspacing %Length; #IMPLIED -- espaciado entre celas --
cellpadding %Length; #IMPLIED -- espaciado dentro das celas --
%reserved; -- reservado para un posíbel uso futuro --
datapagesize CDATA #IMPLIED -- reservado para un posíbel uso futuro --
>


<!ATTLIST CAPTION
%attrs; -- %coreattrs, %i18n, %events --
>

<!--
COLGROUP agrupa un conxunto de elementos COL. Permite agrupar
xuntas várias colunas relacionadas semanticamente.
-->
<!ATTLIST COLGROUP
%attrs; -- %coreattrs, %i18n, %events --
span NUMBER 1 -- número de colunas nun grupo por omisión --
width %MultiLength; #IMPLIED -- ancho por omisión das colunas contidas --
%cellhalign; -- aliñamento horizontal nas celas --
%cellvalign; -- aliñamento vertical nas celas --
>

<!--
Os elementos COL definen as propriedades de aliñamento das celas
de unha ou máis colunas.

O atributo WIDTH especifica o ancho das colunas, p.ex.:

width=64 ancho da pantalla en pontos
width=0.5* ancho relativo do 0.5

O atributo SPAN fai que os atributos de un elemento
COL se apliquen a máis de unha coluna.
-->
<!ATTLIST COL -- grupos de colunas e propriedades --
%attrs; -- %coreattrs, %i18n, %events --
span NUMBER 1 -- Os atributos COL afectan a N colunas --
width %MultiLength; #IMPLIED -- especificación do ancho de coluna --
%cellhalign; -- aliñamento horizonal nas celas --
%cellvalign; -- aliñamento vertical nas celas --
>

<!--
Use THEAD para duplicar os cabezallos cando unha tabela se divida
entre páxinas, ou para cabezallos estáticos cando as seccións
TBODY se mostren nun painel desprazábel.

Use TFOOT para duplicar os rodapés cando unha tabela se divida
entre páxinas, ou para rodapés estáticos cando as seccións
TBODY se mostren nun painel desprazábel.

Use múltiples seccións TBODY cando se necesiten liñas entre
grupos de filas da tabela.
-->
<!ATTLIST (THEAD|TBODY|TFOOT) -- sección da tabela --
%attrs; -- %coreattrs, %i18n, %events --
%cellhalign; -- aliñamento horizontal nas celas --
%cellvalign; -- aliñamento vertical nas celas --
>

<!ATTLIST TR -- fila de tabela --
%attrs; -- %coreattrs, %i18n, %events --
%cellhalign; -- aliñamento horizontal nas celas --
%cellvalign; -- aliñamento vertical nas celas --
>



<!-- Scope ("rango") é máis sinxelo que o atributo de cabezallos para as tabelas ordinárias -->
<!ENTITY % Scope "(row|col|rowgroup|colgroup)">

<!-- TH é para cabezallos, TD para dados, mais para celas que funcionen como ambos, use TD -->
<!ATTLIST (TH|TD) -- cabezallo ou cela de dados --
%attrs; -- %coreattrs, %i18n, %events --
abbr %Text; #IMPLIED -- abreviatura de cela de cabezallo --
axis CDATA #IMPLIED -- lista separada por vírgulas de cabezallos relacionados --
headers IDREFS #IMPLIED -- lista de identificadores para as celas de cabezallo --
scope %Scope; #IMPLIED -- rango coberto polas celas de cabezallo --
rowspan NUMBER 1 -- número de filas polas que se extende a cela --
colspan NUMBER 1 -- número de colunas polas que se extende a cela --
%cellhalign; -- aliñamento horizontal nas celas --
%cellvalign; -- aliñamento vertical nas celas --
>


<!--================ Cabezallo do documento =======================================-->
<!-- %head.misc; definido con anterioridade como "SCRIPT|STYLE|META|LINK|OBJECT" -->
<!ENTITY % head.content "TITLE & BASE?">

<!ELEMENT HEAD O O (%head.content;) +(%head.misc;) -- cabezallo do documento -->
<!ATTLIST HEAD
%i18n; -- idioma, dirección do texto --
profile %URI; #IMPLIED -- dicionário con nome de dados META --
>

<!-- O elemento TITLE non se considera parte do fluxo do texto.
Teria que ser mostrado, por exemplo, como o cabezallo da páxina ou
o título da xanela. Require-se exactamente un título por documento.
-->
<!ELEMENT TITLE - - (#PCDATA) -(%head.misc;) -- título do documento -->
<!ATTLIST TITLE %i18n>


<!ELEMENT BASE - O EMPTY -- URI base do documento -->
<!ATTLIST BASE
href %URI; #REQUIRED -- URI que actua como URI base --
>

<!ELEMENT META - O EMPTY -- metainformación xenérica -->
<!ATTLIST META
%i18n; -- idioma, dirección do texto, para usar co conteúdo --
http-equiv NAME #IMPLIED -- nome do cabezallo de resposta HTTP --
name NAME #IMPLIED -- nome da metainformación --
content CDATA #REQUIRED -- información asociada --
scheme CDATA #IMPLIED -- seleccionar forma do conteúdo --
>

<!ELEMENT STYLE - - %StyleSheet -- información de estilo -->
<!ATTLIST STYLE
%i18n; -- idioma, dirección do texto, para usar co título --
type %ContentType; #REQUIRED -- tipo de conteúdo da linguaxe de estilo --
media %MediaDesc; #IMPLIED -- deseñado para ser usado con estes meios --
title %Text; #IMPLIED -- título consultivo --
>

<!ELEMENT SCRIPT - - %Script; -- declaracións de script -->
<!ATTLIST SCRIPT
charset %Charset; #IMPLIED -- codificación de caracteres do recurso vinculado --
type %ContentType; #REQUIRED -- tipo de conteúdo da linguaxe de script --
src %URI; #IMPLIED -- URI dun script externo --
defer (defer) #IMPLIED -- O axente de usuário pode demorar a execución dun script --
event CDATA #IMPLIED -- reservado para un posíbel uso futuro --
for %URI; #IMPLIED -- reservado para un posíbel uso futuro --
>

<!ELEMENT NOSCRIPT - - (%block;)+
-- contentor de conteúdo alternativo para representacións non baseadas en script -->
<!ATTLIST NOSCRIPT
%attrs; -- %coreattrs, %i18n, %events --
>

<!--================ Estrutura do documento ==================================-->
<!ENTITY % html.content "HEAD, BODY">

<!ELEMENT HTML O O (%html.content;) -- elemento raiz do documento -->
<!ATTLIST HTML
%i18n; -- idioma, dirección do texto --
>