XMLの使われているシーン
意外と身近なXML
XMLは、主に開発者が扱うデータであり、コンピューターのプログラムの一部として使われていることが多く、なかなか人目に触れない存在です。そのため、「よく分からない」という印象持っている人も多いかと思います。
ここで、いくつかの事例をご紹介することにより、XMLが身近な存在であることを知っていただきたいと思います。
アプリケーションの保存データについて
- 「Microsoft Office」の文書ファイルである「Word」のDOCX(*.docx)やExcelのXLSX(*.xlsx)などは、「Office Open XML」という標準規格です。
- 「Adobe InDesign」の互換ファイルであるIDML(*.idml)や旧形式のINX(*.inx)も、XML互換データです。
- ベクトル画像(線画)で画像を表現する、SVGという形式があります。この形式のデータは、Webブラウザーなどでも表示できます。
- X3DやVRMLは、3次元グラフィックスを表現するフォーマットとして標準化されたものです。
- TMXは、翻訳メモリーデータの標準規格であり、当社で活用している「TRADOS」でも、このデータを取り扱うことができます。
XMLを使う理由とは?
それぞれのフォーマットに、それぞれの理由がありますが、一つは互換性だと思われます。
XMLは、HTMLやCSVなどと同じメタデータ(テキストデータ)のため、「メモ帳」などで開くことはもちろん、編集することもできます。ややデータが重くなることもありますが、ツリー構造(階層化)でデータを保持できるため、人にとってもコンピューターにとっても、解析しやすいという特長があります。同じ分野のソフトウエア同士でも、データをやりとりする場合、それぞれの独自フォーマットによる授受は難しいこともあります。さらに、使用目的が全く異なる場合などは、より一層独自フォーマットのデータの流用は困難になります。そこで、XMLに基づいたフォーマットを使うと便利だということでしょう。
もう一つは、使い勝手です。HTMLやCSVもメタデータなので、XMLと同様のことができそうに思えます。しかしHTMLの場合、開始タグと終了タグが一致していなくても、厳密には間違いではないため、データが曖昧になる恐れがあります。また、そもそもHTMLはタグ名が決められている上に、用途がWebドキュメントに偏りがちなため、いろいろな目的には使いにくい場合も考えられます。一方CSVは、階層化されたデータの表現には不向きです。2次元のマトリックス(「Excel」のシートのイメージ)になっているため、不要な行や列にもセル(データ)が存在してしまい、冗長になりやすくなります。また、列の拡張は容易でも、削除は行いにくい面があります。その点XMLは、自由にタグ名や階層の深さ、ルールを定義することができ、用途に適した標準化規格(ルール)に基づいたXMLをつくって、データを共有することも可能です。TMXによる翻訳データの互換や、DITAによるドキュメントの標準化の動きは、このあたりにあります。
このように、SGMLやHTML、CSVなどから見ると、XMLは後発のフォーマットではあるものの、その自由度や柔軟性から、人々が直接意識しないシーンで徐々に使われ始めています。少なくとも、当社の試行錯誤がスタートした2000年前後よりも、格段に幅広い分野で使われるようになっています。
当社も、XMLを使って「自動組版を行うこと」を重要なテーマとしていましたが、現在は自動組版以外にも、翻訳による多言語展開のデータとして扱ったり、CSVデータから階層化データをつくってカタログ(PDF)やパーツリスト(HTML)を作成するなど、中間データとしてデータを整形する処理にも活用するようになってきています。