Información sobre los derechos de autor se pueden encontrar en Copyright © 2000.
Esta especificación define XHTML 1.0, una reformulación de HTML 4.0 como aplicación XML 1.0, y tres definiciones de tipo de documentos (DTD) correspondientes a las usadas en HTML 4.0. El significado de los elementos y sus atributos se encuentran en la Recomendación del W3C para HTML 4.0 y conforman la base para una futura extensión de XHTML. La compatibilidad con aplicaciones de usuario HTML existentes es posible siguiendo un pequeño conjunto de reglas.
Esta sección describe el estado de este documento en el momento de su publicación. Otros documentos pueden dejarlo obsoleto. La última versión de esta serie de documentos se encuentra en la W3C.
Este documento ha sido revisado por los miembros del W3C y otras partes interesadas y ha sido avalado por el Director como una Recomendación del W3C. Es un documento estable y puede ser citado como material de referencia o referencia normativa en otro documento. El objetivo del W3C al hacer la Recomendación es llamar la atención sobre la especificación y promover su máxima difusión. Esto potencia la funcionalidad e interoperabilidad en la Web.
Este documento ha sido producido como parte de la Actividad HTML del W3C. Las metas del Grupo de Trabajo de HTML (de acceso exclusivo a sus miembros) se discuten en la carta del Grupo de Trabajo de HTML ( de acceso exclusivo a sus miembros).
Una lista actualizada de las Recomendaciones del W3C y otros documentos técnicos pueden encontrase en http://www.w3.org/TR.
La discusión pública sobre carácterísticas del HTML tiene lugar en la lista de correo www-html@w3.org (también disponible está disponible una recopilación).
Por favor, notifiquen los errores que encuentren en este documento a www-html-editor@w3.org.
Una lista de los errores de esta especificación puede encontrase en http://www.w3.org/2000/01/REC-xhtml1-20000126-errata (en inglés).
XHTML es una familia de módulos y tipos de documentos que reproduce, engloba y extiende HTML 4.0 [HTML]. Los tipos de documentos de la familia XHTML están basados en XML, y diseñados fundamentalmente para trabajar en conjunto con aplicaciones de usuario basados en XML. Los detalles de esta familia y su evolución se discuten en más profundidad en la sección de Futuras Directrices.
XHTML 1.0 (esta especificación) es el primer tipo de documento de la familia XHTML. Es una reformulación de las tres definiciones de tipo de documento HTML 4.0 como aplicaciones de XML 1.0 [XML]. Su finalidad es ser usado como lenguaje de contenidos que es a la vez conforme a XML y, si se siguen algunas sencillas directrices, funciona en aplicaciones de usuario conformes con HTML 4.0. Los desarrolladores que migren aplicaciones hacia XHTML 1.0 apreciarán las siguientes mejoras:
La familia XHTML es el siguiente paso en la evolución de Internet. Al migrar en este momento hacia XHTML, los desarrolladores de contenidos web entran en el mundo de XML con todos los beneficios que se esperan de él a la vez que se aseguran la compatibilidad con aplicaciones de usuario pasadas y futuras.
HTML 4.0 [HTML] es una aplicación SGML (Lenguage de Etiquetado Generalizado Estándar) conforme al estándar internacional ISO 8879, y está ampliamente considerado como el lenguage de publicación estándar de la World Wide Web.
SGML es un lenguage para la descripción de lenguages de etiquetado, particularmente aquellos usados en el intercambio electrónico, manejo y publicación de documentos. HTML es un ejemplo de un lenguaje definido en SGML.
SGML es utilizado desde mitad de los 80 y ha permanecido bastante estable. Gran parte de su estabilidad se la debe al hecho de que el lenguaje es a la vez flexible y rico en posibilidades. Esta flexibilidad tiene sin embargo su coste, el nivel de complejidad que ha inhibido su uso en diversos ámbitos como la World Wide Web.
HTML, tal y como fue concebido, era un lenguaje para el intercambio de documentos científicos y técnicos adaptado para su uso por no especialistas en tratamiento de documentos. HTML resolvió el problema de la complejidad de SGML sirviéndose de un reducido conjunto de etiquetas estructurales y semánticas apropiadas para la realización de documentos relativamente simples. Además de simplificar la estructura de los documentos, HTML soportaba el hipertexto. Las posibilidades de usar elementos multimedia fueron añadidas con posterioridad.
En un corto período de tiempo, HTML se hizo muy popular y rápidamente superó los propósitos para los que había sido creado. Desde los albores de HTML , ha habido una constante invención de nuevos elementos para ser usados dentro de HTML (como estándar) y para adaptar HTML a mercados verticales, altamente especializados. Esta plétora de nuevos elementos ha llevado a problemas de compatibilidad de los documentos en las distintas plataformas.
Dada la creciente heterogeneidad de programas y plataformas , está claro que la idoneidad del HTML 4.0 'clásico' para ser usado en dichas plataformas es más que limitado.
XML™ son las siglas de Lenguaje de Etiquetado Extensible , fórmandose la palabra como acrónimo de la expresión inglesa 'eXtensible Markup Language' [XML].
XML fue concebido como un medio para recobrar la potencia y flexibilidad de SGML sin que adquiriese su gran complejidad. A pesar de ser una forma restringida de SGML, XML conserva casi toda la potencia y riqueza de las carácterísticas de SGML.
Aún manteniendo estas carácterísticas, XML elimina las más complejas de SGML que hacían la creación y diseño de los programas apropiados dificil y costosa.
Los beneficios de migrar hacia XHTML 1.0 se han descrito más arriba. Algunos de esos beneficios generales son:
Los siguientes términos se utilizan en esta especificación. Estos términos extienden las definiciones de [RFC2119] basándose en definiciones similares que aparecen en ISO/IEC 9945-1:1990 [POSIX.1]:
Esta versión de XHTML suministra una definición de documentos XHTML estrictamente conformes que se restringe a las etiquetas y atributos del espacio nominal de XHTML. Ver la Sección 3.1.2 para información concerniente al uso de XHTML con otros espacios nominales, por ejemplo la inclusión de metadatos expresados en RDF dentro de documentos XHTML.
Un documento XHTML estrictamente conforme es un documento que para ser procesado requiere tan sólo los recursos descritos como obligatorios en esta especificación. Tales documentos deben ajustarse a los siguientes puntos:
Deben poder validarse con alguna de las tres DTD que se encuentran en el ApéndiceA.
El elemento raíz del documento debe ser
<html>
.
El elemento raíz del documento debe indicar el espacio nominal XHTML
usando el atributo xmlns
[XMLNAMES]. El
espacio nominal para XHTML es http://www.w3.org/1999/xhtml
Debe haber una declaración DOCTYPE en el documento antes del elemento raíz. El identificador público incluido en la declaración DOCTYPE debe hacer referencia a alguna de las tres DTD que se hallan en el Apéndice A usando el Identificador Formal Público correspondiente. El identificador del sistema puede ser modificado apropiadamente para reflejar convenciones de rango local.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
He aquí un ejemplo de un pequeño documento XHTML.
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="sp" lang="sp"> <head> <title>Biblioteca Virtual</title> </head> <body> <p>Trasladada a <a href="http://vlib.org/">vlib.org</a>.</p> </body> </html>
Nótese que en este ejemplo, se incluye la declaración XML. Una declaración XML como la que se hace arriba no es necesaria en todos los documentos XML. Aún así, se recomienda encarecidamente a los autores de documentos XHTML que incluyan declaraciones XML en todos sus documentos. Tal declaración es necesaria cuando la codificación de los caracteres que se usa en el documento no es UTF-8 o UTF-16, los tipos usados por defecto en este tipo de documentos.
El espacio nominal XHTML 1.0 puede usarse conjuntamente a otros espacios nominales XML como se indica en [XMLNAMES], aunque los documentos así producidos no serán documentos XHTML 1.0 estrictamente conformes. Futuros trabajos del W3C darán directrices que especifiquen la conformidad de documentos que usen varios espacios nominales.
El siguiente ejemplo muestra cómo XHTML 1.0 podría usarse en conjunción con la Recomendación MathML:
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="sp" lang="sp"> <head> <title>Un ejemplo matemático</title> </head> <body> <p>Lo que viene a continuación es etiquetado MathML:</p> <math xmlns="http://www.w3.org/1998/Math/MathML"> <apply> <log/> <logbase> <cn> 3 </cn> </logbase> <ci> x </ci> </apply> </math> </body> </html>
El siguiente ejemplo muestra cómo el etiquetado XHTML 1.0 podría usarse en otro espacio nominal XML:
<?xml version="1.0" encoding="UTF-8"?> <!-- inicialmente, el espacio nominal por defecto es "books" --> <book xmlns='urn:loc.gov:books' xmlns:isbn='urn:ISBN:0-395-36341-6' xml:lang="en" lang="en"> <title>Cheaper by the Dozen</title> <isbn:number>1568491379</isbn:number> <notes> <!-- hacemos HTML el espacio nominal por efecto para un comentario hipertextual --> <p xmlns='http://www.w3.org/1999/xhtml' xml:lang="sp" lang="sp"> También está disponible <a href="http://www.w3.org/">en la red</a>. </p> </notes> </book>
Una aplicación de usuario debe cumplir todos y cada uno de los siguientes criterios de conformidad:
ID
(e.g. el atributo
id
de la mayoria de los elementos XHTML) como identificadores
de fragmentos.El procesador XML normaliza varios sistemas de códigos de fin de línea en un único carácter de avance de línea que se pasa a la aplicación. La aplicación de usuario XHTML debe, además, tratar los siguientes caracteres como espacios en blanco:
En elementos donde el atributo 'xml:space' tenga el valor 'preserve', la aplicación de usuario debe conservar intactos todos los espacios en blanco (con excepción de los caracteres de espacio en blanco de encabezamiento y terminación, que deberían ser suprimidos). En otros casos un espacio en blanco se manipula de acuerdo con las siguientes reglas:
El espacio en blanco en los valores de atributos se procesa de acuerdo con [XML].
Debido al hecho de que XHTML es una aplicación XML, ciertas prácticas que eran perfectamente válidas en HTML 4.0 [HTML],basado en SGML, deben cambiar.
La gramaticalidad de los documentos es un nuevo concepto introducido por [XML]. Esencialmente significa que todos los elementos bien deben tener etiquetas de cierre bien deben ser escritos de manera especial (tal y como se describe abajo), y que todos los elementos deben estar anidados.
Aunque el solapamiento de elementos no está permitido en SGML, era tolerado en los navegadores existentes.
CORRECTO: elementos anidados
<p>he aquí un <em>párrafo</em> enfatizado.</p>
INCORRECTO: elementos solapados
<p>he aquí un <em>párrafo</p> enfatizado</em>
Los documentos XHTML deben usar minúsculas para los nombres de todos los elementos y atributos HTML. Esta diferencia es necesaria porque XML es sensible a minúsculas y mayúsculas e.g. <li> and <LI> son etiquetas diferentes.
Con HTML 4.0, basado en SGML, en algunos elementos podía omitirse la etiqueta
de cierre, de tal manera que la apertura de los elementos que les sucedían
implicaba dicho cierre. Esta omisión no está permitida en XHTML, basado en XML.
Todos los elementos que no estén declarados en la DTD como EMPTY
deben tener una etiqueta de cierre.
CORRECTO: elementos cerrados
<p>he aquí un párrafo.</p><p>aquí hay otro párrafo.</p>
INCORRECTO: elementos no cerrados
<p>he aquí un párrafo.<p>aquí hay un párrafo.
Todos los valores de atributos deben ir entrecomillados, incluso aquellos que son numéricos.
CORRECTO: valores de atributo entrecomillados
<table rows="3">
INCORRECTO: valores de atributo no entrecomillados
<table rows=3>
XML no soporta la minimización de atributos. Los pares atributo-valor deben
escribirse en toda su extensión. Los nombres de atributos como
compact
y checked
no pueden aparecen en elementos sin que
sea especificado su valor.
CORRECTO: atributos no minimizados
<dl compact="compact">
INCORRECTO: atributos minimizados
<dl compact>
Los elementos vacíos deben bien tener una etiqueta de cierre bien terminar
su etiqueta de apertura con />
. Por ejemplo,
<br/>
o <hr></hr>
. Ver las directrices de compatibilidad con HTML para recabar
información sobre cómo asegurar la compatibilidad retroactiva con aplicaciones de
usuario HTML 4.0.
CORRECTO: etiquetas vacías cerradas
<br/><hr/>
INCORRECTO: etiquetas vacías no cerradas
<br><hr>
En los valores de atributos, las aplicaciones de usuario eliminarán los espacios en blanco de encabezamiento y terminación y sustituirán las secuencias de uno o más espacios en blanco (incluyendo los saltos de línea) por un único espacio en blanco entre palabras (un carácter ASCII de espacio en blanco para escrituras occidentales). Ver la sección 3.3.3 de [XML].
script
y
style
En XHTML, los elementos script
y style
se
declaran como elementos con
contenido #PCDATA
. Como resultado, <
y
&
serán tratados como comienzos de etiquetado, y
entidades como <
y &
serán reconocidas como referencias a las entidades <
y
&
respectivamente por el procesador XML. Englobar el
contenido del elemento script
o style
dentro de
una sección marcada como
CDATA
evita el procesamiento de estas entidades.
<script> <![CDATA[ ... contenido no procesado del script ... ]]> </script>
Las secciones CDATA
son reconocidas por el procesador XML
y aparecen como nodos en el Modelo del Objeto Documento (DOM), ver la
sección 1.3 de la Recomendación DOM Level 1[DOM].
Una alternativa es usar documentos externos de estilo y escritura de código.
SGML da al escritor de una DTD la posibilidad de impedir que elementos específicos estén anidados en otros elementos. Tales prohibiciones (denominadas "exclusiones") no son posibles de realizar en XML.
Por ejemplo, la DTD de HTML 4.0 Strict prohibe el anidamiento de un
elemento 'a
' dentro de otro elemento 'a
' en cualquier
profundidad de anidamiento. No es posible dictar tal prohibición en XML. Aunque
tales prohibiciones no puedan definirse en la DTD, algunos elementos no
deberían anidarse. Un resumen de dichos elementos y los elementos que no
deberían anidarse en ellos se encuentra en la normativa
Apéndice B.
id
y name
HTML 4.0 definía el atributo name
para los elementos
a
,
applet
, frame
,
iframe
, img
, y map
.
HTML 4.0 también introducía el atributo
id
. Ambos atributos están diseñados para ser usados como
identificadores de fragmentos de información.
En XML, los identificadores de fragmentos son del tipo ID
, y
tan sólo puede haber un único atributo de tipo ID
por elemento.
Por tanto, en XHTML 1.0 el atributo id
se define con tipo ID
. Con objeto de asegurar que los documentos
XHTML 1.0 sean documentos XML bien estructurados, los documentos XHTML 1.0
DEBEN usar el atributo id
para definir un identificador de
fragmento, incluso en elementos que históricamente también hayan usado el
atributo name
.
Ver las directrices de compatibilidad con HTML para
recabar información sobre cómo asegurar la compatibilidad retroactiva de los
anclajes cuando se sirvan documentos XHTML cuyo tipo de soporte de internet
(MIME) sea text/html
.
Notar que en XHTML 1.0, el atributo name
de dichos elementos
está formalmente prohibido y desaparecerá en la siguiente versión de XHTML.
Aunque no hay ninguna obligación de que los documentos XHTML 1.0 sean compatibles con las aplicaciones de usuario existentes, en la práctica es algo fácil de conseguir. Las directrices para crear documentos compatibles pueden encontrarse en el Apéndice C.
En el momento de la publicación de esta recomendación, el etiquetado MIME general recomendado para aplicaciones basadas en XML aún no ha sido decidido.
Sin embargo, los documentos XHTML que sigan la directrices indicadas en el Apéndice C, "Directrices de compatibilidad con HTML " pueden ser etiquetados con el tipo de soporte de internet "text/html", dado que son compatibles con la mayoría de los navegadores HTML. Este documento no hace ninguna recomendación sobre el etiquetado MIME de otros documentos XHTML.
XHTML 1.0 sienta la base para una familia de tipos de documentos que extenderán y acotarán XHTML con objeto de soportar un amplio rango de nuevos dispositivos y aplicaciones, definiendo módulos que especifiquen un mecanismo para combinar dichos módulos. Dicho mecanismo permitirá la extensión y el acotamiento de XHTML 1.0 de una manera uniforme a través de la definición de nuevos módulos.
A la vez que el uso de XHTML vaya pasando de las aplicaciones de usuario del ordenador de sobremesa tradicional a otras plataformas, está claro que no todos los elementos de XHTML serán necesarios en todas las plataformas. Por ejemplo un dispositivo de mano o un teléfono móvil pueden soportar sólo un subconjunto elementos de XHTML.
El proceso de modularización rompe XHTML en una serie de pequeños conjuntos de elementos. Dichos elementos pueden ser recombinados para cumplir las necesidades de diferentes comunidades.
Estos módulos se definirán en un documento posterior de la W3C.
La modularización conlleva diversas ventajas:
Provee un mecanismo formal para acotar XHTML.
Provee un mecanismo formal para extender XHTML.
Simplifica la transformación entre tipos de documento.
Promueve la reutilización de módulos en nuevos tipos de documento.
Un perfil de documento especifica la sintáxis y la semántica de un conjunto de documentos. La conformidad con un perfil de documento provee una base para la garantía de interoperabilidad. El perfil de documento especifica los recursos necesarios para procesar los documentos de dicho tipo, e.g. qué formatos de imagen pueden usarse, niveles de escritura de codigo, soporte de hojas de estilo, etc.
Para diseñadores de productos, esto permite a distintos grupos la definición de su propio perfil estándar.
Para autores, esto permitirá obviar la necesidad de escribir diferentes versiones de documentos para diferentes clientes.
Para grupos especiales tales como químicos, médicos o matemáticos esto permitirá la construcción de un perfil especial usando elementos HTML estándar más un grupo de elementos específicamente diseñados para cubrir las necesidades de los especialistas.
Este apéndice es normativo.
Estas DTD y conjuntos de entidades forman una parte normativa de esta especificación. El conjunto completo de archivos DTD conjuntamente con una declaración XML y el Catálogo Abierto SGML se incluye en el archivo zip disponible para esta especificación.
Estas DTD se aproximan a las DTD de HTML 4.0. Se trata de que cuando, en un futuro, estas DTD se modularicen, se emplee un método de construcción de DTD que se corresponda más claramente con HTML 4.0.
Los conjuntos de entidades XHTML predefinidas son los mismos que en HTML
4.0, pero han sido modificados para ser declaraciones de entidades válidas en
XML 1.0. Fijémonos en que la entidad para el signo del Euro
(€
o €
o
€
) se define como una parte de los caracteres
especiales.
Este apéndice es normativo.
A continuación se detallan las incompatibilidades en el anidamiento de elementos (ver la sección 4.9). Esta prohibición se aplica a todas las profundidades de anidamiento, i.e. afecta a todos los elementos descendientes de aquel para el que se especifica la restricción.
a
a
.pre
img
, object
,
big
, small
, sub
o sup
.button
input
, select
,
textarea
, label
, button
,
form
, fieldset
, iframe
o
isindex
.label
label
.form
form
.Este apéndice es informativo.
Este apéndice resume las directrices de diseño para autores que quieren que sus documentos XHTML puedan ser presentados en aplicaciones de usuario HTML ya existentes.
Hay que ser consciente de que las instrucciones de proceso se ejecutan en algunas aplicaciones de usuario. Sin embargo, hay que notar que cuando la declaración XML no se incluye en un documento, éste sólo puede usar las codificaciones de caracteres por defecto UTF-8 o UTF-16.
Incluir un espacio en blanco antes de la barra y ángulo de cierre
/
y >
de los elementos vacíos, e.g.
<br />
,
<hr />
y <img
src="karen.jpg" alt="Karen" />
. También, usar la sintaxis
minimizada de etiquetas para los elementos vacíos, e.g. <br />
, dado que la sintaxis alternativa a <br></br>
permitida por XML
da resultados no previsibles en muchos de las aplicaciones de usuario ya
existentes.
Dada una instancia vacía de un elemento cuyo modelo de contenido no es
EMPTY
(por ejemplo, un título o párrafo vacíos)
no usar la forma minimizada (e.g. usar
<p> </p>
y no
<p />
).
Usar hojas de estilo externas si la hoja en cuestión utiliza los caracteres
<
o &
o ]]>
o --
.
Usar archivos externos de código si el código utiliza los caracteres
<
o &
o ]]>
o --
.
Notar que los analizadores XML tienen permitido suprimir el contenido de los
comentarios. De esta manera, la práctica común hasta ahora de "esconder" los
fragmentos de código (script
) y hojas de estilo
(style
) entre comentarios, para hacerlos invisibles a antiguos
navegadores, normalmente no funcionará en aplicaciones basadas en XML.
Evitar saltos de línea y múltiples espacios en blanco dentro de los valores de los atributos. Estos son manipulados de manera inconsistente por las aplicaciones de usuario.
Isindex
No incluir más de un elemento isindex
en el head
del documento. El elemento isindex
se tiende a descartar en favor
del elemento input
.
lang
y
xml:lang
Úsense ambos atributos, lang
y xml:lang
,
cuando se quiera especificar el idioma de un elemento. El valor
del atributo xml:lang
tiene preferencia.
En XML, los URI
[RFC2396] que terminan con identificadores de
fragmentos de la forma "#foo"
no se refieren a elementos con un
atributo name="foo"
; por el contrario se refieren a elementos con un
atributo del tipo ID
, e.g., el atributo
id
de HTML 4.0. Muchos clientes de HTML actuales no soportan este uso de
atributos de tipo ID
, de tal manera que se puede dar valores
idénticos a ambos atributos para aseguran la máxima compatibilidad futura y
retroactiva (e.g., <a id="foo"
name="foo">...</a>
).
Más aún, dado que el conjunto de valores permitidos para atributos del tipo
ID
es mucho menor que los permitidos para atributos del tipo
CDATA
, el tipo del atributo name
ha sido cambiado a
NMTOKEN
. Este atributo está limitado de tal manera que sólo puede
tomar los mismos valores que los de tipo ID
o los de la
producción Name
de XML 1.0, sección 2.5, producción 5.
Desafortunadamente esta limitación no puede expresarse en las DTD de XHTML 1.0.
Debido a este cambio, debe tenerse cuidado cuando se conviertan documentos
HTML ya existentes a XHTML 1.0. Los valores de estos atributos deben ser unicos
en todo el documento, válidos, y tales que cualquier referencia a estos
identificadores de fragmentos (tanto interna como externa) deben actualizarse
durante la conversión.
Finalmente, notar que XHTML 1.0 tiende a desechar el atributo name
de los elementos a
, applet
, frame
,
iframe
, img
, y map
, y será eliminado en
versiones posteriores de XHTML.
Para especificar una codificación de caracteres en el documento, usar tanto
la especificación del atributo de codificación en la declaración xml (e.g.
<?xml version="1.0"
encoding="EUC-JP"?>
) como una sentencia meta http-equiv (e.g.
<meta http-equiv="Content-type"
content='text/html; charset="EUC-JP"' />
). El valor del atributo
de codificación de la instrucción de proceso xml tiene preferencia.
Algunas aplicaciones de usuario no son capaces de interpretar atributos
booleanos cuando estos aparecen en su forma extendida (no minimizada),
tal y como requiere XML 1.0. Notar que este problema no afecta a aplicaciones de
usuario conformes a la especificación HTML 4.0. Los siguientes atributos se
encuentran afectados: compact
, nowrap
,
ismap
, declare
, noshade
,
checked
, disabled
, readonly
,
multiple
, selected
,
noresize
, defer
.
La Recomendación de nivel 1 del Modelo del Objeto Documento [DOM] define interfaces del modelo del objeto documento para XML y HTML 4.0. El modelo del objeto documento de HTML 4.0 especifica que los nombres de los elementos y atributos HTML se devuelven en mayúsculas. El modelo del objeto documento de XML especifica que los nombres de los elementos y atributos se devuelven con el tipo en que se hayan escrito en el propio documento. En XHTML 1.0, los elementos y atributos se escriben en minúsculas. Esta diferencia aparente puede ser resuelta de dos modos:
text/html
via el DOM pueden usar el DOM HTML,
y asegurarse así de que los nombres de los elementos y atributos serán
devueltos en mayúsculas por dichas interfaces.text/xml
o application/xml
pueden usar también el DOM XML. Los elementos y atributos serán devueltos en
minúsculas. Además, algunos elementos XML pueden o no aparecer en el árbol de
objetos porque son opcionales en el modelo de contenidos (e.g. el elemento
tbody
dentro de table
). Esto ocurre porque en HTML
4.0 a algunos elementos se les permitía ser minimizados de tal manera que tanto
la etiqueta de apertura como la de cierre se omitían (una característica de
SGML). Esto no es posible en XML. En vez de hacer obligatorios estos elementos
que no solían usarse, XHTML ha optado por hacerlos opcionales. Las aplicaciones
necesitan adaptarse a ello.
Cuando el valor de un atributo contenga un carácter &, debe expresarse como
una referencia a la entidad de tipo carácter (e.g. "&
").
Por ejemplo, cuando el atributo href
deel elemento a
apunte a un código CGI que tome parámetros , debe expresarse como
http://my.site.dom/cgi-bin/myscript.pl?class=guest&name=user
en vez de
http://my.site.dom/cgi-bin/myscript.pl?class=guest&name=user
.
La Recomendación de nivel 2 de las Hojas de Estilo en Cascada [CSS2] define propiedades de estilo que se aplican al árbol de análisis del documento HTML o XML. Las diferencias en el análisis producirán diversos resultados visibles o auditivos, dependiendo de los selectores usados. Las siguientes pistas reducirán este efecto en los documentos que se sirvan sin modificación como cualquiera de estos tipos de soporte:
Este apéndice es informativo.
Esta especificación ha sido escrita con la participación de los miembros del grupo de trabajo de HTML del W3C:
Este apéndice es informativo.