【番外編】そもそも、なぜXMLなのか?
概要
今回は、「なぜXMLを使うのか?」について、あらためて確認してみたいと思います。XMLのメリット・デメリットや事例をご紹介することで、XMLを活用した効率化の参考にしていただけたらと思います。
当社では、主に取扱説明書のレイアウトやHTMLに出力するための手法として採用していますが、その他にもデータベースの内容をHTMLでプレビューしたり、複数のCSVファイルを1つに統合するためにXMLを活用するなど、業務の効率化に役立てています。
表形式のデータと比較する
XMLは、階層化したデータを持つことができる点が最大の特長だといえます。そこで、表形式のデータ(ExcelやCSV、データベースなど)との違いについて説明します。
文章だけでは分かりにくいので、簡単なサンプルで考えてみましょう。
家電製品(テレビ)の仕様
機器名 | メーカー | 大きさ | タイプ | パネル性能 | HDR | LEDバックライトタイプ | 倍速性能 | 録画機能 | 再生機能 |
---|---|---|---|---|---|---|---|---|---|
テレビAAA | A社 | 40インチ | 液晶テレビ | 4K | 対応 | エッジ型 | 倍速液晶 | 内蔵HDD録画 | ブルーレイ再生 |
テレビBBB | B社 | 60インチ | 有機ELテレビ | フルハイビジョン | 未対応 | 直下型 | なし | 内蔵HDD録画・ブルーレイ録画 | ブルーレイ再生・DVD再生 |
上記の表は、見てのとおり横長になっています。
同じ内容をXMLで表現すると、次のようなイメージになります。
Windowsのエクスプローラーで、フォルダーを分けてファイルを整理することに似ていて、製品・カテゴリー・性能などを区分けして記述できます。
この階層化によって、人間側にも理解しやすく、コンピューター側も制御しやすいデータになっています。これが、XMLのメリットの一つです。
フォルダー分けのように整理できるため、次の表のようにほとんど同じ内容の場合でも、XMLなら簡略化した記述が可能です。
機器名 | メーカー | 大きさ | タイプ | パネル性能 | HDR | LEDバックライトタイプ | 倍速性能 | 録画機能 | 再生機能 |
---|---|---|---|---|---|---|---|---|---|
テレビAAA | A社 | 40インチ | 液晶テレビ | 4K | 対応 | エッジ型 | 倍速液晶 | 内蔵HDD録画 | ブルーレイ再生 |
テレビAAA2 | A社 | 50インチ | 液晶テレビ | 4K | 対応 | エッジ型 | 倍速液晶 | 内蔵HDD録画 | ブルーレイ再生 |
テレビAAA3 | A社 | 60インチ | 液晶テレビ | 4K | 対応 | エッジ型 | 倍速液晶 | 内蔵HDD録画・ブルーレイ録画 | ブルーレイ再生・DVD再生 |
次のように、ベースとなる製品の下に派生品の情報を追加し、変更点だけを記載することによって、分かりやすくなるだけでなく、データ量も削減できます。
例えば表で記述している場合、列(フィールド・縦の列)はあらかじめ決められたフォーマットになります。DVDやブルーレイを再生できるかどうか、というフィールドがあった場合、再生機能がない製品では、DVDのフィールドもブルーレイのフィールドも不要になりますが、データ上は記述せざるを得ないため、冗長なデータとなってしまいます。
XMLでは、必要なデータを自由に定義・記述できるため、例えば空気清浄機のような全く異なる分野の機能を持ったテレビが出てきても、新たなフィールドを自由に追加して表現できます。
当社の業務においても、最初は取扱説明書で3つの画像をレイアウトするといった開発を行っていて、途中で想定外の「表も追加したい」という要望が発生したときでも、XMLであれば自由に追加できるため、用途に応じてXMLを活用しています。
HTML形式と比較する
同じメタデータ形式であり、タグ(<html> や <table> など <> で囲った文字)で表現するHTMLとの違いについて説明します。
簡単なHTMLのサンプルコードは次のようになります。
<h1>タイトル</h1>
<img src="sample.png" alt=sample>
<p>サンプルページの<br>本文テキストです</p>
XMLでは、上記のような表現はエラーになります。
まず、画像を示す<img>タグについて、閉じタグ「</img>」がありません。または、タグの終わりが分かるように、「/>」と記載する必要があります。さらに、属性についても「alt=”sample”」というようにダブルクォーテーションで値を囲む必要があります。
次の本文の段落である<p>タグについても、文字間に改行タグ「<br>」が入っていますが、閉じタグがないのでエラーになります。
このように、XMLで記述すると面倒なため、デメリットがあるように思えます。しかしHTMLでは、タグが閉じられていなかったり、属性の書き方が曖昧でも通用する(ブラウザーで表示できてしまう)ため、データを流用したい場合に厳密なデータを取得できないときがあります。
HTMLは最終出力の成果物という傾向が強く、またWebサイトなど画面上での表示に特化しています。
XMLは中間データという位置付けで、最終のアウトプットに縛られないため、印刷、Web、データ解析、システム間の情報伝達手段など、さまざまな”見えにくい分野”で活用されています。
データ変換の中間データとして扱いやすい
XMLは、いろいろな形式のデータを元データとして作りやすく、構造化することによって内容を分析し、整頓していける特性があります。
具体的には次のようなイメージになります。
入力データを分析・分解しながら、XMLデータの構造を考えてツリー図を作っていきます。
また、出力データに応じて修正できるため、不足している内容があれば入力データを増やしてXMLツリーに情報を付加するなど、臨機応変な対応が可能です。
データベースやCSVなどでは、最初にしっかりと構造を決めておく必要がありますが、XMLは柔軟な対応を取りやすいため、中間データとして開発しやすく、大きなメリットとなっています。
当社がXMLを導入した経緯
当社は株式会社SCREENホールディングス(旧・大日本スクリーン製造株式会社)のグループ会社であり、同社製品の取扱説明書を制作する部門が独立・分社化することによって誕生しました。設立時の目的の一つには、SGMLを使って取扱説明書の制作を効率化することがありました。当初は、当社内でもSGMLの研究を進めていましたが、仕様が難解であり、対応するソフトウエアもFrameMakerなどに限定されていました。
しかし2000年代に入り、W3Cから勧告されたXMLを有力視する流れが生まれ、当社でもXMLを同時並行で研究することになりました。
目的は、そもそも当社の使命である「自動組版」という技術を確立するためであり、また、XMLが有力視されている理由の「ワンソース・マルチユース」の実現でした。研究は徐々に成果が表れるようになり、HTMLに変換してInternet Explorer 6.0で表示できるようになった他、印刷については、株式会社ページコンプ研究所の『BookStudio』という「XML自動組版」に特化したソフトウエアを導入することで実現できました。そして、XMLデータを翻訳することによって同じレイアウトで言語を変える「多言語自動組版」にチャレンジし、アンテナハウス株式会社の『XSL Formatter(現在のAH Formatter)』を導入して多言語のPDFを作ることにも成功しました。さらに、独自の「差分翻訳」というプログラムを開発し、多言語文書の制作における効率化にも成功するなど、今日に至るまで、XMLを駆使した多くの開発を行ってきました。
まとめ
XMLデータは出力データに応じて変化させるため、データそのものはタグ付きのテキストデータにしか見えません。そのため、一見分かりにくいデータであり、どういうものに使えるのか把握しにくいと思います。「縁の下の力持ち」的な存在であり、皆さまの目には触れないところで活用されることが基本のデータであるため、「分かりにくい」「よく知らない」といわれるのは当たり前のことです。
XMLデータは、システム間でのデータ変換や、異なるソフトウエア間でのデータ移行に適した中間データであることをご理解いただけたらと思います。
今後も、活用方法について当ブログサイトで紹介させていただきますので、業務の効率化をお考えの際には、ぜひ当社にご相談ください。