XML宣言とDOCTYPE宣言を記載

XHTML文書に必ず必要なXML宣言とDOCTYPE宣言についての解説。

CSSレイアウト実践講座

CSSレイアウト実践講座について

運営者プロフィール

運営者ブログ*

お問い合わせ

XML宣言とDOCTYPE宣言を記載

HTML文書はHTMLタグから始まりますが、XHTMLの場合、HTMLタグの前に「XML宣言」と「DOCTYPE宣言」を記載する必要があります。

XML宣言とDOCTYPE宣言

[XML宣言]

<?xml version="1.0" encoding="UTF-8"?>

[DOCTYPE宣言]

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" />

簡単に言うと、「XML宣言」は「この文書はXMLだよ」ということを宣言するためのもの(「XHTML」と「XML」の関係にういてはXHTMLとはを参照)、「DOCTYPE宣言」は言語のバージョンや定義を宣言するためのものです。

DOCTYPE宣言は、バージョンや定義に合わせいくつかの書き方があるのですが、XHTMLでサイトを作成する場合、上記のとおりに書いておけば問題はありません。(DOCTYPE宣言の書き方については、AllAboutのこちらのページが参考になります。)

宣言とか定義とか、読むと頭がこんがらがってしまいそうになりますが、正確な意味などは置いといて、とりあえず「書かなきゃならないもの」として、XHTML最上部にコピペしておきましょう。

HTMLタグの書き方

XML宣言、DOCTYPE宣言に加え、HTMLタグの書き方も少々変わってきます。

<html lang="ja" xml:lang="ja" xmlns="http://www.w3.org/1999/xhtml">

こちらも「こういうもの」ということで^^;、上記のように書くようにしましょう。

PHP利用の際の注意点

PHPを利用している場合、前述のXML宣言を記載するとエラーが出てしまいます。これは「<?」で始まるXML宣言が、phpを省略して書く際の冒頭部分「<?php」と混同してしまうことで発生するものです。

phpを利用する場合は、

<?php echo('<?xml version="1.0" encoding="UTF-8"?>') ?>

phpでXML宣言を書き出すか、

php_flag short_open_tag Off

「.htaccess」に上記のように記載すれば問題ありません。(ただし、.htaccessファイルに上記の記述を行った場合、phpを「<? ~ ?>」という省略形で書くことができなくなりますので、ご注意ください。)