JP4776972B2 - キャッシュ生成方法、装置、プログラム及び記録媒体 - Google Patents

キャッシュ生成方法、装置、プログラム及び記録媒体 Download PDF

Info

Publication number
JP4776972B2
JP4776972B2 JP2005135580A JP2005135580A JP4776972B2 JP 4776972 B2 JP4776972 B2 JP 4776972B2 JP 2005135580 A JP2005135580 A JP 2005135580A JP 2005135580 A JP2005135580 A JP 2005135580A JP 4776972 B2 JP4776972 B2 JP 4776972B2
Authority
JP
Japan
Prior art keywords
cache
stored
schema document
document
schema
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2005135580A
Other languages
English (en)
Other versions
JP2006313444A (ja
Inventor
哲平 松山
一弘 會田
聡美 小西
俊博 鶴ヶ崎
清朗 田村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2005135580A priority Critical patent/JP4776972B2/ja
Publication of JP2006313444A publication Critical patent/JP2006313444A/ja
Application granted granted Critical
Publication of JP4776972B2 publication Critical patent/JP4776972B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Document Processing Apparatus (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は文書の構造を規定したスキーマ文書のキャッシュを生成するキャッシュ生成技術に関し、特にXML文書の構造を規定したスキーマ文書のキャッシュを生成するキャッシュ生成技術に適用して有効な技術に関するものである。
XML(extensible markup language)パーサとは、ユーザプログラムから呼び出され、XML文書を読み込み、XML文書中の要素の内容を取り出したり、書き換えたりする等の機能を提供するライブラリである。またXMLパーサは、XML文書が特定の構造(スキーマ)に従っているか否かを検証(スキーマ検証)する機能を持つ。この構造は、XML形式のスキーマ文書により規定する。XML文書のスキーマ検証時においては、XMLパーサはスキーマ文書の解析処理を行い、解析済みのスキーマ文書を使ってスキーマ検証を行う。
同一のスキーマ文書を用い、XML文書のスキーマ検証を行う場合には、解析済みのスキーマ文書を再利用すると、スキーマ文書の解析処理を繰り返し行うことが不要となって検証処理性能が向上するという利点がある。そこで、XMLパーサは、解析済みのスキーマ文書をキャッシュ化し、スキーマ文書の解析処理をスキップすることで検証処理を高速にする機能を備えている(例えば非特許文献1参照)。
"The Apache XML Project、Caching & Preparsing Grammars"、[online]、The Apache Software Foundation、[平成17年1月24日検索]、インターネット<URL: http://xml.apache.org/xerces2-j/faq-grammars.html>
上記従来技術では、キャッシュ対象のスキーマ文書の名称をユーザプログラム中に直接指定する。この為、キャッシュ対象のスキーマ文書を別のスキーマ文書に変更する場合には、キャッシュ対象のスキーマ文書を示すユーザプログラム中の指定を変更した後、そのユーザプログラムを再コンパイルしなければならないという問題があった。また、上記従来技術ではキャッシュはメモリに格納することだけしか考慮されておらず、使用可能メモリ領域が少ないシステムでは、メモリ領域を圧迫させてしまう問題があった。
本発明の目的は上記問題を解決し、キャッシュ対象が変更された場合でもユーザプログラムを再コンパイルすること無しにスキーマ文書のキャッシュを生成することが可能な技術を提供することにある。本発明の他の目的は使用可能なメモリ領域が少ない場合でもメモリ領域を圧迫することなくスキーマ文書のキャッシュを生成してそのキャッシュを用いた文書の検証処理を運用することが可能な技術を提供することにある。
本発明は、所定の記述言語で記載された文書を検証する為のスキーマ文書のキャッシュを生成するキャッシュ生成装置において、キャッシュの対象となるスキーマ文書を定義した定義ファイルによりスキーマ文書のキャッシュを生成して文書の検証を行うものである。
本発明では、XML等の所定の記述言語で記載された文書の検証を行う前に、その検証処理で用いられるスキーマ文書の内でキャッシュの対象となるスキーマ文書を定義した定義ファイルを、キャッシュの対象となるスキーマ文書の基底パスや絶対パスまたは既存のユーザプログラムから生成して、ユーザプログラムとは異なる外部ファイルとして記憶装置に格納しておく。
文書の検証を開始する際には、前記格納しておいた定義ファイルを記憶装置により読み込み、その読み込んだ定義ファイルに定義されているスキーマ文書のキャッシュを生成してメモリや磁気ディスク装置等の記憶装置に格納する。そして、文書の検証を開始した後、その検証で用いられる検証用のスキーマ文書のキャッシュをメモリや磁気ディスク装置等の記憶装置から取得し、その取得したスキーマ文書のキャッシュを用いて文書の検証を行う。
従来の技術では、キャッシュ対象のスキーマ文書名をユーザプログラム内部に記述していた為、キャッシュ対象を変更し、以前とは別のスキーマ文書をキャッシュすることとした場合には、ユーザプログラムのキャッシュ対象のスキーマ文書名もそれに合わせて変更した後、再コンパイルする必要があったが、本発明では、キャッシュの対象となるスキーマ文書の一覧を記載した外部ファイルである定義ファイルを生成し、それによりユーザプログラムとキャッシュ対象のスキーマ文書の指定とを独立させるので、キャッシュの対象を変更し、別のスキーマ文書をキャッシュの対象とした場合でも、ユーザプログラムを再コンパイルすること無しにキャッシュを生成することができる。
本発明によれば、キャッシュ対象が変更された場合でもユーザプログラムを再コンパイルすること無しにスキーマ文書のキャッシュを生成することが可能である。
以下にXMLで記載されたXML文書の構造を検証する為のスキーマ文書のキャッシュを生成する一実施形態のキャッシュ生成装置について説明する。
図1は本実施形態のキャッシュ生成装置のシステム構成を示す図である。100は、XMLパーサである。102は、XMLパーサ100の持つ機能を利用し、XML文書120を検証する為のユーザプログラムである。ユーザプログラム102は、キャッシュの生成103、パーサオブジェクトの生成104、XML文書の検証105、XML文書の操作106等の複数の指示命令から構成される。103の、キャッシュの生成の指示については、本発明で新たに追加する指示である。この指示により、XMLパーサ100は、スキーマ文書117からキャッシュを生成し、メモリ或いは磁気ディスク装置に格納する。
XMLパーサ100は、定義ファイル116を生成する定義ファイル生成部107、ユーザプログラム102のキャッシュの生成103から呼び出されるキャッシュ生成部108、ユーザプログラム102のパーサオブジェクトの生成104から呼び出されるパーサオブジェクト生成部109、生成されたパーサオブジェクトに対し初期設定値を設定するパーサオブジェクト初期設定部110、ユーザプログラム102のXML文書の検証105から呼び出されるXML文書読み込み部111、XML文書120を内部形式に変換する為の内部形式変換部112、XML文書120のスキーマ検証を行う検証処理部113、XML文書120の操作時に呼び出されるXML文書操作用API(Application Program Interface)群114からなる。
定義ファイル生成部107は、ユーザプログラムの起動101時に呼び出され、そのときの起動オプションの値を入力とし定義ファイル116を生成する。起動オプションの値に対しては、定義ファイル116を作成する為の一つの方法としての、既存のユーザプログラム115を与えることもできる。
キャッシュ生成部108は、定義ファイル116、スキーマ文書117を読み込み、キャッシュを生成し、メモリ或いは磁気ディスク装置にキャッシュを格納する。118は、メモリに格納されたキャッシュであり、119は磁気ディスク装置に格納されたキャッシュである。また、キャッシュ生成部108は、定義ファイル116に記載したスキーマ文書117が定義された通りにキャッシュされた否か、その情報をトラブルシュート時等に参照できる様にする為、キャッシュされたスキーマ文書117の絶対パスをログファイル121に書き込む。
XML文書読み込み部111は、XML文書120を読み込む。検証処理部113は、内部形式変換部112により変換されたXML文書に対し、スキーマ文書117のメモリ内のキャッシュ118或いはディスク内のキャッシュ119を使いスキーマ検証を行う。しかしこの時、メモリ或いは磁気ディスク装置共に該当するキャッシュが見つからなければ、キャッシュは使えないので検証用のスキーマ文書117を読み込み、そしてそのスキーマ文書117を解析してスキーマ検証を行う。検証処理部113は、定義ファイル116で定義された通りにキャッシュが利用され、検証が行われているか否かを、性能評価時等に参照できる様にする為、検証したXML文書120の絶対パス、及び検証用のスキーマ文書117の絶対パスをログファイル121に書き込む。また、検証処理部113は、定義ファイル116におけるキャッシュ対象のスキーマ文書一覧の不足分を知る為に、キャッシュ生成部108ではなく、検証処理部113にてスキーマ文書117のキャッシュを生成及び格納した場合には、ログファイル121にそれらのスキーマ文書117の絶対パスを書き込む。
XML文書操作用API群114は、DOM(Document Object Model)と呼ばれ、内部形式変換部112により変換されたXML文書120の内部形式(DOMツリーと呼ばれる)にアクセスし、タグの内容を取り出したりする等のインタフェースを提供する。ユーザプログラム102は、このXML文書操作用APIを呼び出し、XML文書120に対する操作を行う。
図13は本実施形態のキャッシュ生成装置の概略構成を示す図である。図13に示す様に本実施形態のキャッシュ生成装置を前記の定義ファイル生成部107、キャッシュ生成部108や検証処理部113等の処理部として機能させる為のプログラムは、CD−ROM等の記録媒体に記録され磁気ディスク等に格納された後、メモリにロードされて実行されるものとする。なお前記プログラムを記録する記録媒体はCD−ROM以外の他の記録媒体でも良い。また前記プログラムを当該記録媒体から情報処理装置にインストールして使用しても良いし、ネットワークを通じて当該記録媒体にアクセスして前記プログラムを使用するものとしても良い。
本実施形態において、定義ファイル116を生成する方法に関して、キャッシュ対象のスキーマ文書117の与え方に応じ3種類の方法がある。この3種類の方法を図2、図3、そして図4に示す。また、定義ファイル116は、テキスト形式のXML文書であるので、定義ファイル116の形式に従えば、テキストエディタ等で生成、或いは編集が可能である。
図2は本実施形態のスキーマ文書117の格納基底パスから定義ファイル116を生成する処理の概要を示す図である。本実施形態において、格納基底パスとは、スキーマ文書117を示す際の基準となるパスの名称であり、キャッシュの対象とする全てのスキーマ文書117に対して上位の階層に位置するディレクトリの内で、最も下位の階層にあるディレクトリを示すパス名称のことである。
図2に示す様にこの処理では、ユーザプログラムの起動時に、起動オプションに指定されたスキーマ文書の格納基底パス200の値から定義ファイル116を生成する。XMLパーサ100の定義ファイル生成部107は、起動オプションに指定されたスキーマ文書の格納基底パス200を読み取り、その場所を起点にそれ以下にあるファイルの情報を磁気ディスク装置から読み出してスキーマ文書117の一覧を取得し、定義ファイル116を生成する。なお、定義ファイル116の生成時には、その他の起動オプションの値も使用する。
図3は本実施形態のスキーマ文書117の絶対パスから定義ファイル116を生成する処理の概要を示す図である。図3に示す様にこの処理では、ユーザプログラムの起動時に、起動オプションに指定されたスキーマ文書の絶対パス300の値から定義ファイル116を生成する。XMLパーサ100の定義ファイル生成部107は、起動オプションに指定された一つ或いは複数のスキーマ文書の絶対パス300を読み取って、スキーマ文書の一覧を取得し、定義ファイル116を生成する。なお、定義ファイル116の生成時には、その他の起動オプションの値も使用する。
図4は本実施形態の既存のユーザプログラム115から定義ファイル116を生成する処理の概要を示す図である。図4に示す様にこの処理では、ユーザプログラムの起動時に、起動オプションに指定された既存のユーザプログラム115から定義ファイル116を生成する。既存のユーザプログラム115中には、キャッシュ対象のスキーマ文書名がキャッシュする為の命令と共に直接指定されている。XMLパーサ100の定義ファイル生成部107は、既存のユーザプログラム115を読み込み、直接指定されているスキーマ文書名を抽出して定義ファイル116を生成する。なお、定義ファイル116の生成時には、その他の起動オプションの値も使用する。
図5は本実施形態のテキストエディタを使い、定義ファイル116を生成または編集する処理の概要を示す図である。(a)には、テキストエディタを使い、定義ファイル116を新規に生成する方法、また、(b)には、既存の定義ファイル116を編集する方法を表している。定義ファイル116は、テキストのXML形式であるので、テキストエディタを使って作成または編集が可能である。(a)に示す様に定義ファイル116を新規に生成する場合、テキストエディタ500を使い定義ファイル116の形式に従い、定義ファイル116を作成する。(b)に示す様に定義ファイル116を編集する場合、テキストエディタ500で既存の定義ファイル116を読み込み、変更したい部分を定義ファイル116に反映させることで編集を行う。
図6は本実施形態のユーザプログラム起動時における起動オプション名及び値の表の例を示す図である。schemaDefオプション600は、定義ファイル116の絶対パスを値にとる。定義ファイル116が既に作成済みの状態で、それをユーザプログラム起動時に指定し利用する場合にこのオプションを用いる。schemaDefオプション600以外は、ユーザプログラム起動時に定義ファイル116をXMLパーサ100により作成する為のオプションである。schemaDefオプションを使い定義ファイル116を指定する際、schemaDefオプション以外のオプションを指定した場合には、schemaDefオプション以外のオプションは無視されるものとする。
ユーザプログラム起動時に定義ファイル116を作成する際には、schemaPathオプション601、schemaFilesオプション602、sourceオプション603、diskCachePathオプション604、policyオプション605、minSizeForDiskオプション606、minSizeForMemオプション607、postCacheオプション608を指定する。schemaPathオプション601、schemaFilesオプション602、sourceオプション603は、指定が背反であり、いずれか一つを指定する必要があるものとする。
schemaPathオプション601には、キャッシュ対象のスキーマ文書117が格納されている格納基底パスを指定する。schemaFilesオプション602には、キャッシュ対象のスキーマ文書117の絶対パスを指定する。複数のスキーマ文書117を指定する場合、セミコロン(;)で区切る様にする。sourceオプション603には、キャッシュ対象のスキーマ文書117を抽出する為に既存のユーザプログラム115の絶対パスを指定する。
diskCachePathオプション604には、磁気ディスク装置にキャッシュを格納するときの磁気ディスク装置における絶対パスを指定する。
policyオプション605は、キャッシュをどこに格納するか指定するオプションであり、このオプションにはdisk、mem、none、customizeのいずれかの値を指定する。ここで、diskは、キャッシュを磁気ディスク装置に格納することを示し、memは、キャッシュをメモリに格納することを示しており、noneは、キャッシュはどこにも格納しないことを示している。
またpolicyオプション605にcustomizeを指定した場合には、minSizeForDiskオプション606、minSizeForMemオプション607の値を指定する必要があるものとする。minSizeForDiskオプション606には、磁気ディスク装置にキャッシュを格納するときのスキーマ文書サイズの最小値(KByte)を指定する。minSizeForMemオプション607には、メモリにキャッシュを格納するときのスキーマ文書サイズの最小値(KByte)を指定する。それらのサイズ(閾値)をこれらのオプションによって規定することで、スキーマ文書117のキャッシュを磁気ディスク装置或いはメモリに格納し分けることが可能となる。定義ファイル生成部107は、この閾値とスキーマ文書117のサイズからキャッシュの格納先を決定し、決定した格納先を定義ファイル116に反映させる。minSizeForDiskオプション606、minSizeForMemオプション607は、policyオプション605がcustomizeの場合に必要となるオプションであり、policyオプション605がcustomize以外の場合に、minSizeForDiskオプション606、minSizeForMemオプション607が指定された場合、それらのオプションは無視されるものとする。
postCacheオプション608は、検証処理部113における検証処理においてキャッシュを格納するか否かを決定できるオプションである。postCacheオプション608がONの場合、キャッシュを格納し、OFFの場合にはキャッシュを格納しない。この時、キャッシュの格納先については、policyオプション605の値に従うものとする。postCacheオプションをONにすることによって、定義ファイル116中のキャッシュ対象のスキーマ文書の一覧に指定されていないスキーマ文書に対しても、キャッシュを格納することが可能となる。定義ファイル116に記載されたスキーマ文書だけしかキャッシュしない場合には、当オプションの値をOFFにしておく。
図7は本実施形態の定義ファイル116の構造の一例を示す図である。図7に示す様に定義ファイル116は、XML形式で記述されるものとする。定義ファイル116は、schemaDefタグ700をルートタグとし、その内容として、diskCachePathタグ701、policyタグ702、postCacheタグ703、targetSchemaタグ704から構成される。
diskCachePathタグ701の内容には、起動オプションのdiskCachePathオプションの値を格納し、policyタグ702の内容には、起動オプションのpolicyオプションの値を格納し、postCacheタグ703の内容には、起動オプションのpostCacheタグの値を格納する。またtargetSchemaタグ704の内容には、キャッシュ対象のスキーマ文書の数に応じ、その数分だけschemaタグ705が出現し、schemaタグ705の内容には、schemaPathオプション、schemaFilesオプション、sourceオプションの値により取得されたスキーマ文書の一覧における、個々のスキーマ文書の絶対パスを格納する。また、schemaタグ705は、属性として、cacheLocation属性706を持つ。
cacheLocation属性706は、schemaタグ705のスキーマ文書の個々に対し、キャッシュの格納先を示す属性であり、disk、mem、noneのいずれかの値をとる。diskは、キャッシュを磁気ディスク装置に格納することを示し、memは、キャッシュをメモリに格納することを示しており、noneは、キャッシュをどこにも格納しないことを示している。このcacheLocation属性706の値は、policyタグ702の内容に優先するものとし、つまり、policyタグ702にdiskと指定されていた場合でも、cacheLocation属性706がmemの場合には、そのcacheLocation属性を持つschemaタグ705に指定されたスキーマ文書のキャッシュを、磁気ディスク装置ではなく、メモリに格納する。policyタグ702の内容がcustomizeであり、cacheLocation属性706が無い場合には、cacheLocation属性706の値をnoneと同等扱いとし、キャッシュをどこにも格納しないものとする。
図8は本実施形態の定義ファイル生成部107における定義ファイル生成処理の処理手順を示すフローチャートである。本実施形態の定義ファイル生成部107は、ユーザプログラム起動時に起動オプションを取得して定義ファイル116を生成する。ユーザプログラム起動時に定義ファイル生成部107に対して起動オプションを与えるには、JavaVM起動コマンドを入力装置により受け付ける際に、コマンド引数"-D"指定に続き、オプション名(この場合ではシステムプロパティ名)とオプションの値(この場合ではシステムプロパティの値)を"="で結合した文字例を受け付ける。例えば、schemaDefオプションの場合、-DschemaDef=/usr/app/schemadef.xmlとなる。/usr/app/schemadef.xmlがオプションの値である。この方法により、起動されたユーザプログラム102は、コマンド引数として起動オプションを取得した後、ユーザプログラム102にライブラリとしてリンクされているXMLパーサ100の定義ファイル生成部107に対して起動オプションを与えることが可能となる。
ステップ800において定義ファイル生成部107は、ユーザプログラム102から渡された起動オプションを参照し、起動オプションにschemaDefオプションが指定されているか否かを判定する。schemaDefオプションが指定されている場合、定義ファイル116の生成は不要である為、処理を終了する。例えばschemaDefオプションとしてschemaDef=/usr/app/schemadef.xmlが指定されている場合には定義ファイル116の生成を行わずに処理を終了する。
起動オプションにschemaDefオプションが指定されていない場合には、ステップ801において、その起動オプション中にschemaPathオプション、schemaFilesオプション、sourceオプションのどれが指定されているかの判定を行う。起動オプションにschemaPathオプションが指定されている場合、ステップ802において、そのオプションの値よりスキーマ文書の一覧を取得する。schemaPathオプションの値からスキーマ文書の一覧を取得するには、java.io.FileクラスのlistFiles()メソッドを使うことで可能である。また再帰的にlistFiles()メソッドを呼び出す処理を行うことで、schemaPathオプションの値の下位のパスに存在するスキーマ文書の一覧も取得することが可能である。
例えばschemaPathオプションの値として/schemafilesが指定されている場合にはlistFiles()メソッドにより/schemafilesのディレクトリ情報を読み出し、そのディレクトリ中でファイル識別子xsdを持つファイルの名称をスキーマ文書の名称として取得する。またそのディレクトリ中にさらにディレクトリが存在する場合には、再帰的にlistFiles()メソッドを呼び出して、下位のディレクトリ中に存在するスキーマ文書の名称も取得する。
また起動オプションにschemaFilesオプションが指定されている場合、ステップ803において、セミコロン(;)を区切り文字とし、指定されたスキーマ文書を取得する。例えばsschemaFilesオプションの値として/schemafiles/x.xsd;/schemafiles/y.xsd;/schemafiles/z.xsd;が指定されている場合には、セミコロン(;)を区切り文字として文字列を分離し、スキーマ文書のパス名として/schemafiles/x.xsd、/schemafiles/y.xsd及び/schemafiles/z.xsdを取得する。
また起動オプションにsourceオプションが指定されている場合、ステップ804において、オプションの値に指定された既存のユーザプログラム115を読み込む。そしてステップ805において、読み込まれた既存のユーザプログラム115を解析し、キャッシュするスキーマ文書の一覧を取得する。既存のユーザプログラム115からキャッシュするスキーマ文書の一覧を取得するには、既存のユーザプログラム115中からキャッシュを行う処理メソッド名(preparseGrammar())を、探索する文字列候補と設定し、文字列の探索処理により当該メソッドを特定し、そしてそのメソッド中のスキーマ文書名を取り出すことで可能となる。
例えばsourceオプションの値として/usr/app/validate.javaが指定されており、その内容が図4に示した様なものである場合には処理メソッド名preparseGrammar()を探索してそのメソッド中のスキーマ文書名/schemafiles/a.xsd、/schemafiles/b.xsd、/schemafiles/c.xsd、/schemafiles/d.xsd、/schemafiles/e.xsd及び/schemafiles/f.xsdを取得する。
キャッシュするスキーマ文書の一覧の取得後は、ステップ806において、diskCachePathオプション、policyオプション、postCacheオプションの値をそれぞれ取得する。ステップ807において、policyオプションの値がcustomizeか否かを判定する。値がcustomizeの場合、ステップ808において、minSizeForDiskオプションの値、minSizeForMemオプションの値、そしてスキーマ文書のサイズから、キャッシュする全てのスキーマ文書に対してキャッシュの格納先を決定する処理を行う。当処理については、図9に示す。ステップ807の判定について、値がcustomizeでない場合には、何も処理はせず、ステップ809に移る。ステップ809において、取得したスキーマ文書の一覧、更には起動オプションの値、そしてステップ808において決定したキャッシュの格納先より、定義ファイル116を作成する。
定義ファイル116を作成するには、XML文書操作用API群114を利用する。それらのAPIを利用し、必要なタグを作成し、タグの内容を定義、そしてXML文書の書き出しを行うことで定義ファイル116を生成することが可能である。または、上記API群は使わずに、直接、文字列出力用メソッド、及びファイル出力用メソッドを用いて作成することも可能である。
図9は本実施形態のスキーマ文書のサイズからキャッシュの格納先を決定する処理の処理手順を示すフローチャートである。ステップ900において定義ファイル生成部107は、minSizeForDiskオプション、minSizeForMemオプションの値を取得する。ステップ901において、取得したスキーマ文書の一覧にあるスキーマ文書の数だけ繰り返し処理を行う。ステップ902において、スキーマ文書のサイズを取得する。スキーマ文書のサイズを取得するには、java.io.Fileクラスのlength()メソッドを使うことで可能である。
ステップ903において、スキーマ文書のサイズとminSizeForDiskタグの値とを比較する。スキーマ文書のサイズが、minSizeForDiskタグの値以上の場合、ステップ905において、キャッシュを磁気ディスク装置に格納する様に設定する。これは、定義ファイル116における該当するスキーマ文書に対するcacheLocation属性の値をdiskに設定することである。そうでない場合、ステップ904において、スキーマ文書のサイズとminSizeForMemタグの値とを比較する。スキーマ文書のサイズが、minSizeForMemの値以上の場合には、ステップ906においてキャッシュをメモリに格納する様に設定する。これは、定義ファイル116における該当するスキーマ文書に対するcacheLocation属性の値をmemに設定することである。minSizeForMemの値未満の場合には、ステップ907においてキャッシュをどこにも格納しない様に設定する。これは、定義ファイル116における該当するスキーマ文書に対するcacheLocation属性の値をnoneに設定することである。
図10は本実施形態のpolicyタグの値がcustomizeの場合の定義ファイル例を示す図である。図10の値1000は、policyオプションの値がcustomizeであることを表している。cacheLocation属性1001に関して、policyタグの値がcustomizeの場合、全てのschemaタグ中のcacheLocation属性は、mem、disk、或いはnoneのいずれかの値をとる。
図10に示す様に図9のスキーマ文書のサイズからキャッシュの格納先を決定する処理では、例えばスキーマ文書の一覧にあるスキーマ文書が/usr/app/xmlparser/schemafiles/a.xsd、/usr/app/xmlparser/schemafiles/b.xsd、/usr/app/xmlparser/schemafiles/c.xsdや/usr/app/xmlparser/schemafiles/d.xsd等である場合、length()メソッドによりそれらのファイルのサイズを取得し、/usr/app/xmlparser/schemafiles/a.xsd及び/usr/app/xmlparser/schemafiles/b.xsdのサイズがminSizeForDiskタグの値以上である場合には、定義ファイル116中の当該スキーマ文書に対するcacheLocation属性の値をdiskに設定し、/usr/app/xmlparser/schemafiles/c.xsdのサイズが、minSizeForDiskタグの値未満であると共にminSizeForMemタグの値以上である場合には、定義ファイル116中の当該スキーマ文書に対するcacheLocation属性の値をmemに設定し、/usr/app/xmlparser/schemafiles/d.xsdのサイズがminSizeForMemの値未満である場合には、定義ファイル116中の当該スキーマ文書に対するcacheLocation属性の値をnoneに設定する。他のスキーマ文書e.xsd、f.xsd、g.xsdについても同様である。
図11は本実施形態のキャッシュ生成部108の処理手順を示すフローチャートである。ステップ1100においてキャッシュ生成部108は、定義ファイル116を読み込む。読み込んだ定義ファイル116に対し、ステップ1101においてXMLパーサ100の機能を利用してスキーマ検証を行う。定義ファイル116は、定義ファイル生成部107により自動で生成される為、その構造に問題はないのだが、生成された定義ファイル116に対し、運用者(ユーザ)がキャッシュ対象のスキーマ文書を追加する、cacheLocation属性を変更する等のカスタマイズを行う為に編集することがある。その為に、定義ファイル116の構造の検証は必要となる。定義ファイルの構造を示すスキーマ文書を定義しておき、そのスキーマ文書による検証を行うことで、定義ファイル116が規定された構造に従っているか否かの確認が、自前に構造チェック用処理を作り込む必要が無い為、容易に実施できる。
ステップ1102において、定義ファイル116のスキーマ検証時にエラーが発生したか否かを判定する。エラーが発生した場合には、キャッシュ生成の処理を終了し、キャッシュを生成せずに処理を終了する。ステップ1116において、そのエラーメッセージをログファイル121に書き込む。
定義ファイル116のスキーマ検証時にエラーが発生しなかった場合には、ステップ1103において、定義ファイル116中のdiskCachePathタグ、policyタグ、postCacheタグの内容を読み取る。これらのタグを読み取る方法としては、XMLパーサ100が持つXML文書操作用API群114を使うことで容易に実現できる。例えば図10に示した定義ファイル116の場合では、diskCachePathタグから/usr/app/xmlparser/disk_cachesを、policyタグからcustomizeを、postCacheタグからONを読み取る。
上記のタグを読み取った後、ステップ1104において、スキーマ文書からキャッシュを生成する為、targetSchemaタグ内のschemaタグの数だけ繰り返し処理を行う。ステップ1105において、個々のschemaタグに対し、schemaタグの内容に指定されたスキーマ文書117を読み込む。ステップ1106において読み込んだスキーマ文書117を解析し、ステップ1107においてキャッシュを生成する。ステップ1105、ステップ1106、ステップ1107の処理は、XMLパーサ100が内部に持つ機能を利用する。例えば図10に示した定義ファイル116の場合では、schemaタグの内容に指定されたスキーマ文書/usr/app/xmlparser/schemafiles/a.xsd等を磁気ディスク装置から読み込んで解析し、そのキャッシュを生成する。
ステップ1108において、キャッシュ生成時にエラーが発生したか否かを判定する。エラーが発生した場合、エラーメッセージをステップ1115においてログファイル121に書き込み、次のschemaタグの処理に移る。
キャッシュ生成時にエラーが発生しなかった場合、ステップ1109において、cacheLocation属性の値を評価する。cacheLocation属性の値がmemの場合、ステップ1111においてキャッシュをメモリに格納する。キャッシュをメモリに格納する為には、メモリにおけるキャッシュを管理するテーブルをXMLパーサ100内部で用意し、スキーマ文書の絶対パスをキーにしてキャッシュを管理することで可能である。
例えば図10に示した定義ファイル116のスキーマ文書/usr/app/xmlparser/schemafiles/c.xsdの場合では、そのcacheLocation属性の値がmemであるので、そのスキーマ文書の絶対パス/usr/app/xmlparser/schemafiles/c.xsdと生成したキャッシュを管理テーブルに格納して管理する。
cacheLocation属性の値がdiskの場合、ステップ1113においてキャッシュを磁気ディスク装置に格納する。キャッシュを磁気ディスク装置に格納する為には、キャッシュを表すオブジェクトを磁気ディスク装置上に生成する為のシリアライズの処理を行うことで可能である。シリアライズは、java.io.ObjectOutputStreamクラスのwriteObject()メソッドで可能である。但し、シリアライズするオブジェクトのクラス、及びそのオブジェクトから参照されるオブジェクトのクラス全てが、java.io.Serializableインタフェースを実装している必要がある。
例えば図10に示した定義ファイル116のスキーマ文書/usr/app/xmlparser/schemafiles/a.xsdの場合では、そのcacheLocation属性の値がdiskであるので、生成したキャッシュのオブジェクトを、前記diskCachePathタグから読み取った/usr/app/xmlparser/disk_cachesへwriteObject()メソッドにより格納する。
cacheLocation属性がnoneの場合には、キャッシュはどこにも格納せず、次のschemaタグの処理に移る。cacheLocation属性が存在しない場合には、ステップ1110において、policyタグの内容より、キャッシュ格納先を決定する為の判定処理を行う。policyタグの内容がmemの場合、ステップ1111においてキャッシュをメモリに格納する。policyタグの内容がdiskの場合、ステップ1113においてキャッシュを磁気ディスク装置に格納する。キャッシュを格納後、キャッシュしたスキーマ文書の絶対パスをステップ1112またはステップ1114においてログファイル121に書き込む。policyタグの内容がcustomizeの場合には、適切なキャッシュ格納先を判断できない為、cacheLocation属性の値がnoneと同等扱いとしキャッシュをどこにも格納せず、次のschemaタグの処理に移る。また、noneの場合も、キャッシュをどこにも格納せず、次のschemaタグの処理に移る。
図12は本実施形態の検証処理部113におけるXML文書120のスキーマ検証処理の処理手順を示すフローチャートである。ステップ1200において検証処理部113は、検証用のスキーマ文書名を取得する。検証用のスキーマ文書名は、ユーザプログラム102に指定されている場合と、検証対象となるXML文書120に指定されている場合がある。検証用のスキーマ文書名の取得は、XMLパーサ100の持つ機能を利用して行うことができる。
ステップ1201において、取得したスキーマ文書名により、キャッシュがメモリに存在するか否かの判定を行う。この判定処理では、キャッシュを管理しているテーブルに、ステップ1200で取得したスキーマ文書名のキーが存在するか否かを確かめる。存在する場合、ステップ1203において、メモリからキャッシュを取得し、ステップ1211においてXML文書120の検証処理を行う。メモリからキャッシュを取得するには、スキーマ文書名とキャッシュの組を管理しているテーブルから、ステップ1200で取得したスキーマ文書名をキーに、キャッシュを取得する。
例えば図10に示した定義ファイル116に従ってキャッシュを生成した後、スキーマ文書/usr/app/xmlparser/schemafiles/c.xsdを検証用のスキーマ文書とする場合、スキーマ文書名とキャッシュの組を管理しているテーブルから、/usr/app/xmlparser/schemafiles/c.xsdをキーとしてキャッシュを検索し、該当するキャッシュを取得し、XML文書120の検証処理を行う。
ステップ1201においてキャッシュがメモリに存在しない場合、ステップ1202において、キャッシュが磁気ディスク装置に存在するか否かの判定を行う。この判定処理では、キャッシュを格納しているディスク位置に、ステップ1200で取得したスキーマ文書名に対応するキャッシュファイルが存在するか否かを確かめる。存在する場合、ステップ1204において、磁気ディスク装置からキャッシュを取得し、ステップ1211においてXML文書120の検証処理を行う。磁気ディスク装置からキャッシュを取得するには、シリアライズ処理と対になる、キャッシュを表すオブジェクトを磁気ディスク装置からメモリへ復元するデシリアライズ処理を行うことで可能である。デシリアライズは、java.io.ObjectOutputStreamクラスのreadObject()メソッドで可能である。
例えば図10に示した定義ファイル116に従ってキャッシュを生成した後、スキーマ文書/usr/app/xmlparser/schemafiles/a.xsdを検証用のスキーマ文書とする場合、キャッシュを格納しているディスク位置/usr/app/xmlparser/disk_cachesに、スキーマ文書名/usr/app/xmlparser/schemafiles/a.xsdに対応するキャッシュファイルが存在するか否かを確かめた後、そのキャッシュを表すオブジェクトをreadObject()メソッドにより磁気ディスク装置からメモリへ復元し、XML文書120の検証処理を行う。
一方、メモリにも磁気ディスク装置にも存在しない場合、これはスキーマ文書のキャッシュが存在しないことを意味する。この場合、ステップ1205においてスキーマ文書117を読み込み、ステップ1206においてスキーマ文書117を解析する。ステップ1207において、postCacheタグの値を判定する。その値が、OFFの場合、ステップ1211においてXML文書120の検証処理を行う。ONの場合には、解析後のスキーマ文書のキャッシュを保存する為、ステップ1208においてキャッシュを生成し、ステップ1209において、policyタグの内容よりキャッシュの格納先を決定して格納を行う。すなわち、policyタグの内容がdiskの場合にはキャッシュを磁気ディスク装置に格納し、memの場合にはキャッシュをメモリに格納する。一方、policyタグの内容がcustomizeの場合には、メモリ或いは磁気ディスク装置のどちらにキャッシュするのかを予め設定し、それに従う様にしておく。
ステップ1211におけるXML文書120の検証処理の後、ステップ1212において検証対象となったXML文書120の絶対パス、及び検証で用いたスキーマ文書の絶対パスをログファイル121に書き込む。この際、検証時にスキーマ文書のキャッシュを利用したか、或いは、利用せずスキーマ文書を読み込み、解析し、そして検証したかについて、ログファイル121にはスキーマ文書の絶対パスと共にそれを示す。この情報により、定義ファイル116に定義した通りにキャッシュが利用されているか否かを確認することが可能となる。但し、検証毎にステップ1212においてログファイル121を更新すると、処理オーバヘッドになる可能性がある為、ステップ1212におけるログファイル121への書き込みは、実際に書き込むか否かを示す起動オプションを増やす等し、その値でもって事前判定する様にしても良い。
以上説明した様に本実施形態のキャッシュ生成装置によれば、キャッシュの対象となるスキーマ文書を定義した定義ファイルによりスキーマ文書のキャッシュを生成して文書の検証を行うので、キャッシュ対象が変更された場合でもユーザプログラムを再コンパイルすること無しにスキーマ文書のキャッシュを生成することが可能である。
また本実施形態のキャッシュ生成装置によれば、スキーマ文書のキャッシュを生成する際にキャッシュを磁気ディスク装置にも格納するので、使用可能なメモリ領域が少ない場合でもメモリ領域を圧迫することなくスキーマ文書のキャッシュを生成してそのキャッシュを用いた文書の検証処理を運用することが可能である。
本実施形態のキャッシュ生成装置のシステム構成を示す図である。 本実施形態のスキーマ文書117の格納基底パスから定義ファイル116を生成する処理の概要を示す図である。 本実施形態のスキーマ文書117の絶対パスから定義ファイル116を生成する処理の概要を示す図である。 本実施形態の既存のユーザプログラム115から定義ファイル116を生成する処理の概要を示す図である。 本実施形態のテキストエディタを使い、定義ファイル116を生成または編集する処理の概要を示す図である。 本実施形態のユーザプログラム起動時における起動オプション名及び値の表の例を示す図である。 本実施形態の定義ファイル116の構造の一例を示す図である。 本実施形態の定義ファイル生成部107における定義ファイル生成処理の処理手順を示すフローチャートである。 本実施形態のスキーマ文書のサイズからキャッシュの格納先を決定する処理の処理手順を示すフローチャートである。 本実施形態のpolicyタグの値がcustomizeの場合の定義ファイル例を示す図である。 本実施形態のキャッシュ生成部108の処理手順を示すフローチャートである。 本実施形態の検証処理部113におけるXML文書120のスキーマ検証処理の処理手順を示すフローチャートである。 本実施形態のキャッシュ生成装置の概略構成を示す図である。
符号の説明
100…XMLパーサ、101…ユーザプログラムの起動、102…ユーザプログラム、103…キャッシュの生成、104…パーサオブジェクトの生成、105…XML文書の検証、106…XML文書の操作、107…定義ファイル生成部、108…キャッシュ生成部、109…パーサオブジェクト生成部、110…パーサオブジェクト初期設定部、111…XML文書読み込み部、112…内部形式変換部、113…検証処理部、114…XML文書操作用API群、115…既存のユーザプログラム、116…定義ファイル、117…スキーマ文書、118…メモリ内のキャッシュ、119…ディスク内のキャッシュ、120…XML文書、121…ログファイル、200…スキーマ文書の格納基底パス、300…スキーマ文書の絶対パス、500…テキストエディタ、600…schemaDefオプション、601…schemaPathオプション、602…schemaFilesオプション、603…sourceオプション、604…diskCachePathオプション、605…policyオプション、606…minSizeForDiskオプション、607…minSizeForMemオプション、608…postCacheオプション、700…schemaDefタグ、701…diskCachePathタグ、702…policyタグ、703…postCacheタグ、704…targetSchemaタグ、705…schemaタグ、706…cacheLocation属性、1000…値、1001…cacheLocation属性。

Claims (8)

  1. 所定の記述言語で記載された文書を検証する為のスキーマ文書のキャッシュを生成する計算機のキャッシュ生成方法において、
    前記計算機が、
    スキーマ文書のサイズに応じて、該スキーマ文書のキャッシュの格納先を該スキーマ文書のサイズがディスクにキャッシュを格納するときのスキーマ文書のサイズの最小値以上の場合は磁気ディスク装置に格納することを決定し、該スキーマ文書のサイズがディスクにキャッシュを格納するときのスキーマ文書のサイズの最小値より小さく且つメモリにキャッシュを格納するスキーマ文書のサイズの最小値以上の場合はメモリに格納することを決定し、いずれでもない場合はいずれにも格納しないことを決定し、キャッシュの対象となるスキーマ文書を定義する定義ファイルに、その決定内容含まれた定義ファイルを生成して、記憶装置に格納するステップと、
    前記定義ファイルを前記記憶装置から読み込むステップと、
    前記定義ファイルに前記決定内容が含まれており、該決定内容が、メモリ又は磁気ディスクの何れかに格納するものである場合、その読み込んだ定義ファイルに定義されているスキーマ文書のキャッシュを、前記メモリ又は前記磁気ディスクに格納するステップと、
    所定の記述言語で記載された文書を検証する際、該検証に用いられる検証用のスキーマ文書のキャッシュが前記メモリ又は前記磁気ディスクに格納されている場合には、該検証用のスキーマ文書のキャッシュを前記メモリ又は前記磁気ディスクから取得し、前記検証用のスキーマ文書のキャッシュが前記メモリ又は前記磁気ディスクに格納されていない場合には、前記検証用のスキーマ文書を解析する解析ステップと、
    前記取得したスキーマ文書のキャッシュ又は前記解析した検証用のスキーマ文書を用いて、前記文書の検証を行う検証ステップと、
    を有することを特徴とするキャッシュ生成方法。
  2. 前記定義ファイルに前記決定内容が含まれた定義ファイルを生成して、記憶装置に格納するステップは、前記計算機に、前記スキーマ文書のキャッシュを格納する格納先を前記メモリ又は前記磁気ディスクの何れかに格納する或いは何れにも格納しないことが予め定義された格納先情報が設定されている場合、前記スキーマ文書のサイズに応じた格納先の決定をせずに、前記スキーマ文書を定義する定義ファイルに前記格納先情報が含まれた定義ファイルを生成し、前記記憶装置に格納し
    前記キャッシュ生成方法は、
    前記記憶装置から読み込むステップで読み込んだ前記定義ファイルに前記格納先情報が含まれており、その格納先が前記メモリ又は前記磁気ディスクのいずれかに格納するものである場合、その読み込んだファイルに定義されているスキーマ文書のキャッシュを、前記メモリまたは前記磁気ディスクに格納するステップと、
    前記解析ステップの後、解析した前記検証用のスキーマ文章のキャッシュを生成し、前記決定内容又は前記格納先情報に基づいて、該生成した検証用のスキーマ文書のキャッシュを、前記メモリ又は磁気ディスクに格納するステップを更に含むことを特徴とする請求項1に記載のキャッシュ生成方法。
  3. 前記キャッシュの対象となるスキーマ文書の格納位置を示すパス情報を既存のユーザプログラムから取得し、前記定義ファイルを生成して前記記憶装置に格納することを特徴とする請求項1または請求項2に記載されたキャッシュ生成方法。
  4. 所定の記述言語で記載された文書の構造を検証する為のスキーマ文書のキャッシュを生成するキャッシュ生成装置において、
    スキーマ文書のサイズに応じて、該スキーマ文書のキャッシュの格納先を該スキーマ文書のサイズがディスクにキャッシュを格納するときのスキーマ文書のサイズの最小値以上の場合は磁気ディスク装置に格納することを決定し、該スキーマ文書のサイズがディスクにキャッシュを格納するときのスキーマ文書のサイズの最小値より小さく且つメモリにキャッシュを格納するスキーマ文書のサイズの最小値以上の場合はメモリに格納することを決定し、いずれでもない場合はいずれにも格納しないことを決定し、キャッシュの対象となるスキーマ文書を定義する定義ファイルに、その決定内容含まれた定義ファイルを生成して、記憶装置に格納する定義ファイル生成部と、
    前記定義ファイルを前記記憶装置から読み込んで、前記定義ファイルに前記決定内容が含まれており、該決定内容が、メモリ又は磁気ディスクの何れかに格納するものである場合、その読み込んだ定義ファイルに定義されているスキーマ文書のキャッシュを前記メモリ又は前記磁気ディスクに格納するキャッシュ生成部と、
    所定の記述言語で記載された文書を検証する際、該検証に用いられる検証用のスキーマ文書のキャッシュが前記メモリ又は前記磁気ディスクに格納されている場合には、該検証用のスキーマ文書のキャッシュを前記メモリ又は前記磁気ディスクから取得し、前記検証用のスキーマ文書のキャッシュが前記メモリ又は前記磁気ディスクに格納されていない場合には、前記検証用のスキーマ文書を解析する解析部と、前記取得したスキーマ文書のキャッシュ又は前記解析した検証用のスキーマ文書を用いて、前記文書の検証を行う検証部と、を有する検証処理部と、
    を備えることを特徴とするキャッシュ生成装置。
  5. 前記定義ファイル生成部は、前記計算機に、前記スキーマ文書のキャッシュを格納する格納先を前記メモリ又は前記磁気ディスクの何れかに格納する或いは何れにも格納しないことが予め定義された格納先情報が設定されている場合、前記スキーマ文書のサイズに応じた格納先の決定をせずに、前記スキーマ文書を定義する定義ファイルに前記格納先情報が含まれた定義ファイルを生成し、前記記憶装置に格納し、
    前記キャッシュ生成部は、前記記憶装置から読み込んだ前記定義ファイルに前記格納先情報が含まれており、その格納先が前記メモリ又は前記磁気ディスクのいずれかに格納するものである場合、その読み込んだファイルに定義されているスキーマ文書のキャッシュを、前記メモリまたは前記磁気ディスクに格納し、
    前記検証処理部は、前記解析部による解析後、解析した前記検証用のスキーマ文章のキャッシュを生成し、前記決定内容又は前記格納先情報に基づいて、該生成した検証用のスキーマ文書のキャッシュを、前記メモリ又は磁気ディスクに格納することを特徴とする請求項4に記載のキャッシュ生成装置。
  6. 前記キャッシュの対象となるスキーマ文書の格納位置を示すパス情報を既存のユーザプログラムから取得し、前記定義ファイルを生成して記憶装置に格納することを特徴とする請求項4または請求項5に記載されたキャッシュ生成装置。
  7. 所定の記述言語で記載された文書を検証する為のスキーマ文書のキャッシュを生成するキャッシュ生成方法をコンピュータに実行させる為のプログラムにおいて、
    スキーマ文書のサイズに応じて、該スキーマ文書のキャッシュの格納先を該スキーマ文書のサイズがディスクにキャッシュを格納するときのスキーマ文書のサイズの最小値以上の場合は磁気ディスク装置に格納することを決定し、該スキーマ文書のサイズがディスクにキャッシュを格納するときのスキーマ文書のサイズの最小値より小さく且つメモリにキャッシュを格納するスキーマ文書のサイズの最小値以上の場合はメモリに格納することを決定し、いずれでもない場合はいずれにも格納しないことを決定し、キャッシュの対象となるスキーマ文書を定義する定義ファイルに、その決定内容を含ませて記憶装置に格納するステップと、
    前記定義ファイルを前記記憶装置から読み込むステップと、
    前記定義ファイルに格納された前記決定内容が、メモリ又は磁気ディスクの何れかに格納するものである場合、その読み込んだ定義ファイルに定義されているスキーマ文書のキャッシュを前記メモリ又は前記磁気ディスクに格納するステップと、
    所定の記述言語で記載された文書を検証する際に用いられる検証用のスキーマ文書のキャッシュが前記メモリ又は前記磁気ディスクに格納されている場合には、該検証用のスキーマ文書のキャッシュを前記メモリ又は前記磁気ディスクを記憶装置から取得し、前記検証用のスキーマ文書のキャッシュが前記メモリ又は前記磁気ディスクに格納されていない場合には、前記検証用のスキーマ文書を解析するステップと、
    前記取得したスキーマ文書のキャッシュ又は前記解析した検証用のスキーマ文書を用いて、前記文書の検証を行うステップと、
    をコンピュータに実行させることを特徴とするプログラム。
  8. 所定の記述言語で記載された文書を検証する為のスキーマ文書のキャッシュを生成するキャッシュ生成方法をコンピュータに実行させる為のプログラムを記録したコンピュータ読み取り可能な記録媒体において、
    スキーマ文書のサイズに応じて、該スキーマ文書のキャッシュの格納先を該スキーマ文書のサイズがディスクにキャッシュを格納するときのスキーマ文書のサイズの最小値以上の場合は磁気ディスク装置に格納することを決定し、該スキーマ文書のサイズがディスクにキャッシュを格納するときのスキーマ文書のサイズの最小値より小さく且つメモリにキャッシュを格納するスキーマ文書のサイズの最小値以上の場合はメモリに格納することを決定し、いずれでもない場合はいずれにも格納しないことを決定し、キャッシュの対象となるスキーマ文書を定義する定義ファイルに、その決定内容を含ませて記憶装置に格納するステップと、
    前記定義ファイルを前記記憶装置から読み込むステップと、
    前記定義ファイルに格納された前記決定内容が、メモリ又は磁気ディスクの何れかに格納するものである場合、その読み込んだ定義ファイルに定義されているスキーマ文書のキャッシュを前記メモリ又は前記磁気ディスクに格納するステップと、
    所定の記述言語で記載された文書を検証する際に用いられる検証用のスキーマ文書のキャッシュが前記メモリ又は前記磁気ディスクに格納されている場合には、該検証用のスキーマ文書のキャッシュを前記メモリ又は前記磁気ディスクを記憶装置から取得し、前記検証用のスキーマ文書のキャッシュが前記メモリ又は前記磁気ディスクに格納されていない場合には、前記検証用のスキーマ文書を解析するステップと、
    前記取得したスキーマ文書のキャッシュ又は前記解析した検証用のスキーマ文書を用いて、前記文書の検証を行うステップと、
    をコンピュータに実行させる為のプログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体。
JP2005135580A 2005-05-09 2005-05-09 キャッシュ生成方法、装置、プログラム及び記録媒体 Expired - Fee Related JP4776972B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005135580A JP4776972B2 (ja) 2005-05-09 2005-05-09 キャッシュ生成方法、装置、プログラム及び記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005135580A JP4776972B2 (ja) 2005-05-09 2005-05-09 キャッシュ生成方法、装置、プログラム及び記録媒体

Publications (2)

Publication Number Publication Date
JP2006313444A JP2006313444A (ja) 2006-11-16
JP4776972B2 true JP4776972B2 (ja) 2011-09-21

Family

ID=37534917

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005135580A Expired - Fee Related JP4776972B2 (ja) 2005-05-09 2005-05-09 キャッシュ生成方法、装置、プログラム及び記録媒体

Country Status (1)

Country Link
JP (1) JP4776972B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010204985A (ja) * 2009-03-04 2010-09-16 Fujitsu Fsas Inc 文書確認処理プログラム、方法及び装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03129550A (ja) * 1989-10-16 1991-06-03 Nippon Telegr & Teleph Corp <Ntt> コマンドプロシジャ資源管理方式
JP3497090B2 (ja) * 1999-01-21 2004-02-16 松下電器産業株式会社 マルチメディア情報提供システム

Also Published As

Publication number Publication date
JP2006313444A (ja) 2006-11-16

Similar Documents

Publication Publication Date Title
KR101098718B1 (ko) 재사용 가능한 코드 세그먼트들을 생성 및 재사용하는 컴퓨터화된 방법 및 컴퓨터 구현 시스템, 및 컴퓨터 판독 가능 저장 매체
US9524279B2 (en) Help document animated visualization
US7665098B2 (en) System and method for monitoring interactions between application programs and data stores
US20100042585A1 (en) Command Interpretation
US20120173575A1 (en) Record Based Code Structure
US7996364B2 (en) Information processing apparatus and control method thereof, and document verification apparatus and control method thereof
CN112612943A (zh) 一种基于异步处理框架的具有自动测试功能的数据爬取方法
US10656922B2 (en) Systems and methods for providing an application transformation tool
JP4144885B2 (ja) アプリケーション・オブジェクトの再利用方法
JP4776972B2 (ja) キャッシュ生成方法、装置、プログラム及び記録媒体
CN110162299A (zh) web程序及其快速开发框架、开发方法与相关设备
JP4942144B2 (ja) 情報処理装置及びその制御方法、プログラム、記憶媒体
JP2007079906A (ja) ソースコード生成装置
US8191050B2 (en) Information processor, control method therefor, computer program and storage medium
US20120174078A1 (en) Smart cache for a server test environment in an application development tool
US20090055161A1 (en) Technology for supporting modification of messages displayed by program
KR100319765B1 (ko) 시각적인 화면 설계와 고속 처리가 가능한 동적문서 연동장치 및 그 방법
JP2014081886A (ja) ファイル管理装置およびコンピュータプログラム
US11210454B2 (en) Method for preparing documents written in markup languages while implementing a user interface for dealing with data of an information system
RU2651161C1 (ru) Способ подготовки документов на языках разметки при реализации пользовательского интерфейса для работы с данными информационной системы
JP5164112B2 (ja) ソースコード変換方法、サーバシステム、およびサーバプログラム
JP2009043083A (ja) データベース接続システム、データベース接続用プログラムおよびデータベース接続方法
KR100546672B1 (ko) 프로그램에서의 형식 문자열을 이용한 문자 출력 내용의 기록 및 번역 방법
CN116510315A (zh) 虚拟资源的管理方法、装置、计算机设备及存储介质
CN116820985A (zh) 一种检测注解配置错误的方法和装置及设备

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080220

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100422

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100427

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100625

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101214

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110214

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110301

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110525

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20110608

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110628

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110629

R150 Certificate of patent or registration of utility model

Ref document number: 4776972

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140708

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees