XML 文書での MIME 型の位置附け

MIME 型に附いて

MIME 型は、インターネットの世界では重要な地位を占めています。実際、そのデータや文書がどのような性質を持つものかを知る上で、最も重要な手掛かりとなっているからです。適切な MIME 型を明示させることにより、クライアント側で適切に、効率良くデータを処理することが可能になります。

一般的な XML 文書の MIME 型

XML 文書が XML 文書として見倣される為にも、やはり MIME 型の明示が必要になります。 RFC 3023 (XML Media Types) では、以下の型が規定されています。

text/xml
前提智識を持たない人であっても「素のまま」で読める XML 文書。 http ヘッダなどで文字符号化方式を明示されていない文書は、強制的に US-ASCII と見倣される (XML 宣言中に明示することで融通を利かしてくれる処理系は存在するだろうが、本来は許されない)。
application/xml
前提智識が無い人が「素のまま」では理解できない XML 文書。 http ヘッダなどで文字符号化方式を明示されていない文書でも、 XML 宣言中で明示されているか、あるいは UTF-8/16 で記述されていれば、正しく処理が出来る。

この説明から分かる通り、巷に出回っている XML 文書には、 text/xml はそぐわないことが分かります。しかし実際には、サーバ側もクライアント側も、 application/xml 文書のサポートは遅れています。例えば、 XML 対応をうたっている Web ブラウザの中には、 application/xml で送られた XML 文書をレンダリング出来ないものもあるそうです。両者も同一の拡張子を用いることが多いため、両者が登録されているサーバでは、優先的に text/xml として送られることもあるように思われます。

かたや、とりわけ日本国内のサーバでは、 .htaccess などによる http ヘッダの操作が不可能なものも多数存在します(ISP 提供のサーバや無料サーバでは多いようです)。本来の仕様に従えば、出回っている国内の XML 文書の多くは、悉く文字化けを起こすはずです。しかし現にそうなっていないのは、クライアント側である程度の融通を利かせているためであり、仕様を軽んじ、サーバ側の「怠慢」を促す意味で、決して許される行為ではありません。

最近(2004年12月現在)は、RSSやFOAPといった、メタデータを記述するための言語が揃い、各種サーバにおいても実装されつつあります。また、XML文書はHTTP経由で伝達させるにしても、Webブラウザによる閲覧に加え、データベースソフト等のように様々な処理系によって扱われます。これらの処理系に負担をかけさせないためにも、MIME型に関しては常に関心を払う必要があります。

XML 応用言語の MIME型 … +xml 接尾辞

RFC 3023 では、 XML をベースとした文書(データベースやプログラム、画像データ、スキーマなども含める)の MIME 型に +xml 接頭辞を附加させるよう求められています。

実際には

現在、 +xml が実際に用いられている例がいくつか存在します(2004年12月末現在)。

RFC などで規格化され、 IANA に登録されたもの

application/cnrp+xml は、正式にRFCとして規格化されています。IANAのサイトの情報が間違っていたようです。

IANAに登録されたものの、RFC等によって規格化され損なったもの、あるいは規格化が明文化されていないもの

IANA には登録されていないが、仕様書などで明記されているもの

IANA でも仕様書でも明記されていないが、使用例が存在するもの

利点と欠点

+xml 接尾辞を導入することにより、以下の利点があります。

ただし、このような取り決めにも問題があります。

本当に求められるものは

もはや MIME 型だけでは解決出来ない

単一の XML 応用言語からなる文書ならば、特に問題は起きないと思われます。

しかし実際には、複数の応用言語を組み合わせたり、独自の拡張を施した XML 文書を的確に処理系に認識させることが求められます。このような拡張性は XML の大きな利点の一つです。

しかし MIME 型は、データの役割と文書とを「一対一」に対応させることしか出来ません。従来の如く「MIME 型によって起動するアプリケーションを決める」方法は、 XML 文書に限って言えば、もはや破綻していると言えるかも知れません。

ではどうするのか

幸い XML 文書においては、名前空間によって XML 文書の特性を「住み分ける」ことが可能です。同一文書内においても、「どこからどこまでが、どのような応用系か」は一目瞭然です。つまり、今後は、以下のような「方針」を立てることにより、多くのアプリケーションで巷の XML 文書を適切に処理出来るようになるかと思われます。

謝辞

このコーナーを作りにあたり、村田真 様から直截アドバイスを頂戴致しました。どうもありがとうございます。