Sin duda puede hablar de un documento XML weing well-formed, y puede construir un documento desde cualquier elemento individual y sus elementos secundarios. Por lo tanto, podría hablarse de que los fragmentos XHTML5 de raíz única están bien formados. Podría tratar con un fragmento de raíz múltiple (como <img/><img/>
) al tratarlo como una secuencia de documentos, o envolverlo en algún elemento contenedor sintético, ya que solo estamos hablando de una buena formación, eso estaría bien.
Sin embargo, HTML5 aún permite las etiquetas de cierre automático SGML, como <hr>
y demás, cuyo cierre automático solo puede determinarse apelando al doctype. Por ejemplo, <div><hr></div>
está bien, pero <div><tr></div>
no. Si estuviera tratando con nodos DOM en lugar de texto como entrada, esto no sería un problema, pero si tiene texto, necesitaría un analizador que sepa lo suficiente sobre HTML para poder tratar con esos elementos. Más allá de eso, sin embargo, algunas reglas muy simples, levantadas directamente de XML, serían suficientes para manejar la buena formación.
Si desea ir más allá de la buena formación y ver algunos aspectos de validity, creo que todavía puede hacerlo en el nivel de fragmento de raíz única con XML. Como dice la especificación:
Un documento XML es válido si tiene una declaración de tipo de documento asociado y si el documento cumple con las restricciones expresadas en él.
Una DTD puede nombrar cualquier elemento como la raíz, y la mecánica luego tomar el cuidado de verificar la relación entre ese elemento y sus hijos, y sus hijos y así sucesivamente, y los demás limitaciones que componen validez.
Nuevamente, puede transferir esa idea directamente a HTML. Sin embargo, no sé cómo lidiar con fragmentos de raíz múltiple. Y tenga en cuenta que ciertas restricciones de documentos enteros (como las identificaciones que son únicas) pueden mantenerse dentro del fragmento, pero no en un documento válido de otra manera una vez que el fragmento se ha insertado en él.
Su pseudocódigo no funciona con '
'sean fragmentos válidos, pero' <'no lo es. No puedo encontrar una definición de fragmento en la especificación XML o HTML –