この記事は XHTML 1.0 入門としての記事です。
HTML 5 入門に於ける該当記事は、HTML 5でマークアップされた文書をHTML文書にするにはをご覧ください。
実際のマークアップで解説した通り、マークアップの際に最低限覚えておきたい要素はそれ程多くはありませんが、実際に公開するには文書の型を完成させる必要があります。
ここでは、マークアップされたテキストを完全なHTML文書にするための方法を解説します。
先ず、マークアップされたテキストには、文書本体とそれ以外の部分に分かれております。
文書本体以外の部分は現時点では題名のみですが、これはHTML文書本体より前のヘッダと呼ばれる位置に記述されております。
現時点ではヘッダに含まれている要素は題名のみですが、他にも加えておくのが望ましい情報があります。
それは、文字コードのエンコーディングに関する指定です。
日本語文書の場合、何種類ものエンコーディング法がありますので、そのうちのどれで記述されたのかを指定する必要があります。(※1)
文書に関する情報はメタ情報と呼ばれ、これはヘッダ内に<meta>要素としてマークアップされます。
文書の型及び利用した文字コードをメタ情報として記述するには、以下のような<meta>要素を記述します。
<meta http-equiv="content-type" content="text/html; charset=文字コード名" />
>の直前に/を付ける事で終了タグが省略されたものとします。日本語文書の場合、文字コードのエンコーディング名として主に以下のものがあります。
shift_jisshift-jis(区切りがアンダスコアではなくハイフンになっている)としてはいけません。euc-jputf-8ここで注意しなければならないのは、この指定はアスキィ文字以外の文字が出る前に行なわなければならないと言う事です。
アスキィ文字以外の文字が現れるまでにこの指定がないと、アスキィ文字以外はどの文字コードで書かれたのかを認識する事が出来なくなってしまうからです。
つまり、題名(<title>要素)に日本語文字が含まれている場合には、その前に<meta>要素で文字コードを指定する必要があります。
従って、この<meta>要素は<title>要素より前に書かなければならないと言う事になります。
以上の事から、文字コードのエンコーディングの指定は以下のようにマークアップされる事となります。
shift_jisを適切なエンコーディング名に書き直してください。<meta http-equiv="content-type" content="text/html; charset=shift_jis" /><title>HTMLとは何か</title><h1>HTMLについて。</h1>(以下略)
文書のエンコーディング名を指定したら、取敢えずヘッダとなる部分を<head>要素としてマークアップします。
<head><meta http-equiv="content-type" content="text/html; charset=shift_jis" /><title>HTMLとは何か</title></head><h1>HTMLについて。</h1><h2>HTMLとは。</h2>(中略)
続いて、マークアップされたテキスト内の文書本体を<body>要素としてマークアップします。
文書本体とはマークアップされる前のテキスト全部ですので、これを一括して<body>要素としてマークアップします。
<head><meta http-equiv="content-type" content="text/html; charset=shift_jis" /><title>HTMLとは何か</title></head><body><h1>HTMLについて。</h1><h2>HTMLとは。</h2><p>HTMLはウェブで公開する電子文書を作る為の言語です。</p>(中略)<p>HTMLの最大の特徴は「ハイパーリンクが使える」「どんな環境でも読めるようになっている」この二点に尽きます。</p></body>
マークアップされたテキストはヘッダと本体の二つの要素からなりますので、後はこれをまとめたHTML文書全体を<html>要素と言う一つの要素としてマークアップします。
<html>要素はHTML文書で最上位にある要素(ルート要素)となります。
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"><head><title>HTMLとは何か</title></head><body><h1>HTMLについて。</h1>(中略)<p>HTMLの最大の特徴は「ハイパーリンクが使える」「どんな環境でも読めるようになっている」この二点に尽きます。</p></body></html>
XHTML 1.0では<html>要素には三つの属性が与えられます。
XHTML 1.xでは、必ずHTML要素にxmlns="http://www.w3.org/1999/xhtml"属性を与えなければなりません。
これがないと、ウェブブラウザに依ってはHTML文書として取扱ってくれない場合があります。
文書が何語で書かれているのかを示します。
現在ではウェブブラウザが適切なフォント等を選択するために利用する程度ですが、自動翻訳の技術が進歩すればこれを元にネイティヴの言語に翻訳する事も可能になるでしょう。
同じ目的の属性が二つあるのは歴史的な事情に依ります。
日本語文書であればいずれも"ja"とします。
以上でマークアップは完成しましたが、最後にこのマークアップされたテキストがXHTML 1.0に則ったHTML文書である事を宣言します。
XHTML 1.0 トランジッショナルの場合、文書の冒頭に、以下の宣言を付けます。
<?xml version="1.0" encoding="文字コード名"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
以下、この二行について説明します。
一行目はxml宣言と呼ばれるもので、処理命令の一種です。
XHTMLでは一行目にこのxml宣言を記述する事が求められております。(※2)
xml宣言では文字コードのエンコーディングも指定しますが、XHTMLを在来のHTMLの代わりに用いる場合、このxml宣言でのエンコーディング指定が認識されない事があります。
このため、メタ情報でのエンコーディング指定も併用しなければならないのです。
二行目が文書型宣言と呼ばれる宣言です。
HTMLには在来のHTMLやXHTMLなど、様々な文書型が定義されておりますが、そのうちのどれに従っているかを宣言するものです。
例えば、
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
と言う文書型宣言の場合、
と言う意味になります。
実際に文書型を宣言すると以下のようになります。
<?xml version="1.0" encoding="shift_jis"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"><head><meta http-equiv="content-type" content="text/html; charset=shift_jis" /><title>HTMLとは何か</title></head><body><h1>HTMLについて。</h1>(中略)<p>HTMLの最大の特徴は「ハイパーリンクが使える」「どんな環境でも読めるようになっている」この二点に尽きます。</p></body></html>
以上でHTML文書として完成しましたが、そのマークアップは以下のようになっているでしょう。
<?xml version="1.0" encoding="shift_jis"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"><head><meta http-equiv="content-type" content="text/html; charset=shift_jis" /><title>HTMLとは何か</title></head><body><h1>HTMLについて。</h1><h2>HTMLとは。</h2><p>HTMLはウェブで公開する電子文書を作る為の言語です。</p><p>HTMLは<a href="http://www.w3.org">W3C(ワールドワイドウェブコンソーシアム)</a>に依って標準規格化されております。</p><h2>HTMLの特徴。</h2><p>HTMLの特徴は画像を埋め込めるとか、文字の色など表示方法を指定出来るとかではありません。</p><p>確かに画像を埋め込んだりする事も可能ですが、表示方法は寧ろ指定しない事こそ本来のHTMLの在り方です。</p><p>HTMLの最大の特徴は「ハイパーリンクが使える」「どんな環境でも読めるようになっている」この二点に尽きます。</p></body></html>
総括しますと、HTML文書の最終的な形は以下のようになります。
以下、HTMLの知識がある方への補足です。
本来、文書に用いられた文字コードのエンコーディングはウェブサーヴァが文書を配信する際に配信コンテンツに関する情報の一つとして与えるべきものとされております。
その観点からは文字コードをHTML文書内で指定する必要は無いといえるのですが、制作者は以下の理由からHTML文書にはエンコーディングの指定を行う事を奨めております。
XHTMLに限らず、XML及びその応用言語では冒頭にxml宣言を付ける事が求められておりますが、文書の文字コードがUTF-8またはUTF-16の場合には省略する事も出来ます。
従って、文字コードのエンコーディングがUTF-8かUTF-16のいずれでもない場合には、xml宣言が必要となります。
但し、サーヴァがエンコーディングを指定して配信した文書なら、文字コードのエンコーディングがUTF-8かUTF-16のいずれでもない場合でもxml宣言の省略が可能ですが、ローカルで保存した場合にはその文書はUTF-8またはUTF-16でない限り不正な文書になってしまいます。
結局、文字コードのエンコーディングがUTF-8かUTF-16のいずれでもない場合には、xml宣言は事実上省略出来ないと言う事になります。