JP4161314B2 - Xmlプリンタシステム - Google Patents

Xmlプリンタシステム Download PDF

Info

Publication number
JP4161314B2
JP4161314B2 JP2003553475A JP2003553475A JP4161314B2 JP 4161314 B2 JP4161314 B2 JP 4161314B2 JP 2003553475 A JP2003553475 A JP 2003553475A JP 2003553475 A JP2003553475 A JP 2003553475A JP 4161314 B2 JP4161314 B2 JP 4161314B2
Authority
JP
Japan
Prior art keywords
xml
printer
barcode
data
processor
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 - Lifetime
Application number
JP2003553475A
Other languages
English (en)
Other versions
JP2005513627A (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.)
ZIH Corp
Original Assignee
ZIH Corp
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 ZIH Corp filed Critical ZIH Corp
Publication of JP2005513627A publication Critical patent/JP2005513627A/ja
Application granted granted Critical
Publication of JP4161314B2 publication Critical patent/JP4161314B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1203Improving or facilitating administration, e.g. print management
    • G06F3/1206Improving or facilitating administration, e.g. print management resulting in increased flexibility in input data format or job format or job type
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/1244Job translation or job parsing, e.g. page banding
    • G06F3/1246Job translation or job parsing, e.g. page banding by handling markup languages, e.g. XSL, XML, HTML
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1285Remote printer device, e.g. being remote from client or server
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K1/00Methods or arrangements for marking the record carrier in digital fashion
    • G06K1/12Methods or arrangements for marking the record carrier in digital fashion otherwise than by punching
    • G06K1/121Methods or arrangements for marking the record carrier in digital fashion otherwise than by punching by printing code marks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Record Information Processing For Printing (AREA)
  • Document Processing Apparatus (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)

Description

本発明は、一般に、バーコードラベルを印刷する方法及び装置に関し、特に1つの具体例においては、既存のZPL(Zebra Programming Language)ベースのフォーマットテンプレートを用いたXMLデータストリームに基づいてバーコードラベルを印刷するXML(Extensible Mark-up Language)プリンタに関する。
関連する特許出願の相互参照
この特許出願は、2002年1月4日に出願された未決定の仮出願であってXMLプリンタテクノロジー(XML Printer Technology)と題する米国特許出願60/345,389と、2001年12月17日に出願された未決定の仮出願であって機械可読な規格を有するバーコードラベリングシステム(Bar Code Labeling Systems Having Machine Readable Standards)と題する米国特許出願60/341,427と、2002年7月17日に出願された未決定の通常出願であってネイティブXMLプリンタ(Native XML Printer)と題する米国特許出願10/197,014とからの優先権の利益を要求するものである。仮出願である米国特許出願60/345,389及び米国特許出願60/341,427は、参照することによってそれら全てがここに組み入れられる。この特許出願は、2002年7月17日に出願された一部継続出願であってネイティブXMLプリンタ(Native XML Printer)と題する米国特許出願10/197,014である。
著作権に関する言及
この特許文書のこの開示部分は、著作権保護にしたがう資料を含んでいる。著作権の所有者は、それが特許商標庁の特許ファイル又はレコードに現れることから、いかなる者による特許文書又は特許開示のファクシミリ再生に反対しないが、そうでなければ何に関しても全ての著作権を留保する。
バーコードを印刷してデータをバーコードプリンタに対して送信するプリンタシステムが知られている。しかしながら、このようなシステムの多くは、データ符号化について所有者の方法を用いることから、そのような方法を他のバーコードプリンタとともに交換可能に用いることができない。また、既知のデータ符号化方法は、典型的には、人間によっては判読不可能な基データ(the underlying data)を与える。このことは、コンピュータシステムに対して障害を提示しない一方で、基バーコード要素名(the underlying barcode element names)に現れるあるデータを検査し、デバッグし、又は理解することを試みる人間にとって煩わしいかもしれない。その点で、XMLは、多くのビジネスエンティティによって採用されており、人間が判読可能であるオープンな規格である。XMLの使用は、非人間判読可能な方法に関連した多くの問題及び落とし穴を回避するかもしれない。
バーコードラベリングは、商業の多くの面において広範囲に用いられる。特に、ある目的地から他の目的地へと送られたパッケージや商品は、特定のバーコードラベルによって船積み人によって識別される。逆に、バーコードラベルを用いることにより、受け取られた商品も識別され、受け取った人の商品目録システムに入力されてもよい。商品の受取人は、しばしば、船積み人によって適用されたバーコードの形式及び内容を規定してもよい。これは、"コンプライアンス・ラベリング(compliance labeling)"と称される。勿論、商品は、バーコードラベリングの利点を利用するために送る必要がない。例えば、在庫管理システムは、設備内又は設備間の様々な品物を追跡してモニタするために、バーコードラベリングを広範囲に使用する。
コンプライアンス・ラベリングは、典型的には、比較的大規模なマーケット力や購買力を有する商品のバイヤによって用いられる。彼らの経済力のために、彼らは、サプライヤやベンダによって彼らに提供される製品に適用されたバーコードラベルの形式及び内容を規定することができるかもしれない。このことは、サプライヤにとっては煩わしいかもしれないが、当該サプライヤは、バイヤと取引することを望むのであれば、ラベリングに関する彼らの要求に応じるに違いない。例えば、ウォルマート社のような大規模な小売り業者は、サプライヤがコンプライアンス・ラベリングの要求に同意することを要求する能力及び購買力を有するのみならず、ラベリングの要求に応じないサプライヤに罰金を科してもよい。
さらに、そのようなバーコードラベリングの要求は、コンプライアンスを要求するエンティティの気まぐれで変化するかもしれない。したがって、サプライヤは、新たなラベリングの要求を実行し、それが全ての仕様を満たしていると保証するために変換済のバーコードをテストしなければならない。これは、比較的非効率的であり、時間を浪費する。それはまた、誤りを被りがちであり、貨幣の罰金に代えてもよい。
必要性は、ラベルのレイアウトを管理する既存のZPLフォーマットテンプレートをさらに使用させる一方で、及び/又は、印刷されるラベルのレイアウトを管理するためにXSL(Extensible Stylesheet Language)を用いる純粋なXMLフォーマットテンプレートを使用させることにより、エンタープライズ・リソース・プランニング(ERP)・システムがXMLにおけるバーコードプリンタシステムに対する送信用のそのデータをフォーマットすることを可能とするために存在する。
斬新であると考えられる本発明の特徴は、添付した特許請求の範囲において詳細とともに設けられる。それらのさらなる目的及び利点とともに本発明は、添付した図面と結合して以下の記述を参照することによって最も理解される。
この記載された説明において、離散的な使用は、接続詞を含むように意図される。定冠詞又は不定冠詞の使用は、濃度(cardinality)を示すようには意図されない。特に、"the"客体若しくは事物又は"an"客体若しくは事物の参照はまた、複数のそのような客体若しくは事物について記述するように意図される。
図1を参照すると、XMLプリンタシステム10のハイレベルのハードウェアブロック図の特定の具体例が一般に示される。図1乃至図6の具体例において、システムのネイティブ又はナチュラルな"言語"は、XMLであり、これにより、プリンタシステム10は、"ネイティブXMLプリンタ"と称されてもよい。XMLプリンタシステム10は、従来から知られているRAM14、ROM16、ハードディスク記憶装置18、キャッシュメモリ20、及びデータベース記憶装置22等(さらに"メモリサブシステム"26と称する。)のような様々なハードウェアコンポーネントを含むコンピュータ又は処理システム12を含む。コンピュータシステム12は、コンピュータ、マイクロプロセッサ、RISC(reduced instruction set computer)プロセッサ、CISC(complex instruction set computer)プロセッサ、メインフレームコンピュータ、ワークステーション、単一チップコンピュータ、分散型プロセッサ、サーバ、コントローラ、マイクロコントローラ、及び離散ロジックコンピュータ等のような、従来から知られているいかなる適切な処理装置28を含んでもよい。例えば、処理装置28は、インテル社製ペンティアム(登録商標)マイクロプロセッサ、x86コンパチブルマイクロプロセッサ、又はこれらと等価なデバイスであってもよい。
ユーザインターフェース30は、コンピュータシステム12に接続されてもよく、ユーザ及び/又はキーボードによって選択可能なスイッチのような様々な入力装置36を含んでもよい。ユーザインターフェースはまた、LCDディスプレイ、CRT、様々なLEDインジケータ、及び/又は音声出力装置のような、従来から知られている適切な出力装置40を含んでもよい。
通信インターフェース42は、コンピュータシステム12と外部ソースとの間で通信を行うために、コンピュータシステムに作用的に接続されてもよい。通信インターフェース42は、例えば、イーサネット(登録商標)ネットワーク、イントラネット、又は他の適切なネットワーク43としてのローカルエリアネットワークであってもよい。通信インターフェース42はまた、公衆交換電話網(Public Switched Telephone Network;PSTN)46又はPOTS(plain old telephone system)に接続されてもよく、インターネット44を介して通信を促進してもよい。専用のリモートネットワークが用いられてもよい。従来から知られているいかなる適切な市販の商業上利用可能な通信装置又はネットワークが用いられてもよい。
さらに、コンピュータシステム12は、プリンタシステム50に接続される。プリンタシステム50は、媒体/紙制御システム52、プリンタドライバ54、及び印刷ヘッド機構56を含んでもよい。バーコードラベルを印刷することができるいかなる適切なプリンタが用いられてもよく、様々なドットマトリクス、インクジェット、レーザ、及び/又はサーマルプリンタを含んでもよい。勿論、ドットマトリクスプリンタは、通常、低品質であり、ラベル出力のより接近したモニタリングを要求することになる。プリンタシステム50は、熱転写プリンタであるのが望ましい。そのような適切なプリンタは、例えば、イリノイ州ヴァーノンヒルズ(Vernon Hills, Illinois)のゼブラ・テクノロジーズ社(Zebra Technologies Corporation)製のものが利用可能であり、モデルXiシリーズ・バーコードプリンタ(XiIII+、90XiIII、96XiIII、140XiIII、170XiIII、220XiIII等)、2800シリーズ・バーコードプリンタ、モデルZ4M,Z6M,105SLバーコードプリンタ等を含んでもよい。いかなる適切なバーコードラベルプリンタが用いられてもよい。
典型的には、そのようなプリンタは、図示しない様々なモータ、ラベルカッター、リボンハンドラー、センサ等を含んでもよい。さらに、そのようなプリンタは、図示しないが、様々な制御入力、又は、媒体センサ、印刷ヘッド温度センサ、ヘッドオープンセンサ、リボンセンサ等のような、従来から知られているセンサを含んでもよい。プリンタシステム50は、コンピュータシステム12に設けられるプロセッサ28以外に、1つ以上の追加のプロセッサ60を含んでもよい。代替として、コンピュータシステム12におけるプロセッサ28は、十分に強力である場合には、別個の処理装置の必要なしにプリンタシステム50の機能を制御して担ってもよい。印刷ヘッドの制御に関するより重要な詳細は、1994年12月13日に発行され、本発明の所有者によって所有されている"制御されたリボン材料を備えた熱転写プリンタ(Thermal Transfer Printer With Controlled Ribbon Feed)"と題する米国特許第5,372,439号明細書でみつかるかもしれない。米国特許第5,372,439号明細書は、その全体を参照することによってここに組み入れられる。
望ましくは、コンピュータシステム12及びプリンタシステム50は、共通の囲いに配置されるが、この方法で必ずしも構築される必要はない。例えば、コンピュータシステム12は、別個の囲いでプリンタシステム50とは別個に収容されてもよい。
ここで、図1乃至図3を参照すると、図2は、ハイレベルのソフトウェアブロック図の特定の具体例を示す一方で、図3は、ハイレベルのソフトウェアブロック図及びデータフロー図の組み合わせの特定の具体例を示す。以下に記述するソフトウェアは、図1のコンピュータシステム12のプロセッサ28によって実行される。その上、プロセッサ28は、コンピュータシステム12及びプリンタシステム50の両方に共通の機能を実行してもよい。1つ以上のプロセッサがあってもよく、それらは協調して機能してもよく、又は別個に機能してもよい。処理又は処理機能が、コンピュータシステムによって若しくはコンピュータシステムで、又はプリンタシステムによって若しくはプリンタシステムで実行されたとしても、それは、この発明の範囲についての本質ではない。
図2及び図3に示すソフトウェアブロックは、"XMLパーサ"とも称されるXML(Extensible Mark-up Language)プロセッサ70、XSLT(Extensible Stylesheet Language Transformation)プロセッサ74、XSLFO(Extensible Stylesheet Language Formatting Object)プロセッサ78、"ビットマップ/バーコードレンダリングエンジン(bitmap/barcode rendering engine)"とも称されるバーコードレンダリングエンジン80、及びプリンタドライバ54(図1)を含む。プリンタドライバ54は、関連する処理装置の物理的な位置に応じて、コンピュータシステム12における処理装置又はプリンタシステム50における処理装置60(図1)のいずれかにより、その機能が実行される上述したコンポーネントの例であることに着目すべきである。その上、単一の処理装置は、十分に強力である場合には、XMLプリンタシステム10についての全ての機能を担ってもよい。
XMLスキーマリポジトリ82(スキーマリポジトリ)は、XMLプロセッサ70に対する入力を供給してもよく、一方、XSLTスタイルシート(stylesheet)リポジトリ84(スタイルシートリポジトリ)は、XSLTプロセッサ74に対する入力を供給してもよい。また、例えばXMLプロセッサ70に対してXML入力データストリーム90を送信するウェアハウス管理システムであるエンタープライズ・リソース・プランニング(ERP)・システム88が示される。ERPシステム88は、本質的に、バーコードラベルを印刷するリクエストを起こし、印刷されるバーコード及び他の可変ラベルを形成するXMLデータ又は要素フィールドを提供する。そのような可変ラベルフィールドは、例えば、人間が判読可能なテキスト及び/又はラベル上に印刷された文字のうちのいくつか又は全てを含んでもよい。勿論、いかなるエンタープライズコンピュータシステムが用いられてもよく、この発明は、いかなる特定のタイプのエンタープライズコンピュータシステムを備えた使用に制限されない。
XMLデータを参照する場合には、2つの基本型、すなわち、XML値データ及びXML要素名が、ここに参照されるものとする。XML値データは、可変データ、又は"グリーンストリート1122"のようなバーコードラベル上に印刷されると望まれるデータであり、それは、例えば送付先に対応するXML値データの一部であってもよい。XML要素名は、任意のラベル又は要素名がXML値データを表すために選択される場合におけるXML言語意味論の一部であり、その使用は、XML言語によって定義される。典型的には、要素名は、かぎ括弧間に現れる("<要素名>")。
上述したように、既知のバーコードラベルシステムは、所有者のソフトウェア符号化スキームをしばしば用いる。さらに、そのようなスキームは、しばしば誤りを被りがちであり、基値データ(the underlying value data)は、通常、専門外の個人によっては判読不可能である。既知のシステムにおいて、誤りがエンタープライズシステムから送られた基値データに存在する場合、又はデータが消失したかそうでなければ正しくない場合には、バーコードプリンタは、勿論、それを不正確又は役立たなくして、バーコードラベルにおける誤りを生成するものであって実行するように命じられるものを印刷するであろう。
さらに、コンプライアンス・ラベリングに対処する場合には、既知のシステムは、ラベルの形式又は内容がコンプライアンス・ラベルの要求にしたがって変化する場合に、データ符号化における非自明な変更を要求する。その上、バーコードの形式又は内容におけるそのような変更は、誤りに弱く、コンプライアンスを要求するエンティティによって貨幣の罰金に順次導くことができる。取引関係はまた、特にそのような誤りがコンプライアンスを要求する者のビジネスを崩壊させる場合には、バーコードラベリングシステムにおける継続的な問題によって傷つけられるかもしれない。
本XMLプリンタシステム10は、オープンフォーマットを利用する。特に、フォーマットの要求及びバーコードラベルの形式は、全てXML言語において定義される。さらに、XMLがよく定義され使用の全てに利用可能であるのみならず、非プログラマは、最小のトレーニングでXMLデータストリーム又はファイル(又はハードコピー)におけるデータ及びコマンドを理解することができる。
図2及び図3に示される様々なXMLソフトウェアブロックは、商業上利用可能である。いくつかの異なる商業上利用可能なXMLプロセッサ70が交換可能に又は小さな変更をともなって用いられてもよい。例えば、以下の商業上利用可能なXMLプロセッサ70が用いられてもよい:IBM社製の"C++のためのXML(XML for C++)"、マイクロソフト社製の"MSXML3"、オラクル社製の"Cのためのオラクル XML開発キット(Oracle XML Developers Kit for C)"、タイのオープンソースソフトウェアセンタ社(Thai Open Source Software Center, Ltd.)製の"Expat"、又はアパッチ・ソフトウェア・ファウンデーション(the Apache Software Foundation)製の"Xerces−C++"。しかしながら、いかなる適切なXMLプロセッサが用いられてもよい。
同様に、いくつかの異なる商業上利用可能なXSLTプロセッサ74が交換可能に又は小さな変更をともなって用いられてもよい。例えば、以下のXSLTプロセッサ74が用いられてもよい:インフォテリア社(Infoteria Corporation)製の"iXSLT"、マイクロソフト社製の"MSXML3"、及びGnome製の"Libxslt"。しかしながら、いかなる適切なXSLTプロセッサが用いられてもよい。
さらに、いくつかの異なる商業上利用可能なXSLFOプロセッサ78が交換可能に又は小さな変更をともなって用いられてもよい。例えば、以下のXSLFOプロセッサ78が用いられてもよい:レンダーエックス社(RenderX Corporation)製の"XEP"、アンテナハウス社(Antenna House Corporation)製の"XSLフォーマッタ(XSL Formatter)"、及びアパッチ・ソフトウェア・ファウンデーション(the Apache Software Foundation)製の"FOP"。しかしながら、いかなる適切なXSLFOプロセッサが用いられてもよい。
なお図1乃至図3を参照すると、XMLプロセッサ70は、外部ソース88からXML入力データストリーム90を受信する。例えば、外部ソースは、ウェアハウス管理システムのようなERPシステム88であってもよい。XMLプロセッサ70は、本質的に、XML入力データストリーム90を解析して処理し、従来から知られた"ツリー"構造である1組のノードを生成する。図2及び図3に示されるソフトウェア処理ブロックは、それぞれ、それらの必要な機能を実行するために"ツリー"のノード上で作用する。ERPシステム88からのXML入力データストリーム90に含まれる基値データは、処理され、データを保持する"ラベル値ノードツリー(label values node tree)"100に入力される。
以下は、様々なソフトウェアコンポーネントの動作についての簡潔なあらましである。まず、XML入力データストリーム90が他の要求されたXML文書又はファイルの名前及び位置を識別するテキストを含むことに着目すべきである。そのような1つのドキュメントは、"XMLスキーマ"又は"スキーマ"と称される。スキーマは、基値データを含むXML入力データストリームを検証にするために用いられる。検証が成功した場合には、以下に記述されるスタイルシートが適用される。スタイルシートの名前及び位置はまた、XML入力データストリーム90において指定される。スタイルシートの適用は、当該スタイルシートの指示のもとに基XML要素名(the underlying XML element names)及び/又は基値データを変換するXSLTプロセッサ74によって扱われる。続いて、データは、例えば、フォントタイプ、フォントサイズ、及びカラー等にしたがう基値データのフォーマットを含む基値データのフォーマット及び"レイアウト"を扱うXSLFOプロセッサ78によって処理される。続いて、基値データは、変換されてフォーマットされたデータに対応するバーコードラベルのビットマップ92を生成するビットマップレンダリングエンジン80によって処理される。ビットマップレンダリングエンジン80は、ビットマップの生成を指示するためのスタイルシートに存在する"インストリーム外部オブジェクト(instream foreign object)"を利用してもよい。その後、ビットマップ92は、バーコードプリンタによるバーコードラベルの後印刷のために、プリンタドライバ54(図1)に対して送られる。
上述したように、スキーマは、全ての入力データストリーム90、特に基値データを検証するように機能し、誤りが典型的にみつけられる。実際には、変更がバーコードラベルの形式又は内容に対して行われる場合には、誤りはしばしば不用意に導入される。
スキーマ文書の名前及び位置は、バーコードラベルを印刷するリクエストに対応するXML入力データストリーム90に含まれる。スキーマ検証モジュール110と協調するXMLプロセッサ70は、基値データを検証する。スキーマの使用は、最終出力、すなわち、バーコードラベル又は"発送ラベル"に関する誤り及び脱落を防ぐことから、コスト的に有効である。
誤りを有していたときにXML入力データストリーム90が拒絶される又はフラグがたてられた場合には、エラーメッセージがソース88に対して返信されてもよい。これは、誤りを訂正するように、フラグをたてる又は人間の介在を引き起こすかもしれない。例えば、この特定の例において、ソースは、ERPシステム88である。このように、データは、全ての要求されたラベル及びバーコード規則に応じることを保証するための処理に先だって、最初に検査される。
これは、コンプライアンス・ラベリングに対処する場合には、特に有益かもしれない。既知のシステムにおいて、コンプライアンスを要求する者は、コンプライアンス・ラベリングの要求における変更に関してめったにサプライヤに通知しないであろう。そして、サプライヤがこれらの変更又は指示の解釈や実装において誤りを犯した場合には、製造されてコンプライアンスを要求する者に送られた製品に適用されたラベルは、誤りを有しているかもしれず、将来のビジネスを危険にさらすか、又は貨幣の罰金を適用することができるかもしれない。
本発明において、コンプライアンスを要求する者は、スキーマ及び/又はXSLTスタイルシートに直接変更するのが望ましい。例えば、ラベルの物理的なレイアウトが変更された場合、又は要素名が変更された場合には、コンプライアンスを要求する者は、XSLTスタイルシートを変更するであろう。同様に、基値データが追加又は削除された場合、又はそうでなければ資格が与えられた場合(すなわち、郵便番号のための新たに受け入れ可能な数の範囲の場合)には、コンプライアンスを要求する者は、スキーマを変更するかもしれない。このように、サプライヤは、それが変換済のXML入力データストリーム90と一致することを保証するために、そのERPシステム88の出力を単に変更する必要がある。ラベルの物理的なレイアウトが変更された場合には、サプライヤは、いかなる変更も全く行う必要がない。
例えば、コンプライアンスを要求する者は、オリジナルの5桁の郵便番号ではなく、9桁の郵便番号が用いられることをここで要求するかもしれない。したがって、コンプライアンスを要求する者は、第1及び第2の郵便番号フィールドの両方を要求するために、スキーマを変更するであろう。そして、第2のフィールドはまた、おそらく0000〜9999のある範囲内の数の桁に制限されるであろう。コンプライアンスを要求する者はまた、その変更を提供するために、スタイルシートを変更するかもしれない。それに対するレスポンスにおいて、サプライヤは、XMLプリンタシステム10に対して送られたXML入力データストリーム90に現れるように、そのERPシステムに追加郵便番号フィールドを挿入しなければならない。XML入力データストリーム90のそのような変更が正確に実行されない場合には、スキーマは、ERPシステム88に対して誤りを報告し返すであろう。また、ラベルは、印刷されないであろう。
したがって、サプライヤは、リポジトリ82,84から変換済のスキーマ及び/又はスタイルシートにアクセスする必要があるのみであり、受信した場合に基値データに自動的に適用される。本質的に、バーコードラベルの形式及び内容に対する小さな変更、及び重要で大きな変更は、サプライヤにとってわかりやすく、バーコードラベルの内容に対するそのような変更は、スキーマにしたがって検証される。したがって、サプライヤは、コンプライアンスを要求する者によって書き取らせられたバーコードラベルの形式又は内容を変更するコストを招来する必要がなく、そのような変更の実装において誤りをすることができない。誤りがある場合には、そのような誤りは、コンプライアンスを要求する者によって不用意に犯されていたであろう。そして、この人は、サプライヤを非難することができないであろう。
スキーマ文書は、XMLスキーマリポジトリ82から得られるのが望ましい。1つの特定の具体例において、スキーマリポジトリ82は、XMLプリンタシステム10及びコンピュータシステム12に対して外部にあってもよく、コンピュータシステムが接続されたネットワーク、インターネット、又は任意の適切なネットワーク43,44を介してアクセスされてもよい。スキーマリポジトリ82は、複数のスキーマ文書を含んでもよい。したがって、バーコードラベルを生成するための様々なリクエストを表すXML入力データストリーム90は、リポジトリ82における対応するスキーマの名前及び位置をそれぞれ指定してもよい。リクエストがXMLプロセッサ70によって受信された場合には、対応するスキーマは、スキーマリポジトリ82から検索されてもよい。
他の具体例において、ネットワーク43,44を介してスキーマリポジトリ82から得られたスキーマは、ローカルに維持されてもよく、したがって、ハードディスク18やデータベース22のようなメモリサブシステム26(図1)に一時的に存在してもよい。このように、同じスキーマが複数のXML入力データストリーム90又は後のバーコードラベル要求に対して用いられる場合には、XMLプロセッサ70は、ネットワーク43,44を介して同じスキーマを外部的に検索する必要がないが、むしろメモリサブシステム26からそのスキーマを検索してもよく、より効率的であるかもしれない。この具体例によれば、コンプライアンスを要求する者は、あるときのみ、外部のリポジトリ82におけるスキーマを変更又は修正するかもしれない。例えば、コンプライアンスを要求する者は、毎日午前1:00にのみ、スキーマを変更するかもしれない。したがって、サプライヤは、例えばコンプライアンスを要求する者がスキーマの更新を実行した後に、リポジトリ82からメモリサブシステム26へとスキーマを1日あたり1度だけ更新する必要があるのみである。その後、サプライヤは、メモリサブシステム26に一時的に保存されたスキーマが、少なくとも更新が生じる予定であるときまで、最も最近のスキーマ文書であることを知るであろう。
スキーマが得られる位置にかかわらず、スキーマ検証モジュール110は、基データの検査及び検証を実行する。スキーマ検証モジュール110は、図2においてはXMLプロセッサ70から分離したブロックとして示されるが、当該スキーマ検証モジュール110が作用するデータであるラベル値ノードツリー100に隣接して図示されるように、例示の目的のためにのみ、この位置において示される。しかしながら、スキーマ検証モジュール110は、XMLプロセッサ70の部分であってもよく、当該XMLプロセッサ70に統合されてもよく、又はこれらから別個とされてもよい。
勿論、スキーマはまた、XML文書であり、したがって、XMLプロセッサ70によって処理される。したがって、スキーマの処理結果は、図3に示されるXMLスキーマノードツリー(XML schema node tree)114であり、処理されたスキーマの"メモリ表現"又はワーキングモデルである。XMLスキーマノードツリー114は、従来から知られている"文書オブジェクトモデル(document object model;DOM)"の形式であってもよい。さらに、XMLスキーマノードツリー114は、XMLスキーマキャッシュ116において示されるように、効率のためのキャッシュメモリに存在してもよい。スキーマ検証モジュール110及び/又はXMLプロセッサ70は、スキーマ文書にしたがって基値データを検証する機能を実行するために、XMLスキーマノードツリー114のデータ上で作動する。
上述したように、誤りがXML入力データストリーム90に存在する場合には、スキーマの適用によって決定されるように、エラーメッセージが生成されてもよい。XML入力データストリーム90が有効である場合には、データは、本質的に"手をつけない"ままである。その後、ラベル値ノードツリー100のデータは、XSLTスタイルシートを用いて、XSLTプロセッサ74によって処理される。
スタイルシート文書は、XSLTスタイルシートリポジトリ84から得られるのが望ましい。1つの特定の具体例において、スタイルシートリポジトリ84は、XMLプリンタシステム10及びコンピュータシステム12に対して外部にあってもよく、コンピュータシステムが接続されたネットワーク、インターネット、又は任意の適切なネットワーク43,44を介してアクセスされてもよい。スタイルシートリポジトリ84は、複数のスタイルシートを含んでもよい。したがって、バーコードラベルを生成するための様々なリクエストを表すXML入力データストリーム90は、リポジトリ84における対応するスタイルシートの名前及び位置をそれぞれ指定してもよい。リクエストがXMLプロセッサ70によって受信された場合には、対応するスタイルシートは、スタイルシートリポジトリ84から検索されてもよい。
他の具体例において、ネットワーク43,44を介してスタイルシートリポジトリ84から得られたスタイルシートは、ローカルに維持されてもよく、したがって、ハードディスク18やデータベース22のようなメモリサブシステム26(図1)に一時的に存在してもよい。このように、同じスタイルシートが複数のXML入力データストリーム90又は後のバーコードラベル要求に対して用いられる場合には、XMLプロセッサ70は、ネットワーク43,44を介して同じスタイルシートを外部的に検索する必要がないが、むしろメモリサブシステム26からそのスタイルシートを検索してもよく、より効率的であるかもしれない。
この具体例によれば、コンプライアンスを要求する者は、あるときのみ、外部のリポジトリ84におけるスタイルシートを変更又は修正するかもしれない。例えば、コンプライアンスを要求する者は、毎日午前1:00にのみ、スタイルシートを変更するかもしれない。したがって、サプライヤは、例えばコンプライアンスを要求する者がスタイルシートの更新を実行した後に、リポジトリ84からメモリサブシステム26へとスタイルシートを1日あたり1度だけ更新する必要があるのみである。その後、サプライヤは、メモリサブシステム26に一時的に保存されたスタイルシートが、少なくとも更新が生じる予定であるときまで、最も最近のスタイルシートであることを知るであろう。
勿論、スタイルシートはまた、XML文書であり、したがって、XMLプロセッサ70によって処理される。したがって、スタイルシートの処理結果は、図3に示されるXSLTスタイルシートノードツリー(XSLT stylesheet node tree)120であり、処理されたスタイルシートの"メモリ表現"又はワーキングモデルである。XSLTスタイルシートノードツリー120は、従来から知られている"文書オブジェクトモデル(document object model;DOM)"の形式であってもよい。さらに、XSLTスタイルシートノードツリー120は、XSLTスタイルシートキャッシュ126において示されるように、効率のためのキャッシュメモリに存在してもよい。XSLTプロセッサ74は、スタイルシートにしたがって基値データ又は基要素名(the underlying element names)を変換する機能を実行するために、XSLTスタイルシートノードツリー120のデータ上で作動する。
XSLTスタイルシートは、図3においてXMLプロセッサ70に対する入力として示されるが、XSLTプロセッサ74は、スタイルシートを処理することに着目すべきである。全てのXML文書が最初に処理され、後処理用の適切なデータ構造に配置されることから、当該XML文書は、XMLプロセッサ70に最初に供給される。
XSLTプロセッサ74は、基値データを変更し、位置を変え、再配置してもよく、又は基値データに対して追加してもよく、又は基値データのうちのいくつかを削除してもよい。例えば、スタイルシートの指示のもとに、基値データは、テーブルフォーマット又はカラムに再配置されてもよい。特に、スタイルシートは、XSLFOフォーマット要素及び属性を追加してもよい。
ラベル値ノードツリー100における基値データが対応するスタイルシートにしたがって処理された後に、XSLFOインスタンスノードツリー(XSLFO instance node tree)130が生成される。その上、従来から知られているように、XSLFOインスタンスノードツリー130は、文書オブジェクトモジュールの形式であってもよい。XSLFOインスタンスノードツリー130は、フォーマット及びレイアウトに関してXSLFOプロセッサ78を指示するXSLFOコマンド(レイアウト指示)を含む。そして、XSLFOプロセッサ78は、XSLFOコマンドを解釈し、基値データを適切にフォーマット及びレイアウトするように、そのようなコマンドを基値データに対して適用する。XSLFOプロセッサ78は、レンダリング前のフォーマットの最終出力を表すXSLFOエリアノードツリー130を生成する。
ここで、図3を参照するとともに、"XML入力データストリームについてのコードセグメント1(code segment 1 for an XML input data stream)"と題した直後に示すコードセグメント1を参照する。コードセグメント1は、例えばERP又はウェアハウス管理システム88によってXMLプリンタシステム10に対して送られるハードコピーにおけるXML入力データストリーム90を示すものである。行番号は、例示の目的のためにのみ挿入されており、コードの一部ではない。
XML入力データストリームについてのコードセグメント1
1 <?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl"
href="D:\Projects\XML\Native\Docs\ShipLabels.xsl"?>
<labels
5 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation=
"D:\Projects\XML\Native\Docs\ShipLabels.xsd">
<label>
<name>Albert Einstein</name>
10 <address>1234 Relative Way</address>
<city>Princeton</city>
<state>NJ</state>
<zip>08540</zip>
</label>
15 <label>
<name>Steven Hawking</name>
<address>5678 Black Hole Drive</address>
<city>Los Angeles</city>
<state>CA</state>
20 <zip>90007</zip>
</label>
<label>
<name>Richard Feynman</name>
<address>90 Quantum Circle</address>
25 <city>New York</city>
<state>NY</state>
<zip>10044</zip>
</label>
</labels>
XML入力データストリームは、スキーマ文書を"ShipLabels.xsd"であるものと識別し、また、そのスキーマ文書は、この特定の例においては、コードセグメント1における第7行目に示されるように、"D:\Projects\XML\Native\Docs"と称されるディレクトリにおいてみつけられる。さらに、XML入力データストリームは、スタイルシート文書を"ShipLabels.xsl"であるものと識別し、また、そのスタイルシート文書は、コードセグメント1における第3行目に示されるように、"D:\Projects\XML\Native\Docs"と称されるディレクトリにおいてみつけられる。勿論、スキーマ文書及びスタイルシート文書は、例えばインターネットアドレスによって識別されるようないかなる場所に配置されてもよい。
この特定の例は、印刷される3つの発送ラベルの基値データ及び要素名を示している。各発送ラベルは、以下のように、かぎ括弧間で定義されたXML要素名を含む:<名前>、<住所>、<都市>、<州>、及び<郵便番号>。第1の要素名<名前>の値は、"アルベルト・アインシュタイン(Albert Einstein)"であり、第2の要素名<住所>の値は、"リレイティブウェイ1234(1234 Relative Way)"であり、第3の要素名<都市>の値は、"プリンストン(Princeton)"であり、第4の要素名<州>の値は、"ニュージャージー(NJ)"であり、第5の要素名<郵便番号>の値は、"08540"である。これは、基値データである。
ここで、図3及びコードセグメント1を参照するとともに、"XMLスキーマについてのコードセグメント2(code segment 2 for XML schema)"と題した直後に示すコードセグメント2を参照する。コードセグメント2は、コードセグメント1のXML入力データストリームにおいて指定されたXMLスキーマ文書の形式をしているXML文書の特定の例を示すものである。行番号は、例示の目的のためにのみ挿入されており、コードの一部ではない。
XMLスキーマについてのコードセグメント2
1 <?xml version="1.0" encoding="UTF-8"?>
<xs:schema
xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified">
5 <xs:element name="address" type="xs:string"/>
<xs:element name="city" type="xs:string"/>
<xs:element name="label">
<xs:complexType>
<xs:sequence>
10 <xs:element ref="name"/>
<xs:element ref="address"/>
<xs:element ref="city"/>
<xs:element ref="state"/>
<xs:element ref="zip"/>
15 </xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="labels">
<xs:complexType>
20 <xs:sequence>
<xs:element ref="label" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
25 <xs:element name="name" type="xs:string"/>
<xs:element name="state">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="CA"/>
30 <xs:enumeration value="NJ"/>
<xs:enumeration value="NY"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
35 <xs:element name="zip">
<xs:simpleType>
<xs:restriction base="xs:int">
<xs:minInclusive value="00000"/>
<xs:maxInclusive value="99999"/>
40 </xs:restriction>
</xs:simpleType>
</xs:element>
</xs:schema>
上述したように、スキーマは、基値データを検証するために用いられる。これは、全ての要求されたデータが存在することを決定するために検査を要し、外来のデータは、存在せず、データの存在は、指定された範囲内等にある。いかなる適切な検証スキームは、アプリケーションに応じて、スキーマにおいて指定されてもよい。XML言語は、強固であり、コードは、莫大数の要求を扱うために記載されてもよい。
例えば、上述したコードセグメント2において示されるスキーマ文書は、コードセグメント2における第5行目によって示されるように、要素名<住所>に対応する基値データが、XMLスキーマ仕様に定義されるストリング(string)であるに違いないことを明示する。スキーマ文書はまた、コードセグメント2における第9行目〜第15行目に示されるように、要素名<名前>、<住所>、<都市>、<州>、及び<郵便番号>に対応する基値データが、示されたシーケンスに存在するに違いないことを明示する。さらに、コードセグメント2において示されるこの特定のスキーマ文書は、要素名<州>に対応する基値データが、3つの州、すなわち、"カリフォルニア州(CA)"、"ニュージャージー州(NJ)"、"ニューヨーク州(NY)"のうちの1つの州であるに違いないことを明示する。勿論、これは略例のみであり、全ての州が例示の目的のためにのみ含まれるとは限らない。コードセグメント2において示されるスキーマ文書はまた、要素名<郵便番号>に対応する基値データが00000から99999までの範囲にあるに違いないことを明示する。XML入力データストリームのデータが上述したスキーマ基準のうちのいずれをも満たさない場合には、スキーマ検証モジュール110は、それを拒絶し、望ましくはソース88に対してエラーメッセージを返信するであろう。
ここで、図3及びコードセグメント1,2を参照するとともに、"XSLTスタイルシートについてのコードセグメント3(code segment 3 for an XSLT stylesheet)"と題した直後に示すコードセグメント3を参照する。コードセグメント3は、コードセグメント1のXML入力データストリームにおいて指定されたXSLTスタイルシート文書の形式をしているXML文書の特定の例を示すものである。行番号は、例示の目的のためにのみ挿入されており、コードの一部ではない。
XSLTスタイルシートについてのコードセグメント3
1 <?xml version="1.0" encoding="UTF-8"?>
<xsl:transform version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fo="http://www.w3.org/1999/XSL/Format"
5 xmlns:bo=http://www.zebra.com/2002/XSL/Barcode>
<xsl:output method="xml" version="1.0" indent="yes" />
<xsl:template match="labels">
<fo:root>
<fo:layout-master-set>
10 <fo:simple-page-master master-name="all-labels">
<fo:region-body margin="1in" />
</fo:simple-page-master>
</fo:layout-master-set>
<fo:page-sequence master-name="all-labels">
15 <fo:flow flow-name="xsl-region-body" font="12pt Times">
<xsl:apply-templates />
</fo:flow>
</fo:page-sequence>
</fo:root>
20 </xsl:template>
<xsl:template match="label">
<fo:block break-after="page">
<xsl:apply-templates select="name" />
<xsl:apply-templates select="address" />
25 <fo:block font="bold 14pt Times" text-align="left">
<xsl:apply-templates select="city" />
<xsl:apply-templates select="state" />
</fo:block>
<xsl:apply-templates select="zip" />
30 <fo:block>
<fo:instream-foreign-object>
<bo:barcode>
<bo:postnet interpretation-line="none">
<xsl:value-of select="zip" />
35 </bo:postnet>
</bo:barcode>
</fo:instream-foreign-object>
</fo:block>
</fo:block>
40 </xsl:template>
<xsl:template match="name">
<fo:block font="bold 14pt Times" text-align="left">
<xsl:value-of select="." />
</fo:block>
45 </xsl:template>
<xsl:template match="address">
<fo:block font="bold 14pt Times" text-align="left">
<xsl:value-of select="." />
</fo:block>
50 </xsl:template>
<xsl:template match="city">
<xsl:value-of select="." />
</xsl:template>
<xsl:template match="state">
55 <xsl:text>,</xsl:text>
<xsl:value-of select="." />
</xsl:template>
<xsl:template match="zip">
<fo:block font="bold 14pt Times" text-align="left">
60 <xsl:value-of select="." />
</fo:block>
</xsl:template>
</xsl:transform>
上述したように、スタイルシートは、データを変換するために用いられる。この特定の例において、コードセグメント3のスタイルシートは、XSLFOプロセッサ78に関して上述した2つのタイプのネームスペース(namespace)、すなわち、"バーコードタイプオブジェクト(barcode-type object)"であるために選択される"bo"タイプオブジェクト、及びフォーマットオブジェクト(formatting object)であるために選択される"fo"タイプオブジェクトを定義する。従来から知られているように、これは、異なるオブジェクト間の区別を可能とする。スタイルシートは、いくつかのデータを変形させるか又は追加さえ引き起こしてもよい。例えば、コードセグメント1のXML入力データストリームからの基値データ、すなわち、第40行目〜第62行目によって示されるように、"アインシュタイン(Einstein)"、"リレイティブウェイ1234(1234 Relative Way)"等が挿入される。
このスタイルシートはまた、フォーマット要素又はXSLFOオブジェクトとして指定される様々な"fo"タイプ要素を生成させる。XSLFOオブジェクトは、XSLFOプロセッサ78が"理解"して処理するレイアウトタイプコマンドを含む。"fo"の接頭辞を有するコードの全ての行がXSLTプロセッサ74によって解釈されるとは限らず、むしろXSLFOプロセッサ78に渡されることに着目すべきである。
例えば、コードセグメント3の第21行目は、第22行目の<fo:block break-after = "page">が後続する<xsl: template match= "label">を示している。これは、コードセグメント1において指定された3つの発送ラベル間の"ページ破損(page break)"を置くために、XSLFOプロセッサ78によって解釈される。本質的に、新たな発送ラベルは、コードセグメント1において指定された基値データを含む個々の新たな発送ラベルとともにページ破損(page break)によって生成される。
さらに、この特定のスタイルシートは、第31行目に示されるように、"インストリーム外部オブジェクト"が挿入されることを明示する。第31行目は、第31行目〜第37行目とともに<fo:instream-foreign-object>として示され、インストリーム外部オブジェクトを定義する。XSLTプロセッサ74又はXSLFOプロセッサ78のいずれかによってインストリーム外部オブジェクトが処理されないことに着目すべきである。より正確にいえば、インストリーム外部オブジェクトは、ビットマップ/バーコードレンダリングエンジン80に渡され、当該ビットマップ/バーコードレンダリングエンジン80によって処理される。例えば、コードセグメント3の第32行目〜第36行目は、"ポストネット(postnet)"バーコード要素の定義を含む<bo:barcode>要素が挿入されることを引き起こす。要素は、ビットマップ/バーコードレンダリングエンジン80によって後に処理されるであろう。第34行目では、XSLTプロセッサ74は、XML入力データストリームからの郵便番号が<bo:postnet>要素のテキストとして挿入されることを引き起こす。
ここで、図3及びコードセグメント1〜3を参照するとともに、"XSLTインスタンスノードツリー表現についてのコードセグメント4(code segment 4 for an XSLT instance node tree representation)"と題した直後に示すコードセグメント4を参照する。コードセグメント4は、コードセグメント3のスタイルシートと協調するXSLTプロセッサ74によって生成されるXSLFOインスタンスノードツリー130の出力の表現の特定の例を示すものであり、その出力は、XSLFOプロセッサ78に供給されるXSLFOインスタンスノードツリーの表現である。行番号は、例示の目的のためにのみ挿入されており、コードの一部ではない。
XSLTインスタンスノードツリー表現についてのコードセグメント4
1 <?xml version="1.0" encoding="UTF-16"?>
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"
xmlns:bo=http://www.zebra.com/2002/XSL/Barcode>
<fo:layout-master-set>
5 <fo:simple-page-master master-name="all-labels">
<fo:region-body margin="1in" />
</fo:simple-page-master>
</fo:layout-master-set>
<fo:page-sequence master-name="all-labels">
10 <fo:flow flow-name="xsl-region-body" font="12pt Times">
<fo:block break-after="page">
<fo:block font="bold 14pt Times" text-
align="left">Albert Einstein</fo:block>
<fo:block font="bold 14pt Times" text-
align="left">1234
15 Relative Way</fo:block>
<fo:block font="bold 14pt Times" text-
align="left">Princeton, NJ</fo:block>
<fo:block font="bold 14pt Times" text-
align="left">08540</fo:block>
20 <fo:block>
<fo:instream-foreign-object>
<bo:barcode>
<bo:postnet interpretation-
line="none">08540</bo:postnet>
25 </bo:barcode>
</fo:instream-foreign-object>
</fo:block>
</fo:block>
<fo:block break-after="page">
30 <fo:block font="bold 14pt Times" text-
align="left">Steven Hawking</fo:block>
<fo:block font="bold 14pt Times" text-
align="left">5678 Black Hole Drive</fo:block>
<fo:block font="bold 14pt Times" text-
align="left">Los
35 Angeles, CA</fo:block>
<fo:block font="bold 14pt Times" text-
align="left">90007</fo:block>
<fo:block>
<fo:instream-foreign-object>
40 <bo:barcode>
<bo:postnet interpretation-
line="none">90007</bo:postnet>
</bo:barcode>
</fo:instream-foreign-object>
45 </fo:block>
</fo:block>
<fo:block break-after="page">
<fo:block font="bold 14pt Times" text-
align="left">Richard Feynman</fo:block>
50 <fo:block font="bold 14pt Times" text-
align="left">90 Quantum Circle</fo:block>
<fo:block font="bold 14pt Times" text-
align="left">New York, NY</fo:block>
<fo:block font="bold 14pt Times" text-
55 align="left">10044</fo:block>
<fo:block>
<fo:instream-foreign-object>
<bo:barcode>
<bo:postnet interpretation-
60 line="none">10044</bo:postnet>
</bo:barcode>
</fo:instream-foreign-object>
</fo:block>
</fo:block>
65 </fo:flow>
</fo:page-sequence>
</fo:root>
上記コードセグメント4の2つの主部分、すなわち、コード<fo:layout-master-set>をともなって第4行目で始まる第1の部分、及びコード<fo:page-sequence master-name="all-labels">をともなって第9行目で始まる第2の部分は、簡潔に記述される。コードのこの部分は、本質的に、バーコードラベルがどのように"みえる(look like)"か、又はバーコードラベルがどのように"レイアウトされる(laid-out)"であろうか、及び基値データがそのレイアウトにおいてどのように現れるであろうかを定義する。
例えば、コードセグメント1において示される基値データのフォーマットに関して、第12行目〜第13行目に示される"bold 14pt Times"のフォント属性、及びtext-align = "left"は、バーコードラベルが印刷される場合に、"アルベルト・アインシュタイン(Albert Einstein)"の名前が14ポイントのタイムズフォントで印刷されるとともに、バーコードラベルの左側マージンに配列されるように、"アルベルト・アインシュタイン(Albert Einstein)"の基値データに適用されるであろう。従来から知られているように、異なる種類のフォーマット指示が指定されてもよく、それはXSLFOプロセッサ78によって解釈されるであろう。
さらに、XSLFOインスタンスノードツリー130の表現のこの特定の例は、コードセグメント4の第21行目〜第26行目に示されるように、インストリーム外部オブジェクトを含む。インストリーム外部オブジェクトは、XSLFOプロセッサ78によって処理されなくてもよい。より正確にいえば、インストリーム外部オブジェクトは、処理のためにビットマップ/バーコードレンダリングエンジン80に渡されてもよい。処理におけるこの点で、XSLFOプロセッサ78は、バーコード要素タイプがXSLFO仕様に含まれていないことから、バーコードラベルを印刷する方法を"知らない"ことに着目すべきである。より正確にいえば、コードセグメント1,2に示されたように、基値データ、すなわち、"アインシュタイン(Einstein)"、"リレイティブウェイ1234(1234 Relative Way)"等のようなテキスト情報のみを、テキストとしてバーコードラベル上に印刷することができる。XSLFOプロセッサ78がバーコードシンボルを生成する方法を"知らない"ことから、実際のバーコードシンボルは現れない。
XSLFOプロセッサ78による処理結果は、XSLFOエリアノードツリー(XSLFO area node tree)140である。コードセグメント4において示されるインストリーム外部オブジェクトがXSLFOプロセッサ78によって処理されずに、むしろXSLFOエリアノードツリー140の1つ以上のノードにおいてバーコード/ビットマップレンダリングエンジン80に渡されることに着目すべきである。インストリーム外部オブジェクト要素は、<bo:barcode>として引用され、コードセグメント4の第21行目〜第26行目に示される。バーコード/ビットマップレンダリングエンジン80は、<bo:barcode>要素を受信し、そのブロックに含まれるコードを処理する。例えば、レンダリングエンジン80は、この特定のノードを要素の"ポストネット(postnet)"バーコードタイプであるものとして定義するように、第23行目〜第24行目、すなわち、<bo:postnet interpretation-line="none">08540<bo:postnet>を解釈する。後述する対応する業界標準によって定義されるように、バーコードシンボルの様々な"タイプ"が定義されてもよい。
バーコードシンボルとして印刷される基値データは、コードセグメント4の第24行目に示されるように、数字データ"08540"であり、コードセグメント1において示されるアルベルト・アインシュタインの住所に関連した郵便番号である。この特定の例においては、郵便番号のみがバーコードシンボルに変換される。勿論、アプリケーションに応じて、任意の全ての情報をバーコードシンボルに変換してもよい。また、この特定の例において、コードセグメント4において示されるインストリーム外部オブジェクトは、コードセグメント1において示される3つの郵便番号のみ関係がある。他の基値データは、この例におけるバーコードシンボルに変換されない。
ここで、コードセグメント4とともに図2乃至図4を参照すると、バーコード/ビットマップレンダリングエンジン80に関する付加的な詳細、及びインストリーム外部オブジェクトの処理が述べられる。上述したように、レンダリングエンジン80は、XSLFOプロセッサ78によって生成されたXSLFOエリアノードツリー140の各ノードを処理する。従来から知られているように、XSLFOエリアノードツリー140は、文書オブジェクトモデルとしてメモリに表現される。したがって、複数のノードが存在してもよい。例えば、あるノードは、インストリーム外部オブジェクトを含んでもよく、他のノードは、関連する要素名を含んでもよく、他のノードは、関連するテキストデータを含んでもよく、他のノードは、関連する属性等を含んでもよい。
図4におけるブロック150に示されるように、XSLFOエリアノードツリー140のノードは処理される。特に、レンダリングエンジン80は、インストリーム外部オブジェクトによって定義された実際のバーコードシンボルをレンダリングする又は生成する方法を"知っている"。商業上利用可能なXSLFOプロセッサは、バーコードシンボルを表すそのようなインストリーム外部オブジェクトを処理する方法を"知らず"、これにより、バーコードシンボルを生成又はレンダリングすることができない。しかしながら、商業上利用可能なXSLFOプロセッサは、受け入れ可能な方法でテキストをレンダリングしてもよく、あるタイプのインストリーム外部オブジェクトをさらにレンダリングしてもよい。
それが例えばテキストデータを含んでもよいことを意味して、特定のノードがインストリーム外部オブジェクトを含んでいない場合には、このノードは、ブロック154において図示されるように、レンダリングエンジン80ではなくXSLFOプロセッサ78の処理能力を利用することにより、"標準"方法で処理されてもよい。1つの具体例において、非インストリーム外部オブジェクトは、XSLFOプロセッサ78に供給され"返される"か、又は、XSLFOプロセッサは、XSLFOエリアノードツリー140における特定のノードがそれによって処理するのに適切であるものと通知される。
非インストリーム外部オブジェクトを含むXSLFOエリアノードツリー140におけるノードの処理は、上述したように、XSLFOプロセッサ78によって処理されてもよい。勿論、異なる商業上利用可能なXSLFOプロセッサは、例えば異なるフォーマットにテキストをレンダリングする。例えば、アンテナハウス社(Antenna House Corporation)製の"XSLフォーマッタ(XSL Formatter)"と称されるXSLFOプロセッサは、上述したように、WINDOWS(登録商標)"デバイスインディペンデントビットマップ(device-independent bitmap)"フォーマットにノードをレンダリングする。上述したように、レンダーエックス社(RenderX Corporation)製の"XEP"として引用されたXSLFOプロセッサは、"PDF"フォーマットにノードをレンダリングし、アパッチ・ソフトウェア・ファウンデーション(the Apache Software Foundation)製の"FOP"として引用されたXSLFOプロセッサはまた、"PDF"フォーマットにノードをレンダリングしてもよい。
XMLプリンタシステム10は、アパッチ・ソフトウェア・ファウンデーション(the Apache Software Foundation)製の"FOP"をXSLFOプロセッサ78として利用するのが望ましい。このXSLFOプロセッサは、処理することができないインストリーム外部オブジェクトに遭遇した場合に、サブルーチン又は他の処理関数を"呼び出す(call)"ように形成されてもよいためである。特に、このXSLFOプロセッサ78は、処理することができないインストリーム外部オブジェクトを扱うために、ここに記述されるレンダリングエンジンソフトウェアブロック80を呼び出すように設定されてもよい。
続いて、ブロック160において示されるように、ノードがXSLFOプロセッサ78によって処理することができないバーコードを表すインストリーム外部オブジェクトを含む場合には、レンダリングエンジン80は、インストリーム外部オブジェクトがこのXMLプリンタシステム10に特有の"ネームスペース(namespace)"を有しているか否かを決定するために検査する。例えば、レンダリングエンジン80は、"ゼブラ社ネームスペース(Zebra corporation namespace)"に対応するインストリーム外部オブジェクトに関連したネームスペースが相当するか否かを決定するために検査してもよい。ネームスペースの記法は、従来から知られている。これは、"xmlns:bo=http://www.zebra.com/2002/XSL/Barcode>"として、コードセグメント4の第3行目に示される。したがって、コードセグメント4に示されるように、上記で定義されたネームスペースは、"bo"の接頭辞を有する任意の要素に適用される。そして、"bo"の接頭辞を有するような要素は、レンダリングエンジン80による処理のためにのみ利用可能である。"bo"の接頭辞タイプ要素は、バーコードタイプインストリーム外部オブジェクトに対応する。XSLFOプロセッサ78は、そのような要素を処理する方法を"知らないであろう"。
インストリーム外部オブジェクトが適切なネームスペースに関連していない場合には、XSLFOプロセッサがインストリーム外部オブジェクトのいくつかの制限のある数を処理することができるかもしれないことから、バーコードタイプのインストリーム外部オブジェクトではないと仮定して、当該インストリーム外部オブジェクトは、XSLFOプロセッサ78に戻される。これは、ブロック160からブロック154までの矢印162によって示される。しかしながら、一般に、インストリーム外部オブジェクトは、インストリーム外部オブジェクトに関連したデータが性質(バーコードのような)において非常にユニークであるという特定の理由のために、存在する又は生成される。したがって、多くの商業上利用可能又は汎用目的のXSLFOプロセッサは、それらを処理することができない。
ここに述べられた商業上利用可能なXSLFOプロセッサは、全てのインストリーム外部オブジェクトを必ずしも処理することができないことに着目すべきである。しかしながら、それらは、バーコードシンボルに対応するインストリーム外部オブジェクトを処理することができない。
そのインストリーム外部オブジェクトが適切なネームスペースを有していると仮定して、ブロック170は、バーコードタイプを決定するために、インストリーム外部オブジェクトにおける要素を解釈する。例えば、インストリーム外部オブジェクトは、コードセグメント4の第21行目〜第26行目に示される。より明確には、バーコードに対応する正確なネームスペースを示す"bo"の接頭辞を有するバーコード要素は、コードセグメント4の第23行目〜第24行目に示されるように、バーコードタイプの"ポストネット(postnet)"を有するように示され、<bo:postnet interpretation-line="none">08540</bo:postnet>として現れる。コードセグメント4の第41行目〜第42行目は、コードセグメント1において示される"スティーブン・ホーキング(Steven Hawking)"の住所に対応する他のインストリーム外部オブジェクト、すなわち、印刷される次のバーコードラベルについての同様のバーコード要素を示すことに着目すべきである。
いかなるバーコードタイプが、アプリケーションに応じて、インストリーム外部オブジェクトにおいて指定されてもよい。バーコードタイプは、既知のバーコード基準に基づく。例えば、バーコードタイプは、ポストネットタイプのバーコードシンボルに制限されず、"Industrial 2of5"、"PDF 417"、"UPC"等であってもよい。バーコード"タイプ"は、バーの厚さ、バー間の間隔幅に対するバーの厚さの比率等のような印刷されるバーコードシンボルの基本構造を指定する。個々の特定の既知のバーコード基準は、具体的に定義される。
続いて、バーコードタイプがインストリーム外部オブジェクトから確認された後、ブロック176において示されるように、インストリーム外部オブジェクトの属性は、バーコード特性を決定するために解釈される。特性は、バーコードシンボルが生成される方法を変更してもよい。例えば、"ポストネット(postnet)"タイプバーコードの1つの属性は、"interpretation-line="none""として、コードセグメント4の第23行目〜第24行目にみられる。従来から知られているように、"interpretation-line="none""は、特定のバーコードシンボルに沿っては対応する人間の判読可能なテキストが生成されないことを意味する。バーコード要素に関連した属性の他の例は、バーコードシンボルの高さであってもよく、それはまた、属性としてインストリーム外部オブジェクトにおいて指定されてもよい。
そして、レンダリングエンジン80は、インストリーム外部オブジェクトから得られたバーコードタイプ及び属性を用いて、ブロック180において示されるように、バーコードシンボルに変換される実際のノードテキストデータを得る。この例において、実際のバーコードデータは、コードセグメント4の第24行目における逆かぎ括弧(>80540<)の間に示されるように、郵便番号"08540"である。(例えばリニアバーコードについての)バーコードシンボルのライン又はバーを表す数字データ"80540"からビットマップへの物理的な変換は、例えばゼブラ社(Zebra Corporation)製のバーコードラベルプリンタに含まれるソフトウェアルーチンによって実行されてもよい。そのような適切なバーコードプリンタは、例えばモデルXiシリーズ・バーコードプリンタ(XiIII+、90XiIII、96XiIII、140XiIII、170XiIII、220XiIII等)、2800シリーズ・バーコードプリンタ、モデルZ4M,Z6M,105SLバーコードプリンタ等を含んでもよい。ゼブラ社製のバーコードプリンタに含まれるそのような既知のソフトウェアルーチン又はアルゴリズムは、非常に効率的である。したがって、バーコードは、迅速にレンダリングされる。
リニアバーコードについては、テキストデータをその相対的な幅がバーコード記号体系についての業界仕様に合致する一連の明暗のバーに変換することにより、ビットマップがレンダリングされる。テキストデータは、それがバーコードスキャナによって読まれる場合には、バーコードの検証を可能とするように符号化する前に、検査文字を追加してもよい。検査文字は、要求されてもよく、又は記号体系に応じてオプションとしてもよい。バーは、記号体系の符号化の要求に応じたバーのモジュールにグループ化されてもよい。テキストデータは、記号体系に応じて符号化する際に圧縮されてもよい。バーは、記号体系仕様によって定義されるような1本以上の"ファインダ(finder)"バーに先行及び/又は後続されてもよく、それは、スキャナがバーコードデータをより容易にみつけることを可能とする。
記号体系によって要求された適切な符号化及び適切な物理的寸法について必要とされるときには、他のアルゴリズムが適用されてもよい。バーの高さ、狭いバーの幅、広いバーと狭いバーとの比率、及び他の記号体系特定パラメータが、XMLデータにおける属性によって指定されてもよい。さらに、XMLデータにおける属性によって指定されるように、バーコードビットマップは、(通常90°のインクリメントにおいて)回転されてもよい。
2次元バーコードについては、テキストデータを様々なユニークな記号体系アルゴリズムにしたがってビットパターンに変換することにより、ビットマップがレンダリングされる。2次元バーコードは、典型的には、リニアバーコードよりも多くのテキストデータの符号化を可能とする。符号化アルゴリズムは、例えば、データ冗長度、モジュール化、ファインダパターン、及び記号体系によって定義されるような他のアルゴリズムのレベルを変化させて、データ圧縮、誤り検査及び訂正を含んでもよい。ユーザ指定可能な記号体系仕様パラメータは、XMLデータにおける属性によって指定されてもよい。そして、記号体系アルゴリズムによって生成されたビットマップは、XMLデータにおける属性によって指定されるように、拡大及び/又は回転されてもよい。
一旦ビットマップ表現バーコードシンボルがブロック180によって生成されると、ビットマップは、"マスタ(master)"又は"ラベル(label)"ビットマップ184に配置される又は結合され、ラベルビットマップは、ブロック182において示されるように、発送ラベル全体のイメージを表す。発送ラベルは、人間が判読可能なテキスト、他のテキスト、又は文字、及びバーコードシンボルを含む。上述したビットマップは、別個であってもよいことに着目すべきである。すなわち、テキストについてのビットマップ及びバーコードシンボルについてのビットマップ、又はあるマスタビットマップは、用いられる又は処理進行として"構成される(populated)"てもよい。その点では、レンダリングエンジン80が作動するツリー又はデータ構造は、異なる"エリア"を含むことを意味する"XSLFOエリアノードツリー"と称されることに着目すべきである。そのようなエリアは、異なる若しくは個々のビットマップ又はビットマップ部分に対応してもよい。しかしながら、いかなる数の適切なビットマップ構造が使用されてもよい。ビットマップの正確な構造若しくは配置、又はビットマップの数は、本発明の範囲に対して直接的に関連するものではない。
例えば、テキストを生成する場合には、XSLFOプロセッサ78は、1つの特定のビットマップにおける"その(its)"テキストに配置されてもよい。そのようなテキストは、上述した"アルベルト・アインシュタイン(Albert Einstein)"に対応してもよい。このテキストはまた、バーコードシンボルとともに発送ラベル上に印刷されることから、"マスタ(master)"又は"ラベル(label)"ビットマップ184は、ビットマップのコンポーネントを全て含むであろう。そして、最終の"マスタ(master)"ビットマップ184は、発送ラベルが印刷されるように、プリンタドライバ54(図1)に対して送られる。
ここで、図4及び図5を参照すると、図5は、コードセグメント1における指定された第1のバーコード発送ラベルについての上述した処理の最終出力の表現190である。上述したように、レンダリングエンジン80により、テキストデータは、対応するスタイルシートにしたがってレンダリングされるとともにフォーマットされ、一方、郵便番号192はまた、バーコードシンボルの形式にレンダリングされる。例示の目的のためであることに着目すべきであり、図5において示されるフォントサイズ又はフォントタイプは、コードセグメント3において示される対応するスタイルシートにおいて指定されたものと同じでなくてもよい。
ここで、図6を参照すると、代替具体例が示される。同様の参照符号が同様の構造を指示するために用いられる。この特定の具体例において、XMLプリンタシステム10は、全ての実例におけるXMLプリンタ装置を含む必要がない又は特に利用する必要がない。この具体例において、例えば、外部リクエスタ194は、バーコードラベルを印刷することができるように、ビットマップにレンダリングされたXML入力データストリームを有することを望んでもよく、リモートで行われてもよい。したがって、外部リクエスタ194は、インターネット又は他のネットワーク43,44上のXMLサーバ200に対してリクエストを送ってもよい。そのリクエストは、図1乃至図3及びコードセグメント1乃至コードセグメント4に関して上述したXML入力データストリームと同じ形式であってもよい。そのリクエストはまた、従来から知られているように、SOAP(Simple Object Access Protocol)のようなXMLデータを含むプロトコルの形式であってもよい。
これを受けて、XMLサーバ200のコンピュータシステム12は、XML入力データストリームを処理してもよい。上述した同様の処理機能は全て、プリンタドライバに対してビットマップが送られないことを除いて、この具体例において実行される。より正確にいえば、ビットマップは、従来から知られている"JPEG"又は"PNG"フォーマットのような任意の適切なフォーマットに変換される。そして、JPEG又はPNGファイルは、外部リクエスタ194に対して送り返され、当該外部リクエスタ194は、その後、適切なプリンタドライバ用のJPEG又はPNGファイルをフォーマットし、バーコードラベルを印刷及び/又は表示する。したがって、本発明は、バーコードレンダリングサーバとして機能してもよく、また、必ずしも印刷機能を実行する必要がない。
ここで、図1のプリンタシステムの代替具体例を図7及び図8に示す。それは、図2乃至図6において示される"ネイティブ(native)"XMLプリンタシステム10ではなく、"ハイブリッド(hybrid)"XMLプリンタシステム300を示している。この具体例は、図1において示されるコンピュータシステム12及びプリンタシステム50とともになお用いられてもよいことに着目すべきである。同様の参照符号が同様の構造又はコンポーネントを指示するために用いられる。
この具体例において、ハイブリッドXMLプリンタシステム300は、ZPL I及び/又はZPL IIのようなZPL言語(ゼブラプログラミング言語(Zebra Programming Language))、及びそれらの任意の変形と同様であるZPLデータテンプレートに基づくXMLデータを受信してもよい。ZPL言語は、"キャレット(caret)"文字を用いるフォーマット言語及びコマンドを定義する2つの文字コマンドコードである。例えば、"^XA"コマンドは、新たなラベルフォーマットの開始を定義し、"^XZ"コマンドは、ラベルフォーマットの終了を定義する。
ZPL言語はまた、制御コマンドを表す"ティルド(tilde)"コマンドを含む。例えば、コマンド"JR"は、プリンタリセットコマンドであり、それは、プリンタによって直ちに作用され、実際にバーコードラベルの実際のフォーマットと重要な関係を有しない。ZPL I及びZPL IIは、本発明の所有者であるイリノイ州ヴァーノンヒルズ(Vernon Hills, Illinois)のゼブラ社(Zebra Corporation)によって開発された。ZPLは、ここに、ZPL IIと交換可能に用いられることに着目すべきである。
ZPL言語仕様に関するより重要な詳細は、"ZPL IIプログラミングガイド第1巻:X.10についてのコマンド参照"製造部門番号45541LB("ZPL II Programming Guide Volume One: Command Reference for X.10"Manufacturer Part No. 45541LB)と題する文書と、文書"ZPL IIプログラミングガイド第2巻:X.10環境"製造部門番号45542LB("ZPL II Programming Guide Volume Two: The X.10 Environment"Manufacturer Part No. 45542LB)と題する文書とでみつかるかもしれず、これら文書は、以下のインターネットウェブアドレス"www.zebra.com/SS/manuals.htm"のゼブラ社のウェブサイトでみつけられてダウンロードされるかもしれない。上述した文書は、その全体を参照することによってここに組み入れられる。図7乃至図9の具体例において、プリンタシステムの"言語(language)"は、ZPL及びXMLの両方のハイブリッドであり、これにより、プリンタシステム10は、"ハイブリッドXMLプリンタ"と称される。
知られているように、ZPLに基づくプリンタは、"オンデマンド印刷(on demand printing)"及び"格納されたラベルフォーマット(stored label format)"を扱うことができる。オンデマンド印刷は、印刷されるラベルデータを含むデータストリームがプリンタに対して送られた場合には、それが直ちに印刷されることを意味する。格納されたラベルフォーマットは、ラベルについてのテンプレートが予め生成されてもよく、プリンタにダウンロードされてもよいことを意味する。そして、テンプレートは、印刷されるラベルデータを含む後で送信されたデータストリームとともに用いるために、プリンタ内で内部的に再度呼び出されてもよい。
以下の記述においてより明確になるように、図2乃至図6のネイティブXMLプリンタシステム具体例と、図7及び図8のハイブリッドXMLプリンタシステム具体例との1つの相違点は、ハイブリッドXMLプリンタシステム具体例においては、データテンプレートが、ZPLにおいて予め定められ、まずプリンタにダウンロードされるということである。また、図7及び図8のハイブリッド具体例は、図2乃至図6の具体例のネイティブXMLプリンタシステムと既知のZPLプリンタとの組み合わせではないことに着目すべきである。ネイティブXMLモードとZPLモードとの間で単に切り替わる"2イン1(two-in-one)"プリンタではない。
図7及び図8のXMLプリンタシステムは、XSLテンプレートに組み込まれたXSLフォーマット要素とともにラベルを定義してレイアウトするためにXSLTが用いられる図2乃至図6のネイティブXMLプリンタシステムとは異なる。図2乃至図6のネイティブXMLプリンタシステムの具体例におけるラベルのレイアウト及びフォーマットを扱うために、ネイティブXMLプリンタ具体例において上述したように、多くの状況において、会社(又はベンダ)は、XSLフォーマットオブジェクトを用いて、ラベルレイアウトを用意して定義しなければならず、さらにXSLスタイルシート及びXSLスキーマを用意しなければならない。XSLフォーマットオブジェクト等(すなわち、XSLスタイルシート及びスキーマ)をまず第1に用いて、ビジネスエンティティのERPシステム88がよく形成されたXMLデータを送信することができた場合には、ビジネスエンティティが完全に互換性を有するXML ERPシステムに対する完全な切り替えを既に行ったことを示すであろうZPLテンプレートを用いる必要はなく、したがって、ZPLの任意の形式の必要性は除去される。
しかしながら、いくつかの会社は、そのシステムの"純粋なXML(pure XML)"へのそのような"完全な変換"への投資を行う準備又は意志がないかもしれない。そのような会社は、印刷されるべき彼らのラベルについてのより古いZPLテンプレートにおけるかなり大きな投資を行っているかもしれないためである。多くの会社は、ビジネスプロセスからビジネスプロセスへとXMLデータが容易に渡されることを可能とするためのインフラストラクチャを構築している。XML互換性を有するフォーマットにおけるそのようなデータの送信が、業界標準となっているためである。多くの会社及び業界は、全体として、データについてXMLフォーマットを使用する方向に移動しているが、そのような会社は、完全に互換性を有するXMLフォーマットへの切り替えを単に行うために、彼らのテンプレートデータベースインフラストラクチャにおける彼らの投資を廃棄したいと思わないかもしれない。
したがって、図7及び図8のハイブリッドXMLプリンタ具体例は、XMLフォーマットにおけるデータとともに既存のZPLテンプレートの使用を可能とする。ERPシステム88は、最も経済的理由のために、よく形成されたXMLへの"完全な(complete)"切り替えがまだ行われていないことから、既存のZPLテンプレートを使用し続けなくてもよい。したがって、XSLスタイルシート、スキーマ、及びフォーマットオブジェクトは、ERPサイトでまだ実装されておらず、ハイブリッドXMLプリンタシステムは、そのような環境でコスト効率のよい解決を提供する。
ここで、図7を参照するとともに、"コードセグメント5−−ZPLダウンロード可能テンプレート(code segment 5 -- a ZPL downloadable template)"と題した直後に示すコードセグメント5を参照する。コードセグメント5は、実際のバーコードラベルの印刷に先だってハイブリッドXMLプリンタシステム300に対して送信されてもよく、また、将来の印刷ジョブのためにプリンタシステムのメモリに保存されてもよいZPLフォーマットテンプレートの特定の例を示すものである。行番号は、例示の目的のためにのみ挿入されており、コードの一部ではない。
コードセグメント5−−ZPLダウンロード可能テンプレート
1 ^XA
^DFE:SHIPLABL.ZPL^FS
^MCY
^LRN^FWN^CFD,24^LH0,0
5 ^CI0^PR2^MNY^MTT^MMT^MD0^JJ0,0^PON^PMN
^LT0
^A0N,58,58^FO188,169^CI0^FN999^FDname^FS
^A0N,58,58^FO188,244^CI0^FN998^FDaddress^FS
^A0N,58,58^FO188,319^CI0^FN997^FDcity^FS
10 ^A0N,58,58^FO657,319^CI0^FN996^FDstate^FS
^A0N,58,58^FO188,394^CI0^FN995^FDzip^FS
^BY4^FO188,488^BZN,35,N^FN995^FDzip^FS
^PQ1,0,1,Y
14 ^XZ
従来から知られているように、第1行目及び第14行目に示されるコマンド(^XA,^XZ)は、ZPL言語で指定されるように、テンプレートの開始及び終了を定義する。第2行目は、ハイブリッドプリンタシステム300にダウンロードされたフォーマットテンプレートが、"E:SHIPLABL.ZPL"によって定義された位置で当該ハイブリッドプリンタのメモリに格納されることを示す。ここで、"E:"は、例えばディスクドライブである記憶装置の識別子を表す。しかしながら、いかなる適切な記憶装置が用いられてもよい。このコマンドの包含は、このフォーマットテンプレートが保存されることになっていることを示す。第3行目〜第6行目は、ZPLプログラミング言語によって提供される様々なプリンタセットアップ及び初期化コマンドのうちのいくつかを表す。
ここで、第7行目を参照すると、パラメータ"N"と結び付いた"^A0"コマンドは、テキストフィールドがフォント番号0を用いて、且つ標準(normal;"N")の方向(orientation)(すなわち、フォントは回転しない)で生成されることになっていることを意味する。ここで、"58, 58"は、印刷されるテキストの高さ及び幅(ドットで)を表す。ZPL言語で提供されるように、コマンド"^FO188,169"は、テキストが座標188,169(すなわち、ラベルの開始から横方向に188ドット及び下方向に169ドット)に位置するように、フィールド原点を定義する。
コマンド"^FN999"("999"のパラメータを備えたFNコマンド)は、後でプリンタにダウンロードされる可変情報を含むであろう可変フィールドを定義する。その点で、これは、標準のZPLにおけるものとは多少異なる。標準のZPLにおいて、テンプレートにおける"^FN"コマンドが受信された場合には、データは、コマンドとともに供給されない。テンプレートがその後再度呼び出される場合には、その可変データの位置を指定する後の"^FN"コマンドは、データそのものに後続して送られるためである。しかしながら、このハイブリッドの具体例において、ある"関係(association)"データは、"^FD"データフィールドコマンドによって指示されたときに、直ちに"^FN"コマンドに続いて提供される。この特定の例において、"^FN"コマンドに直ちに続くデータは、"^FD"データフィールドコマンドによって先行されるが、"名前(name)"として示され、後でERP又はウェアハウスシステムから送られたXMLデータと結び付けられるデータである。したがって、コードセグメント5において示されるテンプレートがハイブリッドXMLプリンタシステム300によって受信された場合には、それは、当該プリンタのメモリに格納され、さらに、"名前(name)"とフィールド"999"との間の"関係(association)"は、格納される。
同様に、第8行目で、"住所(address)"とフィールド998との間の関係が格納され、第9行目で、"都市(city)"とフィールド997との間の関係が格納される、等である。例えば、"名前(name)"、"住所(address)"、及び"都市(city)"等によって表されるフィールドは、ERPシステム88によるXMLデータとして送られる実際のデータではないことに着目すべきである。より正確にいえば、"名前(name)"、"住所(address)"、及び"都市(city)"は、後でERPシステムによってフィールド位置又は識別子、すなわち、"999"、"998"、"997"とともにそれぞれ送られるデータを関連させる"タグ(tags)"又は"関係(associations)"である。
ここで、第12行目を参照すると、"^BY"コマンドは、それに続くバーコードコマンドについてのデフォルトパラメータを定義する。この場合、パラメータ4は、狭いバーの幅が4ドットであることを定義する。"^FO"コマンドは、印刷されるバーコードが座標188,488に配置されることを定義する。"^BZ"コマンドは、標準の方向(orientation)であり(パラメータN)、35ドットの高さであり(パラメータ35)、及び人間の判読可能な解釈行がない(パラメータN)、ポストネットタイプのバーコードフォーマットであるバーコードを定義する。さらに、パラメータ995を備えた"FN"コマンドは、"郵便番号(zip)"が実際の印刷されたバーコードを生成するためにダウンロードされるXMLデータの名前であることをさらに指定する"郵便番号(zip)"の属性を有するデータコマンド"^FD"によって定義された、ダウンロードされるXMLデータの名前と"995"として識別されたラベルフィールドとの間の関係を指定する。図9に示すように、印刷される実際のバーコードは、郵便番号304である。
勿論、テキストフィールドは、図9に示すように、バーコード304そのもの上にもバーコードラベル305上にも印刷される。そのようなフィールドは、例えば、名前306、住所308、都市310、州312、及びテキスト郵便番号314を含んでもよい。
したがって、この具体例において、コードセグメント5において示されるテンプレートは、ハイブリッドXMLプリンタシステム300に格納され、実際の"ワーク(work)"は、実行されない(すなわち、ラベルは、まだ印刷されない。)。要約すると、上述したように、第7行目〜第11行目は、テキストフィールドを定義し、第12行目は、他のパラメータに加えて、後でERPシステム88から送られた実際のXMLデータと相互に関連させられるであろう関係とともに定義されるバーコードを定義する。コードセグメント5のテンプレートは、どのフィールドが無変化(static)であり、どのフィールドが可変(variable)であるかを定義してもよい。可変フィールドは、(^FDコマンドに格納される)可変名を有し、可変名は、印刷されたラベルに対応する後でダウンロードされるデータと後で相互に関連又は"関係(associated)"させられてもよい。
したがって、図7及び図8のハイブリッド具体例において、"^FD"コマンド(すなわち、"名前(name)"によって続けられる)は、バーコードラベル上に印刷される実際のデータではなく、結果としてテンプレートのダウンロードに続く実際のXMLデータにおいて送られる可変名を決定する。
上述したコードセグメント5のフォーマットテンプレートがオペレーションにおいてどのように用いられるのかをみるために、"コードセグメント6−−ZPLテンプレートとともに使用するダウンロードされたXMLデータ(code segment 6 -- downloaded XML data for use with a ZPL template)"と題したコードセグメント6が直後に示される。行番号は、例示の目的のためにのみ挿入されており、コードの一部ではない。
コードセグメント6−−ZPLテンプレートとともに使用するダウンロードされたXMLデータ
1 <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE labels SYSTEM "label.dtd">
<labels _FORMAT="E:SHIPLABL.ZPL" _QUANTITY="1" _PRINTERNAME="Printer
1" _JOBNAME="LBL101">
5 <label>
<variable name="name">Albert Einstein</variable>
<variable name="address">1234 Relative Way</variable>
<variable name="city">Princeton</variable>
<variable name="state">NJ</variable>
10 <variable name="zip">08540</variable>
</label>
<label>
<variable name="name">Steven Hawking</variable>
<variable name="address">5678 Black Hole Drive</variable>
15 <variable name="city">Los Angeles</variable>
<variable name="state"<CA</variable>
<variable name="zip">90007</variable>
</label>
<label>
20 <variable name="name">Richard Feynman</variable>
<variable name="address">90 Quantum Circle</variable>
<variable name="city">New York</variable>
<variable name="state">NY</variable>
<variable name="zip">10044</variable>
25 </label>
</labels>
コードセグメント6は、コードセグメント5のフォーマットテンプレートがハイブリッドXMLプリンタシステムに最初にダウンロードされた後ではあるが、ERPシステム88又はウェアハウス管理システムがハイブリッドXMLプリンタシステム300に対して送る実際のXMLデータストリームを表す。コードセグメント5,6の特定の例において、例えば、用いられてもよいウェアハウス管理システムは、オラクルウェアハウス管理システム("オラクルシステム(Oracle system)"又は"オラクルWMS(Oracle WMS)")である。勿論、オラクル及びSAP等のようないかなるビジネスシステムが用いられてもよい。この特定の例において、オラクルシステムは、そのデータベースからデータを収集し、プリンタに対する送信のために特定のXMLフォーマットでデータをフォーマットする。この特定の例は、オラクルシステムを用いることから、コードセグメント6のテンプレートは、オラクルXML意味論を用いる。
その点で、オラクルウェアハウス管理システムによって用いられる特定のXML意味論は、従来から知られているように、"label.dtd"として識別される"DTD"又は文書タイプ定義によってコードセグメント6の第2行目において定義される。また、従来から知られているように、ERPシステム88又はオラクルシステムは、XMLデータが印刷されることになっているフォーマットを指定する能力を有する。背景の方法により、この能力は、オラクルシステム及び他のERPシステムにもとは組み込まれてもよい。そのようなシステムは、カスタム"ミドルウェア(middleware)"ソフトウェアシステムに対してインターフェースするためにもともと設計され、オラクル又はERPシステムと使用中の特定のバーコードプリンタとの間のフォーマット変換を扱ったためである。本ハイブリッドプリンタは、そのような"ミドルウェア(middleware)"ソフトウェアシステムの必要性を除去する。
しかしながら、オラクルシステムによって送信されたXMLデータは、コードセグメント6の第3行目で、"_FORMAT"と呼ばれる属性を有する"ラベル(labels)"と呼ばれるXML要素があることを指定する。この属性は、用いる特定のフォーマットテンプレートを指定する。この特定の例において、送信されたXMLデータとともに用いるフォーマットテンプレートは、"E:SHIPLABL.ZPL"として識別され、コードセグメント5において示されるように、以前にハイブリッドXMLプリンタシステム300に格納されたフォーマットテンプレートであり、ZPLに基づいたフォーマットテンプレートである。したがって、以前にハイブリッドXMLプリンタシステム300のメモリにダウンロードされて格納されたフォーマットテンプレートは、"E:SHIPLABL.ZPL"によって指定された位置から再度呼び出されてもよい。
第3行目はまた、"_QUANTITY"、"_PRINTERNAME"、及び"_JOBNAME"のような"ラベル(labels)"要素のいくつかの追加の属性を含む。属性"_QUANTITY"は、印刷するバーコードラベルの数を指定する。一方、属性"_PRINTERNAME"及び"_JOBNAME"は、ハイブリッドXMLプリンタシステム300によって必要とされないレガシーフィールドであるが、上述したように、そのようなデータは、ミドルウェアソフトウェアに対してインターフェースするためにもともと生成されたことから、それにもかかわらずオラクルデータに含まれる。
コードセグメント6は、第5行目〜第11行目、第12行目第18行目、及び第19行目第25行目にそれぞれ示されるように、"ラベル(label)"データの3つのグループを含む。両方のコードセグメントが、"アルベルト・アインシュタイン(Albert Einstein)"、"スティーブン・ホーキング(Steven Hawking)"、及び"リチャード・ファインマン(Richard Feynman)"にそれぞれ言及することから、"ラベル(label)"データの3つのグループは、コードセグメント1、すなわち、第8行目〜第14行目、第15行目〜第21行目、及び第22行目〜第28行目にそれぞれ類似しているようにみえ、また、住所、都市、州、及び郵便番号データについてのフィールドに関連していることに着目すべきである。したがって、コードセグメント6において示されるデータは、印刷される3つの個々のラベルに対応する。しかしながら、印刷される3つのラベルのそれぞれについては、全ての
受取人情報がテキストとして印刷されるが、郵便番号フィールドのみが実際のバーコードとして印刷されることに着目すべきである。これは、コードセグメント5の第12行目のテンプレートにおいて定義された"^BZ"コマンドのためである。
コードセグメント5,6を参照すると、その後、コードセグメント6において示されるオラクルシステムによって送信されたデータは、コードセグメント5において示される対応するフォーマットテンプレートに関係している。例えば、コードセグメント6の第6行目において、"名前(name)"の可変名は、実際のXMLテキストデータである"アルベルト・アインシュタイン(Albert Einstein)"に対応する。コードセグメント5の第7行目に示されるように、以前に保存されたコードセグメント5のテンプレートを用いて、関係(association)は、"名前(name)"(その内容は、"アルベルト・アインシュタイン(Albert Einstein)"である)と、フィールド番号"999"との間に作られる。そして、XMLデータ"アルベルト・アインシュタイン(Albert Einstein)"は、フィールド番号999によって定義されたメモリに保存される。
同様に、XMLデータ"リレイティブウェイ1234(1234 Relative Way)"は、フィールド番号998によって定義されたメモリに保存され、XMLデータ"プリンストン(Princeton)"は、フィールド番号997によって定義されたメモリに保存され、XMLデータ"ニュージャージー(NJ)"は、フィールド番号996によって定義されたメモリに保存される、等である。一旦XMLデータ入力ストリームに含まれていた全てのデータが対応するテンプレートに関係していてメモリにロードされると、ラベルは印刷される。
ここで、図7及び図8を参照すると、図7は、ハイブリッドXMLプリンタシステム300の特定の具体例のハイレベルの機能ブロック図を示し、一方、図8は、ハイブリッドXMLプリンタシステムの特定の具体例のハイレベルのソフトウェアブロック図及びデータフロー図を示す。ネイティブXMLプリンタシステムに関して上述したように、ハイブリッドXMLプリンタシステム300は、エンタープライズ・リソース・プランニング(ERP)・システム88からデータを受信する。データは、XMLデータ及び/又はZPLテンプレートデータのようなXMLコンポーネント及びZPLコンポーネントの両方を含んでもよい。
図7のハイレベルのブロックは、一種のXMLプロセッサであるSAXプロセッサ320の使用を示す。背景の方法により、SAX(Simple API for XML)プロセッサは、図2乃至図6のネイティブXMLプリンタシステムに関して上述したXMLプロセッサによって用いられるDOM(Document Object Model)処理モデルを用いない。
上述したように、DOMに基づくXMLプロセッサは、従来から知られているように、その処理ステップを実行するために、メモリにおいてノードツリーを生成する。これは、図2乃至図6の具体例に関して上述したように、XSLタイプ処理を実行する場合には必要である。したがって、全てのデータはメモリに格納され、これにより、大量のメモリを占めてもよい。しかしながら、SAXプロセッサは、XMLシンタックス及びデータストリームを解釈し、また、従来から知られているように、メモリにおいてノードツリーを構築するのではなく、イベントハンドラによって扱われる"イベント(events)"を生成する。SAXプロセッサは、非常に効率的にメモリを使用し、大量のXMLデータを処理する場合には望ましい。
しかしながら、図7及び図8のこの代替具体例において、メモリにおけるノードツリーに基づいた処理が要求されないことから、XSLタイプ処理は、むしろ実行されない。したがって、DOMに厳密に基づくXMLプロセッサを用いるのではなく、図7において示されるように、SAXプロセッサが用いられてもよい。用語"SAX"は、XML言語のデータ及びシンタックスを扱う方法に関する仕様を単に指す。例えば、この具体例において用いられてもよい商業上利用可能なXMLプロセッサは、タイのオープンソースソフトウェアセンタ社(Thai Open Source Software Center, Ltd.)製のXMLプロセッサである"Expat"である。XMLプロセッサのこの特定のモデルは、DOMに基づくXMLプロセッサ又はDOMに基づかないSAXプロセッサの両方としての機能に対して能力を有するが、この具体例の目的のために、プロセッサは、DOMに基づかないXMLプロセッサとして形成されるのが望ましく、これにより、SAXプロセッサと称される。
図7に示すように、SAXプロセッサ320に加えて、ZPLプロセッサ322も示される。そして、SAXプロセッサ320及びZPLプロセッサ322からのデータパスは、可変データ統合(Variable Data Integration)328とラベル付けされたブロックまで経路が定められる。可変データ統合ブロック328は、コードセグメント5のZPLテンプレートに関して上述したように、ERPシステム88から受信されたXMLデータを結合するとともに、ZPLテンプレートによって以前に定義されたフィールドにデータを適用する又は"関係させる(associates)"。本質的に、このステップにおいて、例えば名前"アルベルト・アインシュタイン(Albert Einstein)"といった実際のXMLデータは、コードセグメント5のテンプレートの999等によって定義されたその関連する位置に保存される。
続いて、データは、ビットマップ/バーコードレンダリングブロック330によってレンダリングされ、その処理は、既知の商業上利用可能なZPLプリンタにおいて用いられる既知のZPLビットマップレンダリングと同様である。例えば、イリノイ州ヴァーノンヒルズのゼブラ・テクノロジーズ社製である以下の既知のZPLプリンタは、以下のようにZPLビットマップ/バーコード処理を実行することができるソフトウェア、ハードウェア、及び/又はファームウェアを含んでもよい:ゼブラ社製のゼブラモデルXiIII+、90XiIII、96XiIII、140XiIII、170XiIII、220XiIII、モデルZ4M,Z6M,105SL、及び任意のモデルXiシリーズ・バーコードプリンタ。ビットマップ/バーコードレンダリングブロック330は、ネイティブXMLプリンタシステム具体例において要求されるいかなるXSLFO処理を用いることなく実行されるのが望ましく、XSLTスタイルシート又はスキーマは、用いられないことに着目すべきである。
属性としてのXMLデータにおいてバーコードパラメータが指定されないことを除くのが望ましく、フォーマットテンプレートにおいてZPLコマンドパラメータによって指定されるのが望ましいものの、上述したように、バーコードは、ネイティブXMLプリンタ具体例についてレンダリングされる。例えば、ZPLコマンド"^BY2,2,100"は、リニアバーコードについて、狭いバーの幅が2ドットであり、狭いバーの幅に対する広いバーの幅の比率が2であり、バーの高さが100ドットであることを指定する。
ビットマップがレンダリングされた後、それは、図1においてまた示されるプリンタドライバ54まで経路が定められる。プリンタドライバ54は、関連する処理装置の物理的な位置に応じて、コンピュータシステム12における処理装置又は処理装置60(図1)のいずれかによってその機能が実行されてもよい上述したコンポーネントの例である。その上、単一の処理装置は、十分に強力である場合には、ハイブリッドXMLプリンタシステム300についての全ての機能を担ってもよい。
ここで、図1、図7及び図8を参照すると、図8は、ハイレベルのソフトウェアブロック図及びデータフロー図の組み合わせの特定の具体例を示す。後述するソフトウェアは、図1のコンピュータシステム12のプロセッサ28によって実行されてもよい。その上、プロセッサ28は、コンピュータシステム12及びプリンタシステム50の両方に共通の機能を実行してもよい。1つ以上のプロセッサがあってもよく、それらは協調して機能してもよく、又は別個に機能してもよい。処理又は処理機能が、コンピュータシステムによって若しくはコンピュータシステムで、又はプリンタシステムによって若しくはプリンタシステムで実行されたとしても、それは、この発明の範囲についての本質ではない。
後述するように、図8において示される処理ステップによってマルチプル"パス(passes)"がSAXプロセッサ320の管理のもとで生じてもよい。しかしながら、そのようなマルチプル"パス(passes)"は、必ずしも線形でなく、したがって、図8における特定の線又は矢印によって示された正確なパスは、必ずしも示されていないかもしれない。図8に示される正確な開始及び終了ポイントを有しなくてもよい反復プロセスが記述される。より正確にいえば、パスによって生成された行為又は結果が示されてもよく、したがって、"代替パス(alternative path)"が、図8におけるSAXプロセッサ320に処理制御を返す断続線において示されてもよい。これは、パスが反復してもよく、処理がその終了に到着する前にSAXプロセッサ320が何度もループ又は反復してもよいことを示す略記方法である。
図示の目的のためにのみ、図8において示される処理による第1の"パス(pass)"において、印刷される実際のデータがまだ送られない場合には、ZPLテンプレートは、まずハイブリッドXMLプリンタシステム300に対して送られる。第2の"パス(pass)"において、さらに後述するように、印刷されるバーコードラベルを表すXMLデータは、以前に保存されたZPLテンプレートにしたがって印刷されるために、プリンタシステムに対して送られる。
図8において示されるように、データ入力ストリーム340は、上述したように、ERPシステム88から受信され、XMLデータ及び/又はZPLテンプレートデータを含んでもよい。SAX処理ブロック320は、最初にデータ入力ストリーム340を受信して解析する。SAXプロセッサがSAXモードで作動するXMLプロセッサであることから、SAX処理ブロック320は、XMLプロセッサによって現実に実行されることに着目すべきである。したがって、XMLプロセッサ又はXML処理ブロックのフレーズは、SAXプロセッサ又はSAX処理ブロックのフレーズと交換されてもよい。しかしながら、上述したように、XMLプロセッサは、SAXモードで作動するのが望ましく、これにより、SAXプロセッサ320と称される。
まず、SAX処理ブロック320は、データ入力ストリームに標準のXMLシンタックス規則を適用することにより、データ入力ストリーム340がよく形成されたXMLデータであるか否かを決定する。いくつかのハードウェアを示す図7及びデータフローを示す図8について、図8のSAX処理ブロック320は、本質的に、図7のSAXプロセッサと同様であることに着目すべきである。SAXプロセッサ及びSAX処理ブロックの用語は、ここに交換可能に用いられるであろう。
データ入力ストリームがXMLシンタックスに合致しないことをSAX処理ブロック320が決定した場合には、データ入力ストリームは、ZPLに基づいているものと仮定される。したがって、SAX処理ブロック320は、データが入力ストリーム340をさらなる処理のためにZPL処理ブロック322まで経路を定める。いくつかのハードウェアを示す図7及びデータフローを示す図8について、図8のZPL処理ブロック322は、本質的に、図7のZPLプロセッサと同様であることに着目すべきである。ZPLプロセッサ及びZPL処理ブロックの用語は、ここに交換可能に用いられるであろう。
そして、ZPL処理ブロック322は、ZPLフォーマットテンプレートを表すデータ入力ストリーム340を処理又は解析する。望ましくは、ZPL処理ブロック322は、フォーマットテンプレートの処理を開始させる"ラベルの開始(beginning of label)"コマンド(^XA)を受信する。フォーマットテンプレートは、コードセグメント5において示される。
様々なZPLコマンドは、処理を管理するとともに、ラベルのフィールドを定義し、本質的に、印刷されるデータを確立して定義する。プリンタ制御及び他のコマンドは、処理のこの段階で受信されてもよい。全てのフォーマットテンプレートがダウンロードされた場合には、ZPL処理ブロック322は、フォーマットテンプレートを保存させる"ラベルの終了(end of label)"コマンド(^XZ)に遭遇する。対応する識別子"E:SHIPLABL.ZPL"(コードセグメント5の第2行目に示される)を備えた^DFコマンドは、フォーマットテンプレートがプリンタシステムにおける"E:"デバイス上にファイル名が"shiplabl.zpl"とされて内部的に保存されるのが望ましいことをZPL処理ブロック322に示す。勿論、フォーマットテンプレートをプリンタシステムにおいて内部的に保存する必要はなく、ネットワークに接続されたサーバ又は通信ネットワークを介してアクセス可能な遠隔位置のような任意の記憶位置に保存されてもよい。
^DF(ダウンロードフォーマット)ZPLコマンドは、直ちに印刷されるのではなく格納される部分であるラベルフォーマットを示す。全てのテンプレートデータが受信されたことを示す^XZに遭遇した場合には、現実に保存は行われる。
また、図8において、ボックスを完成する垂線なしで"ZPLラベルフォーマット(ZPL label formats)"(352)とラベル付けされたブロックは、データ格納部のための図中のシンボルであることに着目すべきである。これは、入力ストリームからのテンプレートデータがデータ格納部に格納されることを示す。データ格納部352から出ている線は、ある程度の後に、追加の処理のために当該データ格納部からデータが検索されることを示す。データフローパスは、ブロック360から、格納部、ブロック356まであるが、これは、リニアフローではない実際の"制御フロー(control flow)"を表していない。
"ZPLラベルフォーマット再呼び出し(recall ZPL label format)"356とラベル付けされたブロックは、上述したように、"ZPLラベルフォーマット保存(save ZPL label format)"360とラベル付けされたブロックに接続されて示され、処理は、リニアでなくてもよく、したがって、データフローは、"ZPLラベルフォーマット保存(save ZPL label format)"ブロック360から"ZPLラベルフォーマット再呼び出し(recall ZPL label format)"ブロック356まで、必ずしも継続又は進まなくてもよい。より正確にいえば、上述したように、全てのプロセスは反復し、この最初の"パス(pass)"において、ブロック360において示されるように、ZPLラベルフォーマットが保存された後、断続線370によって示されるように、入力データストリームの制御は、継続される処理のためにSAX処理ブロック320に戻ってもよい。処理されるデータ入力ストリーム340に追加データがない場合には、処理は、追加のダウンロードされたデータを終了して待機する。
図7及び図8において示される処理による第2の"パス(pass)"において、ERPシステム88は、以前にダウンロードされたZPLテンプレートにしたがってハイブリッドXMLプリンタシステム300によって処理される実際のXMLデータを送信してもよい。例えば、SAX処理ブロック320は、ラベルデータが続くことを指定してもよいよく形成されたXMLデータを受信してもよい。実際のデータを処理するために、"ZPLラベルフォーマット再呼び出し(recall ZPL label format)"356とラベル付けされたブロックにおいて示されるように、格納されたZPLフォーマットは、再度呼び出され、その結果、再度呼び出されたフォーマットテンプレートは、入力されるXMLデータストリームとともに用いられてもよい。
SAX処理ブロック320は、XMLシンタックスを処理し、また、データ入力ストリーム340によって定義された様々な要素及び属性を決定する。"_FORMAT"属性を受信するこの具体例において、データ入力ストリーム340は、一時的に中断され、また、入力データは、プリンタシステム300に格納されたフォーマットテンプレートから到達する。したがって、フォーマットテンプレートに組み込まれたZPLコマンドは、ZPL処理ブロック322によって解釈される。一旦フォーマットテンプレートにおけるコマンドが解釈されると、データ入力ストリーム340は、再度、XMLデータを処理し続けるSAX処理ブロック320に到達する。
上述したように、様々な"イベント(events)"は、SAXプロセッサ320の制御のもとで、処理による追加のパスによって開始されてもよい。例えば、フォーマットテンプレートにおける可変フィールドが、受信された対応する又は"関係する(associated)"XMLデータが構成されるように、"可変データSAXイベント(variable data SAX event)"376は、開始されてもよい。これは、"XML変数とZPLラベルフォーマット変数との結び付け(Match XML variable with ZPL label format variable)"380とラベル付けされたブロックによって示される。本質的に、XMLデータ入力ストリーム340の変数は、フォーマットテンプレートにおけるフィールドに関係する。例えば、このステップにおいて、コードセグメント6において示される実際のXMLデータ"アルベルト・アインシュタイン(Albert Einstein)"(図9の306)のようなXML変数は、コードセグメント5のZPLテンプレートにおけるラベル変数"名前(name)"のようなZPLラベルフォーマット変数と結び付けられる。
SAXプロセッサ320は、上述したタスクを扱うために、"開始ラベルSAXイベント(begin label SAX event)"384及び"他のSAXイベント(other SAX events)"388のようなさらなるイベントを開始してもよい。SAXプロセッサ320の制御のもとでの図8の処理によるこのパス又は他のパスは、"他のSAXイベント(other SAX events)"の生成を引き起こしてもよく、"プロセスイベント(Process event)"390と称されるブロックによって処理されてもよい。例えば、そのような"他の"イベントは、"プリンタ速度設定イベント(set printer speed event)"、"印刷ラベル量設定イベント(set quantity of labels to print event)"、"媒体選択イベント(select media event)"、"使用リボン設定イベント(select ribbon to use event)"、"紙選択イベント(choose paper event)"、"300dpiプリンタ使用イベント(use 300 dpi printer event)"、"600dpiプリンタ使用イベント(use 600 dpi printer event)"、及び"可変データイベント(variable data event)"等を含んでもよい。
そのようなイベントの数は、事実上無制限であり、ハードウェアプリンタシステムのタイプ、構成、及び能力によって管理される。本質的に、プリンタの全ての様相及び機能は、データ入力ストリーム340において送られたコードの使用によって制御されてもよい。これはまた、XMLデータストリームによって記述されたラベルを印刷する能力があるか否か又は印刷するように形成されているか否か、それができない場合には任意にエラー情報を返す能力があるか否か又は返すように形成されているか否かについて、プリンタが決定することを可能とする。本質的に、オラクルベースのXMLデータに対応するコードセグメント6においては、"他のコマンド(other commands)"の数にのみ制限がある(すなわち、両方とも第3行目に示される量(quantity)=1及びプリンタ名(printer name)=プリンタ1)ように示されるが、上述したように、プリンタにおいて制御されてもよい任意の機能又は特徴がXML入力データストリームにおいて指定されてもよい。したがって、実際のXML入力データとプリンタ制御コードとの間には密な拘束力があってもよい。
また、コマンドに応じてSAX処理ブロック320によって生成されたそのような"他の"コマンド及び対応する"他のイベント"は、オラクルシステム(the Oracle system)の部分又はオラクルシステムに特有ではないことに着目すべきであり、それは、これらのコマンドが何を行うか又はそれらがどのように用いられるかについてオラクルシステムが必ずしも"知っている"必要がないことを意味する。コマンド及び後の生成されたイベントが意味を呈するのは、そのようなダウンロードされたコマンドがSAX処理中に結び付けられる場合のみである。
"ラベル要素の終了(end of label element)"イベント(</label>)が受信された場合には、ラベルは、完成し、そこで印刷されてもよい。そして、制御は、ラベルを印刷するZPLフォーマットエンジン処理394まで経路が定められる。望ましくは、ZPLフォーマットエンジン処理394の機能は、ビットマップ/バーコードレンダリングの機能を含む。これにより、ブロック394は、ZPLフォーマットエンジンと称される。この組み合わされた機能は、テキスト、バーコード、及びラベル上の他のフィールドのそれぞれについてのビットマップを決定し、個々のビットマップを単一のラベルビットマップ396へと適切な回転及び拡大して統合し、媒体上での物理的なレンダリングのために印刷エンジン(又はプリンタドライバ54(図1))に対して完成したラベルビットマップを送る。上述したように、ZPLフォーマットエンジン処理394は、例えば、イリノイ州ヴァーノンヒルズ(Vernon Hills, Illinois)のゼブラ・テクノロジーズ社(Zebra Technologies Corporation)製のような様々な商業上利用可能なZPLプリンタにおいてみつかるかもしれず、以下のプリンタモデルを含んでもよい:XiIII+、90XiIII、96XiIII、140XiIII、170XiIII、220XiIII、モデルZ4M,Z6M,105SL、及び任意のモデルXiシリーズ・バーコードプリンタ。
ZPLフォーマットエンジン処理394は、本質的に、印刷されるラベルに含まれていた全てのフィールドを決定し、各フィールドについて行われなければならないことを決定する。例えば、ZPLフォーマットエンジン処理394は、コードセグメント6の第6行目に示されるデータ"アルベルト・アインシュタイン(Albert Einstein)"(図9の306)を含むフィールドが、フォント番号0を用いて、且つ標準(normal;"N")の方向(orientation)で印刷され、また、コードセグメント5の第7行目によって示されるように、高さが58ドットで且つ幅が58ドットであり、また、フィールド原点座標188,169で開始することを決定してもよい。
したがって、ZPLフォーマットエンジン処理394は、対応するXMLデータとともにフォーマットテンプレートによって定義された全てのフィールドを検査し、本質的に、テキスト又はバーコードを表すラベル上でドット(又はビット)を生成する方法を決定する。バーコードフィールドは、リニアバーコードの水平及び垂直の大きさに、並びに2次元バーコードの拡大を説明するフィールドのために指定されたバーコード記号体系に基づいたフィールドパラメータに対して適切なビットマップ生成アルゴリズムを適用することにより、フォーマットされてレンダリングされる。
本発明にしたがうネイティブXMLプリンタシステム及びハイブリッドXMLプリンタシステムを含むXMLプリンタシステムの特定の具体例は、本発明がなされて使用されてもよい方法を例示する目的のために記述された。本発明及びその様々な様相の他のバリエーションの実装及び変更は、当該技術の熟練者にとって明白であろうこと、並びに本発明は、上述した特定の具体例によって制限されないことは理解されるべきである。したがって、本発明は、ここに開示されて請求された基本的な根本原理の真情及び範囲内で任意又は全ての変更、バリエーション、又は等価物を包含するように熟考される。
図1は、本発明にしたがうプリンタシステムの特定の具体例のハイレベルのハードウェアブロック図である。 図2は、プリンタシステムの特定の具体例のハイレベルのソフトウェアブロック図である。 図3は、プリンタシステムの特定の具体例のハイレベルのソフトウェアブロック図及びデータフロー図の組み合わせである。 図4は、ビットマップ/バーコードレンダリングエンジンの特定の具体例のハイレベルのソフトウェアブロック図である。 図5は、図1乃至図4のプリンタシステムにしたがって製造されたバーコードラベルの特定の表現である。 図6は、バーコードレンダリングサーバとして形成されたプリンタシステムの代替具体例の特定の例である。 図7は、プリンタシステムの特定の代替具体例のハイレベルのソフトウェアブロック図である。 図8は、プリンタシステムの特定の代替具体例のハイレベルのソフトウェアブロック図及びデータフロー図の組み合わせである。 図9は、図7及び図8のプリンタシステムにしたがって製造されたバーコードラベルの特定の表現である。

Claims (36)

  1. 拡張可能マークアップ言語(extensible markup language;XML)入力データストリームに基づいてバーコードラベルを印刷するように適応され、媒体制御システムと、印刷ヘッドアセンブリと、印刷ヘッドドライバとを有するプリンタ装置を含むXMLプリンタシステムであって、
    上記プリンタ装置に作用的に接続されたコンピュータシステムを備え、
    上記コンピュータシステムは、さらに、
    メモリサブシステムと、
    ネットワークに作用的に接続された通信インターフェースと、
    上記XML入力データストリームを受信して処理するとともに、スキーマリポジトリから上記XMLデータストリームにおいて識別されたスキーマを得るように形成され、得られた上記スキーマに基づいて上記XMLデータストリームを検証するXMLプロセッサと、
    スタイルシートリポジトリから上記XMLデータストリームにおいて識別されたスタイルシートを得るように形成され、得られた上記スタイルシートに基づいて、上記XML入力データストリームにおけるデータを変換済XMLデータに変換する拡張可能スタイルシート言語変換(extensible stylesheet language transformation;XSLT)プロセッサと、
    上記スタイルシートに含まれていたXSLFO指示に基づいて、上記変換済XMLデータをフォーマット済XMLデータにフォーマットするように形成された拡張可能スタイルシート言語フォーマットオブジェクト(extensible stylesheet language formatting object;XSLFO)プロセッサと、
    上記フォーマット済XMLデータを受信して上記バーコードラベルのビットマップ表現を生成するように形成されたバーコードレンダリングサブシステムとを含むこと
    を特徴とするXMLプリンタシステム。
  2. 上記メモリサブシステムは、RAM、ROM、ハードディスク記憶装置、及びデータベースシステムからなるメモリコンポーネントのグループから選択されること
    を特徴とする請求項1記載のXMLプリンタシステム。
  3. 上記メモリサブシステムは、上記コンピュータシステムから遠隔され、ネットワークを介してアクセス可能であること
    を特徴とする請求項1記載のXMLプリンタシステム。
  4. 上記メモリサブシステムは、上記コンピュータシステムに組み入れられること
    を特徴とする請求項1記載のXMLプリンタシステム。
  5. 上記コンピュータシステムは、コンピュータ、マイクロプロセッサ、RISCプロセッサ、CISCプロセッサ、メインフレームコンピュータ、ワークステーション、単一チップコンピュータ、分散型プロセッサ、サーバ、コントローラ、マイクロコントローラ、離散ロジックコンピュータ、及びインターネットコンピュータからなるグループから選択されるプロセッサを含むこと
    を特徴とする請求項1記載のXMLプリンタシステム。
  6. 上記XMLスキーマ及び上記XSLTスタイルシートは、XML文書であること
    を特徴とする請求項1記載のXMLプリンタシステム。
  7. 上記コンピュータシステム及び上記プリンタ装置は、共通の囲いに収容されること
    を特徴とする請求項1記載のXMLプリンタシステム。
  8. 上記コンピュータシステム及び上記プリンタ装置は、別個の囲いに収容されること
    を特徴とする請求項1記載のXMLプリンタシステム。
  9. 上記コンピュータシステム及び上記プリンタ装置は、別個の囲いに収容され、ネットワークを介して互いに通信すること
    を特徴とする請求項1記載のXMLプリンタシステム。
  10. エンタープライズ・リソース・プランニング(ERP)・システムは、上記バーコードラベルの印刷を開始するために、当該XMLプリンタシステムに対して上記XML入力データストリームを送ること
    を特徴とする請求項1記載のXMLプリンタシステム。
  11. 上記エンタープライズ・リソース・プランニング・システムは、ウェアハウス管理システムであること
    を特徴とする請求項10記載のXMLプリンタシステム。
  12. 上記エンタープライズ・リソース・プランニング・システムは、上記ネットワークを介して当該XMLプリンタシステムに接続されること
    を特徴とする請求項10記載のXMLプリンタシステム。
  13. 上記XMLプロセッサは、上記XML入力データストリームが上記スキーマにしたがって成功裡に検証されない場合には、上記エンタープライズ・リソース・プランニング・システムに対してエラー表示を送信すること
    を特徴とする請求項10記載のXMLプリンタシステム。
  14. 上記ネットワークは、ローカルエリアネットワーク、リモートネットワーク、専用ネットワーク、イーサネット(登録商標)、インターネット、公衆交換電話網(Public Switched Telephone Network;PSTN)、及びPOTS(plain old telephone system)からなるネットワークのグループから選択されること
    を特徴とする請求項1記載のXMLプリンタシステム。
  15. 上記スタイルシートリポジトリは、複数のスタイルシートを含み、上記ネットワークを介して上記コンピュータシステムによってリモートアクセスされること
    を特徴とする請求項1記載のXMLプリンタシステム。
  16. 上記スキーマリポジトリは、複数のスキーマを含み、上記ネットワークを介して上記コンピュータシステムによってリモートアクセスされること
    を特徴とする請求項1記載のXMLプリンタシステム。
  17. 上記スタイルシートリポジトリにおけるスタイルシートの少なくとも1つ、及び上記スキーマリポジトリにおけるスキーマの少なくとも1つは、周期的に更新されること
    を特徴とする請求項1記載のXMLプリンタシステム。
  18. 上記スタイルシートリポジトリから得られたスタイルシートの少なくとも1つ、及び上記スキーマリポジトリから得られたスキーマの少なくとも1つは、それぞれのリポジトリからの検索後に、上記メモリサブシステムに一時的に格納されること
    を特徴とする請求項1記載のXMLプリンタシステム。
  19. 上記バーコードレンダリングサブシステムは、上記スタイルシートにおいて定義されたインストリーム外部オブジェクトを処理すること
    を特徴とする請求項1記載のXMLプリンタシステム。
  20. 上記インストリーム外部オブジェクトは、バーコードタイプオブジェクトであること
    を特徴とする請求項19記載のXMLプリンタシステム。
  21. 上記XSLFOプロセッサは、バーコードタイプのインストリーム外部オブジェクトを処理することができないこと
    を特徴とする請求項20記載のXMLプリンタシステム。
  22. 上記プリンタ装置は、上記スタイルシートにおいて指定されたバーコードタイプに基づいたバーコードシンボルを生成するために用いられる少なくとも1つのアルゴリズムを含むこと
    を特徴とする請求項1記載のXMLプリンタシステム。
  23. 上記バーコードレンダリングサブシステムは、上記バーコードラベルの印刷を促進する上記印刷ヘッドドライバに対してビットマップを提供すること
    を特徴とする請求項1記載のXMLプリンタシステム。
  24. 外部ソースは、バーコードラベルビットマップを生成するために、当該プリンタシステムに対してリクエストを送信すること
    を特徴とする請求項1記載のXMLプリンタシステム。
  25. 上記外部ソースは、上記ネットワークを越えて上記リクエストを送信すること
    を特徴とする請求項24記載のXMLプリンタシステム。
  26. 上記外部ソースは、当該プリンタシステムに対して上記XML入力データストリームを送信すること
    を特徴とする請求項24記載のXMLプリンタシステム。
  27. 外部ソースは、バーコードラベルビットマップを生成するために、当該プリンタシステムに対してリクエストを送信し、
    当該XMLプリンタシステムは、上記リクエストに応じて、請求項1にしたがって当該リクエストを処理するとともに、上記外部ソースに対してビットマップを送信すること
    を特徴とする請求項1記載のXMLプリンタシステム。
  28. 上記コンピュータシステムは、バーコードラベルをレンダリングするために、上記XML入力データストリームを送信する外部ソースからリクエストを受信し、
    上記バーコードレンダリングサブシステムによって生成されたビットマップは、上記外部ソースに対して送信されること
    を特徴とする請求項1記載のXMLプリンタシステム。
  29. バーコードプリンタ装置において用いるXML処理システムであって、
    上記バーコードプリンタ装置に作用的に接続されたコンピュータシステムを備え、
    上記コンピュータシステムは、さらに、
    XML入力データストリームを受信して処理するとともに、スキーマリポジトリから上記XMLデータストリームにおいて識別されたスキーマを得るように形成され、得られた上記スキーマに基づいて上記XMLデータストリームを検証するXMLプロセッサと、
    スタイルシートリポジトリから上記XMLデータストリームにおいて識別されたスタイルシートを得るように形成され、得られた上記スタイルシートに基づいて、上記XML入力データストリームにおけるデータを変換済XMLデータに変換する拡張可能スタイルシート言語変換(extensible stylesheet language transformation;XSLT)プロセッサと、
    上記スタイルシートに含まれていたXSLFO指示に基づいて、上記変換済XMLデータをフォーマット済XMLデータにフォーマットするように形成された拡張可能スタイルシート言語フォーマットオブジェクト(extensible stylesheet language formatting object;XSLFO)プロセッサと、
    上記フォーマット済XMLデータを受信して上記バーコードラベルのビットマップ表現を生成するように形成されたバーコードレンダリングサブシステムとを含むこと
    を特徴とするXML処理システム。
  30. 拡張可能マークアップ言語(extensible markup language;XML)入力データストリームに基づいてバーコードラベルを印刷するように適応され、媒体制御システムと、印刷ヘッドアセンブリと、印刷ヘッドドライバとを有するプリンタ装置を含むXMLプリンタシステムにおいて上記バーコードラベルを生成する方法であって、
    スキーマリポジトリから上記XMLデータストリームにおいて識別されたスキーマを得る工程と、
    XMLプロセッサを用いて上記XML入力データストリームを処理する工程と、
    得られた上記スキーマに基づいて上記XMLデータストリームを検証する工程と、
    スタイルシートリポジトリから上記XMLデータストリームにおいて識別されたスタイルシートを得る工程と、
    拡張可能スタイルシート言語変換(extensible stylesheet language transformation;XSLT)プロセッサを用いて、得られた上記スタイルシートに基づいて、上記XML入力データストリームにおけるデータを変換済XMLデータに変換する工程と、
    拡張可能スタイルシート言語フォーマットオブジェクト(extensible stylesheet language formatting object;XSLFO)プロセッサを用いて、上記スタイルシートに含まれていたXSLFO指示に基づいて、上記変換済XMLデータをフォーマット済XMLデータにフォーマットする工程と、
    上記スタイルシートに定義されたバーコードタイプインストリーム外部オブジェクトを処理するバーコードレンダリングサブシステムを用いて、上記フォーマット済XMLデータに基づいて、上記バーコードラベルのビットマップ表現を生成する工程と、
    上記バーコードラベルの印刷を促進する上記印刷ヘッドドライバに対してビットマップを送信する工程とを備えること
    を特徴とする方法。
  31. バーコードプリンタ装置において用いるXML処理システムであって、
    上記バーコードプリンタ装置に作用的に接続されたコンピュータシステムを備え、
    上記コンピュータシステムは、さらに、
    XML入力データストリームを受信して処理するとともに、スキーマリポジトリから上記XMLデータストリームにおいて識別されたスキーマを得るように形成され、得られた上記スキーマに基づいて上記XMLデータストリームを検証するXMLプロセッサと、
    上記XMLデータストリームにおいて識別されたスタイルシートを得るように形成され、得られた上記スタイルシートに基づいて、上記XML入力データストリームにおけるデータを変換済XMLデータに変換する拡張可能スタイルシート言語変換(extensible stylesheet language transformation;XSLT)プロセッサと、
    上記スタイルシートに含まれていたXSLFO指示に基づいて、上記変換済XMLデータをフォーマット済XMLデータにフォーマットするように形成された拡張可能スタイルシート言語フォーマットオブジェクト(extensible stylesheet language formatting object;XSLFO)プロセッサと、
    上記フォーマット済XMLデータを受信して上記バーコードラベルのビットマップ表現を生成するように形成されたバーコードレンダリングサブシステムとを含むこと
    を特徴とするXML処理システム。
  32. 拡張可能マークアップ言語(extensible markup language;XML)入力データストリーム及びフォーマットテンプレートに基づいてバーコードラベルを印刷するように適応され、媒体制御システムと、印刷ヘッドアセンブリと、印刷ヘッドドライバとを有するプリンタ装置を含むXMLプリンタシステムであって、
    上記プリンタ装置に作用的に接続されたコンピュータシステムを備え、
    上記コンピュータシステムは、さらに、
    メモリサブシステムと、
    上記XML入力データストリームを受信して処理するように形成されたSAXプロセッサと、
    上記フォーマットテンプレートを受信して処理するように形成されたZPLプロセッサと、
    上記XML入力データストリームに含まれていたXMLデータと上記フォーマットテンプレートとの間の関係を発生させるように形成された可変データ統合器と、
    上記フォーマットテンプレートによって管理されたフォーマットにしたがって関連するXMLデータをフォーマットするように形成されたフォーマットエンジンと、
    上記関連してフォーマットされたXMLデータを受信して上記バーコードラベルのビットマップ表現を生成するように形成されたバーコードレンダリングエンジンとを含むこと
    を特徴とするXMLプリンタシステム。
  33. 上記SAXプロセッサは、上記フォーマットテンプレートに組み込まれたコマンドに基づいて複数のイベントを生成すること
    を特徴とする請求項32記載のXMLプリンタシステム。
  34. 上記イベントは、プリンタ速度設定イベント、印刷ラベル量設定イベント、媒体選択イベント、使用リボン設定イベント、紙選択イベント、300dpiプリンタ使用イベント、600dpiプリンタ使用イベント、及び可変データイベントからなるグループから選択されること
    を特徴とする請求項33記載のXMLプリンタシステム。
  35. 上記フォーマットテンプレートは、上記SAXプロセッサに対して送られ、後でダウンロードされたXMLデータとともに用いるために保存されること
    を特徴とする請求項32記載のXMLプリンタシステム。
  36. 上記フォーマットテンプレートは、ZPLに基づいたフォーマットテンプレートであること
    を特徴とする請求項32記載のXMLプリンタシステム。
JP2003553475A 2001-12-17 2002-11-13 Xmlプリンタシステム Expired - Lifetime JP4161314B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US34142701P 2001-12-17 2001-12-17
US34538902P 2002-01-04 2002-01-04
US10/197,014 US6540142B1 (en) 2001-12-17 2002-07-17 Native XML printer
PCT/US2002/036322 WO2003052658A1 (en) 2001-12-17 2002-11-13 Xml printer system

Publications (2)

Publication Number Publication Date
JP2005513627A JP2005513627A (ja) 2005-05-12
JP4161314B2 true JP4161314B2 (ja) 2008-10-08

Family

ID=27393690

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003553475A Expired - Lifetime JP4161314B2 (ja) 2001-12-17 2002-11-13 Xmlプリンタシステム

Country Status (12)

Country Link
US (2) US6540142B1 (ja)
EP (2) EP2282270B1 (ja)
JP (1) JP4161314B2 (ja)
KR (1) KR20040063000A (ja)
CN (1) CN1605081B (ja)
AU (1) AU2002352652A1 (ja)
BR (1) BR0215034A (ja)
CA (1) CA2467789A1 (ja)
IL (1) IL161930A0 (ja)
MX (1) MXPA04005656A (ja)
NZ (1) NZ533478A (ja)
WO (1) WO2003052658A1 (ja)

Families Citing this family (85)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6857013B2 (en) * 1999-01-29 2005-02-15 Intermec Ip.Corp. Remote anomaly diagnosis and reconfiguration of an automatic data collection device platform over a telecommunications network
US20050274801A1 (en) * 1999-01-29 2005-12-15 Intermec Ip Corp. Method, apparatus and article for validating ADC devices, such as barcode, RFID and magnetic stripe readers
US6976062B1 (en) * 1999-09-22 2005-12-13 Intermec Ip Corp. Automated software upgrade utility
US7942328B2 (en) 2000-01-03 2011-05-17 Roelesis Wireless Llc Method for data interchange
US6764009B2 (en) * 2001-05-30 2004-07-20 Lightwaves Systems, Inc. Method for tagged bar code data interchange
US7802174B2 (en) * 2000-12-22 2010-09-21 Oracle International Corporation Domain based workflows
US6782379B2 (en) * 2000-12-22 2004-08-24 Oblix, Inc. Preparing output XML based on selected programs and XML templates
US6816871B2 (en) 2000-12-22 2004-11-09 Oblix, Inc. Delivering output XML with dynamically selectable processing
US20010029604A1 (en) * 2001-04-27 2001-10-11 Jacob Dreyband Descriptive data construct mapping method and apparatus
US7111787B2 (en) * 2001-05-15 2006-09-26 Hand Held Products, Inc. Multimode image capturing and decoding optical reader
US7225256B2 (en) 2001-11-30 2007-05-29 Oracle International Corporation Impersonation in an access system
US6540142B1 (en) * 2001-12-17 2003-04-01 Zih Corp. Native XML printer
US6908034B2 (en) 2001-12-17 2005-06-21 Zih Corp. XML system
US7959083B2 (en) * 2002-07-17 2011-06-14 Zih Corp. XML printer system
US7025268B2 (en) 2001-12-17 2006-04-11 Zih Corporation XML printer system
US7600685B2 (en) * 2001-12-17 2009-10-13 Zih Corp. XML printer system with RFID capability
US7191395B2 (en) * 2002-03-12 2007-03-13 International Business Machines Corporation Method and system for stylesheet-centric editing
US7107368B2 (en) * 2002-05-08 2006-09-12 Hewlett-Packard Development Company, L.P. Systems and methods for printing
US7840658B2 (en) * 2002-05-15 2010-11-23 Oracle International Corporation Employing job code attributes in provisioning
US7216163B2 (en) * 2002-05-15 2007-05-08 Oracle International Corporation Method and apparatus for provisioning tasks using a provisioning bridge server
US7373595B2 (en) * 2002-06-27 2008-05-13 Microsoft Corporation System and method for validating an XML document and reporting schema violations
US20040061729A1 (en) * 2002-09-30 2004-04-01 Brett Green System and method for a dynamically modifiable driver interface
FR2849940B1 (fr) * 2003-01-09 2005-03-18 Orange France Procede de gestion d'un peripherique et systeme informatique utilisant un tel procede
US20040194016A1 (en) * 2003-03-28 2004-09-30 International Business Machines Corporation Dynamic data migration for structured markup language schema changes
JP4281414B2 (ja) * 2003-05-22 2009-06-17 セイコーエプソン株式会社 バーコードまたは二次元コードの印刷システム、バーコードまたは二次元コードのフォント設定方法、およびバーコードまたは二次元コードのフォント設定プログラム
US7337317B2 (en) * 2003-07-03 2008-02-26 Hand Held Products, Inc. Memory data copying system for devices
US7587667B2 (en) * 2003-09-04 2009-09-08 Oracle International Corporation Techniques for streaming validation-based XML processing directions
US7882132B2 (en) 2003-10-09 2011-02-01 Oracle International Corporation Support for RDBMS in LDAP system
US7904487B2 (en) 2003-10-09 2011-03-08 Oracle International Corporation Translating data access requests
EP1522948A1 (en) * 2003-10-10 2005-04-13 JetMobile SAS Method for generating barcode patterns
US7685522B1 (en) 2003-11-03 2010-03-23 Adobe Systems Incorporated Self-describing forms
US7200816B2 (en) * 2004-01-21 2007-04-03 Altova, Gmbh Method and system for automating creation of multiple stylesheet formats using an integrated visual design environment
US7577938B2 (en) * 2004-02-20 2009-08-18 Microsoft Corporation Data association
US20050188350A1 (en) * 2004-02-20 2005-08-25 Microsoft Corporation Data binding
US20050192922A1 (en) * 2004-02-27 2005-09-01 Edlund Stefan B. Client-server computing system capable of validating cached data based on data transformation
US7240841B2 (en) * 2004-04-08 2007-07-10 Adobe Systems Incorporated Creating and using documents with machine-readable codes
US7299972B2 (en) * 2004-04-08 2007-11-27 Adobe Systems Incorporated Creating and using documents with machine-readable codes
US7469833B1 (en) 2004-04-08 2008-12-30 Adobe Systems Incorporated Creating and using documents with machine-readable codes
US7246748B1 (en) 2004-06-30 2007-07-24 Adobe Systems Incorporated Enabling the use of machine-readable codes
JP2006053735A (ja) * 2004-08-11 2006-02-23 Seiko Epson Corp ネットワーク機器およびこれに用いるプログラム並びにこの制御方法
KR100636177B1 (ko) * 2004-09-20 2006-10-19 삼성전자주식회사 정책 기반 확장성 생성 언어 문서 출력 관리 방법 및 시스템
US20060215215A1 (en) * 2005-03-23 2006-09-28 Kumaran O R S System and method for printer-based syndication
CA2601602A1 (en) * 2005-05-06 2006-11-16 Objectif Lune Inc. Method and apparatus for transforming a printer into an xml printer
US7761864B2 (en) 2005-08-09 2010-07-20 Intermec Ip Corp. Method, apparatus and article to load new instructions on processor based devices, for example, automatic data collection devices
WO2007063582A1 (ja) * 2005-11-30 2007-06-07 Fujitsu Limited 連続変換プログラム、連続変換方法および連続変換装置
US20070130513A1 (en) * 2005-12-05 2007-06-07 Xerox Corporation Printing device with an embedded extensible stylesheet language transform and formatting functionality
US8984397B2 (en) * 2005-12-15 2015-03-17 Xerox Corporation Architecture for arbitrary extensible markup language processing engine
US8261187B2 (en) * 2005-12-22 2012-09-04 Xerox Corporation System and method for managing dynamic document references
US8250468B2 (en) * 2005-12-22 2012-08-21 Xerox Corporation System and method for managing dynamic document references
US9286272B2 (en) * 2005-12-22 2016-03-15 Xerox Corporation Method for transformation of an extensible markup language vocabulary to a generic document structure format
US9460060B2 (en) * 2005-12-22 2016-10-04 Xerox Corporation System and method for managing dynamic document references
US7917845B2 (en) 2005-12-22 2011-03-29 Xerox Corporation System and method for managing dynamic document references
US8775933B2 (en) 2005-12-22 2014-07-08 Xerox Corporation System and method for managing dynamic document references
US7934660B2 (en) 2006-01-05 2011-05-03 Hand Held Products, Inc. Data collection system having reconfigurable data collection terminal
US7973946B2 (en) * 2006-01-24 2011-07-05 Zih Corp. Global printing system and method of using same
JP4760415B2 (ja) * 2006-02-06 2011-08-31 セイコーエプソン株式会社 コンピュータのデバイスドライバ実現方法
US7992081B2 (en) 2006-04-19 2011-08-02 Oracle International Corporation Streaming validation of XML documents
US7798408B2 (en) * 2006-07-10 2010-09-21 Hand Held Products, Inc. Apparatus and methods for controlling an imager
US8944332B2 (en) 2006-08-04 2015-02-03 Intermec Ip Corp. Testing automatic data collection devices, such as barcode, RFID and/or magnetic stripe readers
US20080043277A1 (en) * 2006-08-18 2008-02-21 Xerox Corporation Printing system and method
US20070150494A1 (en) * 2006-12-14 2007-06-28 Xerox Corporation Method for transformation of an extensible markup language vocabulary to a generic document structure format
US8452983B2 (en) * 2007-03-23 2013-05-28 Siemens Product Lifecycle Management Software Inc. System and method for protecting numerical control codes
US8077334B2 (en) * 2007-04-13 2011-12-13 Amadeus S.A.S. Method and apparatus for managing printing solutions in a local area network
US8496177B2 (en) 2007-06-28 2013-07-30 Hand Held Products, Inc. Bar code reading terminal with video capturing mode
US8504593B2 (en) * 2007-06-29 2013-08-06 Microsoft Corporation Server directory schema comparator
US8635309B2 (en) 2007-08-09 2014-01-21 Hand Held Products, Inc. Methods and apparatus to change a feature set on data collection devices
US8156432B2 (en) 2007-11-14 2012-04-10 Zih Corp. Detection of UTF-16 encoding in streaming XML data without a byte-order mark and related printers, systems, methods, and computer program products
JP5381009B2 (ja) * 2008-10-20 2014-01-08 セイコーエプソン株式会社 デバイス制御システム
KR101073847B1 (ko) * 2009-04-23 2011-10-14 주식회사 케이엘넷 전자 서식 변환 방법, 장치 및 기록매체
CN102461197A (zh) * 2009-05-08 2012-05-16 诺基亚股份有限公司 用于配置业务指南演示的方法及装置
US8255372B2 (en) * 2010-01-18 2012-08-28 Oracle International Corporation Efficient validation of binary XML data
US9589164B2 (en) 2010-06-24 2017-03-07 Metrologic Instruments, Inc. Distinctive notice for different symbology information
US9189669B2 (en) 2010-06-24 2015-11-17 Metrologic Instruments, Inc. Distinctive notice for different symbology information
US8517269B2 (en) 2010-11-09 2013-08-27 Hand Held Products, Inc. Using a user'S application to configure user scanner
US8608053B2 (en) 2012-04-30 2013-12-17 Honeywell International Inc. Mobile communication terminal configured to display multi-symbol decodable indicia
CN102760165B (zh) * 2012-06-12 2014-09-03 北大方正集团有限公司 一种使用位图索引的全文检索方法和装置
US9632990B2 (en) * 2012-07-19 2017-04-25 Infosys Limited Automated approach for extracting intelligence, enriching and transforming content
CN105308554B (zh) * 2013-04-10 2019-08-06 惠普深蓝有限责任公司 数据传输系统、传输数据的方法、以及系统
US10201967B2 (en) 2014-03-03 2019-02-12 Ctpg Operating, Llc System and method for securing a device with a dynamically encrypted password
CN104197779B (zh) * 2014-09-25 2016-01-27 武汉大学 用于电磁线圈发射器的能量回收阻尼器
JP6515729B2 (ja) 2015-08-06 2019-05-22 セイコーエプソン株式会社 プリンターの制御方法、プログラム、記憶媒体、および、プリンター
JP6702347B2 (ja) * 2018-02-27 2020-06-03 横河電機株式会社 プロビジョニングシステム、プロビジョニング方法、プロビジョニングプログラム、およびネットワークデバイス
CN110395051A (zh) * 2019-08-23 2019-11-01 武汉精臣智慧标识科技有限公司 一种智能标签打印系统及打印方法
CN112486429B (zh) * 2020-11-26 2022-08-19 四川长虹电器股份有限公司 一种终端自动配置打印机的方法
CN113687832B (zh) * 2021-10-27 2022-03-04 上海捷勃特机器人有限公司 机器人程序的存储及编译方法

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5372439A (en) 1992-12-18 1994-12-13 Zebra Technologies Corporation Thermal transfer printer with controlled ribbon feed
US5860068A (en) * 1997-12-04 1999-01-12 Petabyte Corporation Method and system for custom manufacture and delivery of a data product
US6154378A (en) * 1998-04-29 2000-11-28 Lockheed Martin Corporation Polyphase inverter with neutral-leg inductor
WO1999057649A2 (en) * 1998-05-04 1999-11-11 Intermec Ip Corporation Automatic data collection device having a network communications capability
US6487566B1 (en) * 1998-10-05 2002-11-26 International Business Machines Corporation Transforming documents using pattern matching and a replacement language
US6226675B1 (en) * 1998-10-16 2001-05-01 Commerce One, Inc. Participant server which process documents for commerce in trading partner networks
US6507856B1 (en) * 1999-01-05 2003-01-14 International Business Machines Corporation Dynamic business process automation system using XML documents
US6289501B1 (en) * 1999-03-31 2001-09-11 Unisys Corp. Method for generating simple document type definitions
WO2001002947A1 (en) * 1999-06-30 2001-01-11 Silverbrook Research Pty Ltd Interactive printer persistent storage provider
WO2001006345A1 (en) * 1999-07-14 2001-01-25 Fargo Electronics, Inc. Identification card printer with client/server
US6535299B1 (en) * 1999-09-14 2003-03-18 Printronix, Inc. Bar code verification and printing system
US6748569B1 (en) * 1999-09-20 2004-06-08 David M. Brooke XML server pages language
US6449620B1 (en) * 2000-03-02 2002-09-10 Nimble Technology, Inc. Method and apparatus for generating information pages using semi-structured data stored in a structured manner
US7733509B2 (en) 2001-09-26 2010-06-08 Infoprint Solutions Company, Llc Method and apparatus for printing XML directly using a formatting template
US6540142B1 (en) * 2001-12-17 2003-04-01 Zih Corp. Native XML printer

Also Published As

Publication number Publication date
EP1456790B1 (en) 2013-05-29
KR20040063000A (ko) 2004-07-09
EP1456790A4 (en) 2008-04-09
EP1456790A1 (en) 2004-09-15
CN1605081A (zh) 2005-04-06
BR0215034A (pt) 2004-11-03
EP2282270A3 (en) 2011-08-24
EP2282270A2 (en) 2011-02-09
MXPA04005656A (es) 2005-04-19
JP2005513627A (ja) 2005-05-12
NZ533478A (en) 2005-04-29
US6540142B1 (en) 2003-04-01
CN1605081B (zh) 2011-08-31
US20030136841A1 (en) 2003-07-24
US6655593B2 (en) 2003-12-02
EP2282270B1 (en) 2018-05-02
AU2002352652A1 (en) 2003-06-30
CA2467789A1 (en) 2003-06-26
IL161930A0 (en) 2005-11-20
WO2003052658A1 (en) 2003-06-26

Similar Documents

Publication Publication Date Title
JP4161314B2 (ja) Xmlプリンタシステム
US9600463B2 (en) XML printer system
US7025268B2 (en) XML printer system
US7988051B2 (en) XML printer system with RFID capability
US7959083B2 (en) XML printer system
ZA200403823B (en) XML printer system.

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050413

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080604

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

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

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

Free format text: PAYMENT UNTIL: 20110801

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4161314

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20110801

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120801

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20130801

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

S534 Written request for registration of change of nationality

Free format text: JAPANESE INTERMEDIATE CODE: R313534

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

S634 Written request for registration of reclamation of nationality

Free format text: JAPANESE INTERMEDIATE CODE: R313634

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: R3D02

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term