(57)【要約】【課題】  構造化文書とその構造化文書からリンク参照されているバイナリデータを受信して保存する際に、バイナリデータのファイル名がその機器で扱えないファイル名であるときにも構造化文書からリンク参照できるようにする。【解決手段】  ファイル名を機器で扱える名前に変換する手段と、変換前のファイル名と変換後のファイル名のマッピングテーブルを作るマッピングテーブル作成手段と、変換前のファイル名から変換後のファイル名を検索するマッピングデータ検索手段からなる。【選択図】  図３
2007048059.tif 000002
【特許請求の範囲】
【請求項１】
構造化文書とその構造化文書がリンク参照しているデータからなるデータ群が単一のデータとしてまとめられたパッケージデータを元の複数のデータに戻すパッケージデータ復元手段と、
構造化文書のリンク参照記述を解析する構造化文書解析手段と、
復元されたデータを記憶装置に保存するデータ保存手段と、
保存するファイルの名前が装置で扱うことができない名前であるときに、ファイル名を装置に適切な名前に変換するファイル名変換手段と、
前記ファイル名変換手段で変換されたファイル名と元のファイル名のマッピングデータを保存するマッピングデータ作成手段と、
前記マッピングデータ作成手段で作成されたマッピングデータを用いて、前記ファイル名変換手段によって変換される前のファイル名から、変換後のファイル名を検索するマッピングデータ検索手段と
を有することを特徴とする構造化文書処理装置。
【請求項２】
前記構造化文書処理装置は、ネットワーク上の他の機器からパッケージデータを受信して処理行うことを特徴とする請求項１記載の構造化文書処理装置。
【請求項３】
前記マッピングデータ検索手段は、仮想的なファイルアクセス機能を持ち、利用者が通常のファイルアクセス機能を利用するときと区別せずに参照データにアクセスすることを可能とすることを特徴とする請求項１記載の構造化文書処理装置。
【請求項４】
前記マッピングデータ作成手段は、構造化文書から参照されているデータの削除や保存場所・名前の変更に伴ってマッピングデータを変更することを特徴とする請求項１記載の構造化文書処理装置。
【請求項５】
前記マッピングデータ作成手段は、定期的あるいは指定時にマッピングデータと実際に保存されているファイルを調べ、マッピングデータの整合性を保つことを特徴とする請求項1記載の構造化文書処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は構造化文書処理装置に関する。
【背景技術】
【０００２】
XML (Extensible Markup Language: http://www.w3.org/XML)やHTMLといった構造化文書では、データを一つのファイルではなく複数のファイルに分けて保存されていることが多い。例えばHTMLでは、画像は別のファイルに保存しておき、img要素のsrc属性に画像ファイルのURLを記述することで画像を参照している。
【０００３】
このような構造化文書の受け渡しを行う際は、文書ファイル（XMLやHTMLファイル）だけでなく、その文書ファイルが参照しているデータファイルも受け渡す必要がある。例えばある構造化文書（document.xml）が、リンク参照機能によって外部のファイル（fig.jpg）を参照している場合にはdocument.xmlとfig.jpgの両方を送信する。受信した機器はこれらのファイルを同じディレクトリに保存する。このようにすることで実際にdocument.xmlを利用するときにfig.jpgを参照することができる。  
【０００４】
しかし、この方法では受信側のシステムによっては問題が発生する。構造化文書ファイルが参照しているデータが../fig.jpgのように一つ上の階層のディレクトリのファイルを参照していて、受信側のシステムの一つに上の階層にファイルを保存する権限がない場合は、このファイルを保存することができない。同様の例として、データファイルのファイル名が「日本語.jpg」のような日本語のファイル名の場合、データファイルのファイル名がvery_very_long_file_name.jpgのように非常に長いファイル名で受信側の機器がそのような長いファイル名に対応していない場合、システムによってファイル名の形式が定められている場合、などがある。
【０００５】
このような場合の対処法として、参照しているデータの保存場所を変え、構造化文書のリンク参照の記述を書き換える方法がある。この例としてHTMLブラウザのInternet Explorerがある。例えば、test.htmlというHTMLファイルが../fig.jpgという画像ファイル参照していて、test.htmlをInternet Explorerを用いて保存すると、test.htmlを保存したディレクトリにtest.filesというディレクトリが作成され、その中にfig.jpgが保存される。同時にtest.htmlの../fig.jpgを参照していた部分はtest.files/fig.jpgに書き換えられる。
【０００６】
この方法を応用して、受信側のシステムがファイルシステムの制限（日本語のファイル名に対応しているか、長いファイル名に対応しているか）に応じてリンクの記述を書き換えることで、これらの問題に対応することができる。
【０００７】
従来例としては、例えば特許文献１と特許文献２をあげることが出来る。
【特許文献１】特開２０００−０２９９０２号公報
【特許文献２】特開平０６−２０８５５７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかし、上記の方法には以下のような問題点がある。
【０００９】
第１に、データファイルのファイル名の問題がある。この文書ファイルを処理するアプリケーションが、ファイル名によって処理方法を変えている場合（ファイル名が日付を表していて、その日付順に並び替えるなど）には、意図したとおりの動作をしなくなる。
【００１０】
第２に、文書ファイルのリンク参照記述部分が変わってしまうことも問題になることがある。この文書に電子署名が付いており、受信側でこの文書ファイルの署名を確認したときに、文書ファイルに変更が加わっているため、改ざんされたものとみなされてしまう。
【００１１】
第３に、この方法ではデータファイルは必ずファイルとして保存しなくてはならないため、ファイルシステムを持たない機器では処理することができない、という問題がある。
【課題を解決するための手段】
【００１２】
上記の目的を達成するため本発明の構造化文書処理方式は、
構造化文書とその構造化文書がリンク参照しているデータからなるデータ群が単一のデータとしてまとめられたパッケージデータを元の複数のデータに戻すパッケージデータ復元手段と、
構造化文書のリンク参照記述を解析する構造化文書解析手段と、
復元されたデータを記憶装置に保存するデータ保存手段と、
保存するファイルの名前が装置で扱うことができない名前であるときに、ファイル名を装置に適切な名前に変換するファイル名変換手段と、
前記ファイル名変換手段で変換されたファイル名と元のファイル名のマッピングデータを保存するマッピングデータ作成手段と、
前記マッピングデータ作成手段で作成されたマッピングデータを用いて、前記ファイル名変換手段によって変換される前のファイル名から、変換後のファイル名を検索するマッピングデータ検索手段と
を備える。
【発明の効果】
【００１３】
以上述べたように、本発明の構造化文書処理装置では、構造化文書とその構造化文書から参照されたファイルからなるデータを、構造化文書を改変せずに、参照されたデータのファイル名が機器で扱えないものであっても扱うことができるようになる。また、仮想的なファイルアクセス機能を持たせることにより、アプリケーションが実際のファイル名や格納場所を気にすることなく参照データにアクセスすることが可能となる。さらに、保存されているファイルに変更が加えられてもマッピングテーブルを変更することで、構造化文書を変更せずに対応することができる。
【発明を実施するための最良の形態】
【００１４】
本発明の実施の形態について説明する。第１の実施形態では、XMLファイルとそのXMLファイルがリンク参照しているデータファイルがまとめられたパッケージファイルを展開するものである。
【００１５】
図1は第１の実施形態である構造化文書処理装置の構成を示すブロック図である。同図において、CPU101は、システム制御部であり、装置全体を制御する。ROM102は、CPUの制御プログラムや各種固定データを格納するものである。RAM103は、SRAM、DRAM等で構成され、プログラム制御変数等を格納するものである。また、各種設定パラメータ、各種ワーク用バッファもRAM103に格納されるものである。記憶部104はハードディスク等で構成され、ファイルデータを格納するためのものである。パッケージデータ処理部は複数のデータがまとめられているパッケージデータの展開やマッピングデータの作成を行うものである。構造化文書解析部105は構造化文書を解析して、構造化文書を用いるアプリケーションなどに解析結果を渡すものである。マッピングデータ解析部107は、ファイル名を受け取り、あらかじめ作成されたマッピングデータから実際に保存されているファイル名を返す機能を持つものである。またこの機器はFATなどの、日本語ファイル名を扱えないシステムであるとする。ファイル名変換部108は、保存するファイルのファイル名がその機器に適切なものかを判断し、適切でない場合は適切な名前に変換するものである。
【００１６】
この装置が処理する対象となるデータの例を図2に示す。このデータは構造化文書と、その構造化文書がリンク参照しているデータとがパッケージされ、一つのデータとなっている。このように複数のデータを単一のデータとしてパッケージする方式として、本実施例ではMIME (Multipurpose Internet Mail Extensions : RFC2045, http://www.ietf.org/rfc/rfc2045.txt) を用いるが、本特許はzipやtarなど、その他の任意のパッケージの方式でも適用することができる。MIMEではそれぞれのパートに、そのパートに関する情報を格納するヘッダを持ち、このヘッダ部にファイル名が格納されている。図2のMIMEデータには、構造化文書2012と参照データ2022、2032が格納されており、それぞれのファイル名がヘッダ部2011、2021、2031に格納されている。このMIMEデータは日本語のファイル名を扱うことのできる別の機器で作成されたもので、日本語のファイル名のデータを含んでいる。
【００１７】
構造化文書処理装置は図3に示す流れ図に従って動作する。まずパッケージデータを展開してパートがあるかを確かめる（301、302）。パートがある場合はそのパートを読み出す（304）。次にそのパートの本来のファイル名を調べ、その名前が機器１にとって適切名前かを確かめる（305）。適切である場合はその名前で記憶装置104に保存する（306）。適切でない場合は、ファイル名を変更し、本来のファイル名と新規に付けられたファイル名とのマッピング情報をマッピングデータに追加した後に記憶装置104に保存する（307、308、306）。図2のMIMEデータを保存する場合は、構造化文書2012のファイル名「index.html」はこの装置のファイル名として有効な名前であるためこの名前で保存する。しかし参照データ2022のファイル名は「結婚式001.jpg」という日本語を含むみ、この名前ではこの装置に保存できないため、ファイル名変換部108によって適切な名前に変換される。ここでは「wedding01.JPG」という名前で保存したものとする。
【００１８】
このときパッケージデータ処理部105は、図４に示すマッピングデータを保存する。これは本来の名前である「結婚式001.jpg」と実際に保存したファイル名である「wedding01.JPG」という名前の対応を示すものである。この結果、記憶部104には構造化文書index.html、参照データwedding01.JPG、マッピングデータの３つが保存される。
【００１９】
以上の処理を終えたら、パッケージデータ中の次のパートに対しても同様の処理を行い、すべてのパートの処理を終えたら終了する（302、303）。
【００２０】
次にindex.htmlを扱うアプリケーションの動作を説明する。アプリケーションはindex.htmlを構造化文書解析部106を用いて解析する。index.htmlの内容を図５に示す。これはHTMLであり、img要素のsrc属性によって、外部の画像データを参照することができる。つまりindex.htmlは「結婚式001.jpg」を参照している。アプリケーションが外部のファイルを開く際の処理の流れを図6に示す。アプリケーションは指定されたファイル「結婚式001.jpg」を読み出すことを試みる（601）。成功すればそのファイルに対して処理を行う（606）。この例では、実際には結婚式001.jpgというファイルは存在しないため失敗する。そこでアプリケーションはマッピングデータ解析部で107に、実際に保存されているファイル名を問い合わせる（603）。マッピングデータ解析部107は、パッケージデータ展開時に作成されたマッピングデータを調べ、「wedding01.JPG」を返す（603）。このようにファイル名の取得に成功した場合は、アプリケーションはファイルを読み出して処理を行う（606）。なんらかの理由でファイル名の取得にした場合は失敗である（605）。
【００２１】
このような手順を踏むことで、装置に不適当な名前のファイルを含む構造化文書および参照データを扱うことができるようになる。
【００２２】
また、本来のアプリケーションが本来のファイル名の情報をもつことができるため、アプリケーションがファイル名に依存する処理（旅行+3桁の数字.jpgというファイルのみ印刷する、など）も行うことが可能である。
【００２３】
また、パッケージデータに含まれていたすべてのファイルに対して改変を加えていないため、それぞれのファイルに対して一方向性関数によるハッシュ値を求め、その値によってファイルの改ざんを検出する、といったビット単位の改変も認められない処理も問題なく行うことができる。
【００２４】
次に本発明の第２の実施形態について説明する。第２の実施形態では、ハードディスクなどの記憶装置を持たない機器で、ネットワーク上の別の機器から受信した構造化文書を、デジタル署名の確認をした後に処理するものである。
【００２５】
第２の実施形態におけるネットワーク図を図7に示す。同図において701（機器１）が本発明の実施形態である構造化文書処理装置であり、702（機器２）は機器１にデータを送信する装置である。また第２の実施形態である構造化文書処理装置のブロック図を図8に示す。801から803、805から807はそれぞれ図1の101から103、105から107と同じである。804はLANボードやモデムといったネットワークインタフェースであり、ネットワーク上の他の機器との通信を可能にする。また機器１はハードディスクなどの記憶装置を持たないためファイルを保存することはできない。
【００２６】
まず機器２が機器１に図2のMIMEデータを送信する。機器１はこれをネットワークインタフェース804を通して受信する。そしてパッケージデータ処理部805がパッケージされたデータを元の複数のデータ（index.html、結婚式001.jpg、旅行012.jpg）に分けるが、ハードディスクなどの記憶装置がないためメモリ上に保存される。index.htmlは構造化文書であるため、構造化文書解析部806に渡され解析される。結婚式001.jpgはそのままメモリ上に保存し、「結婚式001.jpg」という名前と保存されているメモリのアドレスをマッピングデータ処理部807に渡す。
マッピングデータ処理部807は、受信したデータが保存されているメモリのアドレスと、データの本来のファイル名を保存する機能を持つ。また、ファイルを開く機能に似せたインターフェースを持ち、アプリケーションがファイルを開くのと同様の操作でメモリ上に保存されたデータにアクセスできることを可能とするものである。
【００２７】
構造化文書処理装置はindex.htmlを解析し、この文書が「結婚式001.jpg」を参照していることを知り、結婚式001.jpgを開く。ここでファイルを開く処理はマッピングデータ処理部807を介して行われるため、実際にはメモリ上に保持されているデータをファイルを開くのと同様の操作で行われる。
【００２８】
この仕組みにより、ファイルを扱えない機器においても、構造化文書やアプリケーションに特別な仕組みを加えることなく参照データにアクセスすることが可能となる。また、一般にハードディスクなどの記憶装置よりもメモリの方が高速に動作するため、処理速度の向上も実現することができる。
【００２９】
次に本発明の第3の実施形態について説明する。第3の実施形態では、デジタルカメラで、他の機器から画像データを参照する構造化文書を受信し、その後でファイルの操作を行なうものである。
【００３０】
第3の実施形態におけるネットワークは図7と同様で、機器1(701)がデジタルカメラ、機器2が(702)が構造化文書を送信する機器である。
【００３１】
デジタルカメラは一般にDCF (Design rule for Camera File system: http://it.jeita.or.jp/document/publica/standard/exif/japanese/DCFj.pdf) に従っている。DCFは画像データをデジタルカメラに保存する際のフォーマットに関する規格である。DCFでは、ファイル名は必ず"8文字.JPG"という形式で、ファイル名の終わり4文字は数字でなければならない。またファイル名に日本語を含めることはできない。
【００３２】
デジタルカメラの構造を図9に示す。デジタルカメラは撮像装置910を持つ。901から908は図１の処理装置の101から108と同様である。また、このデジタルカメラはネットワークインタフェース909を持つ。
【００３３】
このデジタルカメラの記憶装置の記憶装置の現在の状態を図10に示す。DCFの規格ではルートディレクトリにDCIMというディレクトリを作り、その下に"3桁の数字+5文字"というディレクトリを作り、その下に画像ファイルを置くことになっている。その他のファイルやディレクトリは自由に作成することができる。現在このデジタルカメラにはIMG_0001.JPG、IMG_0002.JPG、IMG_0004.JPGという2つの画像データが保存されている。
【００３４】
このデジタルカメラで、図11に示すパッケージデータabc.mimeとdef.mimeを受信したとする。これらのデータは元のデータに戻してから保存する。abc.mimeはabc.svgとfig01.jpgになり、画像データであるfig01.jpgは100ABCディレクトリに保存されるが、ファイル名の規格により、IMG_0005.JPGという名前で保存され、マッピングテーブルにfig01.jpgとIMG_0005.JPGに関するテーブルが追加される。またfig01.jpgを参照している構造化文書abc.svgは、ルートディレクトリのPHOTOALBUMディレクトリ以下に保存する。同様にdef.mimeはdef.svgとfig02.jpgになり、def.svgはPHOTOALBUMディレクトリに保存され、fig02.jpgはIMG_0006.JPGとして100AAAディレクトリに保存されマッピングテーブルにテーブルが追加される。この結果マッピングテーブルは図12のようになる。
【００３５】
このような状態のとき、ユーザがファイル名の変更の処理を行ったとする。例えば、ファイルの番号をそろえるためIMG_0004.JPGをIMG_0003.JPGに、IMG_0005.JPGとIMG_0006.JPGEをそれぞれIMG_0004.JPG、IMG_0005.JPGにしたとする。このような操作を行なうと、abc.svgを利用するとき、abc.svgはfig01.jpgを参照しておりfig01.jpgはIMG_0005.JPGとしてマッピングテーブルに登録されているため、正しく扱うことができない。この問題に対応するため、マッピングデータ処理部は、図13に示す手順で処理を行なう。ファイルの操作が行なわれると(1301)、現在のマッピングデータを確認し変更ファイルが該当するかを確認する(1302,1303)。ファイルの操作がファイル名の変更の場合はマッピングテーブルの該当部分も新しいファイル名に変更する。この例では図14のように変更される。このようにすることで構造化文書は正しく外部データを参照することができる。画像データが消去されたときはマッピングデータの該当部分も消去されるが、この場合消去された画像を参照している構造化文書が画像データを扱えなくなるため、削除しても構わないかをユーザに確認するメッセージを表示することも可能である(1306〜1309)。
【図面の簡単な説明】
【００３６】
【図１】第１の実施例の装置のブロック図。
【図２】MIMEデータ。
【図３】第１の実施例の装置の処理の流れを示す流れ図。
【図４】第1の実施例で作成されたマッピングデータ。
【図５】構造化文書の内容。
【図６】第1の実施例のアプリケーションの処理の流れを示す流れ図。
【図７】第２の実施例のネットワーク図。
【図８】第２の実施例の装置のブロック図。
【図９】第３の実施例のデジタルカメラのブロック図。
【図１０】デジタルカメラのディレクトリ構造。
【図１１】第３の実施例で送信されたデータ。
【図１２】第3の実施例で作成されたマッピングデータ。
【図１３】第3の実施例のマッピングデータ作成部の処理の流れを示す流れ図。
【図１４】第3の実施例で変更されたマッピングデータ。
【図１】
2007048059.tif 000003
【図２】
2007048059.tif 000004
【図３】
2007048059.tif 000005
【図４】
2007048059.tif 000006
【図５】
2007048059.tif 000007
【図６】
2007048059.tif 000008
【図７】
2007048059.tif 000009
【図８】
2007048059.tif 000010
【図９】
2007048059.tif 000011
【図１０】
2007048059.tif 000012
【図１１】
2007048059.tif 000013
【図１２】
2007048059.tif 000014
【図１３】
2007048059.tif 000015
【図１４】
2007048059.tif 000016