1999年10月12日
前回見てきたように、XMLはタグによって意味や階層を記述する言語(Markup Language)の一種です。しかし、「タグによって意味や階層を記述するというのであれば、HTMLやSGMLも基本的に同じはずなのでは?」と思われるかたも多いでしょう。
今回はHTMLやSGMLとXMLの違い、そしてXMLをマニュアルに使う意味についてまとめてみます。
XMLを利用したデータベース運用という観点から、なぜSGMLではなくXMLなのかという疑問をお持ちの方も多いかと思います。当研究所はSGMLやXMLの専門家というわけではないので詳しいことは差し控えますが、その道のプロのお話によると「SGMLもXMLも、できることにほとんど違いはない」ということです。
それでは、なぜわざわざXMLが提唱されたのでしょう?
それは処理したデータをWebに流したいと考えたときに、現行のSGML規格で処理したデータはWebに不向き(どうしても処理が重くなる)であるという理由からです。この問題を解消するために、Webに対する適性を強化したSGMLのサブセットとして、XML規格を制定することになったと言われています。策定経緯からも推測できるように、SGMLを利用して現状でワークフローを構築していた環境では、XMLへの以降は容易であるようです。つまりSGMLとXMLを比較することはほとんど無意味で、将来的にデータをそのままWebに流せる形式で保持したいのであればXMLを使えば良い、ということだけのようです。
もっとも今後は、何かにつけてWebアプリケーションを中心とした世の中になることが予想されます。EC(Electronic Commerce)運用の面からも注目を浴びるXMLですから、今後はXML関係のツールも数多くリリースされるようになるでしょう。ツールの整備が進み、かつSGMLとできることが同等であることが認知されてくるのであるならば、特に事情がない限りわざわざSGMLを選択する必然性は薄れてくるのかもしれません。
ところでWebとの親和性を語るのであるならば、なぜHTMLではいけないのか?という疑問を抱くかたがいらっしゃるのも当然ですね。
前回見てきたように、XMLはHTMLと比較して構造単位でのデータの取り回しがしやすいという長所があります。しかし、それ以上にXMLを採用する利点となるのが、タグを任意に設定可能であるという点です。この「任意に拡張できる」という仕様こそXMLがeXtensibleという名称を持つ所以で、文章の意味に合わせたタグを定義して、使用することができるのです(もちろん「その場に応じて好き勝手に」というわけにはいきませんが、拡張可能であるのかないのかには大きな差があります)。確かにHTMLでもある程度のことはできるようになってはきているものの、やはり強引になんとかしているという感が拭えません。この面に関しては、データの再利用性も含めて、XMLに分があると言えるでしょう。
しかし、最初から使い捨てのつもりで作成するデータや、データの再利用性には目をつぶってでも、見栄えを追求するレイアウトを提供したいような場合には、無理にXML化するのではなく、最初からHTMLで通してしまっても十分なのではないかと思います。また、現状ではXMLをまともに解釈できるブラウザがほとんど存在しないことにも注意が必要です(Microsoft Internet Explorer5のXML解釈も結構怪しい . . . らしいです)。電子マニュアルや一般向けのWebコンテンツをXML形式で提供するつもりであるならば、この辺の問題に十分注意を払う必要があるでしょう。
HTMLやSGMLとの違いを踏まえた上で、よく言われるようにXMLがマニュアルに対して本当に親和性を持つものであるのかどうか、考えてみましょう。しかし「マニュアル」という対象はあまりに大きすぎるので、紙マニュアルと電子マニュアルの2つに分けて考えてみたいと思います。
紙マニュアルでXMLを利用する場合には、大元の出力データをXMLで記述するかどうかの問題に還元されます。従って、制作データをXML形式で保持すべきかどうかということが問題となります。この点を考慮に入れると、以下の3点がXMLを導入するかどうかの判断ポイントとなるでしょう。
電子マニュアルでは、マニュアルのコンテンツそのものをXML形式で記述して、ユーザーはXML対応のブラウザ(ないしはヘルプビューワ)で閲覧することになります。現実的にXML対応ブラウザが出揃っていない現状ではあくまで可能性に言及するのみとなりますが、XMLを利用することで以下のような可能性が開けてくるのではないかと思われます。
いかがでしたか?
結論としては、対象領域の性質を十分に考慮した上で、XML 化を検討すべきというところでしょうか。最終的には導入を決断する人の判断次第ということになってしまうのですが、多少は「XMLってマニュアルに使えるの?」という疑問の解消のお役には立てたのではないかと思います。
前回同様に、厳密に言うと違ったり、誤解を招くような説明もあるかと思います。「とにかく使えるのかどうなのか」という問いに答えられるように理解のしやすさを優先したためなのですが、「それにしてもあんまりでは?」という苦情などありましたら、お手数ですがご意見をお寄せください。