Dobře utvořený dokument
Ukázka má namespace XHTML, uzavřené elementy a uvozované atributy. Je to jednoduchý dokument HTML v XML syntaxi, nikoli ukázka validace proti historické DTD XHTML 1.0.
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="cs">
<head><title>Ukázka</title></head>
<body><p>Ahoj<br/>světe</p></body>
</html> Parser podle MIME typu
Přípona xhtml ani lomítko v br samo nezapne XML parser. Server musí poslat odpovídající Content-Type. V XML nejsou automaticky dostupné všechny pojmenované HTML entity; použij znak nebo číselný odkaz. Chyba utvoření dokumentu se neopravuje jako v HTML parseru.
Historie a dnešní použití
XHTML 1.0 je historické doporučení z roku 2002. Dnešní pravidla HTML a jeho XML syntaxe najdeš v HTML Living Standard. U běžného webu vybírej syntaxi podle skutečné potřeby XML zpracování, ne kvůli domnělé přísnosti SEO.
XPath nad XHTML
XPath 1.0 potřebuje prefix pro XHTML namespace. Výraz //p nenajde element p v tomto prostoru. Při transformaci také zvol odpovídající způsob serializace; XML a HTML mají jiné zacházení s prázdnými elementy.
Stejný zdroj, jiný parser a XPath
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>XML.cz</title></head><body><p>A & B</p><br/></body></html> xmllint --noout stranka.xhtml Při doručení s application/xhtml+xml je dokument parsován jako XML. S text/html se uplatní HTML parser se svými pravidly oprav a namespace. Samouzavírací zápis br není důkaz režimu parseru. Záměrně odeber uzavírací značku p: XML kontrola selže, HTML parser může strom opravit. Takto opravený strom není záruka stejného původního dokumentu.
Pro XPath 1.0 navaž prefix h na http://www.w3.org/1999/xhtml a použij /h:html/h:body/h:p. Serializaci HTML a XML vybírej podle typu výstupu; některé prázdné HTML elementy mají jiné pravidlo zápisu. XHTML není důvod ručně přidávat lomítko ke všem značkám běžného HTML.