htmlのバージョンを宣言するためのものです。基本的に、<html>の前に書きます。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <title>DTD宣言とは</title> <body> <p>DTD宣言は、その文書がhtmlのどのバージョンで書かれたものかを宣言するためもので、htmlタグを書く前に書きます。</p> </body> </html>
上記の!DOCTYPE〜の部分がDTD宣言です。DTD宣言には以下のような種類があり、それぞれがそれぞれの(x)htmlのバージョンを表しています。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
DTD宣言は最初のうちはどれを使えばいいか分からないかもしれません。なので分からないうちはhtmlを使っている方はhtml4.01 transitionalバージョンを。xhtmlを使っている方はxhtml1.0transitionalバージョンをお使いください。
DTD宣言が無くてもhtmlをブラウザで表示させることは可能ですが、「DTD宣言があればより理想的」であると思っておいてください。
htmlとxhtmlの違いですが、xhtmlは「より将来的にインターネット以外の色々な技術でもその文書を解析・利用できるように」という願いを込めて作られたものです。なので、xhtmlの方が新しいバージョンではあるのですが、古いブラウザなどのプログラムではxhtml文書を解析できない可能性があります。また、特にhtmlが将来的に無くなるという話も今の所存在しないので、特に優劣無くhtml、xhtmlどちらでも好きな技術でウェブサイトを作っていいと思います。