CN102982013A - 在没有字节序标记的情况下对流式xml数据中的utf-16编码的检测以及相关的打印机、系统、方法和计算机程序产品 - Google Patents
在没有字节序标记的情况下对流式xml数据中的utf-16编码的检测以及相关的打印机、系统、方法和计算机程序产品 Download PDFInfo
- Publication number
- CN102982013A CN102982013A CN2012101812233A CN201210181223A CN102982013A CN 102982013 A CN102982013 A CN 102982013A CN 2012101812233 A CN2012101812233 A CN 2012101812233A CN 201210181223 A CN201210181223 A CN 201210181223A CN 102982013 A CN102982013 A CN 102982013A
- Authority
- CN
- China
- Prior art keywords
- encoding scheme
- utf
- data stream
- xml
- byte
- 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
- 238000000034 method Methods 0.000 title claims abstract description 86
- 238000004590 computer program Methods 0.000 title abstract description 21
- 238000001514 detection method Methods 0.000 title abstract description 15
- 230000008676 import Effects 0.000 claims description 41
- 230000008569 process Effects 0.000 claims description 20
- 238000007639 printing Methods 0.000 claims description 19
- 238000006243 chemical reaction Methods 0.000 claims description 9
- 230000002708 enhancing effect Effects 0.000 claims description 4
- 230000006870 function Effects 0.000 description 27
- 238000004891 communication Methods 0.000 description 24
- 238000010586 diagram Methods 0.000 description 19
- 230000008859 change Effects 0.000 description 13
- 230000005540 biological transmission Effects 0.000 description 10
- 238000002372 labelling Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 238000013515 script Methods 0.000 description 6
- 238000012544 monitoring process Methods 0.000 description 5
- 238000007689 inspection Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 238000000926 separation method Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 241000283070 Equus zebra Species 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000011144 upstream manufacturing Methods 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008094 contradictory effect Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000000547 structure data Methods 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/126—Character encoding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/14—Tree-structured documents
- G06F40/143—Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/151—Transformation
- G06F40/154—Tree transformation for tree-structured or markup documents, e.g. XSLT, XSL-FO or stylesheets
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1297—Printer code translation, conversion, emulation, compression; Configuration of printer parameters
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Accessory Devices And Overall Control Thereof (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了在没有UTF-16字节序标记(BOM)或者编码声明的情况下自动检测和确定传入XML数据流中用于XML声明的UTF-16编码方案及其字节顺序的打印机和其他电子设备、系统、方法和计算机程序产品。这允许即使在XML数据没有以BOM或者编码声明开始时,也可以自动和明确地精确检测混合编码环境(诸如,来自使用不止一种编码方案的多个源)内以UTF-16编码的XML数据。
Description
相关申请的交叉引用
本申请是国际申请日为2008年07月31日、国际申请号为PCT/US2008/071688、于2010年06月21日进入中国国家阶段、中国国家申请号为200880121996.4的专利申请的分案申请。
技术领域
本发明的实施方式总体上涉及数据编码和解码,更具体地涉及接收传入数据流,并且在没有字节序标记(BOM)的情况下检测和确定传入XML数据流中用于XML声明的UTF-16编码方案(包括UTF-16编码方案的字节顺序)的打印机或其他电子设备,以及相关的系统、方法和计算机程序产品。
背景技术
可扩展标记语言(XML)已经成为易于使用并且被广泛接受的通用标记语言。XML是开放标准,其由多个商业和非商业实体采纳以用于多种应用。XML的一种重要用途是用于诸如经由因特网和万维网(WWW)跨不同的信息系统来共享结构化数据。关于XML的更多细节可以参见:www.w3.org/XML;在XML 1.0标准规范中,由Tim Bray、Jean Paoli、C.M.Sperberg-McQueen、Eve Maler和FrancoisYergeau编辑的,Extensible Markup Language(XML)1.0(Fourth Edition)W3C Recommendation,2006年8月16日(可从www.w3.org/TR/xml/获得);以及在XML 1.1标准规范中,由Tim Bray,Jean Paoli,C.M.Sperberg-McQueen,Eve Maler,Francois Yergeau和John Cowan编辑的Extensible Markup Language(XML)1.1(Second Edition),W3CRecommendation,2006年8月16日(可从www.w3.org/TR/xml11/获得),据此通过引用将上述每一个的内容全部并入,包括用于更加全面地描述标准形式和XML的使用以及良好形成的XML和有效的XML的目的。
与计算机以及其他计算设备和系统相似,打印机和打印系统也可以使用XML数据,而不是专有数据格式和/或专有或者固定的单个数据编码方案。诸如用于打印条形码和用于向条形码打印机传输数据的打印系统得到了广泛使用。并且虽然很多这种打印系统和打印机使用专有数据格式和/或专有数据编码方法,并且可能无法与其他打印系统和条形码打印机互换和/或兼容,但是已经开发了一些有益的打印机和打印系统,其使用XML数据格式和易于接受的数据编码格式,诸如按照UTF-8编码的XML数据。
XML标准规范允许XML数据使用多个字符编码方案来存储,这些字符编码方案包括但不限于ISO-8859-1、用于韩语文本的扩展Unix码(EUC-KR)、UTF-8和UTF-16。并且XML标准规范需要XML的处理器支持统一码(Unicode)字符编码UTF-8和UTF-16。诸如基于ISO/IEC 8859和UTF-32之类的受到较多限制的编码的使用得到承认,并且被广泛使用和支持,但这不是XML规范的强制要求。在XML中,可以可选地包括声明中的属性(也称为元素和伪属性),诸如说明正在使用的XML版本的XML声明。XML声明还可以包含关于字符编码的信息(也称为编码声明)。例如,XML脚本可以开始于XML声明<?xml version=″1.0″encoding=″UTF-8″?>,其指示正在使用XML版本1.0并且编码是UTF-8。由此,计算设备和系统(包括打印机)用来精确检测XML数据中使用的编码并且据此解码XML数据的主方法,将要检查XML数据流起始处的XML声明中的编码属性,诸如<?xml encoding=″UTF-8″?>。
然而,对于UTF-16来说这是个问题,UTF-16是一种非ASCII透明的字节序列化编码方案,其可以是大端(big-endian,BE)或者小端(little-endian,LE)的,并且,由此定义编码方案中字节的次序。如果UTF-16的编码属性作为UTF-16来编码,则计算设备和系统不能对其进行解码,除非计算设备或者系统首先知道传入XML数据以UTF-16编码。这在逻辑上自相矛盾。为了解决潜在的问题,XML标准规范要求:以UTF-16编码的任何XML数据之前必须存在以ISO/IEC 10464描述的有效统一码UTF-16字节序标记(BOM),或者存在具有零宽无间断空格字符的统一码xFEFF,其中xFEFF也称为字节序标记(在UFT-16BE中的字节序列是FE FF,而在UTF-16LE中的字节序列是FF FE)。关于XML中的字符编码的更多细节可以参见例如:Extensible Markup Language(XML)1.1(Second Edition)中的标题为Character Encoding in Entities的4.3.3章,以及The UnicodeStandard版本5.0中的标题为Encoding Forms和Encoding Schemes的2.5和2.6章。
另外,统一码标准本身声明了BOM的使用是可选的。这提出了针对UTF-16和XML的使用的另一问题。例如,用于创建XML数据的多种工具是统一码兼容的,但未必是特别针对XML而编写的,因此可能是有效但非形式良好的XML。因此,UTF-16XML数据之前可以不是需要的BOM。XML标准规范认为,既不是开始于字节序标记也不开始于编码声明的实体使用除UTF-8之外的编码是一个致命错误。
当计算设备或者系统必须解释诸如来自多个主机/源的XML数据的传入数据流并且每个数据流可以使用其自身的编码方案,而不是使用单个已知编码方案的个体XML数据文件、单个主机/源或者多个主机/源时,这个问题将加剧。例如,计算设备或者系统可能无法检测新XML声明的起始的存在和/或可能无法确定用于随后的XML数据的编码方案,特别是在XML数据以UTF-16编码而不提供BOM时。
需要可以接收传入数据流以便在没有BOM的情况下准确、自动地检测和确定传入XML数据流中用于XML声明的UTF-16编码方案及其字节顺序的打印机和其他电子设备、系统、方法和计算机程序产品。
发明内容
鉴于上述背景技术,本发明的实施方式提供了可以接收传入数据流并且针对没有BOM的传入XML数据流中的XML声明而明确地、自动检测和确定UTF-16编码方案及其字节顺序的打印机和其他电子设备、系统、方法和计算机程序产品。由此,本发明的实施方式允许即使自动和明确地精确检测混合编码环境(例如,来自使用不止一个编码方案的一个或多个源)以UTF-16编码的XML数据,即使XML数据不是以BOM开始。本发明的实施方式可以用于任何XML和统一码兼容的打印机。本发明的实施方式还适用于将来自使用多个编码方案的一个或多个源的XML或者另一结构化标记语言和统一码数据流接收到单个端口以用于解释的任何电子设备或者系统。
提供了本发明的方法的实施方式,其在没有BOM的传入XML数据流中自动检测UTF-16编码。本发明的一个示例性实施方式简要描述如下。本发明的方法的实施方式包括接收传入数据流,并且在传入数据流中监测0x3C字节的存在。该方法还可以存储传入数据流的当前编码状态。当识别到0x3C字节时,该实施方式确定跟随0x3C字节的字节是否是空0x00字节。如果跟随0x3C字节的字节是空0x00字节,并且如果当前编码状态不是UTF-16LE,则该实施方式确定0x3C字节之前的字节是否是空0x00字节。如果0x3C字节之前的字节是空0x00字节,则该实施方式开始将传入数据流作为UTF-16BE来处理,并且将传入数据流的当前编码状态存储为UTF-16BE。如果0x3C字节之前的字节不是空0x00字节,则该实施方式开始将传入数据流作为UTF-16LE来处理,并且将传入数据流的当前编码状态存储为UTF-16LE。而且,如果跟随0x3C字节的字节是空0x00字节,并且如果当前编码状态是UTF-16LE,则该实施方式确定0x3C字节之前的两个字节是否是空0x00字节。如果0x3C字节之前的两个字节是空0x00字节,则该实施方式开始将传入数据流作为UTF-16BE来处理,并且将传入数据流的当前编码状态存储为UTF-16BE。如果0x3C字节之前的两个字节不是空0x00字节,则该实施方式开始将传入数据流作为UTF-16LE来处理,并且将传入数据流的当前编码状态存储为UTF-16LE。如果跟随0x3C字节的字节不是空0x00字节,则该实施方式使用XML编码标签来根据XML编码标签中标识的编码方案确定传入数据流的当前编码状态,并且根据XML编码标签中标识的编码方案开始处理传入数据流。该方法还可以将传入数据流的当前编码状态存储为XML编码标签中标识的编码方案。
下面描述本发明的这些特性以及附加的特征、功能和细节。类似地,以下还描述了本发明的打印机和其他电子设备和系统以及相关的方法和计算机程序产品的相应的和附加的实施方式。
附图说明
由此在总体方面描述了本发明的实施方式,现在将参考附图,其不一定是按比例绘制的,并且其中:
图1是根据本发明的一个实施方式的打印系统的示意框图;
图2是本发明的一个实施方式的方法的功能软件流程图;以及
图3是根据本发明的一个实施方式的能够作为打印机或者其他计算设备或者系统操作的实体的示意框图。
具体实施方式
现在将参考附图在下文中更加全面地描述本发明的实施方式,附图中示出了本发明的一些但非全部实施方式。实际上,本发明的实施方式可以以多种不同的形式实现,并且不应当限于此处所述的实施方式;当然,提供了这些实施方式以使得本公开将满足可适用的法律要求。在全文中,相似的参考标号指的是相似的元件。
将理解,从下文中,多种类型的计算设备和系统可以与本发明一起使用,计算设备和系统例如包括计算机、打印机、打印服务器、因特网服务器、路由器、移动电话、移动媒体设备、手持式数据终端、个人数据助理(PDA)以及其他计算设备和系统。本发明的实施方式可以通过和/或利用从Vernon Hills,Ill的Zebra Technologies公司商业可得的打印机来实现,包括以下打印机型号:XiIII+、90XiIII+、96XiIII+、110XIII+、140XiIII+、170XiIII+、220XiIII+、型号Z4M、Z6M、105SL型号R4Mplus、R402、R-140和型号Xi系列打印机。涉及这些以及类似的打印机和相应的打印系统的更多细节可以参见:于2002年1月4日提交的、名称是XML Printer Technology的美国临时申请序列号60/345,389;于2001年12月7日提交的、名称是Bar Code Labeling Systems Having Machine Readable Standards的美国临时申请序列号60/341,427;于2002年7月17日提交的、名称是NativeXML Printer的美国申请序列号10/197,014,现在是美国专利号6,540,142;于2003年1月10日提交的、名称是XML Printer System的美国申请序列号10/332,604;于2006年2月10日提交的、名称是XMLPrinter System的美国申请序列号11/351,748;于2007年7月6日提交的、名称是XML Printer System的美国申请序列号11/774,152;于2003年1月21日提交的、名称是Native XML Printer的美国申请序列号10/348,422;于2003年6月20日提交的、名称是XML System的美国申请序列号10/601,213,现在是美国专利号6,908,034;于2004年12月13日提交的、名称是XML System的美国申请序列号11/010,895,现在是美国专利号7,172,122;于2006年11月17日提交的、名称是XML System的美国申请序列号11/561,084;以及于2006年3月28日提交的、名称是XML Printer System with RFID Capability的美国申请序列号10/505,982;于2006年1月24日提交的、名称是Global Printing Systemand Method of Using Same的美国临时申请序列号60/761,610;于2007年1月24日提交的、名称是Global Printing System and Method of UsingSame的美国申请序列号11/626,670,在此通过引用并入每个的全部内容,包括用于更加全面地描述此类打印系统和打印机的使用和配置并且从而更加全面地描述XML和统一码数据的使用。
另外,虽然以下关于与打印机的有线直接的和联网的通信描述了本发明,但是本发明可应用于用于建立任何类型和数量的计算设备和系统之间的通信的任何形式的有线和无线接入以及通信协议,例如包括WLAN、蓝牙(BT)、WiMAX、UWB、红外(IR)和蜂窝无线技术和协议、串行、并行和以太网有线技术和协议以及IEEE1394直接连接技术和协议。另外,本发明的实施方式可以利用任何类型的共置(共存或者邻近)或者分布式(远程)架构来运行。计算设备不需要物理地共置。类似地,本发明的实施方式可以使用共享硬件(例如,处理器、存储器和电源)或者软件(例如,操作系统、固件、软件打印驱动、打印绘制子系统和应用),或者可以使用共置或者分布式的分离的硬件。
将会理解,本发明的实施方式对于具有多个主机和/或源(此处统称为源)的打印应用可能特别有用。然而,本发明的实施方式不限于此类多源打印应用,而是可以应用于包括单源和多源环境的任何类型的环境,并且用于任何类型的应用,包括打印、因特网、文件传送、流式多媒体和其他数据传送应用。
并且进一步地,虽然以下关于XML数据描述了本发明,但是本发明可以按照与具有已知的开始识别符(诸如,有效的XML数据必须以XML声明开始,XML声明以“<?xml”开始)或者至少已知的开始标签声明起始识别符(诸如,HTML标签以“<”开始)的其他结构化标记语言和脚本(诸如ZPL和HTML)相类似的方式来实现。
这里,术语“ASCII透明的”和“ASCII透明性”是用来表示以下编码方案性质的术语,其中,用于表示前128个字符的字节与ASCII标准相同。ASCII透明编码方案的示例是ASCII、GB2312和UTF-8。
本发明的实施方式提供了本发明的实施方式的打印机和其他电子设备、系统、方法和计算机程序产品,其在没有UTF-16字节序标记(BOM)或者编码声明的情况下自动地检测和确定传入XML数据流中用于XML声明的UTF-16编码方案及其字节顺序。这允许自动和明确地精确检测混合编码环境(诸如,来自使用不止一个编码方案的多个源)中的UTF-16编码的XML数据,即使XML数据没有以BOM或者编码声明开始。这还允许支持使用不同的统一码和专有编码方案的传统设备和系统,以及不是XML兼容的传统设备和系统,即,诸如没有配置为包括针对UTF-16编码的XML数据的BOM的设备和系统。
现在参考图1,根据本发明的实施方式的打印机250的高层示意框图的一个示例性实施方式示出与包括计算机系统112的各种附加设备通信。打印机250连接至计算机系统112,计算机系统112本身包括各种硬件组件,诸如RAM 14、ROM 116、硬盘存储118、高速缓冲存储器120、数据库存储122等(统称存储或者存储器,并且示出为存储或者存储器子系统126),这是本领域已知的。打印机250和计算机系统112组合可以统称为打印系统。打印机250和计算机系统112可以组合在共同的外壳中(共存),但并非一定限于该方式。例如,计算机系统112可以置于与打印机250分离和隔开的外壳中,以使得两个设备接近共同定位。组合打印系统可以不被认为是两个独立的设备和/或可以视为单个设备,并且由此单独称为打印机或者打印系统。当置于分离外壳中时,不管是否彼此接近或者远离,两个设备可以单独称为打印机和计算机。另外,当打印机250包括所有必需的硬件和固件,并且配置用于独立于任何特定计算机系统112、112a......112n或者其他设备(例如,ERP 188)而操作时,计算机系统112类似于用于打印机的数据的任何其他主机或者源(诸如计算机系统112a......112n和ERP 188)。此类设备的关系对于本发明的实施方式不是特定的。
计算机系统112可以包括任何适合的处理设备128,处理设备128诸如本领域所公知的计算机、微处理器、RISC处理器(精简指令集计算机)、CISC处理器(复杂指令集计算机)、大型计算机、工作站、单片计算机、分布式处理器、服务器、控制器、微控制器、离散逻辑计算机或者类似的处理器。例如,处理设备128可以是IntelCoreTM或者Pentium微处理器、其他x86兼容微处理器或者等同的处理设备。
存储器子系统126可以包括任何适合的存储组件,存储组件诸如RAM 114、ROM 116、EPROM(电可编程ROM)、闪存、动态存储器、静态存储器、FIFO(先进先出)存储器、LIFO(后进先出)存储器、循环存储器、半导体存储器、磁泡存储器、缓冲存储器、硬盘存储器118、光学存储器、高速缓冲存储器120、数据库存储器122等,这是本领域已知的。可以使用任何适合形式的存储器或者存储或者存储器子系统126,不管是否是磁性介质上的固定存储、半导体器件中的存储或者通过通信链路可访问的远程存储。
用户接口130可以包括在计算机系统112中或者耦合至计算机系统112,并且可以包括各种用户输入设备136,用户输入设备136诸如本领域所公知的用户可选择的按钮或者开关、键盘、鼠标、触摸屏、条形码扫描仪、RFID读取器(或者读取器/记录器)或者类似的用户输入设备。用户接口130还可以包括一个或多个适合的用户输出设备140,诸如LCD显示器、CRT、各种LED指示灯、语音输出设备以及类似的数据输出呈现设备,这是本领域已知的。
为了在计算机系统112与外部源之间进行通信,通信接口142可以可操作地包括在计算机系统112中或者耦合至计算机系统112。通信接口142例如可以是如针对计算机系统112所示的用于直接连接至打印机250的接口,或者如针对计算机系统112a......112n所示的用于连接至局域网、以太网、内联网或者其他适合的网络144的接口。通信接口还可以连接至公共交换电话网(PSTN)或者POTS(简易老式电话系统),其可以促进与网络144的通信或者到打印机250的直接连接。还可以采用专用和远程网络。如本领域已知的,可以使用任何适合的可商购的通信设备或者网络。
如上所述,计算机系统112、112a......112n可以耦合至打印机250。打印机250可以是XML打印机,其中系统的本机或者自然“语言”是XML,并且由此称为“本机XML打印机”。打印机250包括处理器228,并且还可以包括参照计算系统112和图3的实体更加全面地示出和描述的附加计算硬件。打印机250可以包括介质/纸张控制系统252、打印绘制子系统254(诸如包括打印驱动器或者打印绘制驱动器,不要与软件打印驱动混淆)以及打印头机构256。可以使用能够打印条形码标贴的任何适合的打印机,其可以包括各种点阵、喷墨、激光和/或热敏打印机。例如,此类适合的打印机从VernonHills,Ill.的Zebra Technologies公司可得,并且可以包括型号Xi系列条形码打印机(XiIII+、90XiIII+、96XiIII+、110XiIII+140XiIII+、170XiIII+、220XiIII+等),2800系列条形码打印机,型号Z4M、Z6M,105SL条形码打印机,型号R4Mplus、R402、R-140打印机/编码器等。由于用于与条形码打印机进行通信的XML的使用以及由条形码打印机XML使用的样式表的特定适用性,条形码打印机此处用作示例。
备选地或者附加地,打印机250可以包括“非打印”机构,用以处理RFID(射频识别)或者类似的电子介质的编程,其还可以接收其表面上的打印的标贴或者其他打印的标示。例如,打印机250可以包括RFID收发器261,用于以结合RFID介质或/和RFID应答器182来操作。术语“打印机”意味着包括还包括RFID读取和/或写入能力的系统,但是“RFID”可能不是该术语的一部分。此外,虽然此处使用术语“条形码标贴”,但是该术语不限于纸标贴,并且可以包括例如票、标签、卡、单张纸、连续并折叠的纸、塑料介质、嵌入有RFID电路的介质以及其他自动标识器件。本发明适用于不同类型的介质完全如同其应用于不同类型的打印机以及其他计算设备。
通常,此类打印机可以包括各种发动机、标贴切割机、带处理机、传感器等,这是本领域已知的。另外,此类打印机可以包括各种控制输入或者传感器,诸如介质传感器、打印头温度传感器、头打开传感器、带传感器等,这是本领域已知的。打印机250可以包括除了处理器228以外的一个或多个附加的处理器,诸如驻留于计算机系统112中的处理器128。备选地,计算机系统112中的处理器128如果足够强大,则可以控制和处理打印机250功能,而不需要打印机250中的独立处理设备(诸如处理器228)。由此,打印机250的所有功能可以由与打印机在物理上分离的计算机或者处理器来控制。关于打印头控制的更多细节可以参见名称为“Thermal TransferPrinter with Controlled Ribbon Feed”、于1994年12月13日公告的美国专利号5,372,439,在此通过引用并入其全部内容。然而,通常,打印机将包括处理器。
RFID收发器261可以配置用于与RFID应答器182通信,并且读取或者编程RFID应答器。RFID应答器182可以是“芯片”或者“无芯片”类型,并且此类RFID应答器的一种常见形式包括天线和RFID集成电路,其通常在“智能标贴”中使用。此类RFID应答器182包括DC供电的有源应答器和无电池的无源应答器两者,并且在多种形状因数中可用。术语“条形码打印机”和“条形码系统”此处可与术语“条形码/RFID系统”、“XML系统”等互换使用,并且此类系统包括将RFID数据编码到RFID应答器中的能力,当然,术语“RFID”并非必须是标识文本的一部分。关于RFID应答器的更多细节可以参见名称为Method And Apparatus For Associating OnDemand Certain Selected Media And Value-Adding Elements、于2001年10月25日提交的美国申请序列号10/001,364,在此通过引用并入其全部内容。
用户接口230可以包括在打印机250中或者耦合至打印机250,并且可以包括各种用户输入设备136,诸如用户可选择的按钮或者开关、键盘、鼠标、触摸屏、条形码扫描仪、RFID读取器(或者读取器/记录器)或者类似的用户输入设备,这是本领域已知的。用户接口230还可以包括一个或多个适合的用户输出设备140,诸如LCD显示器、CRT、各种LED指示灯、语音输出设备和类似的数据输出呈现设备,这是本领域已知的。
为了在打印机250与外部源(诸如计算机系统112、112a......112n)之间通信,通信接口242可以可操作地包括在打印机250中或者耦合至打印机250。通信接口242例如可以是如针对打印机250所示的用于直接连接至计算机系统112的接口或者用于连接至局域网、以太网、内联网或者其他适合的网络144的接口。通信接口还可以连接至公共交换电话网(PSTN)或者POTS(简易老式电话系统),其可以促进与网络144的通信或者到计算机系统112、112a......112n或者其他设备的直接连接。还可以采用专用的和远程的网络。可以使用本领域所公知的任何适合的可商购的通信设备或者网络。如上所述,除了计算机系统112、112a......112n以外,通信接口242可以提供与其他设备的直接或者间接以及有线或者无线的通信,其他设备诸如外部硬盘驱动器、可移动存储器设备(诸如USB闪存驱动器)或者其他存储设备、RFID标签读取器、条形码扫描仪、另一打印机以及其他数据源。经由通信接口242与打印机250通信的任何设备可以是诸如向打印机250传入XML数据流的传入数据源,例如包括存储在打印服务器中的XML打印数据、USB闪存驱动器或者经由通信接口242向打印机250传输的其他设备。
还示出了企业资源规划(ERP)系统188,其例如可以是直接或者经由网络144而向打印机250传输XML数据的仓库管理系统。ERP系统188可以发起针对诸如条形码标贴的打印信息或者对诸如RFID数据的编码信息的请求。当然与计算机系统112、112a......112n类似,可以使用任何企业计算机系统,并且本发明不限于与任何类型的企业计算机系统结合使用。
对于示出了根据本发明的一个实施方式的打印机250的高层示意性框图的示例性实施方式的图1进行的上述描述,有助于认识到:现代计算设备和系统可以按照多种方式配置,并且包括多个设备和系统。同样地,当多个系统可以配置用于以各种编码方案彼此传输数据时,重要的是接收设备能够识别接收到的数据的编码方案,并且根据纸张编码方案来解码接收到的数据。这与非ASCII透明编码方案特别相关。而且,如上所述,在不存在诸如BOM或者其他编码声明的适当编码方案标识的情况下,接收设备可能无法适当地解码接收到的数据,或者在流式数据的情况下,甚至可能无法检测与在前数据以不同的编码方案编码的数据的开始。对于以UTF-16编码的没有BOM的XML数据来说,这个问题尤其如此。本发明的实施方式解决了这个问题。
现在参考图2,其示出了功能软件流程图的一个实施方式。每个框描述的功能可以编码在存储在计算机可读和计算机可用介质上的控制逻辑(软件代码)中,从而创建计算机程序产品。图2的功能此处统称为检测模块,如图3的检测模块330所示。但是,单个功能可以编码在单独的控制逻辑中和/或存储在独立的计算机可读介质之中或之上。检测模块的架构对于本发明的实施方式不是特定的。功能可以是固件、软件或者其他控制逻辑的一部分,其在此处可互换地统称为软件、功能和软件功能,软件、功能或者软件功能并不存储在特定类型的计算机可读介质中的编码的控制逻辑中。
以下关于图2描述的软件可以由图1的打印机250的处理器228来执行或者由计算机系统112的处理器128来执行,这取决于图1的打印机250与计算机系统112之间的关系。再次,如果计算机系统112和打印机250两者之间存在共同的功能,则处理器128可以执行该共同的功能。并且在任一设备上可以存在一个或者多个处理器,其可以协同工作或者可以单独工作。对于本发明的范围来说,处理或者处理功能由计算机系统112还是打印机250来执行不是实质性的。
本发明的实施方式和图2的流程图依赖于以下两个基本原则。首先,传入数据流中的XML脚本(也称为传入XML流或者传入XML数据流)之前的数据之间可能的编码方案改变的数目是有限的。特别地,总共存在18种转换情况。以下对这18中转换情况进行详细描述。其次,所有有效的XML脚本,不管是否是良好形成的或者仅是有效的,都必须以开始于“<?xml”的XML声明开始。
下表标识了针对传入数据流中新的有效XML脚本的18种转换情况。转换缩写为下表中针对编码方案和BOM而呈现的图例。对于每种转换情况,标识了在前的编码方案、回车和换行(CR/LR)、BOM、<?xml声明开始和新的XML编码方案。而且,对于根据本发明实施方式的每种转换情况的确定,标识了图2的流程图的相应过程的部分。
A=ASCII透明
B=UTF-16BE
L=UTF-16LE
FEFF=UTF-16BE BOM
FFFE=UTF-16LE BOM
EFBBBF=UTF-8BOM
通过执行对传入数据流的字节级检查,以及寻找关键字位置处的空0x00字节的存在和/或不存在,本发明的实施方式能够唯一地标识当前的数据流匹配18种转换情况中的哪一种。并且18种转换情况中的每一种可以用于唯一地标识正在使用哪种可能的编码方案(ASCII透明的、UTF-16BE或者UTF-16LE)。
再次并且更加具体地参考图2的流程图,给出了XML编码方案的自动检测的方法,并且按照流程图所示出的次序和决策。作为该方法的前驱,并且如下文关于框92详述的,本发明实施方式的方法可以依赖于传入数据流的当前编码方案的知识。由此,如果需要,方法可以开始于在到达下文描述的框90之前的方法的第一轮期间,将传入数据流的当前编码方案存储到诸如可能被访问的存储器中,或者该步骤可以在方法开始之前进行。存储当前编码方案可以通过诸如使用日志文件或者仅维护具有当前编码方案的指示的RAM地址来执行。另外,在当前编码方案是ASCII透明的时,存储当前编码方案可以仅需要不再将之前存储的非ASCII透明的编码方案表示为当前编码方案,并且,例如,当前编码方案默认地确定或者由ASCII透明的编码方案的特性来实时确定。例如,打印机可以跟踪记录当前编码方案,并且使用本发明的方法来检测当前编码方案的改变(其继而被标识为打印机将要跟踪记录的当前编码方案),从而按照本发明的实施方式来操作。存储当前编码方案的方式对于本发明的实施方式不是特定的。
如开始框10所标识的,方法开始,随后初始化(创建和/或起始)并且清除“先进先出”(FIFO)数据缓冲器和FIFO解析器缓冲器,如框20所示。该方法继续进行,从通信端口接收数据,如框22所示,以及将接收的数据存储在数据缓冲器中,如框24所示。然后该方法继续进行,从数据缓冲器向解析器缓冲器移动(传送)一个字节,如步骤26所示。
然后该方法到达框40处的第一决策点,在此,确定解析器缓冲器中的当前字节是否是0x3C字节,其潜在地表示XML脚本声明的开始的“<”字符的0x3C字节,诸如“<?xml”中出现的。例如,在UTF-16BE中,0x3C字节在两个字节序列003C中出现,在UTF-16LE中,0x3C字节在两个字节序列3C00中出现,并且在UTF-8和其他ASCII透明编码方案中,0x3C字节表示“<”字符。由此,对于ASCII透明的编码,0x3C字节的存在明确地标识出“<”字符。对于UTF-16BE编码,如果之前的字节是空0x00字节,则0x3C字节的存在标识出“<”字符。并且对于UTF-16LE编码,如果随后的字节是空0x00字节,则0x3C字节的存在标识出“<”字符。在识别到0x3C字节之前,框40处的决策点从“否”方向循环回框26,其继而将输入数据流中的下一个字节从数据缓冲器移动至解析器缓冲器。
当识别到0x3C字节时,该方法沿着“是”方向转到框42,其中将输入数据流中的随后的(下一个或者附加的)字节从数据缓冲器移动至解析器缓冲器以供检查。该方法继续到框44处的第二决策点,其将ASCII透明的编码方案与UTF-16编码方案分离开。框44处的第二决策点确定解析器缓冲器中的当前字节是否是空0x00字节,也即,跟随0x3C字节的字节是否是空0x00字节。如果解析器缓冲器中的当前字节不是空0x00字节,则该方法继续从“否”方向到达框46,其标识XML数据是ASCII透明的。因此,该方法继续到框48,其指示使用可以从XML声明语句中读取的XML编码属性所标识的编码方案。然后,该方法决定存储当前的编码方案,如框90所示,以用于如下详述的方法的潜在未来使用,并且方法终止于结束框94。
如果在框44处的第二决策点处,确定解析器缓冲器中的当前字节是空0x00字节,则XML数据不是ASCII透明的,而是使用UTF-16编码方案。然而,此时,UTF-16编码方案的字节序(字节顺序)仍然是未知的,并且仍然需要确定。因此,该方法继续沿“是”方向到达框60处的第三决策点。
框60处的第三决策点是基于传入数据流的当前编码方案的知识的分支。如上所述,本发明的实施方式的方法可以依赖于传入数据流的当前编码方案的知识,并且在框60处的第三决策点处正是这样做的。如果XML数据是ASCII透明的,则该方法不到达框60,并且不需要当前编码方案的知识。然而,如果XML数据是非ASCII透明的,则该方法必须知道传入用于数据流中先前数据的当前编码方案。由此,通常在方法之前存储和/或与方法并发地标识传入数据流的当前编码方案,其可由方法在框60处的第三决策点处访问。在框60的第三决策点处对传入数据流的“当前”编码方案的引用描述了在框40处识别的0x3C字节之前的数据(此处称为传入数据流中的“先前数据”)的已知编码方案。通过比较,在框90处对传入数据流的“当前”编码方案的引用描述了由该方法确定并且存储在存储器中的、用于该方法的潜在未来使用的编码方案。
如果框40处识别的0x3C字节之前的传入数据流中的先前数据不是以UTF-16LE编码的,则XML数据的字节顺序可以通过检查先前检测的0x3C字节之前紧邻的单个字节来确定,并且该方法继续从“否”方向到达框62,以检查和确定编码方案的字节顺序。框62处的第四决策点评估检测到的0x3C字节之前紧邻的单个字节。如果检测到的0x3C字节之前紧邻的字节是空0x00字节,则确定字节序是大端的,并且XML数据使用UTF-16BE编码,如框64所识别的。否则,如果与检测到的0x3C字节紧邻的不是空0x00字节,则确定字节序是小端的,并且XML数据使用UTF16-LE编码,如框66所标识的。
如果框40处识别的0x3C字节之前传入数据流中的先前数据以UTF-16LE编码,则可以通过检查先前检测的0x3C字节之前紧邻的两个字节,来确定XML数据的字节顺序,并且该方法继续从“是”方向到达框80,以检查和确定编码方案的字节顺序。框80处的第五决策点评估检测到的0x3C字节之前紧邻的两个字节。如果检测到的0x3C字节之前紧邻的两个字节是空0x00字节,则确定字节序是大端的,并且XML数据使用UTF 16-BE编码,如框82所标识的。否则,如果检测到的0x3C字节之前紧邻的两个字节不是空0x00字节,则确定字节序是小端的,并且XML数据使用UTF-16LE编码,如框84所标识的。
如上所述,随后该方法可以依赖于框60的第三决策点处的当前编码方案的知识。因此,在识别出XML数据的编码方案之后,在框90处感知到的方法将当前编码方案存储例如存储器中,如元素92处所示。
当本发明的实施方式自动地检测到XML数据的编码方案之后,可以将适当的BOM插入到传入数据流中,以使得XML数据是良好形成的并包含有BOM,并且可以使用标准的成品解析器来解析。包括BOM的数据流可以称为增强传入数据流,例如可以将其传递到诸如打印机的另一设备。例如,在打印服务器或者软件打印驱动器由一个或者多个打印机使用的情况下,添加BOM是有益的,例如,接收增强传入数据流的设备可以使用依赖于按照UTF-16编码方案编码的XML的BOM的存在的已有解析器。同样,例如,在打印机生成日志或者将XML数据从打印机传输至另一设备或者系统(诸如用于生成日志或者分析打印数据的其他设备或者系统)的情况下,添加BOM是有益的。当例如打印机读取RFID标签并且将其与可变数据结合,并且传输一组XML数据从而使外部计算机系统可以使RFID标签与可变数据相关时,这种情况可能存在。
提供下面的描述和示例是为了帮助理解自动确定编码方案(特别是UTF-16编码方案)的字节顺序的困难和非直观方面以及所需的功能。在XML数据串(或者文件)的开始和结束不是明确已知的流式数据中,同样不知道以UTF-16编码中的字节是否是最后字符的一部分或者下一个字符的开始。由此,除非当前编码方案对于流式数据是已知的,否则可能无法确定转换到UTF-16编码方案的编码方案,包括编码方案的字节顺序。所以,例如,如果当前编码方案是UTF-16BE,则查看0x3C字节之前的单个字节足以确定新的UTF-16编码方案具有大端还是小端字节序。特别地,如果空0x00字节在0x3C字节之前,则字节序是大端的,如003C中一样。如果空0x00字节不在0x3C字节之前,则字节序是小端的,如3C00中一样。然而,如果当前编码方案是UTF-16LE,则仅查看0x3C字节之前的单个字节不足以确定新的UTF-16编码方案具有大端还是小端字节序,而是需要查看0x3C字节之前的两个字节来确定新的UTF-16编码方案具有大端还是小端字节序。
该情景在UTF-16LE到UTF-16LE的转换情况c与UTF-16LE到UTF-16BE的转换情况f之间的相似和差异中得到例证。这两种转换情况的CR/LF和<?序列分别是0d000a00 3c003f00和00d000a00003c003f。0x3C字节在两种情况中都存在,并且跟随有空0x00字节。并且在两种情况中,0x3C字节之前都是空0x00字节。由此,为了确定转换之后新的UTF-16编码方案是具有大端还是小端字节序,评估0x3C字节之前的两个字节。在UTF-16LE到UTF-16LE的转换情况c中,0x3C字节之前是单个空0x00字节,由此表示0x3C字节是3C00UTF-16LE字符的第一个字节。在UTF-16LE到UTF-16BE的情况f中,0x3C字节之前是两个空0x00字节,由此表示0x3C字节是003C UTF-16BE字符的第二个字节,其中第一在前空0x00字节是003C UTF-16BE字符的第一个字节,并且第二在前空0x00字节是0a00UTF-16LE换行字符的第二个字节。
根据本发明实施方式的方法可以评估传入数据流中的每个字节以标识潜在的转换情况,但是方法的完整范围可以仅在识别到0x3C字节时被激活。备选地,根据本发明实施方式的方法例如可以在预期没有转换和<?xml声明语句期间的时段内,临时挂起监测传入数据流中0x3C字节的存在。例如,方法可以在监测传入数据流的XML数据的XML语法错误时,临时挂起监测传入数据流中0x3C字节的存在。响应于XML语法错误的检测,该方法可以重新开始监测传入数据流中0x3C字节的存在。类似地,例如,方法可以在监测传入数据流中的结束XML声明结束标签时,临时挂起监测传入数据流中0x3C字节的存在。响应于结束XML声明结束标签的检测,该方法可以重新开始监测传入数据流中0x3C字节的存在。
作为本发明的另一示例性实施方式,可以使用打印服务器在没有UTF-16字节序标记(BOM)或者编码声明的情况下自动地检测和确定一个或者多个传入XML数据流中用于XML声明的UTF-16编码方案及其字节顺序。响应于UTF-16编码方案及其字节顺序的检测和确定,打印服务器可以插入适当的BOM,并且进一步向一个或者多个打印机传输一个或者多个传入XML数据流。这允许单个设备(打印机)执行在没有UTF-16字节序标记(BOM)或者编码声明的情况下检测和确定一个或者多个传入XML数据流中用于XML声明的UTF-16编码方案及其字节顺序所需要的处理,从而允许随后的下游设备能够依赖于XML数据流中目前是良好形成的XML语句中的BOM。
类似地,作为本发明的又一示例性实施方式,专有软件打印驱动可以用于执行在没有UTF-16字节序标记(BOM)或者编码声明的情况下检测和确定一个或者多个传入XML数据流中用于XML声明的UTF-16编码方案及其字节顺序所需的处理,从而允许诸如打印机的随后的下游设备能够依赖于XML数据流中目前是良好形成的XML语句中的BOM。
以类似的方式,在本发明的又一示例性实施方式中可以包括在一个或者多个数据源和一个或者多个其他设备之间操作的任何电子设备,用于在没有UTF-16字节序标记(BOM)或者编码声明的情况下检测和确定传入至电子设备的一个或者多个传入XML数据流中用于XML声明的UTF-16编码方案及其字节顺序。例如,条形码扫描仪或者RFID标签读取器可以分别接收和标识编码在诸如条形码或者RFID标签上或者其他对象中的数据或者XML数据。而且,条形码扫描仪或者RFID标签读取器或者与条形码扫描仪或者RFID标签读取器相关联的软件,将接收到的数据作为XML数据或者XML数据的一部分向另一设备传输,或者向另一设备传输接收到的XML数据。因此,条形码扫描仪或者RFID读取器或者与条形码扫描仪或者RFID读取器相关联的软件可以(类似于打印服务器可能的)操作用以在没有字节序标记的情况下自动地确定传入至条形码扫描仪或者RFID标签读取器的传入数据流中的UTF-16编码方案。而且,由此,响应于UTF-16编码方案及其字节顺序的检测和确定,条形码扫描仪或者RFID标签读取器可以插入适合的BOM,并且进一步向一个或者多个其他设备传输XML数据。
以上结合打印机和打印应用主要描述了本发明的打印机、系统、方法和计算机程序产品实施方式。然而,如上所述,本发明的系统、方法和计算机程序产品实施方式可以结合多种其他应用而使用。例如,本发明的实施方式的系统、方法和计算机程序产品可以结合有线和/或无线联网(例如因特网)应用而使用。
现在参考图3,示出了可以受益于本发明的实体的框图。虽然没有示出为单独实体,但是如上所述,在一些实施方式中,一个或者多个实体可以支持逻辑地分离但是共置在实体(或者多个实体)内的一个或者多个打印机和/或计算系统。例如,单个实体可以支持逻辑分离但是共置的计算系统和打印机。类似地,一个或者多个实体可以支持逻辑分离但是不共置在相同实体(或者多个实体)内的一个或者多个打印机和/或计算系统。
图3的实体包括用于执行包括此处更加具体地示出和描述的根据本发明的示例性实施方式的一个或者多个功能的各种装置。然而,应当理解,在不脱离本发明的精神和范围的情况下,实体可以包括用于执行根据本发明的实施方式的一个或者多个功能或者类似功能的备选装置。更具体地,例如,如图3所示,实体可以包括处理器、控制器或者连接至存储器326的类似的处理元件328。一个或者多个处理器可以共同用作相同的平台的一部分,或者处理器可以在子系统之间分布。存储器可以包括易失性存储器314和/或非易失性存储器318,并且通常存储内容、数据等。例如,存储器326通常存储由实体传输和/或接收的XML数据,并且还可以存储传入数据流的当前编码方案的标识。又例如,存储器326通常存储诸如固件、软件打印驱动、操作系统和客户端应用的计算机程序代码,以便处理器执行与根据本发明的实施方式的实体的操作相关联的步骤。存储器326可以是例如只读存储器(ROM)、随机存取存储器(RAM)、高速缓存存储器、闪存驱动器、硬盘驱动器和/或其他固定数据存储器或者存储设备(诸如以上关于图1的计算机系统112所描述的)。
如此处所述,检测模块330或者类似的固件或者其他计算机程序产品代码逻辑可以包括由相应的实体操作的软件。然而,应当理解,在不脱离本发明的精神和范围的情况下,此处描述的固件、软件或者计算机程序产品还可以包括一个或者多个硬件元件。然后,通常,打印机、计算系统或者其他设备或系统可以包括用于执行根据本发明的实施方式的各种功能的一个或者多个逻辑元件。可以理解,逻辑元件可以以多种不同方式中的任意方式实现。在此方面,执行一个或者多个客户端应用的功能的逻辑元件可以在软件代码逻辑和/或集成电路装配中实现,该集成电路装配包括一个或者多个集成电路组成或者另外与相应实体(即,打印机、计算系统等)或者更具体地例如相应实体的处理器328通信。
除了存储器326以外,处理器328还可以连接到至少一个接口或者其他装置用以显示、传输和/或接收数据、内容等。在此方面,接口可以包括至少一个通信接口342或者用于传输和/或接收数据、内容等的其他装置。例如,通信接口可以包括无线天线和通信接口312,其包括发射机312和接收机346。还可以包括诸如射频(RF)360、红外(IR)362、蓝牙(BT)364、通用串行总线(USB)366、IEEE 1394(火线)368和网络接口370(诸如用于以太网或者同轴连接)的附加的通信接口。除了通信接口以外,接口还可以包括用户输入接口332,其可以包括诸如麦克风、小键盘333、触摸显示器、操纵杆或者其他输入设备335的一个或者多个设备。接口还可以包括用户输出接口334,其可以包括诸如耳机和/或扬声器338和显示器337的一个或者多个设备。
实体还可以包括连接至处理器328的检测模块330。如上所述,此模块可以是软件和/或软件-硬件组件。例如,检测模块330可以包括能够接收传入数据流并且分析传入数据流以便在没有UTF-16字节序标记(BOM)或者编码声明的情况下自动地检测和确定传入数据流中用于XML声明的UTF-16编码方案及其字节顺序的软件和/或软件-硬件组件。
用于执行根据本发明的实施方式的一个或者多个功能的计算机程序产品可以包括计算机可读和计算机可用存储介质(诸如非易失性存储介质)以及包括在计算机可读和计算机可用存储介质上实现(存储)的计算机可读程序代码逻辑部分的软件(诸如一系列计算机指令)。类似地,本发明的实施方式可以并入硬件和软件系统和子系统、硬件系统和子系统与软件系统和子系统的组合中,以及并入网络设备和系统及其移动站中。
在此方面,本发明的每个框或者步骤(诸如示意性框图和流程图的功能)以及框和步骤的组合可以通过多种方式(诸如硬件、固件和/或包括一个或者多个计算机程序指令的软件)实现。可以理解,任何此类的计算机程序指令可以加载到计算机或者其他可编程设备(即硬件)上以产生机器,使得在计算机或者其他可编程设备上执行的指令创建用于实现框和步骤中指定的功能的装置。这些计算机程序指令还可以存储在计算机可读存储器中,其可以指引计算机或者其他可编程设备以特定的方式运作,以使得存储在计算机可读存储器中的指令产生一种包括实现框和步骤中指定的功能的指令装置的产品。计算机程序指令还可以加载到计算机或者其他可编程设备上以产生一系列操作步骤,这一系列操作步骤将要在计算机或者其他可编程设备上执行以产生计算机实现的过程,以使得在计算机或者其他可编程设备上执行的指令提供用于实现框和步骤中指定的功能的步骤。
因此,示意性框图和流程图的框和步骤支持用于执行指定的功能的装置的组合、用于执行指定的功能的步骤的组合以及用于执行指定的功能的程序指令装置。还可以理解,示意性框图和流程图的一个或者多个框或者步骤以及示意性框图和流程图中的框或者步骤的组合可以通过专用的基于硬件的计算机系统(其执行指定的功能或步骤)或者专用硬件和计算机指令的组合来实现。
如以上所述以及附图中所示,提供了本发明的实施方式的打印机和其他计算设备、系统、方法和计算机程序产品,其在没有UTF-16字节序标记(BOM)或者编码声明的情况下自动地检测和确定传入XML数据流中用于XML声明的UTF-16编码方案及其字节顺序。这允许即使在XML数据不以BPM或者编码声明起始的时候,也可以自动和明确地精确检测混合编码环境内的(诸如来自使用不止一个编码方案的多个源的)UTF-16编码的XML数据。如上所述,本发明的实施方式还允许使用支持使用不同的统一码以及专有的编码方案的传统设备和系统的环境中的XML,以及不是XML兼容的设备和系统(即,诸如没有配置用于包括用于UTF-16编码的XML数据的BOM的设备和系统)。
本领域技术人员将会想到对此处描述的本发明的多种修改和其他实施方式,属于所述多种修改和其他实施方式的这些发明具有以上描述和相关联的附图中提出的教导的益处。因此,可以理解,本发明不限制于所公开的具体实施方式,并且旨在将修改、等同物和其他实施方式包括在所附权利要求的范围内。
Claims (13)
1.一种方法,包括:在从第一编码方案向第二编码方案的转换处,在没有字节序标记的情况下自动确定传入数据流中的UTF-16编码方案,其中所述第二编码方案是UTF-16编码方案。
2.根据权利要求1所述的方法,其中在从所述第一编码方案向UTF-16编码方案的所述转换处自动确定UTF-16编码方案包括:
接收所述传入数据流中的结构标记语言数据;以及
根据自动确定的UTF-16编码方案来处理所述传入数据流的随后部分。
3.根据权利要求1所述的方法,其中自动确定UTF-16编码方案包括:
接收所述传入数据流中的结构标记语言数据;以及
存储所述传入数据流的当前编码状态,作为自动确定的UTF-16编码方案。
4.根据权利要求1所述的方法,其中自动确定UTF-16编码方案包括:
在打印服务器处接收所述传入数据流中的XML数据;
在所述转换处向所述传入数据流中插入标识自动确定的所述传入数据流中的UTF-16编码方案的字节序标记,以创建增强的传入数据流;以及
向打印机传输所述增强的传入XML数据流。
5.根据权利要求1所述的方法,其中所述传入数据流包括XML数据。
6.一种电子设备,包括处理器,配置用于:接收数据流中没有字节序标记的结构标记语言数据;以及在从第一编码方案向第二编码方案的转换处,在没有字节序标记的情况下自动确定所述结构标记语言数据的UTF-16编码方案,其中所述第二编码方案是UTF-16编码方案。
7.根据权利要求6所述的电子设备,其中所述结构标记语言数据是XML数据。
8.根据权利要求6所述的电子设备,其中所述电子设备包括打印机。
9.根据权利要求6所述的电子设备,其中所述电子设备包括打印服务器。
10.根据权利要求6所述的电子设备,其中所述电子设备包括软件打印驱动。
11.根据权利要求6所述的电子设备,其中所述电子设备包括条形码扫描仪。
12.根据权利要求6所述的电子设备,其中所述电子设备包括RFID读取器/记录器。
13.一种打印系统,包括:
第一电子设备;
打印服务器,可通信地连接至所述第一电子设备,并且配置用于从所述第一电子设备接收由所述打印服务器接收的传入数据流中的数据,其中所述打印服务器包括XML处理器,配置用于:
处理所述传入数据流,以便在从第一编码方案向第二编码方案的转换处在没有字节序标记的情况下自动确定所述传入数据流中的UTF-16编码方案,其中所述第二编码方案是UTF-16编码方案,
在所述转换处向所述传入数据流中插入标识自动确定的所述传入数据流的UTF-16编码方案的字节序标记,以创建增强的传入数据流,以及
传输所述增强的传入数据流;以及
打印机,可通信地连接至所述打印服务器,并且配置用于接收所述增强的传入数据流。
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US98789007P | 2007-11-14 | 2007-11-14 | |
US60/987,890 | 2007-11-14 | ||
US98859207P | 2007-11-16 | 2007-11-16 | |
US60/988,592 | 2007-11-16 | ||
US12/047,057 | 2008-03-12 | ||
US12/047,057 US8156432B2 (en) | 2007-11-14 | 2008-03-12 | Detection of UTF-16 encoding in streaming XML data without a byte-order mark and related printers, systems, methods, and computer program products |
CN200880121996.4A CN101903876B (zh) | 2007-11-14 | 2008-07-31 | 在没有字节序标记的情况下对流式xml数据中的utf-16编码的检测以及相关的打印机、系统、方法和计算机程序产品 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200880121996.4A Division CN101903876B (zh) | 2007-11-14 | 2008-07-31 | 在没有字节序标记的情况下对流式xml数据中的utf-16编码的检测以及相关的打印机、系统、方法和计算机程序产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102982013A true CN102982013A (zh) | 2013-03-20 |
CN102982013B CN102982013B (zh) | 2016-08-24 |
Family
ID=40624740
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200880121996.4A Active CN101903876B (zh) | 2007-11-14 | 2008-07-31 | 在没有字节序标记的情况下对流式xml数据中的utf-16编码的检测以及相关的打印机、系统、方法和计算机程序产品 |
CN201210181223.3A Active CN102982013B (zh) | 2007-11-14 | 2008-07-31 | 在没有字节序标记的情况下对流式xml数据中的utf-16编码的检测以及相关的打印机、系统、方法和计算机程序产品 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200880121996.4A Active CN101903876B (zh) | 2007-11-14 | 2008-07-31 | 在没有字节序标记的情况下对流式xml数据中的utf-16编码的检测以及相关的打印机、系统、方法和计算机程序产品 |
Country Status (4)
Country | Link |
---|---|
US (2) | US8156432B2 (zh) |
EP (1) | EP2223241A1 (zh) |
CN (2) | CN101903876B (zh) |
WO (1) | WO2009064523A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112151069A (zh) * | 2020-08-20 | 2020-12-29 | 深圳市捷视飞通科技股份有限公司 | 语音数据处理方法、装置、计算机设备和存储介质 |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
US8832340B2 (en) * | 2011-01-28 | 2014-09-09 | Xerox Corporation | System and method for enabling network access to mass storage devices connected to multi-function devices |
US10033531B2 (en) * | 2012-03-21 | 2018-07-24 | Xerox Corporation | Method of wireless fidelity secure authentication |
US20150106928A1 (en) * | 2013-10-15 | 2015-04-16 | Joerg Steinmann | Screening of email templates in campaign management |
JP6556646B2 (ja) * | 2016-03-01 | 2019-08-07 | セイコーインスツル株式会社 | 出力制御装置、及び制御方法 |
US10025555B2 (en) | 2016-08-31 | 2018-07-17 | Mettler-Toledo, LLC | Byte order detection for control system data exchange |
CN107943761A (zh) * | 2017-11-14 | 2018-04-20 | 北京思特奇信息技术股份有限公司 | 一种txt文档编码字符集的校验方法及系统 |
US11244126B2 (en) * | 2019-12-19 | 2022-02-08 | Datamax-O'neil Corporation | Systems and methods for encoding and decoding data |
US20230186020A1 (en) * | 2021-12-13 | 2023-06-15 | Nbcuniversal Media, Llc | Systems and methods for language identification in binary file formats |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030097462A1 (en) * | 2001-09-26 | 2003-05-22 | Parent Sean R. | Marked foreign data blocks |
CN1766910A (zh) * | 2004-10-29 | 2006-05-03 | 三星电子株式会社 | 存储打印命令文件的记录介质和创建该文件的方法和设备 |
US20060249566A1 (en) * | 2001-12-17 | 2006-11-09 | Zih Corporation | Xml printer system with rfid capability |
US20070176802A1 (en) * | 2006-01-24 | 2007-08-02 | Zih Corp. | Global printing system and method of using same |
Family Cites Families (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6149059A (en) * | 1993-11-05 | 2000-11-21 | Intermec Ip Corporation | Bar code symbology capable of encoding bytes, words, 16-bit characters, etc. and method and apparatus for printing and reading same |
US5784544A (en) * | 1996-08-30 | 1998-07-21 | International Business Machines Corporation | Method and system for determining the data type of a stream of data |
US6438516B1 (en) * | 1998-12-07 | 2002-08-20 | International Business Machines Corporation | Method and apparatus for optimizing unicode composition and decomposition |
US6622239B1 (en) * | 1999-06-25 | 2003-09-16 | International Business Machines Corporation | Method, system and computer program product for optimization of single byte character processing employed within a multibyte character encoding scheme |
US6959415B1 (en) * | 1999-07-26 | 2005-10-25 | Microsoft Corporation | Methods and apparatus for parsing Extensible Markup Language (XML) data streams |
US6763499B1 (en) * | 1999-07-26 | 2004-07-13 | Microsoft Corporation | Methods and apparatus for parsing extensible markup language (XML) data streams |
US6568596B1 (en) * | 2000-10-02 | 2003-05-27 | Symbol Technologies, Inc. | XML-based barcode scanner |
US6600418B2 (en) * | 2000-12-12 | 2003-07-29 | 3M Innovative Properties Company | Object tracking and management system and method using radio-frequency identification tags |
US20040044791A1 (en) * | 2001-05-22 | 2004-03-04 | Pouzzner Daniel G. | Internationalized domain name system with iterative conversion |
US7733509B2 (en) * | 2001-09-26 | 2010-06-08 | Infoprint Solutions Company, Llc | Method and apparatus for printing XML directly using a formatting template |
US6908034B2 (en) | 2001-12-17 | 2005-06-21 | Zih Corp. | XML system |
US7025268B2 (en) | 2001-12-17 | 2006-04-11 | Zih Corporation | XML printer system |
US7959083B2 (en) | 2002-07-17 | 2011-06-14 | Zih Corp. | XML printer system |
US6540142B1 (en) | 2001-12-17 | 2003-04-01 | Zih Corp. | Native XML printer |
CA2483423A1 (en) * | 2002-04-24 | 2003-11-06 | Sarvega, Inc. | System and method for processing of xml documents represented as an event stream |
US6737994B2 (en) * | 2002-05-13 | 2004-05-18 | International Business Machines Corporation | Binary-ordered compression for unicode |
US20050049997A1 (en) * | 2003-08-27 | 2005-03-03 | Microsoft Corporation | Method for persisting a unicode compatible offline address |
US20050116034A1 (en) * | 2003-11-28 | 2005-06-02 | Masato Satake | Printing system |
JP4458904B2 (ja) * | 2004-04-02 | 2010-04-28 | 東芝テック株式会社 | 発行装置 |
US7769904B2 (en) * | 2004-06-09 | 2010-08-03 | L-3 Communications Integrated Systems L.P. | Extensible binary mark-up language for efficient XML-based data communications and related systems and methods |
US7400271B2 (en) * | 2005-06-21 | 2008-07-15 | International Characters, Inc. | Method and apparatus for processing character streams |
US7148824B1 (en) * | 2005-08-05 | 2006-12-12 | Xerox Corporation | Automatic detection of character encoding format using statistical analysis of the text strings |
US7716577B2 (en) * | 2005-11-14 | 2010-05-11 | Oracle America, Inc. | Method and apparatus for hardware XML acceleration |
US7665016B2 (en) * | 2005-11-14 | 2010-02-16 | Sun Microsystems, Inc. | Method and apparatus for virtualized XML parsing |
US7596745B2 (en) * | 2005-11-14 | 2009-09-29 | Sun Microsystems, Inc. | Programmable hardware finite state machine for facilitating tokenization of an XML document |
US7665015B2 (en) * | 2005-11-14 | 2010-02-16 | Sun Microsystems, Inc. | Hardware unit for parsing an XML document |
JP4259564B2 (ja) * | 2006-10-24 | 2009-04-30 | セイコーエプソン株式会社 | サーバ装置、サーバ装置における方法、および、コンピュータプログラム |
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 |
-
2008
- 2008-03-12 US US12/047,057 patent/US8156432B2/en active Active
- 2008-07-31 CN CN200880121996.4A patent/CN101903876B/zh active Active
- 2008-07-31 WO PCT/US2008/071688 patent/WO2009064523A1/en active Application Filing
- 2008-07-31 EP EP08849538A patent/EP2223241A1/en not_active Ceased
- 2008-07-31 CN CN201210181223.3A patent/CN102982013B/zh active Active
-
2012
- 2012-03-15 US US13/421,377 patent/US9720885B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030097462A1 (en) * | 2001-09-26 | 2003-05-22 | Parent Sean R. | Marked foreign data blocks |
US20060249566A1 (en) * | 2001-12-17 | 2006-11-09 | Zih Corporation | Xml printer system with rfid capability |
CN1766910A (zh) * | 2004-10-29 | 2006-05-03 | 三星电子株式会社 | 存储打印命令文件的记录介质和创建该文件的方法和设备 |
US20070176802A1 (en) * | 2006-01-24 | 2007-08-02 | Zih Corp. | Global printing system and method of using same |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112151069A (zh) * | 2020-08-20 | 2020-12-29 | 深圳市捷视飞通科技股份有限公司 | 语音数据处理方法、装置、计算机设备和存储介质 |
CN112151069B (zh) * | 2020-08-20 | 2024-03-15 | 深圳市捷视飞通科技股份有限公司 | 语音数据处理方法、装置、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US20120170079A1 (en) | 2012-07-05 |
CN102982013B (zh) | 2016-08-24 |
US8156432B2 (en) | 2012-04-10 |
US9720885B2 (en) | 2017-08-01 |
US20090125537A1 (en) | 2009-05-14 |
CN101903876B (zh) | 2015-07-08 |
EP2223241A1 (en) | 2010-09-01 |
WO2009064523A1 (en) | 2009-05-22 |
CN101903876A (zh) | 2010-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101903876B (zh) | 在没有字节序标记的情况下对流式xml数据中的utf-16编码的检测以及相关的打印机、系统、方法和计算机程序产品 | |
CN103168288B (zh) | 打印应用 | |
CN102647414B (zh) | 协议解析方法、设备及系统 | |
CN105487828B (zh) | 一种打印控制系统和方法 | |
CN103220443A (zh) | 从网络外的装置进行的无线打印 | |
US8362881B2 (en) | Method for storing data as well as a transponder, a read/write-device, a computer readable medium including a program element and such a program element adapted to perform this method | |
CN103777934B (zh) | 一种基于matlab生成控制器can交互层的方法及系统 | |
WO2013137864A1 (en) | Submatch extraction | |
CN103679515A (zh) | 票据打印方法和系统 | |
US8180799B1 (en) | Dynamically creating tables to store received data | |
WO2017107698A1 (zh) | 一种打印控制系统和方法 | |
CN101702732A (zh) | 一种文件同步方法及文件同步系统 | |
US20140337413A1 (en) | Relaying device, image processing device, and system comprising image processing device, relaying device and service server | |
CN107908377A (zh) | 打印语言中字体编码信息的解析方法及其装置和应用 | |
US10057453B2 (en) | Method of pairing between a unique identifier of a device for digitizing documents and a user account identifier | |
WO2020219485A1 (en) | Operating method of self-service terminal and self-service terminal | |
CN102968609B (zh) | 一种基于Code 128一维条码的条码阅读设备设置方法 | |
CN104063036A (zh) | 扫描枪的控制方法和系统 | |
CN103166829B (zh) | 网信页面提供方法及系统、网信平台及业务系统 | |
CN105302776A (zh) | 数据校对平台伺服器 | |
JP2002103746A (ja) | Xmlデータ対応バーコードの印字方法 | |
CN102780985A (zh) | 一种短信设置自动转发信息的系统及方法 | |
US8799351B1 (en) | Communicating multiple files in markup language documents | |
CN102567700A (zh) | 应用于存储接口智能密码钥匙的智能卡转接器及控制方法 | |
CN110008798A (zh) | 虚拟点读系统及其实施方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP02 | Change in the address of a patent holder | ||
CP02 | Change in the address of a patent holder |
Address after: Illinois State Patentee after: ZIH Corp. Address before: Bermuda Hamilton Patentee before: ZIH Corp. |
|
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20190306 Address after: Illinois State Patentee after: Zebra Technology Company Address before: Illinois State Patentee before: ZIH Corp. |