2010-06-02 17 views
11

¿Dónde puedo encontrar la muestra X HTML 5 páginas? Principalmente quiero saber si es posible mezclar y combinar XHTML 5 con otros lenguajes XML al igual que XHTML 1 o no. Por ejemplo, ¿algo así es válido en XHTML 5?¿Dónde puedo encontrar códigos fuente XHTML5 de muestra?

<!DOCTYPE html PUBLIC "WHAT SHOULD BE HERE?" 
      "WHAT SHOULD BE HERE?"> 
<html xmlns="WHAT SHOULD BE HERE?" 
     xmlns:ui="http://java.sun.com/jsf/facelets"> 
<head> 
    <title><ui:insert name="title">Default title</ui:insert></title> 
    <link rel="stylesheet" type="text/css" href="./css/main.css"/> 
</head> 

<body> 

<div id="header"> 
    <ui:insert name="header"> 
     <ui:include src="header.xhtml"/> 
    </ui:insert> 
</div> 


<div id="left"> 
    <ui:insert name="navigation" > 
    <ui:include src="navigation.xhtml"/> 
    </ui:insert> 
</div> 


<div id="center"> 
    <br /> 
    <span class="titleText"> <ui:insert name="title" /> </span> 
    <hr /> 
    <ui:insert name="content"> 
    <div> 
    <ui:include src="content.xhtml"/> 
    </div> 
    </ui:insert> 
</div> 

<div id="right"> 
    <ui:insert name="news"> 
    <ui:include src="news.xhtml"/> 
    </ui:insert> 
</div> 

<div id="footer"> 
    <ui:insert name="footer"> 
    <ui:include src="footer.xhtml"/> 
    </ui:insert> 
</div> 

</body> 

</html> 

Gracias de antemano.

Respuesta

7

No necesita ningún tipo de documento. No están diseñados para hacer frente a espacios de nombres y no sirven para ningún propósito útil en XML. (En HTML, son necesarios para entrar en el modo estándar). Si realmente insiste en tener uno, por cualquier razón, simplemente use <!DOCTYPE html>.

En cuanto a los nombres:

<html xmlns="http://www.w3.org/1999/xhtml" 
     xmlns:ui="http://java.sun.com/jsf/facelets"> 

como ya está utilizando, supongo.

Como ve, no hay información sobre la versión que está utilizando. Eso es porque no lo necesitas. Para la validación, puede elegir su objetivo en la interfaz de usuario, y los navegadores nunca han examinado las versiones. Es decir, en los navegadores, no hay nada como HTML3.2 o HTML4.01 o HTML5, solo "HTML", y no XHTML1.0, XHTML1.1 o XHTML5, solo "XHTML". Hoy en día, estos consisten principalmente en HTML4.01/XHTML1.0 y algunas partes de HTML5, así como algunas partes propietarias (aunque HTML5 ha especificado la mayoría de ellas).

+0

Entonces, si no me equivoco, no es posible distinguir un documento XHTML 1 de y el documento XHTML 5 únicamente mirando sus prólogos, ¿es así? – Behrang

+1

Tenga en cuenta que si el documento XHTML se está publicando con tipo MIME "' application/xml' "o" 'application/xhtml + xml'", 'xmlns =" ​​http://www.w3.org/1999/xhtml " 'algunos navegadores pueden requerir la declaración del espacio de nombres para no considerar su documento como XML simple ... –

1

Su mejor apuesta es probablemente la especificación HTML5 section on XHTML, que en su mayoría llama al XML 1.0 5th edition spec y namespaces spec. Como dice allí, no existe un DOCTYPE definido para HTML5 en XML, que es la respuesta a la parte DOCTYPE de su pregunta. Menciona específicamente entremezclar HTML5 con otro contenido en documentos XML, así que esa debería ser la respuesta a esa parte de su pregunta.

1

Por ejemplo, algo como esto es válido en XHTML 5?

No, y tampoco podría hacerlo con XHTML 1. Una vez que empiece a hacer documentos FOO + BAR, no son FOO válida o BAR válida, sólo algunas combinación de ambos (que puede ajustarse a un DTD y así ser FOO válida + BAR)

<!DOCTYPE html PUBLIC "WHAT SHOULD BE HERE?" 
     "WHAT SHOULD BE HERE?"> 

Un DTD personalizado que describe la combinación de lenguajes de marcado que está utilizando.

Al mezclar espacios de nombres, generalmente es mejor olvidarse de las DTD. No va a ser compatible HTML de todos modos, por lo text/html está fuera de la cuestión

<html xmlns="WHAT SHOULD BE HERE?" 
     xmlns:ui="http://java.sun.com/jsf/facelets"> 

El espacio de nombres XHTML no ha cambiado. Esto es lo mismo que cualquier otra versión de XHTML.

+0

Si el espacio de nombres XHTML no ha cambiado, ¿cómo sabe un validador si el documento es XHTML 5 para que los elementos de sombrero como

sean válidos o si es XHTML 1 para que y otros elementos nuevos no sean válidos? – Behrang

+1

Los espacios de nombres nunca han tenido nada que ver con la validación. Debe usar un validador XHTML 5 explícito o usar un validador de esquema y pasarle un esquema y su documento. – Quentin

+0

Entonces, ¿por qué incluso incluimos un DOCTYPE y hacemos referencia a una DTD, si el documento XHTML no está validado contra la DTD? Además, lo que dices implica que no es posible decir si un documento es XHTML 1 o XHTML 5 únicamente mirando su prólogo, ¿o no? – Behrang

2

Esta es una muy buena pregunta, que abarca las cuestiones pendientes del W3C todavía está trabajando en los últimos tiempos 2012:

cuanto a la cuestión DOCTYPE, podría haber desarrollos nuevos en la DOCTYPE materia: a partir de 12 de noviembre de 2012, los estados HTML5 Latest Editor's Draft, con respecto a la sintaxis HTML, en la sección "8.1.1 El DOCTYPE "que:

  1. "Un DOCTYPE es un preámbulo necesario [...]"=><!DOCTYPE html>
  2. " A los efectos de los generadores de HTML que puede no marcado HTML de salida con DOCTYPE corta [que] , se puede insertar una cadena heredada DOCTYPE [...] "=><!DOCTYPE html SYSTEM "about:legacy-compat"> si es absolutamente necesario (p. ej., mediante un generador XML)
  3. " Para ayudar a los autores a pasar de HTML4 y XHTML1, una cadena DOCTYPE obsoleta puede ser insertado [...] "=> ej. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> (o cualquiera de los 5 siguientes, vea abajo)

A mi entender:

  • los 3 formas tienen exactamente el mismo significado: "este documento es HTML5", no importa lo que la específica, legal, legado tipo de documento pública utilizada por razones de compatibilidad con versiones
  • y usando uno de ellos está requiere (es decir, utilizar la primera de ellas, a menos que tenga muy buenas razones para no)

a menos que ocurra ediciones de última hora, esto debe hacerlo en la Candidata a Recomendación W3C HTML5 08 de noviembre de 2012.

La sintaxis XHTML se mantiene sin cambios al respecto: "Los documentos XML pueden contener un DOCTYPE si así lo desean, pero esto no es necesario para cumplir con esta especificación".


En resumen, a partir del 8 de noviembre, 2012, cualquiera de los siguientes sería válida:

<!DOCTYPE html> 
<!DOCTYPE html SYSTEM "about:legacy-compat"> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0//EN"> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 
<!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.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> 

Y:

  • cualquier otro tipo de documento no válido ,
  • ningún tipo de documento en absoluto, HTML no válido
  • y ningún tipo de documento sigue siendo una opción para XML ...
-2

me temo que no hay tal cosa como XHTML5.

Puede tener XHTML real, con uno de los XHTML DOCTYPE clásicos (ver otras respuestas), o puede ponerlo en el <!DOCTYPE html>, y luego lo valida en su mayoría, pero ya no es completamente XHTML. Solo funcionará si lo tratas como HTML.

Por ejemplo, este archivo

<?xml version="1.0" encoding="utf-8"?> 
<!DOCTYPE html> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
    <head><title>test</title></head> 
    <body><p>&nbsp;</p></body> 
</html> 

sólo funcionará si le dan una extensión .html. Con .xhtml, de ninguna manera.

Puede pensar que guardar como .html no es gran cosa, pero luego es HTML, independientemente de lo que diga el contenido del archivo. Entonces también puede descartar la declaración XML y el atributo xmlns y todas las demás funciones XHTML.

+0

No es cierto, existe un XHTML real 5. Vea http://www.w3.org/TR/html5/introduction.html # html-vs-xhtml – sam

+0

@sam Esa sección no es normativa. Mi argumento sigue en pie. Por ejemplo, no hay forma de decirle al validador W3C que su documento debe analizarse como XHTML5. –

+1

Pensé que estabas argumentando que no existe tal cosa. Permítanme aclarar lo que estoy diciendo: es posible escribir XHTML 5 (según la especificación) y servirlo como application/xhtml + xml. Los navegadores lo admiten aunque tiene un uso limitado en ese sentido (consulte https://mathiasbynens.be/notes/xhtml5, por ejemplo). También se requiere XHTML 5 (un ejemplo que conozco) como parte del formato de libro electrónico EPUB3. No hay un doctype 'real' para (X) HTML5, pero eso no importa. No he probado el validador W3C con eso ... – sam

Cuestiones relacionadas