JPH07271551A - フォーマット変換装置 - Google Patents
フォーマット変換装置Info
- Publication number
- JPH07271551A JPH07271551A JP3061195A JP3061195A JPH07271551A JP H07271551 A JPH07271551 A JP H07271551A JP 3061195 A JP3061195 A JP 3061195A JP 3061195 A JP3061195 A JP 3061195A JP H07271551 A JPH07271551 A JP H07271551A
- Authority
- JP
- Japan
- Prior art keywords
- sub
- attribute
- subelement
- format
- buffer
- 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.)
- Granted
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
ストフォーマットへ変換する。 【構成】 バイナリファイル内の各ASN.1タグのク
リアテキストネームを決定する。各エレメントの下に出
現可能なサブエレメントは、エレメントテーブルにより
参照されるサブエレメントリンクリストデータ構造に格
納されている。バイナリエンコーディングは不定長フォ
ーマットであるか固定長フォーマットであり、バイナリ
ファイルのレングスを管理するためにエレメントスタッ
クが用いられる。バイナリエレメントが変換された後、
このバイナリエレメントのクリアテキスト表現に関する
情報は、前のエレメントと次のエレメントを参照するダ
ブルリンクリストデータ構造(700〜740)に格納
される。ファイル全体が変換された後、ダブルリンクリ
ストデータ構造に記憶されている情報は出力ファイルに
書き出される。
Description
に係り、特にバイナリ・エンコードの文書(binary enc
oded document)からクリアテキスト・エンコードの文
書(cleartextencoded document)への変換に関する。
本発明はまたさらに、バイナリ・エンコードの標準ペー
ジ記述言語文書(standard Page Description Languag
edocument)のクリアテキスト・エンコードの標準ペー
ジ記述言語文書)への変換に関する。
47,603号(1993年11月4日受理,"STANDAR
D PAGE DESCRIPTION LANGUAGE CLEARTEXT STRUCTUREGEN
ERATOR")、米国特許出願第08/066,383号
(1993年5月21日受理," METHOD AND SYSTEM FO
R PROCESSING MIXED BINARY LENGTH ENCODINGSCONTAINI
NG DEFINITE AND INDEFINITE LENGTH FORMATS ")及び
米国特許出願第08/006,416号(1993年1
月19日," METHOD AND SYSTEM TORECOGNIZE ENCODING
TYPE IN DOCUMENT PROCESSING LANGUAGE")の一部継続
出願であり、上記3件の米国特許出願はそれぞれ米国特
許出願第07/931,808号(1992年8月11
日受理," A Method And System to HandleDiction
ary Generation and Context DEclaration in a Docume
nt ProcessingLanguage")の一部継続出願であり、当該
米国特許出願第07/931,808号は米国特許出願
第07/876,601(1992年4月30日受
理," Method and Apparatus to Manage Picture and P
ageset for DocumentProcessing " 、米国特許出願第0
7/876,251号(1992年4月30日受理,"
Method and System to handle Inclusion of External
Files intoa Document Processing Language ")及び米
国特許出願第07/778,578号(1991年10
月17日受理," System and Method for Document
Processing")の一部継続出願であり、上記各特許出願
は引用により本明細書に組み込まれる。
L)が提案され、国際標準化機構(ISO)で国際規格
として開発中である。この提案は、本願発明者の一人も
その関与者であるが、現在、ISOの1セクションに草
案として提出されている。この草案はISO/IEC DIS 1018
0 ”Information Processing TextーCommunication−Sta
ndard Page Description Language”として知られ、ニ
ューヨークの米国規格協会(ANSI)で入手可能であ
るが、ここに引用することによっ本明細書に組み込まれ
る。
に構造化されたページ記述言語である。この構造化され
た階層によれば、文書の一部分の印刷をする場合に、当
該部分に影響する可能性のあるフォーマット用コマンド
(formatting command)を文書全体にわたって調べる必
要がなくなる。所望の部分を印刷するのに、その刷した
い部分より階層が上の文書の部分しか処理する必要がな
い。
ISO 8879:1986 に定義された標準一般化マークアッ
プ言語(Standard Generalized Markup Language,
SGML)に準拠していることである。このことによ
り、文書構造を記述し包括的に結び付けることが可能に
なる。複数のファイルは、SGMLで結びつけられたな
らば、変換ユーティリティを用いる事なく、かつ構造フ
ォーマットを損なうことなく、あるプラットフォームか
ら他のプラットフォームへ継ぎ目なく移ることができ
る。
ベーシック・エンコーディング規則(Basic Encoding
Rules)に準拠している。ASN.1に関する完全な
説明は、Douglas Steedman著”ASN.1,The Tuto
rial and Reference”(1990年)に見られるが、
この文献は引用により本明細書に組み込まれる。
間が読むことのできるコンピュータ言語の一種である。
非クリアテキスト言語の一例をあげるならば、文書のバ
イナリ・エンコーディング(binary encoding)であろ
う。2進もしくは16進表現の文書を見ても、人間には
文書内容を容易には理解できないからである。バイナリ
・エンコードされた文書の一つの主要な利点として、2
進で表現された文書は同等のクリアテキスト形式の文書
に比べて必要とする記憶スペースが非常に少ない事があ
る。このことがバイナリ文書の記憶スペースの減少及び
伝送時間の高速化を可能にする。しかしクリアテキスト
・エンコードの文書に比べ、特殊なソフトウエアを用い
ないとバイナリ・エンコードの文書の編集及び理解が難
しい。
キスト・エンコーディングにもバイナリ・エンコーディ
ングにも長所と短所があるので、文書を一方のフォーマ
ットから他方のフォーマットへ変換したいことがあろ
う。
は、バイナリ・エンコードの文書をクリアテキスト・エ
ンコードの文書へ変換する手段を提供することである。
ンコードの標準ページ記述言語文書を等価なクリアテキ
スト・エンコードの標準ページ記述言語文書へ変換する
手段を提供することである。
マットのゆえに、バイナリ・エンコード文書をクリアテ
キスト・エンコード文書に変換するために単純なルック
アップ(look-up)プロシージャを実行することはでき
ない。様々なバイナリ・シンボル(binary symbol)の
表わす内容は、SPDL文書中のバイナリ・シンボルの
ロケーションに依存して決まる。
課題は、バイナリ・エンコードされたプロセスそれぞれ
の長さを管理することである。SPDLは階層的に構造
化されたページ記述言語であり、各階層レベルの始まり
は、該レベルが固定長フォーマットまたは不定長フォー
マットのいずれでエンコードされるかを示し、また、固
定長バイナリ・エンコーディングがある時には、エンコ
ーディングの長さを示す。
コーディングにおける特定エレメントの順序がクリアテ
キスト・エンコーディングでは変更されなければならな
いという事である。したがってクリアテキストSPDL
フォーマットにおいて要求されるエンコーディング順序
を知る必要がある。
解決するための手段を、やや具体的に説明すれば、本発
明は、バイナリからクリアテキストへの変換を行なうた
めに、まず最初に、アプリケーション・テーブル(appl
ication table)よりASN.1タグを検索し、このバイ
ナリ・タグ(binary tag)のクリアテキスト名を決定す
る。クリアテキスト名が決まったならば、当該エレメン
トに関するそれ以上の情報をエレメント・テーブル(el
ement table)より検索できる。エレメント・テーブル
のエレメントはサブエレメント(sub-element)を持つ
ことができ、サブエレメントはサブエレメント・リンク
リスト(sub-element linked list)を指すエレメント
・テーブル中のポインタによって参照される。
後、変換プロセスで用いられる情報の管理のための各種
フィールドを持つエレメント・スタックに、一つのエン
トリーがプッシュされる。このエレメント・スタック
は、バイナリ・コーディングの固定長フォーマット及び
不定長フォーマットの処理に非常に有益である。
に、アトリビュート(attribute)値がアトリビュート
・バッファに格納される。出力ファイルの生成前におい
て、ファイルが変換されている時に変換された各クリア
テキスト行がダブル・リンクリストデータ構造(double
linked list data structure)に書き込まれる。ファ
イル全体が変換されてダブル・リンクリストデータ構造
に書き込まれると、ダブル・リンクリストデータ構造の
情報が出力ファイルへ書き出される。
(out of order)アトリビュートの処理のために有効に
利用される。エレメントはアトリビュートとサブエレメ
ントを含むことができる。通常、クリアテキストSPD
Lの場合、アトリビュートはエレメントの直後、及び、
あらゆるサブエレメントの出現前に、出現しなければな
らない。しかし、バイナリSPDLエンコーディングに
おいては、サブエレメントがアトリビュートの前に出現
することがある。
ブル・リンクリストデータ構造を用いて、上述の不適切
なアトリビュートの問題を解決する。本発明において、
エレメントより階層的に下に現われるオブジェクトはサ
ブエレメントと総称される。あるエレメントに対するサ
ブエレメントは、そのエレメントのアトリビュートであ
るか、あるいは実際のサブエレメントである。アトリビ
ュートを適切ならしめるためには、それらアトリビュー
トはエレメントの直後に出現するべきである。アトリビ
ュートの全てが出現する以前にエレメントの後にサブエ
レメントが出現したならば、その後のアトリビュートは
不適切なアトリビュートであると考えられる。ダブル・
リンクリストデータ構造はエレメントのアトリビュート
情報を格納するためのエントリーを有する。あるエレメ
ントの下に、アトリビュートの全部が処理される前にノ
ンアトリビュート(non-attribute)・サブエレメント
が出現した場合には、親(parent)エレメントのダブル
・リンクリストデータ構造によって新しいダブル・リン
クリストデータ構造が参照される。親エレメントのサブ
エレメントの処理後に、不適切なアトリビュートが出現
することになる。最も最近に生成されたダブル・リンク
リストデータ構造より、親エレメントのダブル・リンク
リストデータ構造に到達するまで、ダブル・リンクリス
トデータ構造が逆向きにトレースされる。そして、その
アトリビュート・サブエレメントのアトリビュート情報
が親エレメントのダブル・リンクリストデータ構造のア
トリビュート・エントリーに書き込まれる。このように
して、不適切アトリビュートが効率的に処理される。
を説明するが、複数の図面にわたって同一の参照数字は
同一部または対応部を示す。
・エンコード文書に関する固定長及び不定長フォーマッ
トのネスティングの一例が示されている。図1は、処理
されるべき一つのデータストリームもしくは文書データ
ストリームを示すと考えることができる。行1〜行16
及び行17〜行19は、最高階層レベルの2つのコーデ
ィングであるが、行1〜行16内にはネストされたコー
ディングがある。行1〜行16のエンコーディングのコ
ンテント(content)は400バイトの固定長である。
これら400バイト内で、まず行4〜行13に一つの不
定長構造がある。この行4〜行13の不定長コンテント
は248バイト及び40バイトの固定長コーディングで
ある。行4〜行13にある400バイトのコンテントか
らなる不定長エンコーディングに加えて、100バイト
のコンテントを含む行14〜行16の固定長エンコーデ
ィングがある。図1の行17〜19は250バイトの長
さの固定長エンコーディングを含む。
トのネスティング(nesting)”なるタームは、ある不
定長エンコーディングが、そのコンテントとして、一つ
の不定長エンコーディングと一つの固定長エンコーディ
ング、すなわち、これら二つのエンコーディングの組合
せを持つことができる、ということを意味する。このこ
とは、その固定長エンコーディングが、その不定長エン
コーディングが終わる前に始まることを意味する。上記
タームは不定長エンコーディングを含んだ固定長エンコ
ーディングにも同様に当てはまる。すなわち、不定長エ
ンコーディングは固定長エンコーディングが終わる前に
始まることができる。さらに、一つのエンコーディング
内に、任意数の任意タイプのエンコーディングをネスト
可能である。
理されている時に、ネストされた固定長エンコーディン
グ及び不定長エンコーディングのハンドリングに関して
一つの問題が生じる。図1に示した例は単純なケースで
ある。固定長・不定長フォーマットのネスティングがず
っと深くなることがあり得る。したがって、処理システ
ムは、多くの不定長フォーマット及び固定長フォーマッ
トの階層レベルを管理せねばならないかもしれない。
るには、ASN.1エンコーディングで使用される行1
3の000Hのような、不定長エンコーディングの終わ
りフラグもしくはマーカーを捜すだけでは不十分であ
る。というのは、行9及び行12にあるコンテントが0
00Hをデータ、イメージデータとして含むことがある
からである。したがって、本発明は、不定長エンコーデ
ィングの終わり000Hを、ネストされた固定長エンコ
ーディングの処理が済んだ後に捜す。不定長エンコーデ
ィングの終わりは、固定長フォーマットのネストされた
ルーチンの後に来る筈であるからである。
ィングであるが、図2はISO/IEC8824に定義されたベー
シック・エンコーディング規則に従ったバイナリ・エン
コーディングの構造を示している。このエンコーディン
グは1個以上のアイデンティファイア・オクテット(id
entifier octet)から始まり、次に1個以上のレングス
・オクテット(length octet)が来て、これにコンテン
ト・オクテット(contents octet)が続く。
ィファイア・オクテットの構造が図3に示されている。
このアイディンティファイア・オクテットの初めの2ビ
ットはエンコーディングのクラスを表わす。図3に示さ
れたビット8及びビット7で定義される可能なエンコー
ディング・クラスは、ユニバーサル、アプリケーショ
ン、コンテント・スペシフィック(content-specifi
c)、及びプライベートの4クラスである。ASN.1
によるエンコーディングの完全な説明は、ISO/IEC 8824
及びISO/IEC 8825(いずれも引用によって本明細書に組
み込まれる)に見られる。しかし、本発明の作用を理解
するのにエンコーディングの様々なクラスについての理
解は必要ではないので、説明の簡略のため、これ以上の
詳細については述べない。
グがプリミティブ(primitive)であるか複合(constru
cted)であるかを決定する。プリミティブとは他のエン
コーディングが当該エンコーディング内にネストされて
いないことを意味し、複合とは他のエンコーディングが
当該エンコーディング内にネストされていることを意味
する。図3に示されているビット5〜1はタグの番号に
関するものである。タグの番号が31を超えるときに
は、ビット5〜1は同番号を表現するには足りないの
で、後続のアイデンティファィア・オクテットでタグの
番号をエンコードする。様々なタグ番号の完全な理解
は、本発明の作用を理解するためには必要ではないので
簡略のため省略する。
ングス・オクテットはプリアンブル(preamble)情報と
考えることができ、コンテント・オクテットはコンテン
ト情報と考えることができる。アイデンティファイア情
報がテキストフォーマットへ変換されたときに得られる
テキスト情報は、クリアテキスト開始タグにコンテント
情報のクリアテキスト表現が続いたもので、必要なら
ば、もしくは要求されるならば、その後にクリアテキス
ト終了タグが続く。
DLエンコーディングの基本を理解するのに十分である
と考えられる。しかし、バイナリ・エンコーディングの
処理に関するより詳細かつ完全な説明を、係属中の米国
特許出願第08/066,383号(”METHOD AND SYS
TEM FOR PROCESSING MIXED BINARY LENGTH ENCODINGCON
TAINING DEFINITE AND INDEFINITE LENGTH FORMATS”)
に見ることができる。本出願の主要な関心事及び処理は
ファイルをバイナリ表現からクリアテキスト表現へ変換
することであるが、上記関連出願に述べられている処理
は主としてプリンタ、CRT等による文書の出力(pres
entation)に関係するものである。
管理するためにエレメント・テーブルとサブエレメント
・リンクリストを用いる。SPDLは階層的に構造化さ
れたページ記述言語であるので、エレメント・テーブル
及びサブエレメント・リンクリストの情報を生成するに
はSPDL内の階層構造を決定する必要があった。
願発明者は、規格草案に含まれているSPDLエレメン
トの記述を使用し、図4に示すようなSPDLエレメン
ト状態遷移ダイヤグラムを作成した。図4は、SPDL
構造エレメントをツリー構造を用いて図示しており、ま
た、一つのエレメントから出て同じエレメントに戻るラ
ベル付けされたアトリビュート用円弧矢印を示すことに
より、様々なSPDLエレメントに対するアトリビュー
トを図示している。 この状態遷移ダイヤグラムから、
本願発明者は本発明に用いられるエレメント・テーブル
とサブエレメント・リンクリストを生成することができ
た。
はSPDL152である。SPDLエレメントの下に出
現できる2つの可能なエレメントがある。すなわち、文
書エレメント154とリソース定義(resource definit
ion)エレメント156である。このリソース定義エレ
メント156はリソース・アトリビュート、SPDLI
Dアトリビュート及びファンクション(function)アト
リビュートというアトリビュートを持つとして示されて
いる。アトリビュートは固定値を持つことも、ユーザに
よって入力された値を持つこともある。
端エレメントつまり最も下のエレメントはアスタリスク
が付けられており、また、前に定義済みのエレメントは
プラス記号が付けられている。特定の階層構造の最低レ
ベルには終端エレメントが存在可能であるが、他のエレ
メントは存在できない。図4に示したSPDLエレメン
ト状態遷移ダイヤグラムは完全ではなく、簡略化のため
にSPDL構造エレメントの一部を省略している。例え
ば、リソース・スペシフィケーション(specificatio
n)164、外部宣言172、情報宣言174、リソー
ス定義176、リソース宣言178、DPI宣言18
0、コンテキスト(cpntext)宣言182、セットアッ
プ・プロシージャ(set-up procedures)186の下に
来る構造エレメントがある。
ット(pageset)エレメント158とピクチャー(pictu
re)エレメント160がある。ページセット158の下
にページセット・ボディ(body)166及びプロローグ
(prologue)172がある。図4に示されるように、ピ
クチャー・エレメント160はページセット・ボディ1
66の下に出現することも可能である。ピクチャー・エ
レメント160は、コンテント・タイプのアトリビュー
トとSPDL IDとを有する。ピクチャーエレメント
160の下に出現可能なSPDLエレメントはプロロー
グ172とピクチャー・ボディ168である。トークン
・シーケンス(token sequence)170がピクチャー・
ボディ168の下に出現可能である。プロローグ172
の下に出現する辞書ジェネレータ(dictionary generat
or)184はその下に、サイズのアトリビュートを持つ
辞書ジェネレータ・エレメント188が出現可能であ
る。辞書188の下に出現可能なSPDLエレメントは
辞書ID190、ネーム(name)194及びトークン・
シーケンス192である。
16進表現で示している。図5に示された文書と等価な
クリアテキスト文書が図6に示されている。本発明が用
いられた場合、図5に示した文書を入力して図6に示し
た形式へ変換させることができる。図5及び図6に示し
た文書に対する本発明の作用の説明を行なった後のほう
が、図5及び図6の詳細を理解しやすいであろう。
れた文書にどのように対応するかを説明するものであ
る。図7より分かるように、61はエレメントたるペー
ジセットを表わしている。61の後の59は、このペー
ジセットの長さ(length)を表わしている。このページ
セット内にSPDL IDがASN.1タグ06で表わ
されている。このSPDL IDの長さは4である。実
際のSPDL IDである”ISO/IED 10180//SPDL”
は”28 CF 44 00”によって表わされてい
る。
はコメントに対応することが分かる。このコメントの長
さは1Fである。このコメントの内容は”SPDL ID=Publ
icObject ID value ”である。次に、A1はページセッ
ト・ボディとも呼ばれるところのpsbodyを表わすことが
分かる。図7の残りの部分も同様に理解することができ
る。したがって、簡略化のために図7における対応関係
の完全な説明は省略する。
ン・テーブルを示す。このアプリケーション・テーブル
はASN.1タグ(アイデンティファイア・オクテッ
ト)のバイト値と、それに対応したクリアテキストのア
プリケーション・エレメントのネーム(name)を記憶し
ている。例えば、ASN.1タグの40Hはクリアテキ
スト・エレメント”name”に対応する。また、ASN.
1タグの61H及び62Hは、ページセット(pagese
t)及びピクチャー(picture)なるエレメントにそれぞ
れ対応することが分かる。当然、本発明で使用される完
全なアプリケーション・テーブルは、SPDL構造エレ
メントそれぞれのための既知のASN.1タグと既知の
エレメント・ネームを記憶することになる。ASN.1
タグは公知文献で容易に知ることができるので、AS
N.1タグそれぞれの完全なリストは提示しない。
メント・テーブルを示す。このエレメント・テーブルの
最初のカラムはエレメント・ネームもしくは同エレメン
トのクリアテキスト・タグである。次の2つのカラム
は、開始タグ及び終了タグが省略可能であるか必要とさ
れるかを示す。ハイフンはタグが必要であることを示
し、0はタグがオプショナルであることを示す。なお、
ここに開示される本発明の実施例においては、各エレメ
ントの開始タグ及び終了タグが常に用いられる。勿論、
エレメント・テーブルの開始タグ・エントリー及び終了
タグ・エントリーを使用し、それらがオプショナルの時
にタグを省略することも可能である。
は、エレメントがプリミティブであるか複合(construc
ted)であるかを示す。プリミティブはコンテント中に
他のエンコーディングがネストされていないことを意味
し、複合はコンテント中に他のエンコーディングがネス
トされていることを意味する。本発明は4番目のカラム
を格別に参照することはないが、このプリミティブ/複
合情報は他の関連発明で使用されるかのしれないので当
該エレメント・テーブルに含まれている。
は、エレメント宣言を記憶する。このエレメント宣言
は、エレメントの特性の記述である。より具体的には、
エレメント宣言は、エレメントのエレメント・ネームに
ついての特性及び従属構造エレメント(それがあるなら
ば)の扱いについての特性に関係する。例えば、DOCTYP
E、NO DECLARATION、OCTET STRING、PRINTABLE STRING
は第1のタイプのエレメント宣言である。CHOICE、SE
QUENCE、SEQUENCE OF CHOICE は第2のタイプのエレメ
ント宣言である。DOCTYPE 宣言は特殊タイプの宣言で、
DOCTYPE構造エレメントのためにだけ使用される。CHOIC
E 宣言はエレメント下のサブエレメントの任意の一つを
ユーザが選択できることを示す。SEQUENCE 宣言はエレ
メントの下に出現するサブエレメントは特定の順番で出
現しなければならず、この順番は変更できないことを示
す。
繰り返すことにより、2つ以上の従属構造エレメントを
選択させる。NO DECLARATION 宣言はエレメントが従属
構造エレメントを1つしか持たないことを意味する。
ット・バイトの文字ストリングであることを示す。PRIN
TABLE STRING 宣言は、エレメントが印刷可能(printab
le)ストリングであることを示す。
るタグに基づいて決定されるから、明示的に記述される
必要がないことを意味する。この特徴の詳細は、AS
N.1等のSPDLで用いられるエンキコーディングに
関する公知文献で知ることができるので、簡略化のため
割愛する。
られるが、これら宣言の詳細は説明の簡略化のため省略
する。それらの詳細は、SPDLに関する公知文献で知
ることができる。本発明は、バイナリSPDL文書のシ
ンタックスがSPDLエンコーディング条件に違反しな
いようにするためにエレメント宣言を使用することがで
きる。
は、エレメントのアトリビュート数を示す。アトリビュ
ートはエレメントの様々な特徴を記述するが、エレメン
トに対する固有のアトリビュートはサブエレメント・リ
ンクリスト中に見つかる。
は、エレメントのサブエレメント数を示す。このサブエ
レメント数はエレメントの下に出現可能な様々なサブエ
レメントの個数を示す。エレメント・テーブルの最後の
カラムは、エレメントの下に出現可能なサブエレメント
に関する情報を記憶しているサブエレメント・リンクリ
ストデータ構造へのポインタである。
ブルのいずれかのポインタに対応するポインタ202に
より指されるサブエレメント・リンクリストデータ構造
200を示す。このサブエレメント・リンクリストデー
タ構造200の最初のエントリー204はASN.1タ
グであり、このタグはサブエレメントのバイナリ表現で
ある。サブエレメント・リンクリストデータ構造200
のエントリー206はサブエレメント宣言で、エレメン
ト・テーブルに関して述べたエレメント宣言と同様の宣
言情報を記憶する。
200のエントリー208は、ASN.1タグ204に
対応したクリアテキスト・サブエレメントネームを記憶
する。
プを記憶する。可能なサブエレメントのタイプは、アト
リビュート、オプショナル、デフォルト、またはターミ
ネーティング(terminating)であり、これら4つのタ
イプの組合せも許される。本発明を実施する場合、サブ
エレメントのタイプは4タイプなら4ビットを用いて表
現される。先に述べたサブエレメントの4タイプのいず
れにも合致しないときには、サブエレメント・タイプを
空白にすることも可能である。
ケンス番号を記憶しており、このシーケンス番号はサブ
エレメント・リンクリストデータ構造の番号である。例
えば、あるエレメントに対する最初のサブエレメントは
シーケンス番号1を有し、あるサブエレメント(2番目
のサブエレメント)の最初のリンクリストデータ構造に
より指されるリンクリストデータ構造はシーケンス番号
2を有する。
の最後のフィールド214は、次のサブエレメント・リ
ンクリストデータ構造へのポインタである。あるエレメ
ントが、その下に出現する多数の様々なサブエレメント
を階層構造中に持っている場合、各サブエレメントはそ
れ自体のリンクリストデータ構造を有する。これらのサ
ブエレメント・リンクリストデータ構造は、あるエレメ
ントの後続サブエレメント・リンクリストデータ構造を
指すポインタ214によって相互にリンクされる。最後
のサブエレメント・リンクリストデータ構造はヌルを指
す。
のサブエレメント・リンクリストデータ構造230,2
40,250を示す。最初のサブエレメントのためのA
SN.1タグは06で、これは SPDL ID エレメントに
対応する。 SPDL ID に対しては宣言がないので、 SPDL
ID はアトリビュートである。この SPDL ID は、最初
のサブエレメントであるので、2番目のサブエレメント
であるプロローグを指す。このプロローグ・サブエレメ
ント・リンクリストデータ構造は、 PSBODY サブエレメ
ント・リンクリストデータ構造250を指す。
3に示す PSBODY エレメント、及び図14に示す PICBO
DY エレメントのためのサブエレメント・リンクリスト
データ構造のフィールドは、ページセット・エレメント
に関して述べたリンクリストデータ構造のフィールドと
同じように記述することができる。
草案段階で未だ完成していない。将来、エレメントまた
はサブエレメント宣言がシーケンスである時に使用され
る”フラグ”エントリーをサブエレメント・リンクリス
トデータ構造に追加する必要があるかもしれない。しか
し、現時点では必要でないので、このフラグは図示した
サブエレメント・リンクリストデータ構造には含まれて
いない。
ストSPDLファイルに変換するプロセス中で本発明に
より使用されるエレメント・スタック340を示す。エ
レメント・スタック340のフィールド342は、処理
されているエレメントのクリアテキスト表現であるとこ
ろのエレメント・ネームを記憶している。フィールド3
44はエレメントの宣言である。フィールド346は、
エレメントのアトリビュートを処理するために使用され
る。エレメントの各アトリビュートの処理後、当該エレ
メントの処理されたアトリビュートを管理するため、フ
ィールド346は1だけデクリメントされる。フィール
ド348は、文書の階層レベルそれぞれのレベル番号を
管理するために使用され、また、クリアテキストSPD
Lファイルにおける字下げ(indentation)レベルを管
理するために用いられる。
グス(ELEMENT LENGTH)フィールド352は、バイナリ
・エレメントの長さを管理するために使用される。INDE
F フラグ350内の”1”はバイナリ・エレメントが不
定長フォーマットであることを示す。エレメント・レン
グスフィールド352はバイナリ・エンコーディングが
処理されている時にそのバイトのカウントのために使用
される。ポインタ354は、図11乃至図14に示した
リンクリストと類似のサブエレメント・リンクリストを
指す。
0が持っている indef フラグとエレメント・レングス
フィールドは、係属中の米国特許出願第08/066,
383号(1993年5月21日受理、”METHOD AND S
YSTEM FOR PROCESSINGMIXED BINARY LENGTH ENCODING
CONTAINING DEFINITE AND INDEFINITE LENGTHFORMAT
S”)に詳しく述べられており、当該特許出願は引用に
より本明細書に組み込まれる。エレメント・スタックの
他の特徴は係属中の米国特許出願第08/147,60
3号(1993年11月4日受理、”STANDARD PAGE DE
SCRIPTIONLANGUAGE CLEARTEXT STRUCTURE GENERATO
R”)に述べられているエレメント・スタックと幾分類
似しており、当該特許出願は引用により本明細書に組み
込まれる。
構造(double linked list datastructure)360は、
クリアテキスト変換後情報を管理するために用いられ
る。一つのバイナリ・エレメントが処理変換される都
度、当該エレメントのための情報がダブルリンクリスト
データ構造に格納される。バイナリからクリアテキスト
への変換が終了した後、ダブル・リンクリストデータ構
造のそれぞれの情報が、図6に示した文書に類似した出
力ファイルへコピーされる。このダブル・リンクリスト
は、バイナリ表現ではクリアテキスト表現での順序と違
った順序を持つことのあるエレメントの処理に役立つ。
は、ポインタ362によって指される。ポインタ362
は、当該ダブル・リンクリストデータ構造が変換されて
いるファイルのための最初のダブル・リンクリストデー
タ構造でなければ、一つ前のダブル・リンクリストデー
タ構造の”next”ポインタに対応する。当該ダブル・リ
ンクリストデータ構造が変換されているファイルの最初
のダブル・リンクリストデータ構造ならば、ポインタ3
62は、デフォルト値でよく、システムが当該最初のデ
ータ構造を参照するために使用されるに過ぎない。フィ
ールドレベル番号364はエレメントの字下げレベルを
示す。エレメント・ネーム368はエレメントのクリア
テキスト・ネームを示す。エントリー368は、そのネ
ームを格納するメモリ領域を指すポインタであることも
ある。フィールド370はエレメントのアトリビュート
情報を、それが存在するときに、格納する。フィールド
370は、アトリビュート情報を格納する別のメモリロ
ケーションへのポインタであることもある。
されるかもしれないデータを格納する。例えば、エレメ
ントがコメントならば、このデータ・フィールドはコメ
ントのテキストを格納することになろう。このデータ・
フィールドは、実際のデータを格納している別のメモリ
ロケーションへのポインタであることもある。フィール
ド374はバックポインタ(back pointer)であり、こ
れは前のダブルリンクリストデータ構造が存在するなら
ば、それを指すものである。前のダブル・リンクリスト
データ構造が存在しないときは、このバックポインタは
ヌルを指す。ネクスト・ポインタ(next pointer)37
6は、次のダブル・リンクリストデータ構造が存在する
ならば、それを指す。次のダブル・リンクリストデータ
構造が存在しないときには、このネクスト・ポインタ3
76はヌルを指す。
ート・バッファ380を示す。このアトリビュート・バ
ッファ380は、エレメントの処理中に該エレメントの
アトリビュート情報を一時的に記憶するために用いられ
る。
ァイルをクリアテキストSPDLファイルへ変換するた
めに本発明により用いられるプロセスを示す。図18の
ステップ402は、入力コマンドライン(command lin
e)を解析して入力ファイルネーム及び出力ファイルネ
ームを確定する。ステップ404は、その入力ファイル
が存在するか判定する。入力ファイルが存在しないとき
には、フローはステップ406へ進み、入力ファイル不
存在を原因とするエラーが表示され、プロセスから抜け
出す。入力ファイルが存在するときには、フローはステ
ップ408へ進み、出力ファイルが特定済みであるか判
定する。出力ファイルが特定済みでなければ、ステップ
410で出力ファイルにデフォルトのファイルネームが
割り当てられる。ステップ412は、入力ファイルがS
PDLバイナリ・ファイルであるか判定する。この判定
は、ファイルの始まり部分を調べ、それにバイナリSP
DLファイルであることを表示するビットが含まれてい
るかを確かめることによって、行なうことができる。フ
ァイルがバイナリSPDLファイルであるか判定する方
法に関するより詳細な説明は、係属中の米国特許出願第
08/006,416号(”METHOD AND SYSTEM TO REC
OGNIZE ENCODING TYPE IN DOCUMENTPROCESSING LANGUAG
E”)に見ることができ、当該出願は引用により本明細
書に組み込まれる。ステップ412で入力ファイルがバ
イナリSPDLファイルではないと判定した場合、ステ
ップ414は入力ファイルのフォーマットが正しくない
ことを表示し、プロセスは終了する。入力ファイルがバ
イナリSPDLファイルであるならば、フローは図19
に示すプロセスAに進む。なお、図5,図6及び図7に
挙げた例は国際規格草案に基づいているのに対し、米国
特許出願第08/006,416号はそれより後のバー
ジョンに基づいているが、該バージョンは未だ最終的な
形で刊行されていない。しかし、いずれのバージョンで
も”28CF 44 00”はバイナリSPDLエンコーディン
グを意味する。
ックを初期化するが、これは単にスタックのためにメモ
リを予約するに過ぎない。ステップ422及びステップ
424は、クリアテキスト・ファイルの初めの2行をダ
ブル・リンクリストデータ構造に書き込む。クリアテキ
ストSPDLファイルの初めの2行は常にDOCTYPE及びS
PDLであるので、これらの2行を各SPDLファイルの
始めに書き込む必要がある。
取得し、ステップ428は該タグを調べ、それがRESDEF
であるか判定する。最初のタグがRESDEFでないときに
は、SPDLエンコーディング規則はクリアテキスト・
エンコーディングの第3行が文書エレメントであること
を要求する。最初のエレメントタグがRESDEFであれば、
クリアテキスト・エンコーディングの第3行を文書エレ
メントにする必要はない。ステップ428及びステップ
430より、フローは図20に示すプロセスBへ進む。
テーブルをサーチしてバイナリタグに対応するエレメン
トを見つけ、エレメントタグに関する情報、例えば、ク
リアテキスト・エレメントネームや、開始タグと終了タ
グがオプショナルであるか必要であるか、エレメントが
プリミティブであるか複合であるか、エレメントのアト
リビュート数、エレメントのサブエレメント数、エレメ
ントのサブエレメント・リンクリストへのポインタとい
った情報を取得する。ステップ442は入力ファイルよ
り、エレメントの長さ(length)を示す次のバイトを読
み出す。エンコーディングのレングス・オクテット(le
ngth octet)が2進の10000000である時には、その長さ
は不定長である。不定長エンコーディングの終わりは、
コンテント・オクテット(contents octet)中の0000H
により示される。ステップ444でエンコーディングが
不定長であると判定した場合、ステップ446はINDEF_
LEN_FLAGを真(true)に設定し、エンコーディングが不
定長フォーマットであることを表示する。ステップ44
4でエンコーディングが不定長フォーマットではないと
判定された場合には、フローはステップ448に進み、
固定長エンコーディングの値が決定される。ステップ4
48及びステップ446より、フローは図21に示すス
テップCへ進む。
ント・スタックが空であるか判定する。空でなければ、
ステップ462で、エレメント・スタックのトップエン
トリーより、処理されるタグのバイト数、該タグに使用
されるバイト及び該タグのレングス部を減じる必要があ
る。現タグのレングス・タイプが固定長であるときに
は、この固定長も減じられる。多くの場合、タグは1バ
イトで、レングスは1バイトであるので、エレメント・
スタックのトップエントリーのレングス・フィールドよ
り2バイトが減じられる。
フローはステップ464に進み、サブエレメント・リン
クリストポインタがヌルであるか判定される。サブエレ
メント・リンクリストポインタがヌルのときには、エレ
メントにはサブエレメントが存在しないので、エレメン
トは終端(terminal)エレメントであり、フローはステ
ップ474に進み、終端エレメントに関するデータを、
対応のダブル・リンクリストデータ構造360のポイン
タ372により指されたバッファに格納する。フローは
ステップ476に進み、TERMINAL_ENTRY_FLAG が真(tr
ue)に設定される。フローはステップ476より、図2
4に示すプロセスEへ進み、エレメントの情報を新しい
ダブル・リンクリストに格納する。
リストポインタがヌルでないと判定した場合、エレメン
トのサブエレメントが存在するので、フローはサブエレ
メント情報の処理を開始すべくステップ468に進む。
ステップ468はステップ440で得られたエレメント
情報をエレメント・スタックへプッシュする。フローは
ステップ468から図22に示すプロセスDへ進む。
ビュート数(エレメント・スタックに記憶されている)
が0より大きいか判定する。アトリビュート数が0より
大きくなければ、ステップ482はアトリビュート・バ
ッファATTR_BUFFERをヌルに設定し、フローは図24に
示すEへと進む。アトリビュート数が0より大きいとき
には、アトリビュートが処理されなければならないの
で、フローはステップ480よりステップ484に進
み、入力ファイルより次のASN.1タグを読み出す。
次にステップ486は、サブエレメント・リンクリスト
をサーチして、そのASN.1タグが現エレメントのサ
ブエレメントまたはアトリビュートの有効なタグである
かチェックする。サブエレメントがエレメントの正しい
ASN.1サブエレメントならば、フローは図23に示
すプロセスGへ進む。処理されるエレメントが適切なサ
ブエレメントでないときは、フローはステップ490へ
進み、タグがコメントであるか判定する。タグがコメン
トでなければ、サブエレメントはエレメントにとって適
切でないので、ステップ492はエラーを表示し、プロ
セスから抜け出る。タグがコメントならば、タグは一つ
のエレメントとして処理すべく入力ファイルへ書き戻さ
れ、フローは場20のプロセスBへ戻る。
エレメントの処理を扱うが、図22のステップ488か
ら始まる。図23のステップ500において、サブエレ
メント・リンクリストより、ASN.1タグ値、サブエ
レメント宣言、サブエレメント・ネーム、サブエレメン
ト・タイプ、サブエレメントの連続番号、次のサブエレ
メント・リンクリストデータ構造へのネクスト・ポイン
タのような、サブエレメントに関する情報を取得する。
ステップ502は、サブエレメント・タイプを調べてサ
ブエレメントがアトリビュートであるか判定する。サブ
エレメントがアトリビュートならば、ステップ508は
アトリビュート・データをアトリビュート・バッファAT
TR_BUFFERに格納し、フローは図24に示すプロセスH
へ進む。ステップ502でサブエレメント・タイプがア
トリビュートでないと判定したときには、フローはステ
ップ504へ進む。ステップ504は、アトリビュート
が続いていないことを表示する。エレメントのアトリビ
ュートは、そのエレメントの直後及びそのエレメントの
サブエレメントの出現前に現われるべきである。ステッ
プ480でアトリビュート数が0より大きいと判定した
場合にはフローはステップ502へ到達し、サブエレメ
ントはアトリビュートのはずである(アトリビュートで
ある必要はないが)。サブエレメントがアトリビュート
でないならば、現サブエレメントに続くアトリビュート
は不適切なものであろう。本発明は、図28に示したフ
ローチャートのステップ606,608により、そのよ
うなアトリビュートを、その後に出現した時にきちんと
整える。ステップ504の後に、ステップ506は不適
切なタグを入力ファイルに書き戻し、フローは次の処理
のため図24のプロセスEに進む。
るサブエレメントの処理を扱う。図24のステップ52
0は、エレメント・スタックのトップエントリーより、
アトリビュート数を減じる。ステップ522はエレメン
ト・スタック内のアトリビュート数を1だけデクリメン
トする。ステップ524は、エレメント・スタック内の
アトリビュート数が0より大きいか判定する。アトリビ
ュート数が0より大きいときには、別のアトリビュート
を処理しなければならないのでフローはステップ526
へ進む。ステップ526はアトリビュート・バッファに
新しい1行キャラクタを格納し、残りのアトリビュート
の処理のためフローは図22に示すプロセスFへ進む。
り大きいと判定した場合、フローはステップ528に進
み、処理エレメントに関する、エレメントネーム、レベ
ル番号、アトリビュート・バッファ、データ情報、ネク
ストポインタ及び前ポインタを含む情報の全てが新しい
ダブル・リンクリストデータ構造に格納される。ステッ
プ528より、フローは図25に示すプロセスIへ進
む。
真(true)であるか判定する。TERMINAL_ENTRY_FLAGは
図21のステップ476で真に設定されている。このフ
ラグが設定されていないならば、TERMINAL_ENTRY_FLAG
のデフォルト値は偽(false)である。それが真なら
ば、フローはステップ542へ進んで現エレメントが終
端エレメントであることを表示し、該エレメントのため
のエレメント終了タグが新しいダブル・リンクリストデ
ータ構造に書き込まれる。そしてステップ544は、TE
RMINAL_ENTRY_FLAGを偽に設定する。
546はINDEF_LEN_FLAGが真であるか判定する。それが
真ならば、フローは不定長フォーマットの処理のため図
26に示したプロセスJへ進む。そうでなければ、フロ
ーはステップ548へ進み、エレメントスタックのトッ
プエントリーのエレメント・レングスが0であるか判定
される。このレングスが0でなければ、エレメントは固
定長であるので、エレメントの全長は処理が終わってお
らず、さらに処理するため図28に示すプロセスKへ進
む。そうでなければ、エレメント・スタックのトップエ
ントリーのレングスは0であり、エレメント・スタック
のトップエントリーにある現エレメントは処理が終了
し、ステップ550はエレメントスタックのトップエレ
メントの終了タグを新しいダブル・リンクリストデータ
構造に書き込む。ステップ550より、フローは図27
のLへ進む。
マットの処理を扱う。ステップ560は入力ファイルに
おける現在位置を変数FPOSへセーブする。ステップ56
2は入力ファイルより次の2バイトを読み出す。ステッ
プ564は、この2バイトの両バイトが0であるか判定
する。そうであるならば、不定長コーディング・フォー
マットの終わりを意味しているので、フローはステップ
566に進み、処理されている現エレメントの終了タグ
がダブル・リンクリストデータ構造に書き込まれ、そし
てフローは図27のLへ進む。終了フラグに達しないと
きには、フローはステップ564からステップ568へ
進み、ステップ562で読み出されたファイルの最後の
2バイトを処理できるように、入力ファイルのポインタ
が再び位置FPOSを指すよう調整される。ステップ568
よりフローは図28のKへ進む。図27に示したプロセ
スLにおいて、ステップ576は現エレメントが不定長
フォーマットであって、かつ現エレメントの下にエント
リーが存在するかを判定する。そうならば、ステップ5
78で、エレメント・スタック内の該下のレベルのレン
グス・エントリーが、現エレメントのレングス(これは
負の値である)を該下のレベルのレングス・エントリー
に加算することによって調整される。そしてステップ5
80はエレメント・スタックのトップエントリーをポッ
プする。
空であると判定し、かつ、ステップ584で処理すべき
データがまだあると判定したときには、フローはステッ
プ586へ進んでダブル・リンクリストデータ構造から
出力ファイルへデータがコピーされ、プロセスは終了す
る。エレメント・スタックが空ではないか処理すべきデ
ータがまだあるならば、フローは図28に示すプロセス
Kへ進む。
リ入力ファイルの次のタグを読み出す。ステップ592
は、そのタグがコメントであるか判定し、コメントであ
るときは現エレメントがコメントに設定され、フローは
図20に示すプロセスBへ進む。該次のタグがコメント
でなければ、フローはステップ592からステップ59
6へ進み、サブエレメントの有効性を確認するためにサ
ブエレメントリンクリストがサーチされる。このステッ
プは、現サブエレメントが処理されているエレメントの
下に出現することが許されるか判定する。ステップ59
8がサブエレメントを有効でないと判定したときには、
不正のサブエレメントであるのでステップ600でエラ
ーが表示されプロセスを抜け出す。ステップ598でサ
ブエレメントが有効であると判定したときには、フロー
はステップ602へ進む。
タック内のトップエレメントのアトリビュート数が0よ
り大きいか調べられる。0より大きくないときには、サ
ブエレメントはアトリビュートでないのでフローはプロ
セスBへ進む。エレメント・スタックのトップエントリ
ーにおけるアトリビュート数が0より大きいときは、フ
ローはステップ604へ進みサブエレメントがアトリビ
ュートであるか判定する。ステップ604でサブエレメ
ントがアトリビュートでないと判定したならば、フロー
はプロセスBへ進む。ステップ604でサブエレメント
がアトリビュートであると判定したときには、ステップ
606はエレメント・スタックのトップエントリーのエ
レメント情報を見つけるためダブル・リンクリストをサ
ーチする。次にステップ608はアトリビュートをアト
リビュート・バッファに格納する。そして、フローは図
25に示すプロセスMへ進む。
リ・ファイルが図6に示したクリアテキスト・ファイル
へ変換される時に作られるダブル・リンクリストデータ
構造を示す。最初のダブル・リンクリストデータ構造7
00は、字下げレベルが0であり、エレメントネームが
!DOCTYPEであり、アトリビュートもデータも持たず、
(ネクスト・ポインタが)ダブル・リンクリストデータ
構造710を指す。ダブル・リンクリストデータ構造7
10は、字下げレベルが0であり、SPDLとネームが付け
られ、データフィールドにアトリビュートもデータも持
たず、(バックポインタが)ダブル・リンクリストデー
タ構造700を指し、(ネクストポインタが)次のダブ
ル・リンクリストデータ構造720を指す。
は、(ネクスト・ポインタが)ダブル・リンクリストデ
ータ構造730を指す。このダブル・リンクリストデー
タ構造730は、字下げレベルが1であり、ページセッ
トのエレメントを持ち、アトリビュートSPDL ID を定義
され、(ネクスト・ポインタが)ダブル・リンクリスト
データ構造740を指す。ダブル・リンクリストデータ
構造740は、字下げレベルが2のコメントであり、ア
トリビュートを持たないが、コメントの内容を含むデー
タを持つ。なお、ダブル・リンクリストデータ構造74
0のDATA_HEADエントリーは、実際のデータを指すとこ
ろのリンクリストデータ構造を指す。ダブル・リンクリ
ストデータ構造740のDATA_HEADエントリーにより指
されたれたリンクリストデータ構造のネクストエントリ
ーが次のリンクリストデータ構造を指すことがある。
は、(ネクストポインタが)図30に示すダブル・リン
クリストデータ構造760を指す。図30に示すデータ
構造は、図29に示したデータ構造と同様に説明でき
る。なお、簡略化のため、ダブル・リンクリストデータ
構造780とダブル・リンクリストデータ構造800の
間のデータ構造は省略されているが、本発明のプロセス
を辿り、及び/または図6に示したクリアテキストの例
をよく見ることにより、省略されたデータ構造を確認し
得る。
た例が処理される時のエレメントスタックを示す。エレ
メント・スタック内のポインタによって指されるサブエ
レメント・リンクリストは、一定のままであるので、図
11乃至図14に示す同じゼネラルタイプのリンクリス
トとなろう。
処理される様子の例を示すため、図18乃至図28に示
したフローチャートに戻る。本発明のプロセスは図18
から始まるが、入力ファイルと出力ファイルが特定され
フローが図19へ進んだと仮定する。ステップ422は
図29に示すダブル・リンクリストデータ構造700を
生成する。ステップ424は図29に示したダブル・リ
ンクリストデータ構造710を生成する。次にステップ
426は、図5に示すファイルで最初に現われるエレメ
ントであるエレメントタグバイト61を読み出す。この
エレメント61はPAGESETに対応しエレメントRESDEFに
は対応しないので、フローはステップ430へ進み、図
29のダブル・リンクリスト720を生成する。そして
フローは図20のプロセスBへ進む。ステップ440
は、PAGESETのようなエレメント・ネームやステップ4
40に列挙された他の全情報を含む、エレメント61に
関する情報を取得する。入力ファイルの次のバイトは5
9であり、これはPAGESETの固定長値である。したがっ
て、フローはステップ422からステップ444、ステ
ップ448と進み、図21のステップ460へ進む。
メント・スタックにはエレメントが全くプッシュされて
いないので、エレメント・スタックが空であると判定す
る。ステップ464はサブエレメント・リンクリストが
ヌルでないと判定し、フローはステップ468へ進み、
エレメント情報をエレメント・スタックへプッシュす
る。この時のエレメント・スタックは図31に示す如き
である。そしてフローは図22に示すプロセスDへ進
む。
いので、フローはステップ480からステップ484へ
進み、入力ファイルより次のASN.1タグである06
が取り出される。06はPAGESETの適切なサブエレメン
トであるので、フローはステップ488から図23に示
したプロセスGへ進む。ステップ500はサブエレメン
トの情報を読み出し、ステップ502はサブエレメント
がアトリビュートであると判定する。PAGESETエレメン
トは一つのアトリビュートを有し、PAGESETの最初のサ
ブエレメントがアトリビュートであるから、このアトリ
ビュートは順序通りであるので、フローはステップ50
8へ進み、アトリビュートデータはアトリビュート・バ
ッファATTR_BUFFERへ格納される。そしてフローは図2
4に示すプロセスHへ進む。
ント・スタックのトップエントリーよりアトリビュート
のレングスを差し引く。SPDL IDのレングスは4バイト
であるので、4に、レングス情報のバイト数、SPDL ID
のバイト数及びPAGESETのバイト数を足した値が図31
に示したスタックより減じられる。最初のアトリビュー
トの処理が済んだのでステップ522はアトリビュート
数を1だけ減らし、またPAGESETはアトリビュートを1
個しか持たないのでフローはステップ524からステッ
プ528へ進み、エレメントの情報が図29に示す新し
いダブルリンクリストデータ構造730に格納される。
PAGESETは図6の最初の字下げレベルであるので、ダブ
ル・リンクリストデータ構造730のレベル番号エント
リーは1に設定される。ステップ528より、フローは
図25に示すプロセスIへ進む。
化されているので、フローはステップ540からステッ
プ546へ、そしてステップ548へと進み、エレメン
トスタックのトップエントリーのエレメント・レングス
は0ではないと判定される。そしてフローは図28に示
すプロセスKへ進む。
ァイルより次のASN.1タグを読み出すが、同タグは
44である。このタグはコメントタグであるので、ステ
ップ594は現エレメントをコメントととし、フローは
図20に示すプロセスBへ進む。
ント・テーブルをサーチしてコメントに関する情報を取
得し、ステップ448はコメントの固定長値を取得する
が、この固定長値は1Fである。フローはステップ46
0に進み、エレメント・スタックが空でないことを確認
し、ステップ462においてコメントのレングスがスタ
ック内のPAGESETのエレメントレングス・エントリーよ
り差し引かれる。次にステップ464は、コメント・エ
レメントがサブエレメントを全く持たないので、サブエ
レメント・リンクリスト・ポインタがヌルであると判定
する。ステップ474で、コメントに含まれる情報はデ
ータバッファ・リンクリストデータ構造に格納される。
次にステップ476は変数TERMINAL_ENTRY_FLAGを真に
設定し、フローは図24に示すプロセスEへ進む。
トの情報を図29に示すダブル・リンクリストデータ構
造740に格納する。そしてフローは図25に示すプロ
セスIへ進む。ステップ5401での判定結果はYES
である。この変数は図21のステップ476で真に設定
されているからである。次にフローはステップ542に
進み、エレメント終了タグが図30に示すダブル・リン
クリストデータ構造760に書き込まれる。フローはス
テップ546、ステップ548と進み、図28に示すプ
ロセスKへ進む。
り次のASN.1タグを読み出すが、このタグはページ
セット・ボディに対応するA1である。そしてフローは
ステップ592からステップ596,598,602と
進み、次に図20に示すプロセスBへ進む。
情報を取得するためエレメント・テーブルがサーチされ
る。次にフローは図21に示すプロセスCへ進み、ステ
ップ462は図31に示すスタック850内のPAGESET
エントリーのエレメント・レングス・エントリーから、
ページセット・ボディ・エレメントのレングスを減じ
る。ステップ464はページセットボディのサブエレメ
ント・リンクリストポインタがヌルでないと判定するの
で、フローはステップ468へ進み、PAGESETのエレメ
ント情報をエレメント・スタックへプッシュする。これ
で、エレメント・スタックは図32に示すようになる。
ルの残りの部分が本発明のフローチャートに従って処理
されることにより、図33乃至図35に示すエレメント
・スタックと図29及び図30に示すダブル・リンクリ
ストデータ構造が得られる。フローチャートのこれ以上
の追跡は、簡略化のため省略する。
に利用可能なワークステーション1000の構成を示
す。ワークステーション1000はCPU950、RA
M952、ROM954、キーボード958及びマウス
960がつながれた入力コントローラ956を含む。印
刷エンジンインターフェイス964は印刷エンジン96
2に直接接続され、印刷エンジン962はインターフェ
イス964により伝達されるイメージデータを表わすビ
デオ制御信号を受け取る。このワークステーションはさ
らに、ハードディスク968及びフロッピードライブ9
70とつながれたディスクコントローラ972、ネット
ワーク984(例えばEthernet(登録商標)ネットワ
ーク)との接続のための通信コントローラ974、外部
ハードディスク980と例えばSCSIバスにより、ま
たプリンタ978と例えばRS−232Cケーブルによ
り接続されたI/Oコントローラ976を含む。ワーク
ステーションはCRT986と接続されたディスプレイ
コントローラ982も含む。システムバス966はワー
クステーション内の各要素を接続する。
イスのどれに格納してもよい。さらに、本発明のプロセ
スの動作中に、プロセス中で生成され使用されるデータ
は図36に示した記憶デバイスのどれに格納してもよ
い。
本願発明者による他の発明のいくつかで使用できる。こ
れらの他の発明は本発明のフローチャートで使用された
データフィールドより余分のデータフィールドを必要と
するかもしれないので、本発明を構成するために各デー
タ構造に示したフィールドの全ては必要でないかもしれ
ない。さらに、SPDL規格は草案段階で発展中であ
る。したがって、生成されたデータ構造の一部は、規格
の変更によりもう必要でないフィールドを、あるいは、
規格が変更される可能性の故に存在するフィールドを持
っているかもしれない。
は本発明の範囲に包含されるものである。
方法で、次のステップを有する:バイナリファイルを入
力するステップ;該バイナリファイルのエレメントをテ
キストフォーマットへ変換するステップ;該エレメント
の該テキストフォーマットを第1のバッファに書き込む
ステップ;該エレメントのためにアトリビュートが必要
とされるか確認するステップ;該バイナリファイルのサ
ブエレメントが該エレメントのアトリビュートである
か、または該サブエレメントが該エレメントのアトリビ
ュートでないか判定するステップ;該サブエレメントを
テキストフォーマットへ変換するステップ;該サブエレ
メントが該エレメントのアトリビュートでないと判定さ
れ、かつ、該エレメントのためにアトリビュートが必要
とされると確認された時に、次のステップを実行するス
テップ:該エレメントの該サブエレメントの該テキスト
フォーマットを第2のバッファに書き込むステップ;該
必要とされるアトリビュートに出会うまで該バイナリフ
ァイルを処理するステップ;該必要とされるアトリビュ
ートをテキストフォーマットへ変換するステップ;該必
要とされるアトリビュートの該テキストフォーマットを
該エレメントを格納している該第1バッファに書き込む
ステップ;該サブエレメントがアトリビュートであると
判定され、かつ、該第1のエレメントのためにアトリビ
ュートが必要とされると確認された時に、次のステップ
を実行するステップ:該サブエレメントの該テキストフ
ォーマットを該第1バッファに書き込むステップ。
メントの該サブエレメントの該テキストフォーマットを
第2バッファに書き込むステップは、該エレメントの該
サブエレメントの該テキストフォーマットを該第1バッ
ファを参照する該第2バッファに書き込み、かつ該方法
は、該サブエレメントが該エレメントのアトリビュート
でないと判定された後に実行される次のステップをさら
に有する:該必要とされるアトリビュートの該テキスト
フォーマットを該エレメントを記憶している該第1バッ
ファに書き込むステップを実行する前に、該第2バッフ
ァから逆向きに辿って該第1バッファを見つけるステッ
プ。
バッファは、該第1バッファを後方参照しかつ次のバッ
ファを前方参照するダブルリンクリストであり、かつ該
サブエレメントの該テキストフォーマットを該第2バッ
ファに書き込むステップは、該サブエレメントの該テキ
ストフォーマットを該ダブルリンクリストに書き込み、
該方法はさらに、該サブエレメントが該エレメントのア
トリビュートではないと判定された後に実行される次の
ステップを有する:該必要とされるアトリビュートの該
テキストフォーマットを該エレメントを記憶している該
第1バッファに書き込むステップを実行する前に、該ダ
ブルリンクリストから逆向きに辿って該第1バッファを
見つけるステップ。
ォーマットを変換するための装置:バイナリファイルを
入力するための手段;該バイナリファイルのエレメント
をテキストフォーマットへ変換するための手段;該エレ
メントの該テキストフォーマットを第1のバッファに書
き込むための手段;該エレメントのためにアトリビュー
トが必要とされるか確認するための手段;該バイナリフ
ァイルのサブエレメントが該エレメントのアトリビュー
トであるか、または該サブエレメントが該エレメントの
アトリビュートであるかを判定するための手段;該サブ
エレメントを該テキストフォーマットへ変換するための
手段;該サブエレメントが該エレメントのアトリビュー
トでないと判定されかつ該エレメントのためにアトリビ
ュートが必要とされると確認された時に、該エレメント
の該サブエレメントの該テキストフォーマットを第2の
バッファに書き込むための手段;該サブエレメントが該
エレメントのアトリビュートでないと判定されかつ該エ
レメントのためにアトリビュートが必要とされると確認
された時に、該必要とされるアトリビュートに出会うま
で該バイナリファイルを処理するための手段;該サブエ
レメントが該エレメントのアトリビュートではないと判
定されかつ該エレメントのためにアトリビュートが必要
とされると確認された時に、該必要とされるアトリビュ
ートを該テキストフォーマットへ変換するための手段;
該サブエレメントが該エレメントのアトリビュートでは
ないと判定されかつ該エレメントのためにアトリビュー
トが必要とされると確認された時に、該必要とされるア
トリビュートの該テキストフォーマットを該エレメント
を記憶している該第1バッファに書き込むための手段;
及び該サブエレメントがアトリビュートであると判定さ
れかつ該エレメントのためにアトリビュートが必要とさ
れると確認された時に、該サブエレメントの該テキスト
フォーマットを該第1バッファに書き込むのための手
段。
メントの該サブエレメントの該テキストフォーマットを
該第2バッファに書き込むための手段は、該第1バッフ
ァを参照する該第2バッファに該エレメントの該サブエ
レメントの該テキストフォーマットを書き込み、かつ該
装置はさらに次の手段を有する:該サブエレメントが該
エレメントのアトリビュートではないと判定された後、
該必要とされるアトリビュートの該テキストフォーマッ
トを該エレメントを記憶している該第1バッファに書き
込むステップを実行する前に、該第2バッファから逆向
きに辿って該第1バッファを見つけるための手段。
メントの該サブエレメントの該テキストフォーマットを
該第2バッファに書き込むための手段は、該第1バッフ
ァを後方参照しかつ次のバッファを前方参照するダブル
リンクリストであるところの該第2バッファに、該エレ
メントの該サブエレメントの該テキストフォーマットを
書き込み、かつ該装置はさらに次の手段を有する:該サ
ブエレメントが該エレメントのアトリビュートでないと
判定された後、該必要とされるアトリビュートの該テキ
ストフォーマットを該エレメントを記憶している該第1
バッファに書き込むステップを実行する前に、該ダブル
リンクリストより逆向きに辿って該第1バッファを見つ
けるための手段。
ための方法で次のステップを有する:バイナリファイル
を入力するステップ;該バイナリファイルのエレメント
をテキストフォーマットへ変換するステップ;該エレメ
ントの該テキストフォーマットを第1のバッファに書き
込むステップ;該エレメントの許容されるサブエレメン
トを記憶しているデータ構造を辿って調べることによ
り、該バイナリファイルの該エレメントのサブエレメン
トが該エレメントの許容されるサブエレメントである
か、または該サブエレメントが該エレメントの許容され
ないサブエレメントであるか判定するステップ;該サブ
エレメントが該エレメントの許容されないサブエレメン
トであると判定された時にエラーを表示するステップ;
及び該サブエレメントが該エレメントの許容されないサ
ブエレメントであると判定された時に、該バイナリファ
イルの後続部分をテキストフォーマットへ変換するステ
ップ。
のステップは、該エレメントの許容されるサブエレメン
トをそれぞれ記憶しているサブエレメントリンクリスト
データ構造を辿って調べることにより、該エレメントの
該サブエレメントが該エレメントの許容されるサブエレ
メントであるか、または該サブエレメントが該エレメン
トの許容されないサブエレメントであるか判定し、該サ
ブエレメントが該サブエレメントリンクリストデータ構
造中に見つかるならば該サブエレメントは許容されると
判定され、該サブエレメントが該サブエレメントリンク
リストデータ構造中に見つからなければ該サブエレメン
トは許容されないと判定される。
ーマットを変換する装置:バイナリファイルを入力する
ための手段;該バイナリファイルのエレメントをテキス
トフォーマットへ変換するための手段;該エレメントの
該テキストフォーマットを第1のバッファに書き込むた
めの手段;該エレメントの許容されるサブエレメントを
記憶しているデータ構造を辿って調べることにより、該
バイナリファイルの該エレメントのサブエレメントが該
エレメントの許容されるサブエレメントであるか、また
は該サブエレメントが該エレメントの許容されないサブ
エレメントであるか判定するための手段;該サブエレメ
ントが該エレメントの許容されないサブエレメントであ
ると判定された時にエラーを表示するための手段;及び
該サブエレメントが該エレメントの許容されないサブエ
レメントであると判定された時に、該バイナリファイル
の後続部分を該テキストフォーマットへ変換するための
手段。
定のための手段は、該エレメントの許容されるサブエレ
メントをそれぞれ記憶しているサブエレメントリンクリ
ストデータ構造を辿って調べることにより、該エレメン
トの該サブエレメントが該エレメントの許容されるサブ
エレメントであるか、または該サブエレメントが許容さ
れないサブエレメントであるか判定し、該サブエレメン
トが該サブエレメントリンクリストデータ構造中に見つ
かるならば該サブエレメントは許容されると判定され、
該サブエレメントが該サブエレメントリンクリストデー
タ構造中に見つからなければ該サブエレメントは許容さ
れないと判定される。
された不定長エンコーディングのフォーマットをバイナ
リからテキストへ変換する方法であり、該不定長エンコ
ーディング及び該固定長エンコーディングは両方ともプ
リアンブル情報及びコンテント情報を含み、該方法は次
のステップを有する:バイナリファイルを入力するステ
ップ;該不定長エンコーディングの該プリアンブル情報
を処理して該不定長エンコーディングの該プリアンブル
情報のバイナリ表現をテキスト表現へ変換するステッ
プ;次のステップを実行することによって、該固定長エ
ンコーディングを含む該不定長エンコーディングの該コ
ンテント情報を処理するステップ:該固定長エンコーデ
ィングの該プリアンブル情報を処理して該固定長エンコ
ーディングのコンテント情報のバイト数を確認するステ
ップ;及び該固定長エンコーディングのコンテント情報
のバイナリ表現をテキスト表現へ変換することにより、
該不定長エンコーディングの終わりを示すマーカーが存
在するか判定することなく、該固定長エンコーディング
のコンテント情報のバイト数が処理されるまでバイトを
処理することによって該固定長エンコーディングの該コ
ンテント情報を処理するステップ;該固定長エンコーデ
ィングの該コンテント情報を処理した後、該固定長エン
コーディングの該コンテント情報の後の該不定長エンコ
ーディングのバイトを調べ該不定長エンコーディングの
終わりを示すマーカーを捜すステップ;及び該固定長エ
ンコーディングの該コンテント情報の後のバイトが該不
定長エンコーディングの終わりを示すならば、該不定長
エンコーディングの処理を終了させるステップ。
ステップを有する:該固定長エンコーディングの該コン
テント情報に続くバイトが該不定長エンコーディングの
終わりを示さないならば、該固定長エンコーディングに
続くバイトを、該不定長エンコーディング中にネストさ
れた次のプロシージャとして処理するステップ。
された不定長エンコーディングのフォーマットをバイナ
リからテキストへ変換する方法であり、該不定長エンコ
ーディング及び該固定長エンコーディングは両方ともプ
リアンブル情報及びコンテント情報を含み、該方法は次
のステップを有する:該不定長エンコーディングの該プ
リアンブル情報を処理して該プリアンブル情報のバイナ
リ表現をテキスト表現へ変換するステップ;次のステッ
プを実行することによって、該固定長エンコーディング
を含む該不定長エンコーディングの該コンテント情報を
処理するステップ:該固定長エンコーディングの該プリ
アンブル情報を処理して該固定長エンコーディングの該
コンテント情報のバイト数を確認し、該固定長エンコー
ディングの該コンテント情報のバイト数を一時的記憶手
段に格納し、かつ、該固定長エンコーディングのバイナ
リ表現をテキスト表現へ変換するステップ;及び該不定
長エンコーディングの終わりを示すマーカーが該不定長
エンコーディング中に存在するか判定することなく、該
一時的記憶手段に記憶された該コンテント情報バイト数
が処理されるまでバイトを処理することによって該固定
長エンコーディングの該コンテント情報を処理し、該固
定長エンコーディングの該コンテント情報が処理されて
いる時に、該固定長エンコーディングの処理が済んだバ
イト数を該一時的記憶手段にカウントするステップ;該
固定長エンコーディングの該コンテント情報を処理した
後、該固定長エンコーディングの該コンテント情報の後
の該不定長エンコーディングのバイトを調べ該不定長エ
ンコーディングの終わりを示すマーカーを捜すステッ
プ;及び該固定長エンコーディングの該コンテント情報
の後のバイトが該不定長エンコーディングの終わりを示
すならば該不定長エンコーディングの処理を終了させる
ステップ。
固定長エンコーディングの該コンテント情報の該バイト
数を格納するステップは、そのレングス情報をスタック
にプッシュし;かつ該固定長エンコーディングの該コン
テント情報を処理するステップは、該不定長エンコーデ
ィングの終わりを示すマーカーが該不定長エンコーディ
ング中に存在するか判定することなく、該スタック上の
該コンテントのバイト数が処理されるまでバイトを処理
し、該固定長エンコーディングの該コンテント情報が処
理されている時に、該固定長エンコーディングの処理の
済んだバイト数を該スタックにカウントする。
された第1の固定長エンコーディングのフォーマットを
バイナリからテキストへ変換する方法であり、該不定長
エンコーディングは第2の固定長エンコーディングがネ
ストされており、該不定長エンコーディング並びに該第
1及び該第2の固定長エンコーディングはそれぞれプリ
アンブル情報及びコンテント情報を含み、該方法は次の
ステップを有する:該第1固定長エンコーディングの該
プリアンブル情報を処理し該プリアンブル情報をバイナ
リ表現からテキスト表現へ変換するステップ;次のステ
ップを実行することにより該第1固定長エンコーディン
グの該コンテント情報を処理するステップ:該不定長エ
ンコーディングの該プリアンブル情報を処理し、該不定
長エンコーディングの該プリアンブル情報が処理されて
いる時に、該不定長エンコーディングの該プリアンブル
情報の処理されたバイト数を一時的記憶手段の第1のエ
ントリーにカウントし、該不定長エンコーディングの該
プリアンブル情報をバイナリ表現からテキスト表現へ変
換するステップ;次のステップを実行することにより該
不定長エンコーディングの該コンテント情報を処理する
ステップ:該第2固定長エンコーディングの該プリアン
ブル情報を処理して該第2固定長エンコーディングの該
コンテント情報のバイト数を確認し、該第2固定長エン
コーディングの該コンテント情報のバイト数を該一時的
記憶手段の第2のエントリーに格納し、該第2固定長エ
ンコーディングの該プリアンブル情報が処理されている
時に、該第2固定長エンコーディングの処理されたバイ
ト数を該一時的記憶手段の該第1エントリーにカウント
し、該第2固定長エンコーディングのバイナリ表現をテ
キスト表現へ変換するステップ;及び該不定長エンコー
ディングの終わりを示すマーカーが該エンコーディング
中に存在するか判定することなく、該第2固定長エンコ
ーディングの該コンテント情報のバイト数が処理される
まで該第2固定長エンコーディングを処理することによ
って該第2固定長エンコーディングの該コンテント情報
を処理し、該第2固定長エンコーディングの該コンテン
ト情報が処理されている時に、該第2固定長エンコーデ
ィングの処理されたバイト数を該一時的記憶手段の該第
2エントリーにカウントするステップ;該第2固定長エ
ンコーディングの該コンテント情報を処理した後、該第
2固定長エンコーディングの該コンテント情報の後の該
エンコーディングのバイトを調べ、該不定長エンコーデ
ィングの終わりを示すバイトを捜すステップ;該第2固
定長エンコーディングの該コンテント情報に続くバイト
が該不定長エンコーディングの終わりを示すならば、該
不定長エンコーディングの処理を終了させるステップ;
及び該第1固定長エンコーディングのコンテントの後続
バイトを、該第1固定長エンコーディングの全バイトが
処理されるまで処理するステップ。
れるように、本発明によれば、バイナリフォーマットを
クリアテキストフォーマットへ変換する際に解決すべき
前記したような諸課題を解決し、文書のバイナリフォー
マットからクリアテキストフォーマットへの変換が可能
になる。
ット及び不定長フォーマットのネスティングの一例を示
す図である。
の構造を示す図である。
イア・オクテットの構造を示す図である。
分図である。
の16進表現を示す図である。
現を示す図である。
したクリアテキスト・エレメントとの対応を示す図であ
る。
レメントを示すアプリケーション・テーブルを示す図で
ある。
るために用いられるエレメント・テーブルを示すずであ
る。
レメント・リンクリストデータ構造の説明図である。
されるサブエレメント・リンクリストデータ構造のサン
プルを示す図である。
されるサブエレメント・リンクリストデータ構造のサン
プルを示す図である。
されるサブエレメント・リンクリストデータ構造のサン
プルを示す図である。
されるサブエレメント・リンクリストデータ構造のサン
プルを示す図である。
ト・スタックを示す図である。
イルに書き出されるまで記憶するため使用されるダブル
・リンクリストデータ構造を示す図である。
ァを示す図である。
ーチャートである。
ーチャートである。
ーチャートである。
ーチャートである。
ーチャートである。
ーチャートである。
ーチャートである。
ーチャートである。
ーチャートである。
ーチャートである。
ーチャートである。
されるダブル・リンクリストデータ構造の一部を示す図
である。
されるダブル・リンクリストデータ構造の一部を示す図
である。
ント・スタックのステータスを示す図である。
ント・スタックのステータスを示すずである。
ント・スタックのステータスを示す図である。
ント・スタックのステータスを示す図である。
ント・スタックのステータスを示す図である。
図である。
構造 340 エレメントスタック 360 ダブル・リンクリストデータ構造 374 バックポインタ 376 ネクストポインタ 380 アトリビュートバッファ 700〜810 ダブル・リンクリストデータ構造 850 エレメントスタック 956 入力コントローラ 958 キーボード 960 マウス 962 印刷エンジン 964 印刷エンジンインターフェイス 966 システムバス 968 ハードディスク 970 フロッピーディスク 972 ディスクコントローラ 974 通信コントローラ 976 I/Oコントローラ 978 プリンタ 980 ハードディスク 982 ディスプレイコントローラ 984 ネットワーク
Claims (5)
- 【請求項1】 バイナリファイルを入力するための手
段、 該バイナリファイルのエレメントをテキストフォーマッ
トへ変換するための手段、 該エレメントの該テキストフォーマットを第1のバッフ
ァに書き込むための手段、 該エレメントのためにアトリビュートが必要とされるか
確認するための手段該バイナリファイルのサブエレメン
トが該エレメントのアトリビュートであるか、または該
サブエレメントが該エレメントのアトリビュートである
かを判定するための手段、 該サブエレメントを該テキストフォーマットへ変換する
ための手段、 該サブエレメントが該エレメントのアトリビュートでな
いと判定されかつ該エレメントのためにアトリビュート
が必要とされると確認された時に、該エレメントの該サ
ブエレメントの該テキストフォーマットを第2のバッフ
ァに書き込むための手段、 該サブエレメントが該エレメントのアトリビュートでな
いと判定されかつ該エレメントのためにアトリビュート
が必要とされると確認された時に、該必要とされるアト
リビュートに出会うまで該バイナリファイルを処理する
ための手段、 該サブエレメントが該エレメントのアトリビュートでは
ないと判定されかつ該エレメントのためにアトリビュー
トが必要とされると確認された時に、該必要とされるア
トリビュートを該テキストフォーマットへ変換するため
の手段、 該サブエレメントが該エレメントのアトリビ
ュートではないと判定されかつ該エレメントのためにア
トリビュートが必要とされると確認された時に、該必要
とされるアトリビュートの該テキストフォーマットを該
エレメントを記憶している該第1バッファに書き込むた
めの手段、及び該サブエレメントがアトリビュートであ
ると判定されかつ該エレメントのためにアトリビュート
が必要とされると確認された時に、該サブエレメントの
該テキストフォーマットを該第1バッファに書き込むの
ための手段、を具備してなる、ファイルのフォーマット
を変換するためのフォーマット変換装置。 - 【請求項2】 請求項1記載のフォーマット変換装置に
おいて、 該エレメントの該サブエレメントの該テキストフォーマ
ットを該第2バッファに書き込むための手段は、該第1
バッファを参照する該第2バッファに該エレメントの該
サブエレメントの該テキストフォーマットを書き込み、
かつ該フォーマット変換装置は、該サブエレメントが該
エレメントのアトリビュートではないと判定された後、
該必要とされるアトリビュートの該テキストフォーマッ
トを該エレメントを記憶している該第1バッファに書き
込むステップを実行する前に、該第2バッファから逆向
きに辿って該第1バッファを見つけるための手段、をさ
らに具備することを特徴とするフォーマット変換装置。 - 【請求項3】 請求項1記載のフォーマット変換装置に
おいて、該エレメントの該サブエレメントの該テキスト
フォーマットを該第2バッファに書き込むための手段
は、該第1バッファを後方参照しかつ次のバッファを前
方参照するダブルリンクリストであるところの該第2バ
ッファに、該エレメントの該サブエレメントの該テキス
トフォーマットを書き込み、かつ該フォーマット変換装
置は、該サブエレメントが該エレメントのアトリビュー
トでないと判定された後、該必要とされるアトリビュー
トの該テキストフォーマットを該エレメントを記憶して
いる該第1バッファに書き込むステップを実行する前
に、該ダブルリンクリストより逆向きに辿って該第1バ
ッファを見つけるための手段をさらに具備することを特
徴とするフォーマット変換装置。 - 【請求項4】 バイナリファイルを入力するための手
段、 該バイナリファイルのエレメントをテキストフォーマッ
トへ変換するための手段、 該エレメントの該テキストフォーマットを第1のバッフ
ァに書き込むための手段、 該エレメントの許容されるサブエレメントを記憶してい
るデータ構造を辿って調べることにより、該バイナリフ
ァイルの該エレメントのサブエレメントが該エレメント
の許容されるサブエレメントであるか、または該サブエ
レメントが該エレメントの許容されないサブエレメント
であるか判定するための手段、 該サブエレメントが該
エレメントの許容されないサブエレメントであると判定
された時にエラーを表示するための手段、及び該サブエ
レメントが該エレメントの許容されないサブエレメント
であると判定された時に、該バイナリファイルの後続部
分を該テキストフォーマットへ変換するための手段、を
具備してなる、ファイルのフォーマットを変換するため
のフォーマット変換装置。 - 【請求項5】 請求項4記載のフォーマット変換装置に
おいて、該判定のための手段は、該エレメントの許容さ
れるサブエレメントをそれぞれ記憶しているサブエレメ
ントリンクリストデータ構造を辿って調べることによ
り、該エレメントの該サブエレメントが該エレメントの
許容されるサブエレメントであるか、または該サブエレ
メントが許容されないサブエレメントであるか判定し、
該サブエレメントが該サブエレメントリンクリストデー
タ構造中に見つかるならば該サブエレメントは許容され
ると判定され、該サブエレメントが該サブエレメントリ
ンクリストデータ構造中に見つからなければ該サブエレ
メントは許容されないと判定される、ことを特徴とする
フォーマット変換装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/208466 | 1994-03-09 | ||
US08/208,466 US5506985A (en) | 1991-10-17 | 1994-03-09 | Method and apparatus for format conversion of a hierarchically structured page description language document |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH07271551A true JPH07271551A (ja) | 1995-10-20 |
JP3560258B2 JP3560258B2 (ja) | 2004-09-02 |
Family
ID=22774717
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP3061195A Expired - Fee Related JP3560258B2 (ja) | 1994-03-09 | 1995-02-20 | フォーマット変換装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3560258B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001522491A (ja) * | 1997-04-29 | 2001-11-13 | ドイッチェ テレコム アーゲー | 情報を伝送する方法 |
-
1995
- 1995-02-20 JP JP3061195A patent/JP3560258B2/ja not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001522491A (ja) * | 1997-04-29 | 2001-11-13 | ドイッチェ テレコム アーゲー | 情報を伝送する方法 |
Also Published As
Publication number | Publication date |
---|---|
JP3560258B2 (ja) | 2004-09-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5506985A (en) | Method and apparatus for format conversion of a hierarchically structured page description language document | |
US5504891A (en) | Method and apparatus for format conversion of a hierarchically structured page description language document | |
US5727220A (en) | Method and system for caching and referencing cached document pages utilizing a presentation data stream | |
US7418652B2 (en) | Method and apparatus for interleaving parts of a document | |
KR101109280B1 (ko) | 선택 가능 및/또는 시퀀스 가능 파트들을 갖는다큐먼트들을 정의하기 위한 방법 및 시스템 | |
US5884014A (en) | Fontless structured document image representations for efficient rendering | |
US7383500B2 (en) | Methods and systems for building packages that contain pre-paginated documents | |
US8661332B2 (en) | Method and apparatus for document processing | |
KR101109349B1 (ko) | 문서 마크업을 위한 방법 및 시스템 | |
KR101109307B1 (ko) | 모듈러 문서 포맷 | |
US6992785B1 (en) | Method, data structure and apparatus for identifying resources prior to printing | |
US5375204A (en) | System and method for efficient binary encoding of procedures in a document processing language | |
JP2004501442A (ja) | ダイナミックフォントサブセッティングのための方法及びシステム | |
US6691119B1 (en) | Translating property names and name space names according to different naming schemes | |
WO2001082121A2 (en) | Pre-computing and encoding techniques for an electronic document to improve run-time processing | |
JPH07271551A (ja) | フォーマット変換装置 | |
US5765006A (en) | Method and system to process external entities in a document processing language | |
JP4098838B2 (ja) | 文書フォーマット変換方法 | |
JP3639616B2 (ja) | 画像処理方法及び装置及びシステム | |
JPH10232868A (ja) | 文書処理装置 | |
JP3499589B2 (ja) | 符号化装置及び符号化方法 | |
JPH07175807A (ja) | 文書処理言語におけるページ選択の処理方法及び装置 | |
Wei et al. | ASCII Printable Characters-Based Chinese Character Encoding for Internet Messages | |
Wei et al. | RFC1842: ASCII Printable Characters-Based Chinese Character Encoding for Internet Messages |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040203 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040405 |
|
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: 20040518 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040521 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090604 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090604 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100604 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110604 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |