HTML y XML utilizan dos sintaxis diferentes: la sintaxis HTML está inspirada en la norma SGML (aunque no la cumple estrictamente), mientras que la sintaxis XML está basada en la recomendación XML (1998). para saber más sobre XML puede consultar los apuntes de XML de mclibre.
En general, la sintaxis XML es más "estricta", en el sentido de imponer restricciones en la forma de escribir etiquetas, atributos o valores, mientras que la sintaxis HTML es más "flexible".
Los únicos contextos en los que es necesario seguir la sintaxis XML en una página web es en el caso de las imágenes SVG y las fórmulas matemáticas MathML, que se pueden incluir en una página web pero deben seguir la sintaxis XML.
En esta lección se comentan algunas de las diferencias entre las sintaxis HTML y XML.
<p>AAAA</p>
BBBB
<p>CCCC</p>
<p class="xxx">AAAA</p>
<P>AAAA</P>
<p CLASS="xxx">AAAA</p>
<p>α β π</p>
<p>α β π</p>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>HTML</title>
</head>
<body>
<!-- contenido de la página -->
</body>
</html>
<!DOCTYPE html>
<head>
<meta charset="utf-8">
<title>HTML</title>
</head>
<body>
<!-- contenido de la página -->
</body>
<svg version="1.1" xmlns="http://www.w3.org/2000/svg"
width="200" height="200" viewBox="-100 -100 200 200"
style="background-color: lightgray">
<circle cx="0" cy="0" r="75" fill="none" stroke="red" stroke-width="5" />
</svg>
<p>AAAA</p>
<p>BBBB</p>
<p>AAAA
<p>BBBB</p>
<hr />
<hr></hr>
<hr>
El cierre de las etiquetas vacías en XML puede tener o no un espacio delante. Hace años se recomendaba dejar un espacio delante por compatibilidad con algunos navegadores, pero seguramente hace años que esos navegadores han desaparecido del mercado.
<hr />
<hr/>
<ol reversed="reversed">
<li>AAA</li>
<li>BBB</li>
</ol>
<ol reversed="">
<li>AAA</li>
<li>BBB</li>
</ol>
<ol reversed>
<li>AAA</li>
<li>BBB</li>
</ol>
<p><input type="text" /></p>
<p><input type="TEXT" /></p>
<p style="color: red">AAAA</p>
<p style=color:red>AAAA</p>
<p style=color: red>AAAA</p>
<p class="xxx">AAAA</p>
<p class=xxx>AAAA</p>