HyperText Markup Language
形式言語として見た場合「構文規則」(あるいは文法)に相当する「スキーマ」は、HTML4まではDTDとして公開され要素ごとに記載することの出来る属性、内容に含むことの出来る要素などが定められていた。HTML 4.01では厳密なもの、HTML 3.2からの移行過渡期のためのもの、フレームを用いた文書のためのものといった3つのDTDが定義されていた。
HTML 3.2では見た目を左右する要素や属性が追加されたがHTMLは本来文書構造を示すためだけにその存在意義があり、それらの要素は目的に反するものとされた。そのため視覚的・感覚的効果を定義する手段としてスタイルシート(一般にはその中のCSS)が考案された。見た目を左右する要素や属性の一部はHTML4以降では非推奨とされており、HTML 4.01 Strictでは定義されていないので使用できない。ただしHTML 4.01 Strictで定義され、非推奨とされない要素や属性の一部にも見た目を左右するものがある。装飾的な視覚表現のためにそれらの要素や属性を用いているのであればその内容に適する要素を用いた上で、スタイルシートで表現を指定するのが望ましいとされている。
HTMLで書かれた文書をHTML文書と言い、HTMLでは、まず文書型宣言を書く。HTML構文を用いる場合は文書型宣言を以下の通り書かなければならない。
次にHTML文書の例を挙げる。
このHTML文書は次のような構造を示している。
<!DOCTYPE html>:文書型宣言このテキストが最新のHTMLであることを示す。
<html lang="ja">:html要素。また、lang="ja"で、言語コードjaの言語が使われていることの明示。 <head>:head要素(この文書のヘッダ情報の明示) <meta ... />:meta要素(文書のメタ情報)。ここでは、charset="UTF-8"で、文字コードが、「UTF-8」であることを示す。 <link ... />要素(他のリソースとの関連を明示。この場合、作者の明示) <title lang="en">:title要素(この文書のタイトル)の明示。また、この部分はenの言語が使われていることの明示。 <body>:body要素(この文書の内容の明示) <article>:article要素(この要素が、記事であることを明示) <h1 lang="en">:h1要素(第一レベル)の見出しを明示。
HTMLはドキュメント構造(モデル)、各要素の役割/意味(セマンティクス)、表現する構文(シンタックス)を定義する。