コンテンツへスキップ
ものがたり
戻る

2005-01-15

今日は共通一次センターですなぁ。受験生の皆様がんばってくらさい。

XMLに期待しすぎでは

昨日書こうと思ってたんだけど考えがまとまらなかった私はなぜXMLを愛していないか(Matzにっき)から。まとまらないうちに吉松さんに先を行かれてしまいましたが。

XMLの最大の利点って、デバッグのしやすさじゃないかなあ。リトルエンディアンな浮動小数点を16進数で追っかけなさいなんて言われた日にゃ、僕は回線切って首吊るくらいしか出来ません1。で、テキスト形式でいい、っていうんだったら、別にデフォルトで(しかも陰の薄いデフォルトとして)XMLを選ばない理由は、そんなに無い気もする2。もちろん、非XMLであることで成功したフォーマットはたくさんある。XPath, CSS, RELAX NG Compactなんかは、XMLにさっさと見切りを付けた良い例だ3

僕は案外、特定の環境だけでしか使えないデータにも、XMLを使うことに抵抗はない。ただし、それはツールサポートがあるから楽ちんだし、程度の意味であって、そんなスキーマを互換データとして使うような人たちには、あまり関わりたくないし、逆にツールが不便であればそんなものにデータ/オブジェクト構造を拘束すべきではない(つまり、System.Xml.Schema.XmlSchema sucks)。突き詰めて考えれば、テキストであるという時点で、ツールが豊富にあるXMLであった場合と比べて、Javaや.NETとの相性はそれほど変わらないように思える。

S式については、僕はLisp系言語はDSSSLしか知らない(wので、コメントすることはできない。

あとは解釈の自由度という観点でも、半構造性は有意義だと思うのだけど、散々語られていることなので(というかここまで書いたことのほとんどは足跡だらけ)、ここで改めて付言することも無いだろう。

そんなわけで、XMLはinteroperabilityのためだけにあるべき、と断定されてしまうと、僕としてはけっこう困惑してしまうわけです。僕はXMLを使えばこんなことやあんなことが出来ます、なんていう虚偽広告まがいの宣伝文句から距離を置いているので(あるいは置けているので)、そう思っているだけかもしれませんが。.NETを使えばWebサービスもリッチクライアントも出来るかもしれないし、ISO標準でプラットフォーム互換かもしれないけど、その両方を組み合わせると真っ赤なウソになるのと同様、XML界隈では未だにこの手のノイズが絶えないのかもしれない。だからピリピリしてしまうのかも。

って、プログラミング言語との相性っていうのは、そういう話じゃないのかな。まあ気にせずというか気にしていることは隠しておいて続けよう。

Matzにっきでは、primitive typeを表現できなかったものか、という話で終わっているけど、強く型付けされたXMLなんてものは、non-deterministicな構造については実質的には4あり得ないわけで、deterministicな構造に限定してしまったら、一部のデータ構造…ええと、どんなんだっけ。Eric van der Vlistを読み直せばいくつか出てくる…は決して表現できなくなってしまう。だから、deterministicな構造のみを対象とする強い型情報すなわちXML Schemaを、XML本体とは分離した標準化方針は、正当なものであったと僕は考えている。

(ここでXML Schemaに対して罵詈雑言が5行ほど入っていたのだけどオフトピなので削除。)

そんなわけで、僕は「これはどうしようもなかったんじゃないかなぁ」という、やる気のない結論で、あまり深く考えずに終わりにしたいところです。ていうか、これがまさしく「利己的で無責任」ってことかなあ。

あれ、僕が一番XMLを愛していない?w

Footnotes

  1. XMLだって&だの だのが入れば読みにくいけど、それでもまだ全然簡単なはず

  2. 空白文字が重要だったり、XMLとして使えない文字に当たるバイナリを使わなきゃならないとしたら、とてもお勧め出来ない。

  3. XQueryみたいに、反XSLT=非XMLを前面に打ち出しすぎて、複雑怪奇なパーサ設計を要求するのはどうかと思うけど

  4. 形式的にはnon-ambiguousでさえあればあり得る、というかRelaxerではそうしているはず。


この記事を共有:

前の記事
XMLに期待しすぎでは
次の記事