XMLファイルが二次的に利用しやすいファイルだと言っても、あまりピンとこない方が多いかもしれません
たとえば何かのシステムの情報源としてファイルなどを取り込む場合、テキストファイル、CSVファイル、XMLファイルなど、ファイルの種類は多岐にわたります
MicrosoftOfficeのExcelやWordなどもシステムによっては利用可能なこともあります
そうなってくると「システムを使って解析するなら、別にXMLじゃなくても、作りやすいテキストファイルやWordファイルでも良いのでは?」という疑念が浮かぶのも当然かと思います
これらの差について、今回はわかりやすく「検索」と「比較」を用いてご説明したいと思います
まず、下記のように、比較的形式の整ったテキストファイルと、構造化されたXMLファイルがあったとします
検索の仕組みはいろいろありますが、実は単純な全文検索であれば、どちらもあまり変わりありません
たとえば「枕草子」という検索ワードで単純検索すれば図の黄色マーカーすべてがヒットしますので、文献1も文献2もどちらも抽出されるでしょう
ただし、実際に検索を行う場合には、枕草子そのものを読みたいのか、枕草子に関する文献が必要なのかは検索時にはわかっていることが多いはずです
***
たとえば、枕草子そのものを読みたい場合、「文献名が枕草子の文献を探す」のが必要な作業になります
これも、テキストファイルでの検索でも、少し工夫すれば実現できそうです
『文献名:枕草子』という検索ワードで検索すれば文献1だけを取り出すことができます
では、「枕草子そのものではなく、解説書のような本が欲しいので、概要に「枕草子」と書いてある文献を探したい」場合はどうでしょう
これはテキストファイルの場合は素直な検索はできなそうです。
システムで実現しようとすれば、テキストの中身を解析する独自の仕組みを構築する必要があるでしょう
XMLファイルの場合は、タグごとにデータを扱う仕組みが整備されていますので、複雑な仕組みを新たに構築せずとも、「概要」タグの中に「枕草子」があるデータを簡単に取り出すことができます
***
また、テキストファイルはデータの精度にも不安があります
たとえば見出しの名前が間違っていたり、「:」が一か所だけ半角になっていたとしても、テキストファイルとして不正とは言えません
そのため、運用しているうちに、システムで解析しようとするとうまくいかない誤データが紛れ込んでくる可能性があります
一方でXMLのほうは同じようにタグの名前が間違っていたり、<>が全角になっているようなことがあれば、不正なファイルとなり扱えないため、与えられる情報源の信頼度が高いです
このように、より詳細な検索をしたい場合、テキストファイルではなくXMLであることでスムーズに実現することができます
比較も仕組みとしては同様です。テキストだと一行ずつの比較がメジャーですが、途中に追加や削除があった場合にすべてズレていってしまいます
例えば先ほどの文献情報で文献1が削除されて、文献3が追加されたとします
テキストで同一行同士を比較した場合、全行不一致となり、なにも変更のない文献2も差分ありとなってしまいます
一方でXMLは要素ごとの比較が確立しておりシステム構築が容易ですので、文献番号1同士、2同士、3同士と比較ができます
これを利用し、文献2には変更がなかったことが判定できます
このように、XMLのほうがテキストファイルよりも精度の高い比較が行えます
この辺りは文字で説明するより、実際に動くものを見ていただいたほうがわかりやすいかもしれません
弊社の添付文書XML作成ツール「PackinStarXML」にも比較機能がございます
ご興味をおもちいただけましたら、デモや説明会を随時実施しておりますので、ぜひお申込みください
<< PREV
POST>>
XML活用のすゝめ ③XMLを他の形式へ変換 その2
添付文書XML, ブログ