XML では自由に独自のマークアップ言語(タグセット:要素タイプ名、属性名)を設計できます。多くの人が利用するタグセットは、標準的なタグセットを共有する方が効率が良く、相互運用性も高まります。そこで、ひとつの XML 文書を作成するのに、さまざまなマークアップ言語からタグセットを拝借し、組み合わせて利用できるような仕組みが必要になります。
それぞれのタグセットがユニバーサルな名前、つまり世界で一意に定まる名前を持つための方法が必要です。これを実現するのが、1999年に W3C から勧告された XML 名前空間 [xmlns] です。XML 名前空間は、タグセットを固有の URI と組み合わせる(修飾する)ことで、複数の語彙を混在させるメカニズムです。
名前空間は、タグセットを組み合わせて利用できるようにするだけでなく、ウェブ上で共有・交換される情報の意味を正確に示し、コンピュータに理解可能にするためにも非常に重要な役割を果たします。
XHTMLの場合は html タグで次のような名前空間の宣言を行います。
この宣言を最初に行うことで、html 要素内に記述するタグは、接頭辞を持たなくても XHTML の名前空間に属することになるのです。
言語コードの宣言は、文字化けを防ぐために大切です。
言語コードとは、(X)HTML 文書の内容がどこの国の言語で書かれているかを示すためのものです。
HTML 文書は meta 要素で言語コードを指定する方法が用意されています。一方、XHTML 文書においては、XML 宣言を用いて言語コードの指定を行う必要があります。
XHTML 文書では、文書の先頭 (1行目) にXML宣言を記述します。この XML 宣言の前には、空白を含めて何も置いてはならないことになっています。
XMLの仕様において xml:lang 要素を記述することが求められております。HTML 4 では言語を示すために lang 属性が使われますが、XHTML 1.0 ではセットで両方の記述が求められます。さらに XHTML 1.1 や XHTML Basic では、lang 属性は廃止され、xml:lang 属性のみに統一されます。
ホームページ・ビルダー14で、「ツール」 から 「オプション」 を選び、「ファイル」 タブの中の 「XHTML 1.0」 をチェックし、さらに 「保存オプション」 の 「LANG 属性を指定する」 にチェックをし、「日本語」 を選ぶと、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" lang="ja" xml:lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<title></title>
</head>
<body></body>
</html>
lang 属性および xml:lang 属性に ja と、日本語の言語コードが指定されます。
言語コードとは、XHTML 文書の内容がどこの国の言語で書かれているかを示すためのものです。
言語コードを正しく指定することによって、その Web ページで使用される言語が明確になります。言語コードが適切に明示されていないと、音声ブラウザが読み上げるときなどに正しく発音されない場合もあるので、アクセシビリティの点からも正しい言語コードの指定が重要になります。
言語名 | 言語コード | 言語名 | 言語コード |
---|---|---|---|
日本語 | ja | 中国語 | zh |
英語 | en | 韓国語 | ko |
アメリカ英語 | en-US | ポルトガル語 | pt |
ドイツ語 | de | オランダ語 | nl |
フランス語 | fr | ロシア語 | ru |
イタリア語 | it | ポーランド語 | pl |
スペイン語 | es | ラテン語 | la |
ギリシア語 | el | スワヒリ語 | sw |