HTMLとXMLの大きな違いは、要は、すべての開始タグと終了タグが対になっている(Well-Formed)かどうかである。Well-formedでなければパーサで処理できないためデータとして扱えなくなる。Well-formedでないHTML文書はスクレイピングを行って、構造化されたデータを引っ張り出してXMLに変換しなければならない。英語で"scrape"とは「削ること」。構造化されていない部分は機械的に削ることはできないため、意味のある部分を「人」が判断して例外があれば対応していくといった不毛な処理の積み重ねを行う必要がある。
これまでWeb2.0の明るい技術として語られてきたセマンティックウェブは、Well-formedなXMLであることが前提とされる。RSS、ATOMやマイクロフォーマットなどによるメタデータ化、つまり、CGMを作成する側において、あらかじめ検索を行いやすい状態に加工を行っておき、データを検索用に整理しておくことが必要とされてきた。
HTML5で作成されたコンテンツが実質的にWell-formedでなければ、Web世界の時計が大きく逆戻りすることになる。
HTML5はWell-formedなのだろうか。もちろん、標準HTMLの場合<!doctype html>においてWell-formedでなければ意味がない。XHTML対応のためのXML構文もあるが、これはXHTML1.1の互換性を担保することで既存サイトを取込むことが目的と思われる。あるいは、上位はHTML5と認知させXHTML2への流れをくい止める目的があるかもしれない。いずれにしても、HTML5の本筋ではない。
ちょっと話がずれるかもしれないが、XMLであればモジュール化も容易であった。
HTML5はモジュール化しないの?
HTML5で新たに追加するとしている要素や機能は、HTML4を丸ごと再定義しなくても、こうしたモジュールの設計によって可能になるものが多いように見える。XではないHTMLのモジュール化はやりにくいかもしれないが、XHTML版V5をモジュールベースで定義した上で、そこからHTML版V5をつくることはできるだろう。
モジュール化ができれば、HTMLの仕様がスマートになって綺麗になる。XMLであれば、こういったメリットも享受できるのだ。
話は戻るが、もしHTML5がWell-formedであるのなら、私はXHTMLのことは忘れてHTML5を支持する覚悟はある。(私は手のひらを返す早さは誰にも負けない自信がある。)
一方のXHTMLにおいても、XMLの特長を生かしきれない中途半端な実装が行われてきたことも事実である。例えばXMLの可読性はもっと強調されるべきであったが実際にはそうなっていない。XMLの要素は構造を表現するのに適しているし、XMLのタグを見ればどういう構造なのかをすぐに理解できる。ところが、XHTMLでは実際にはタグの要素名が使われずに属性が多用されてきた。何でもかんでもDIV要素のclass属性を使うのであれば別にXMLでなくてもいいじゃないかと思う。大部分のセマンティックウェブ技術もまたDIV要素のclass属性の多用であり、要素タグを追加することはあまりなかったと思う。それであれば、XHTMLを使う理由はなく、HTML5のDIV要素を使えばよいことになる。モュール化はできないかもしれないが、コンテンツ作成者から見たら実質的には関係ない。むしろ、単純化されるメリットの方が大きいかもしれない。
以下の例を見ればわかるが、HTML5の方がセマンティックウェブとXMLが目指した理想に近い表現となっているのは、皮肉なことである。
XHTMLの文章構造
<body>
<div id="header">...</div>
<div id="nav">...</div>
<div class="article">
<div="section">
...
</div>
</div>
<div id="aside">...</div>
<div="footer">...</div>
</body>
HTML5の文章構造
<body>
<header>...</header>
<nav>...</nav>
<article>
<section>
...
</section>
</article>
<aside>...</aside>
<footer>...</footer>
</body>
<関連記事>
開発者の率直な意見をまとめてみた
標準が生き残るのは学習コストが見合う場合に限る
セマンティックウェブにXMLはいらない?
XMLシリアライゼーションの意味
0 件のコメント:
コメントを投稿