JP5142638B2 - 文書変換装置、文書変換方法 - Google Patents

文書変換装置、文書変換方法 Download PDF

Info

Publication number
JP5142638B2
JP5142638B2 JP2007228283A JP2007228283A JP5142638B2 JP 5142638 B2 JP5142638 B2 JP 5142638B2 JP 2007228283 A JP2007228283 A JP 2007228283A JP 2007228283 A JP2007228283 A JP 2007228283A JP 5142638 B2 JP5142638 B2 JP 5142638B2
Authority
JP
Japan
Prior art keywords
document
output
conversion
format
template
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
JP2007228283A
Other languages
English (en)
Other versions
JP2009059311A (ja
JP2009059311A5 (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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2007228283A priority Critical patent/JP5142638B2/ja
Priority to US12/199,546 priority patent/US9110874B2/en
Publication of JP2009059311A publication Critical patent/JP2009059311A/ja
Publication of JP2009059311A5 publication Critical patent/JP2009059311A5/ja
Application granted granted Critical
Publication of JP5142638B2 publication Critical patent/JP5142638B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/151Transformation
    • G06F40/154Tree transformation for tree-structured or markup documents, e.g. XSLT, XSL-FO or stylesheets
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • G06F40/143Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/151Transformation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Document Processing Apparatus (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、文書変換技術に関するものである。
文書を記述する言語として、標準化団体であるW3Cが仕様を策定しているXML言語がある。このXML言語を用いれば、要素、属性などの構成部品(ノード)によって構造化された文書を記述することがでる。
XML言語で記述された文書はテキスト形式であるが、同じ文書をバイナリ形式で表現する技術がある。代表的な形式としては、ITU-Tで標準化されているFast infoset (ITU-T X.891)がある。Fast infosetによれば、ボキャブラリテーブル、ノードのデータ型情報を使って、XML言語で記述された文書をより小さいサイズで表現することができる。
一方、変換方法を記述したテンプレートを用いて、文書を別形式の構造化文書に変換するものとしては、次のようなものがある。即ち、標準化団体であるW3Cが仕様を策定しているテンプレート記述言語であるXSLT 1.0(非特許文献1を参照)、Apacheソフトウェア財団が開発したVTL(Velocityテンプレート言語)(非特許文献2を参照)等がある。
ユーザは、XSLT 1.0でテンプレートを記述し、テンプレートエンジンとよばれる変換処理を行うプログラムにテンプレートと変換対象の構造化文書を指定することで、別形式の構造化文書に変換することができる。
さらに、テンプレートを使用して、XML言語で記述した文書を圧縮する技術がある(特許文献1を参照)。
特開2004−258773号公報 XML Transformations (XSLT) Version 1.0 - W3C Recommendation 16 November 1999 Apache Jakarta Project VTL (Velocity Template Language) Reference
従来、XSLT 1.0などのテンプレート記述言語で記述されたテンプレートを使用して、XML言語などで記述された構造化文書を、XML言語、XHTML言語などで記述された別形式の構造化文書に変換することができた。
しかしながら、変換後の構造化文書がIEEE 754の浮動小数点表示表現等、文字列以外のデータ表現が可能なFast infosetのようなバイナリXML形式の文書の場合、テンプレートを使って直接変換することはできない。
この場合、一旦、テンプレートで変換可能なテキスト形式のXMLに変換した後、バイナリXMLのエンコーダを使ってバイナリXML形式にする必要があった。従って、構造化文書の解析・出力などを伴う変換処理を複数回行う必要があり、特に、計算処理速度が遅い装置では十分な変換速度が実現できない、という性能上の問題があった。
本発明は以上の問題に鑑みてなされたものであり、構造化文書データの形式をより簡便に他の形式に変換する為の技術を提供することを目的とする。
本発明の目的を達成するために、例えば、本発明の文書変換装置は以下の構成を備える。
即ち、構造化文書の出力形式としてバイナリ形式が指定されているか否かを判断する判断手段と、
前記出力形式としてバイナリ形式が指定されている場合には、前記構造化文書の形式を変換するために用いられるテンプレートから順次、前記構造化文書に対する処理命令を取得する取得手段と、
前記取得手段が取得した処理命令が、前記構造化文書中の一部を出力する命令である場合、該一部の出力形式が前記テンプレート内で指定されているか否かを判断する手段と、
前記一部の出力形式が前記テンプレート内で指定されている場合には、該出力形式に対して予め対応付けられているバイナリ変換を該一部に対して行い、該バイナリ変換の結果を、出力データを格納するためのファイルに書き込む書き込み手段と、
前記一部の出力形式が前記テンプレート内で指定されていない場合には、該一部を前記ファイルに書き込む手段と
を備えることを特徴とする。
本発明の目的を達成するために、例えば、本発明の文書変換方法は以下の構成を備える。
即ち、文書変換装置が行う文書変換方法であって、
前記文書変換装置が有する第1の判断手段が、構造化文書の出力形式としてバイナリ形式が指定されているか否かを判断する判断工程と、
前記文書変換装置が有する取得手段が、前記出力形式としてバイナリ形式が指定されている場合には、前記構造化文書の形式を変換するために用いられるテンプレートから順次、前記構造化文書に対する処理命令を取得する取得工程と、
前記文書変換装置が有する第2の判断手段が、前記取得工程で取得した処理命令が、前記構造化文書中の一部を出力する命令である場合、該一部の出力形式が前記テンプレート内で指定されているか否かを判断する工程と、
前記文書変換装置が有する第1の書き込み手段が、前記一部の出力形式が前記テンプレート内で指定されている場合には、該出力形式に対して予め対応付けられているバイナリ変換を該一部に対して行い、該バイナリ変換の結果を、出力データを格納するためのファイルに書き込む書き込み工程と、
前記文書変換装置が有する第2の書き込み手段が、前記一部の出力形式が前記テンプレート内で指定されていない場合には、該一部を前記ファイルに書き込む工程と
を備えることを特徴とする。
本発明の構成によれば、構造化文書データの形式をより簡便に他の形式に変換することができる。
以下、添付図面を参照し、本発明の好適な実施形態について詳細に説明する。
[第1の実施形態]
図1は、本実施形態に係る文書変換装置のハードウェア構成例を示すブロック図である。なお、図1には、以下の説明で主に用いる構成のみを記しており、文書変換装置の構成全てを記したものではない。従って、以下の説明は、図1に示した構成に限定したものではない。
図1に示す如く、本実施形態に係る文書変換装置は、文書変換装置本体100(以下、単に文書変換装置100と呼称する)、記憶装置140により構成されている。
先ず、記憶装置140について説明する。
記憶装置140は、ハードディスクドライブ装置に代表される大容量情報記憶装置であって、ここには不図示のOS(オペレーティングシステム)に加え、テンプレート141のデータ(テンプレートデータ)、変換元文書142のデータが保存されている。
テンプレート141のデータ(以下、単にテンプレート141と呼称する)は、変換元文書142の形式を変換する変換処理の具体的な処理内容(変換処理内容)が記述されたものである。
変換元文書142は、後述する変換処理の対象となる文書データであって、後述するように、構造化文書データである。
次に、文書変換装置100について説明する。
文書変換装置100は、CPU130と、メモリ110とで構成されている。
CPU130は、メモリ110内に格納されている各プログラムや、記憶装置140からメモリ110にロードされたデータを用いて、文書変換装置100全体の制御を行うと共に、文書変換装置100が行うものとして説明する後述の各処理を実行する。
メモリ110は、RAMやROMなどにより構成されている。メモリ110には、文書変換処理部111、出力形式取得部112、処理命令取得部113、出力データ型取得部114、テンプレート解析部115、変換元文書解析部117、文書出力部119、型付データ出力部122が格納されている。加えて、メモリ110には、非型付データ出力部123、変換アルゴリズム選択部124、データ変換部125、ノード識別子生成部126が格納されている。これらの各部はコンピュータプログラムで構成されており、コンピュータプログラムは互いにデータ通信を行うことができる。なお、以下の説明では、これら各部を動作の主体として説明することもあるが、実際には、CPU130が各部に対応するコンピュータプログラムを実行することで、各部に対応する処理が成される。
また、メモリ110には、CPU130による制御に従って記憶装置140からロードされたデータを一時的に記憶するためのエリアも備わっている。
図2は、W3Cコンソーシアムが策定しているXSLT 1.0 言語で記述されたテンプレート141の構成例を示す図である。本実施形態では、テンプレート141には図2に示す如く、XSLTの仕様で定められている通常の記述の他に、次のような情報も記述されている。即ち、バイナリXML出力用の命令を定義するための名前空間定義201、出力するバイナリXMLの形式202、XML文書を構成する単位である要素・属性のデータ型の指定203、204、205が記述されている。
図3は、W3Cコンソーシアムが策定しているマークアップ言語であるXML 1.0言語で記述された変換元文書142の構成例を示す図である。
以下では、テンプレート141として図2に示した構成を有するもの、変換元文書142として図3に示した構成を有するものを用いる。しかし、以下の説明は係る構成に限定したものではなく、その構成が変わったとしても、以下の説明は当業者であれば適宜変形することは容易である。
図8は、CPU130がメモリ110に格納されているコンピュータプログラムを実行することでなされる、変換元文書142の形式を変換する処理(文書変換方法)のフローチャートである。
まず、文書変換装置100が有する不図示の操作部や、メモリ110内に格納されている不図示の他のアプリケーションから、変換対象の文書データ、文書データの変換に用いるテンプレートの指定指示が、文書変換装置100に入力される。
従って、ステップS801では、文書変換処理部111は係る指定指示を受けると、指定されたテンプレート、文書データを記憶装置140からメモリ110にロードする。本実施形態では、このロードされるテンプレートは上記テンプレート141であり、ロードされる文書データは上記変換元文書142である。
次にステップS802では、文書変換処理部111は、テンプレート解析部115に対して、ステップS801でメモリ110にロードしたテンプレート141の解析を要求する。
ステップS803では、係る要求を受けたテンプレート解析部115は、ステップS801でメモリ110にロードしたテンプレート141の解析を行う。解析結果はメモリ110上に展開する。
図4は、テンプレート解析部115による解析結果、即ち、テンプレート141の解析結果を、メモリ110上にツリー構造として展開した場合の展開例を示す図である。係るツリー構造は、テンプレート141に記述されている処理命令の各単位(各テンプレート要素)を、ツリーの各ノード(401〜411)として展開したものである。なお、テンプレート141に対する解析結果は、図4に示したような構造でメモリ110上に展開することに限定するものではなく、テンプレート141の構造を変形しない限りは、如何なる構造でメモリ110上に展開しても良い。
図8に戻って、次に、ステップS804では、文書変換処理部111は、変換元文書142の形式をどのような形式に変換して出力するのか(出力形式)を取得する要求を、出力形式取得部112に対して行う。
ステップS805では、出力形式取得部112は、ステップS803で解析した結果、即ち、テンプレート141の解析結果のツリーから、出力形式を定義した”output”ノード401を検索し、その出力形式名を文書変換処理部111に通知する。本実施形態では、ITU-Tで仕様が策定されているバイナリXMLの形式の一つFast infoset(ITU-T X.891)が、bx:format=”fast-infoset”という文字列として指定されている。
次に、ステップS806では、文書変換処理部111は、ステップS805で出力形式取得部112から受けた出力形式がバイナリXMLであるのか、テキストXMLであるのかを判断する。係る判断の結果、バイナリXMLである場合には処理をステップS807に進める。ステップS807における処理については図9,10を用いて後述する。一方、テキストXMLである場合には処理をステップS808に進める。
ステップS808では、文書変換処理部111は、変換元文書142をテキストXML形式に変換してから出力する処理、即ち、テキスト出力用文書変換処理を行う。係る処理は、一般的なXSLTプロセッサの実装と同様、W3CのXSLT 1.0の仕様に沿って行われるため、詳細な記述は省略する。
図9は、上記ステップS807における処理の詳細を示すフローチャートである。
ステップS901では、文書変換処理部111は、変換元文書解析部117に対して、変換元文書142の解析を要求する。
ステップS902では、係る要求を受けた変換元文書解析部117は、上記ステップS801でメモリ110にロードした変換元文書142の解析を行う。
図5は、変換元文書解析部117による解析結果、即ち、変換元文書142の解析結果を、メモリ110上にツリー構造として展開した場合の展開例を示す図である。係るツリー構造は、変換元文書142の文書の各構成単位(文書要素)を、ツリーの各ノード(501〜508)として展開している。なお、変換元文書142に対する解析結果は、図5に示したような構造でメモリ110上に展開することに限定するものではなく、変換元文書142の構造を変形しない限りは、如何なる構造でもってメモリ110上に展開しても良い。
に戻って次に、ステップS903では、文書変換処理部111は、ステップS803で解析した結果、即ち、テンプレート141の解析結果のツリーから処理命令を取得する要求を、処理命令取得部113に対して行う。
ステップS904では、係る要求を受けた処理命令取得部113は、テンプレート141の解析結果のツリーから処理命令を順次取得し、取得した処理命令を文書変換処理部111に返信する。即ち、処理命令取得部113は、outputノード(命令)401、templateノード(命令)402、elementノード(命令)403、・・・、value-of(命令)ノード411までを順次、文書変換処理部111に返信する。
そして、処理命令取得部113が取得した処理命令毎に、ステップS905〜ステップS912の一連の処理を行う。
処理命令取得部113から受けた処理命令がvalue-of命令のように、変換元文書142の一部を参照するような処理命令であれば、処理をステップS906を介してステップS913に進める。そしてステップS913では、文書変換処理部111は、処理命令取得部113から受けた処理命令が指し示す参照箇所を取得する。例えば、value-of命令(406、408、411)による参照箇所は、”/root/inputs/input1”、”/root/inputs/input2”、”/root/inputs/input3”となる。従って、処理命令取得部113から受けた処理命令がvalue-of命令(406、408、411)である場合には、文書変換処理部111は、図5に示した解析結果から、”12345”、“123456789”、“-118.625”を取得する。
一方、処理命令取得部113から受けた処理命令が、変換元文書142の一部を参照するものではない場合には、処理をステップS906を介してステップS907に進める。
次に、処理命令取得部113から受けた処理命令が変換元文書142の一部を出力するもの(対応テンプレート要素)ではない場合、ステップS907を介してステップS914に進める。対応テンプレート要素には、例えば、stylesheet命令400、output命令401、template命令402のような処理命令がある。
ステップS914では、文書変換処理部111は、処理命令取得部113から受けた処理命令に対応する処理を実行する。
一方、処理命令取得部113から受けた処理命令がstylesheet命令400、output命令401、template命令402のように変換元文書142の一部を出力するものである場合、ステップS907を介してステップS911に進める。
図10は、ステップS911における処理の詳細を示すフローチャートである。
先ず、ステップS1001では、文書変換処理部111は、文書出力部119に対してデータ出力要求を送出する。
ステップS1002では、文書出力部119は、処理命令取得部113が取得した処理命令が、変換元文書142の要素内の文字列または属性値を出力する命令であるか否かを判断する。係る判断の結果、処理命令取得部113が取得した処理命令が、変換元文書142の要素内の文字列または属性値を出力する命令である場合には処理をステップS1009に進め、否である場合には処理をステップS1003に進める。
例えば、処理命令取得部113が取得した処理命令がvalue-of命令(406、408、411)である場合、上記ステップS913では、文字列(406、408)、属性値(411)が取得される。従って、この場合には、処理はステップS1002を介してステップS1009に進める。
ステップS1009では、文書出力部119は、出力データ型取得部114に対して、出力するデータの型の取得要求を送出する。
ステップS1010では、出力データ型取得部114は、係る取得要求を受けると、ステップS803で解析した結果、即ち、テンプレート141の解析結果のツリーから、出力対象のデータの型を取得する。
例えば、出力データ型取得部114は、value-of処理命令406によって出力する文字列のデータ型が要求された場合、element処理命令405の”bx:type=”short””で定義されているデータ型”short”を取得する。同様に、value-of処理命令408によって出力する文字列のデータ型が要求された場合、element処理命令407の”bx:type=”int””で定義されている”int”を取得する。また、value-ofノード411内のvalue-of処理命令によって出力する文字列のデータ型が要求された場合、attribute処理命令410の”bx:type=”float””で定義されている”float”を取得する。
そしてこのようにして取得したデータの型を、文書出力部119に返信(返却)する。
次に、以上のデータの型の取得が成功した場合、即ち、出力するデータの型が指定されている場合には、処理はステップS1011を介してステップS1012に進む。一方、出力するデータの型が指定されていない場合には、処理はステップS1011を介してステップS1016に進む。
ステップS1012では、文書出力部119は、出力データ型取得部114から受けた型を型付データ出力部122に通知すると共に、型が指定されたデータの生成を要求する。
ステップS1013では、型付データ出力部122は、係る要求を受けると、文書出力部119から通知された型を変換アルゴリズム選択部124に通知すると共に、変換アルゴリズム識別子、変換処理名の取得要求を送出する。
ステップS1014では、変換アルゴリズム選択部124は、係る要求を受けると、自身が保持する変換アルゴリズム一覧表のデータを参照し、型付データ出力部122から通知された型に対応する変換アルゴリズム識別子、変換処理名を取得する。そして取得した変換アルゴリズム識別子、変換処理名を、型付データ出力部122に返信する。
図6は、変換アルゴリズム選択部124が保持する変換アルゴリズム一覧表の構成例を示す図である。
図6に示す如く、変換アルゴリズム一覧表には、変換アルゴリズム識別子に対応するデータ型、変換処理名が、変換アルゴリズム識別子毎に、エントリとして登録されている。変換アルゴリズム識別子は、文字列をバイナリ表現に変換する際に使用するアルゴリズムを一意に識別する為の識別子である。変換処理名は、データ変換部125が実行可能なデータ変換を指し示す為のものである。例えば、データ変換部125が複数種のデータ変換を実行する事が可能である場合に、変換処理名とは、それぞれのデータ変換に用いる関数名や関数へのポインタである。
従って、図6に示した変換アルゴリズム一覧表を用いる場合、変換アルゴリズム選択部124は、型付データ出力部122から型”short”を受けると、変換アルゴリズム識別子=1、変換処理名=「変換処理1」を型付データ出力部122に返信する。
図10に戻って、ステップS1015では、型付データ出力部122は、変換アルゴリズム選択部124から受けた変換アルゴリズム識別子と、予め定められたデータ長と、をノード識別子生成部126に通知し、ノード識別子の生成を要求する。そして処理をステップS1004に進める。
一方、ステップS1016では、文書出力部119は、非型付データ出力部123に、型の指定のないデータの生成を要求する。
ステップS1017では、非型付データ出力部123は、予め定められたデータ長をノード識別子生成部126に通知し、文字列を示すノード識別子の生成を要求する。
一方、処理命令取得部113が取得した処理命令が、変換元文書142の要素内の文字列、属性値以外を出力する命令である場合には、処理をステップS1003に進める。例えば、要素の生成(xsl:element)、属性の生成(xsl:attribute)の場合には、処理をステップS1003に進める。
ステップS1003では、文書出力部119は、出力するデータの種別に応じて、ノード識別子生成部126にノード識別子の生成を要求する。
ステップS1004では、ノード識別子生成部126は、ステップS1003,S1015,S1017によって要求されたノード識別子を生成し、文書出力部119に返信する。即ち、ステップS1003,S1015,S1017では、ノード識別子を生成するための様々な情報を収集している。
ノード識別子とは、XML形式の文書全体、文書を構成する要素、属性、文字列などのノードをバイナリ形式のデータ内で識別するための識別子である。前述したFast infosetの仕様では、ノード種別、バイナリ表現への変換に使用する変換アルゴリズムの識別子、ノード名、変換後のデータ長、子ノードの有無で決定される。
ステップS1005において、文書出力部119は、ノード識別子生成部126から受けたノード識別子を、メモリ110上に保持されている、出力するデータを格納するためのファイル(変換後ファイル)に書き込む。
ステップS1006では先ず、出力するデータの型が指定されている場合、即ち、型付データ出力部122が変換アルゴリズム選択部124から変換アルゴリズム識別子、変換処理名を取得している場合には、文書出力部119はこのうち変換処理名を取得する。例えば、型としてshort型が指定されていた場合、文書出力部119は、変換処理名として「変換処理1」を取得する。
そして文書出力部119は、データ変換部125にこの取得した変換処理名に対応する変換処理を行わせるべく、この変換処理名を通知する。これにより、出力対象の文字列に対して、取得した変換処理名に対応するバイナリ変換を行うことができる。
次にステップS1007では、データ変換部125は、出力対象の文字列に対して、文書出力部119から通知された変換処理名に対応するバイナリ変換を行う。そして、バイナリ変換結果を文書出力部119に返信する。なお、出力するデータの型が指定されていない場合には、ステップS1006,S1007では、何も処理は行わない。即ち、出力対象の文字列に対するバイナリ変換処理は行わない。
次にステップS1008では、文書出力部119は、変換していない出力対象の文字列のデータ、若しくはバイナリ変換を行った結果としてのデータを、変換後ファイルに書き込む。なお、書き込んだデータが要素内容、属性、文書の最後だった場合は、Fast infosetの仕様に従ってターミネータ(F(16))を書き込む。
以上の処理により、変換後ファイルには、変換元文書142の形式変換結果(変換処理結果、処理結果)が格納されていることになる。
以下に、図4に示す如く展開されたテンプレート141の解析結果を用いて、図8〜図10のフローチャートに従った処理を実行することで、具体的にどのような順序でFast infoset形式のデータが変換後ファイルに書き込まれるかのかを示す。
1. 文書全体の識別子
E0 00 00 01 00 (16)
2. “root”要素の識別子
3C 03 72 6F 6F 74 (16) (属性なし、要素名が”root”)
3. “outputs”要素の識別子
6F 75 74 70 75 74 73 (16) (属性なし、要素名が”outputs”)
4. “output1”要素の識別子
3C 06 6F 75 74 70 75 74 31 (16)(属性なし、要素名が”output1”)
5. “output1”要素の要素内容の識別子
8C 09 (16)(short型アルゴリズムでバイナリ化、2バイト長)
6. “output1”要素の要素内容のバイナリ表現
30 39 (16) (“12345”のshort型表現)
7. “output1”要素のターミネータ
F0 (16)
8. “output2”要素の識別子
3C 06 6F 75 74 70 75 74 32 (16) (属性なし、要素名が”output2”)
9. “output2”要素の要素内容の識別子
8C 0E 01 (16)(int型アルゴリズムでバイナリ化、4バイト長)
10. “output2”要素の要素内容のバイナリ表現
07 5B CD 15 (16) (“123456789”のint型表現)
11. “output2”要素のターミネータ
F0 (16)
12. “output3”要素の識別子
7C 06 6F 75 74 70 75 74 33 (16)(属性あり、要素名が”output3”)
13. “value”属性の識別子
78 04 76 61 6C 75 65 (16)(属性名が”value”)
14. “value”属性の属性値の識別子
8C 1A 01 (16)(float型アルゴリズムでバイナリ化、4バイト長)
15. “value”属性の属性値のバイナリ表現
C2 ED 40 00 (16) (“-118.625”のfloat型表現)
16. “value”属性、”output3”要素、”output”要素、”root”要素のターミネータ
FF FF (16)
17. 文書全体のターミネータ
F0 (16)
図7Bは、上記の順番で書き出されたFast infoset形式の変換後ファイルの内容を記述した図である。図7Aは、図7Bに示した変換後ファイルの内容をテキスト表現で記述した結果を示す図である。
以上の説明により、本実施形態によれば、テンプレートを使って、構造化文書から圧縮率の高いバイナリXML形式等の文書に変換する際に、変換元の文書から中間形式の文書を生成することなく、直接バイナリXML形式等の文書を生成することができる。これにより、変換性能が向上する。
[第2の実施形態]
第1の実施形態では、データ出力処理において出力データ型取得部114が要素、属性などのノードのデータ型を、ステップS1010において、テンプレートの解析結果から取得した。これは、出力データ型取得部114が、テンプレート中の”bx:type”で指定されるデータ型の定義を検索することによって実現している。
XML文書では、ノードのデータ型をスキーマ言語とよばれる言語で定義することができる。
本実施形態では、第1の実施形態に係る文書変換装置100の構成に、変換先文書の構造を定義した、XMLスキーマ言語で記述されているスキーマ定義からノードのデータ型を取得するスキーマ解析部を追加する。そして、出力データ型取得部114からスキーマ解析部を呼び出すと、スキーマ解析部がスキーマを解析し、ノードのデータ型を出力データ型取得部114に返却する処理を追加する。これにより、テンプレートにデータ型の記述を行うことなく文書の変換を行うことができる。
その他の構成、処理の流れについては、第1の実施形態と同じである。
図11に変換後の文書のスキーマを、ISOで策定されているスキーマ言語であるRelax NG言で記述した例を示す。1101〜1103の記述はそれぞれ、output1要素がshort型、output2要素がint型、output3要素のvalue属性がfloat型であることを定義している。
これを参照することにより、出力データ型取得部114は、各ノードのデータ型を検索することができる。
図12に本実施形態で使用するテンプレートの構成例を示す。第1の実施形態とは異なり、テンプレートにはデータ型の定義をする必要はない。
[第3の実施形態]
第1の実施形態では、データ出力処理において出力データ型取得部114が要素、属性などのノードのデータ型を、ステップS1010において、テンプレートの解析結果から取得した。これは、出力データ型取得部114が、テンプレート中の”bx:type”で指定されるデータ型の定義を検索することによって実現している。
本実施形態では、第1の実施形態に係る文書変換装置100の構成において、データ型の定義を、テンプレート定義ではなく、あらかじめ用意したデータ型一覧表に登録しておき、データ型一覧表からデータ型を取得するデータ型一覧表検索部を追加する。
この場合、出力データ型取得部114からデータ型一覧表検索部を呼び出すと、データ型一覧表検索部がデータ型一覧表を検索し、ノードのデータ型を出力データ型取得部114に返却する処理を追加する。これにより、テンプレートにデータ型の記述を行うことなく文書の変換を行う。
その他の構成、処理の流れについては第1の実施形態と同じである。
図13に、本実施形態で使用する変換後文書のデータ型一覧表の構成例を示す。データ型一覧表は、ノード名、データ型から構成される。なお、この例では、ノード名をW3Cで策定されているXPath言語で記述している。
[その他の実施形態]
また、本発明の目的は、以下のようにすることによって達成されることはいうまでもない。即ち、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体(または記憶媒体)を、システムあるいは装置に供給する。係る記憶媒体は言うまでもなく、コンピュータ読み取り可能な記憶媒体である。そして、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記録媒体に格納されたプログラムコードを読み出し実行する。この場合、記録媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明を構成することになる。
また、コンピュータが読み出したプログラムコードを実行することにより、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行う。その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれたとする。その後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
本発明を上記記録媒体に適用する場合、その記録媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。
本発明の第1の実施形態に係る文書変換装置のハードウェア構成例を示すブロック図である。 W3Cコンソーシアムが策定しているXSLT 1.0 言語で記述されたテンプレート141の構成例を示す図である。 W3Cコンソーシアムが策定しているマークアップ言語であるXML 1.0言語で記述された変換元文書142の構成例を示す図である。 テンプレート解析部115による解析結果、即ち、テンプレート141の解析結果を、メモリ110上にツリー構造として展開した場合の展開例を示す図である。 変換元文書解析部117による解析結果、即ち、変換元文書142の解析結果を、メモリ110上にツリー構造として展開した場合の展開例を示す図である。 変換アルゴリズム選択部124が保持する変換アルゴリズム一覧表の構成例を示す図である。 図7Bに示した変換後ファイルの内容をテキスト表現で記述した結果を示す図である。 本発明の第1の実施形態で説明した順番で書き出されたFast infoset形式の変換後ファイルの内容を記述した図である。 CPU130がメモリ110に格納されているコンピュータプログラムを実行することでなされる、変換元文書142の形式を変換する処理(文書変換方法)のフローチャートである。 ステップS807における処理の詳細を示すフローチャートである。 ステップS911における処理の詳細を示すフローチャートである。 変換後の文書のスキーマを、ISOで策定されているスキーマ言語であるRelax NG言で記述した例を示す図である。 本発明の第2の実施形態で使用するテンプレートの構成例を示す図である。 本発明の第3の実施形態で使用する変換後文書のデータ型一覧表の構成例を示す図である。

Claims (7)

  1. 構造化文書の出力形式としてバイナリ形式が指定されているか否かを判断する判断手段と、
    前記出力形式としてバイナリ形式が指定されている場合には、前記構造化文書の形式を変換するために用いられるテンプレートから順次、前記構造化文書に対する処理命令を取得する取得手段と、
    前記取得手段が取得した処理命令が、前記構造化文書中の一部を出力する命令である場合、該一部の出力形式が前記テンプレート内で指定されているか否かを判断する手段と、
    前記一部の出力形式が前記テンプレート内で指定されている場合には、該出力形式に対して予め対応付けられているバイナリ変換を該一部に対して行い、該バイナリ変換の結果を、出力データを格納するためのファイルに書き込む書き込み手段と、
    前記一部の出力形式が前記テンプレート内で指定されていない場合には、該一部を前記ファイルに書き込む手段と
    を備えることを特徴とする文書変換装置。
  2. 前記判断手段は、前記テンプレート内に記述されている前記構造化文書の出力形式を参照することで、前記構造化文書の出力形式としてバイナリ形式が指定されているか否かを判断することを特徴とする請求項1に記載の文書変換装置。
  3. 前記判断手段は、前記構造化文書の出力形式を変換した後の文書の構造を定義したスキーマ定義内に記述されている前記構造化文書の出力形式を参照することで、前記構造化文書の出力形式としてバイナリ形式が指定されているか否かを判断することを特徴とする請求項1に記載の文書変換装置。
  4. 前記書き込み手段は、複数種の出力形式と、該出力形式のデータをバイナリ表現する為のバイナリ変換の名称と、が登録されている一覧表の情報を保持しており、
    該一覧表の情報を参照して、前記テンプレート内で指定されている前記一部の出力形式に対応するバイナリ変換の名称を特定し、該特定した名称を有するバイナリ変換を該一部に対して行い、該バイナリ変換の結果を前記ファイルに書き込むことを特徴とする請求項1乃至3の何れか1項に記載の文書変換装置。
  5. 前記判断手段は、前記取得手段が取得した処理命令が、前記構造化文書中の文字列を出力する命令であれば、該文字列の出力形式が前記テンプレート内で指定されているか否かを判断し、
    前記書き込み手段は、前記文字列の出力形式が前記テンプレート内で指定されている場合には、該出力形式に対して予め対応付けられているバイナリ変換を該文字列に対して行い、該バイナリ変換の結果を前記ファイルに書き込み、
    前記書き込む手段は、前記文字列の出力形式が前記テンプレート内で指定されていない場合には、該文字列を前記ファイルに書き込む
    ことを特徴とする請求項1乃至4の何れか1項に記載の文書変換装置。
  6. 文書変換装置が行う文書変換方法であって、
    前記文書変換装置が有する第1の判断手段が、構造化文書の出力形式としてバイナリ形式が指定されているか否かを判断する判断工程と、
    前記文書変換装置が有する取得手段が、前記出力形式としてバイナリ形式が指定されている場合には、前記構造化文書の形式を変換するために用いられるテンプレートから順次、前記構造化文書に対する処理命令を取得する取得工程と、
    前記文書変換装置が有する第2の判断手段が、前記取得工程で取得した処理命令が、前記構造化文書中の一部を出力する命令である場合、該一部の出力形式が前記テンプレート内で指定されているか否かを判断する工程と、
    前記文書変換装置が有する第1の書き込み手段が、前記一部の出力形式が前記テンプレート内で指定されている場合には、該出力形式に対して予め対応付けられているバイナリ変換を該一部に対して行い、該バイナリ変換の結果を、出力データを格納するためのファイルに書き込む書き込み工程と、
    前記文書変換装置が有する第2の書き込み手段が、前記一部の出力形式が前記テンプレート内で指定されていない場合には、該一部を前記ファイルに書き込む工程と
    を備えることを特徴とする文書変換方法。
  7. コンピュータを、請求項1乃至の何れか1項に記載の文書変換装置が有する各手段として機能させるためのコンピュータプログラム。
JP2007228283A 2007-09-03 2007-09-03 文書変換装置、文書変換方法 Expired - Fee Related JP5142638B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007228283A JP5142638B2 (ja) 2007-09-03 2007-09-03 文書変換装置、文書変換方法
US12/199,546 US9110874B2 (en) 2007-09-03 2008-08-27 Document conversion apparatus and document conversion method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007228283A JP5142638B2 (ja) 2007-09-03 2007-09-03 文書変換装置、文書変換方法

Publications (3)

Publication Number Publication Date
JP2009059311A JP2009059311A (ja) 2009-03-19
JP2009059311A5 JP2009059311A5 (ja) 2010-08-05
JP5142638B2 true JP5142638B2 (ja) 2013-02-13

Family

ID=40409414

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007228283A Expired - Fee Related JP5142638B2 (ja) 2007-09-03 2007-09-03 文書変換装置、文書変換方法

Country Status (2)

Country Link
US (1) US9110874B2 (ja)
JP (1) JP5142638B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5687219B2 (ja) * 2012-01-20 2015-03-18 日本電信電話株式会社 データ検索システム、データ検索方法及びデータ検索プログラム
JP2013214237A (ja) * 2012-04-03 2013-10-17 Nippon Telegr & Teleph Corp <Ntt> コンフィグレーションファイル解析装置、および、プログラム
US10691655B2 (en) 2016-10-20 2020-06-23 Microsoft Technology Licensing, Llc Generating tables based upon data extracted from tree-structured documents
CN111679867B (zh) * 2020-05-29 2024-02-27 中国航空工业集团公司西安航空计算技术研究所 一种嵌入式系统配置数据生成方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6209124B1 (en) * 1999-08-30 2001-03-27 Touchnet Information Systems, Inc. Method of markup language accessing of host systems and data using a constructed intermediary
US6772413B2 (en) * 1999-12-21 2004-08-03 Datapower Technology, Inc. Method and apparatus of data exchange using runtime code generator and translator
US7702995B2 (en) * 2000-04-24 2010-04-20 TVWorks, LLC. Method and system for transforming content for execution on multiple platforms
GB0011426D0 (en) * 2000-05-11 2000-06-28 Charteris Limited A method for transforming documents written in different XML-based languages
JP2004258773A (ja) 2003-02-24 2004-09-16 Mitsubishi Electric Corp 文書圧縮装置及び文書復元装置
US7647415B1 (en) * 2004-02-25 2010-01-12 Sun Microsystems, Inc. Dynamic web services stack
US8037408B2 (en) * 2005-12-22 2011-10-11 Sap Ag Systems and methods of validating templates
US7774746B2 (en) * 2006-04-19 2010-08-10 Apple, Inc. Generating a format translator

Also Published As

Publication number Publication date
US9110874B2 (en) 2015-08-18
JP2009059311A (ja) 2009-03-19
US20090063957A1 (en) 2009-03-05

Similar Documents

Publication Publication Date Title
JP5027411B2 (ja) 文書のインスタンスを生成するための装置
JP5325920B2 (ja) エンコーダコンパイラ、プログラムおよび通信機器
US20070150809A1 (en) Division program, combination program and information processing method
US8397157B2 (en) Context-free grammar
US20070055679A1 (en) Data expansion method and data processing method for structured documents
JP2012128853A (ja) Xmlドキュメントを処理するためのシステム及び方法
JP5142638B2 (ja) 文書変換装置、文書変換方法
JP2005234837A (ja) 構造化文書処理方法、構造化文書処理システム及びそのプログラム
US7111284B2 (en) System and method for mapping structured document to structured data of program language and program for executing its method
WO2007081017A1 (ja) 文書処理装置
JP2005332146A (ja) 動的コンテンツ作成プログラムの生成装置、動的コンテンツ作成プログラムを生成するためのプログラム、及び動的コンテンツ作成プログラムの生成方法
JP2010250449A (ja) 情報処理装置、情報処理方法
US8255356B2 (en) Apparatus and method of generating document
JP5201808B2 (ja) 電子文書処理装置及び電子文書処理方法
JP5570202B2 (ja) 構造化文書解析装置、構造化文書解析方法、及びコンピュータプログラム
CN101151612A (zh) 对文档进行随机访问的方法和系统
JPWO2005101210A1 (ja) データ解析装置およびデータ解析プログラム
JP6008456B2 (ja) 装置及びプログラム
JP4408717B2 (ja) 情報処理システム、蓄積装置、処理装置、蓄積方法、処理方法、ならびに、プログラム
JP2009080681A (ja) プログラム構造解析方法及び装置
JP4786695B2 (ja) 構造化文書の構造変換装置
JP4242701B2 (ja) 格納検索装置、格納検索プログラム、および格納検索プログラム記録媒体
JP4776972B2 (ja) キャッシュ生成方法、装置、プログラム及び記録媒体
JP3974606B2 (ja) 構造化文書変換装置、構造化文書変換方法及びプログラム
JP4982154B2 (ja) 構造化文書の構文解析方法及び装置

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100618

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100618

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120525

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120621

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: 20121022

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: 20121120

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

Free format text: PAYMENT UNTIL: 20151130

Year of fee payment: 3

R151 Written notification of patent or utility model registration

Ref document number: 5142638

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees