XHTML striktně vyžaduje:
a. všechny atributy v uvozovkách
např.: <table rows="3">

b. zákaz křížení značek
např.: <b>dobrý<i>zápis</i></b>
<b>špatný<i>zápis</b></i>

Rozdíly:
a. značky a atributy jsou malými písmeny
b. nepárové značky končí lomítkem
např.: <br /> <hr />
c. párové značky jsou povinné
d. všechny atributy musejí mít hodnotu (i ty které v HTML hodnotu "nemají")
např.: checked="checked">

na začátku dokumentu musí být
1. XML deklarace
např: <?xml version="1.0" encoding="iso-8859-2"?>
2. deklarace typu dokumentu
např. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
" http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd "
>

3. jiný způsob ošetření speciálních znaků použitých např ve skriptech
V HTML
<script type="text/javascript">
<!--
    zápis javascriptu
-->
</script>

V XHTML
<script language="JavaScript">
<![CDATA[
    zápis javascriptu
]]
>
</script>

4. ještě drobnost & zapisujeme v XHTML &amp;

5. atributy id a name
XHTML upřednostňuje atribut id i když povoluje i name