在没有字节序标记的情况下对流式xml数据中的utf-16编码的检测以及相关的打印机、系...的制作方法

文档序号:6370901阅读:196来源:国知局
专利名称:在没有字节序标记的情况下对流式xml数据中的utf-16编码的检测以及相关的打印机、系 ...的制作方法
在没有字节序标记的情况下对流式XML数据中的UTF-16编码的检测以及相关的打印机、系统、方法和计算机程序产品
相关申请的交叉引用
本申请是国际申请日为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 I. O标准规范中,由Tim Bray> Jean Paoli、 C. M. Sperberg-McQueen、Eve Maler 和 Francois Yergeau 编辑的,Extensible Markup Language(XML)I. 0(Fourth Edition)W3C Recommendation,2006 年 8 月 16 日(可从 www. w3. org/TR/xml/获得);以及在 XML I. I 标准规范中,由 Tim Bray, Jean Paoli, C. M. Sperberg-McQueen, Eve Maler, Francois Yergeau 和 John Cowan 编辑的 Extensible Markup Language (XML) I. I (Second Edition), W3CRecommendation, 2006 年 8 月 16 日(可从www. w3. org/TR/xml 11/获得),据此通过引用将上述每一个的内容全部并入,包括用于更加全面地描述标准形式和XML的使用以及良好形成的XML和有效的XML的目的。
与计算机以及其他计算设备和系统相似,打印机和打印系统也可以使用XML数据,而不是专有数据格式和/或专有或者固定的单个数据编码方案。诸如用于打印条形码和用于向条形码打印机传输数据的打印系统得到了广泛使用。并且虽然很多这种打印系统和打印机使用专有数据格式和/或专有数据编码方法,并且可能无法与其他打印系统和条形码打印机互换和/或兼容,但是已经开发了一些有益的打印机和打印系统,其使用XML数据格式和易于接受的数据编码格式,诸如按照UTF-8编码的XML数据。
XML标准规范允许XML数据使用多个字符编码方案来存储,这些字符编码方案包括但不限于IS0-8859-1、用于韩语文本的扩展Unix码(EUC-KR)、UTF-8和UTF-16。并且 XML标准规范需要XML的处理器支持统一码(Unicode)字符编码UTF-8和UTF-16。诸如基于IS0/IEC 8859和UTF-32之类的受到较多限制的编码的使用得到承认,并且被广泛使用和支持,但这不是XML规范的强制要求。在XML中,可以可选地包括声明中的属性(也称为元素和伪属性),诸如说明正在使用的XML版本的XML声明。XML声明还可以包含关于字符编码的信息(也称为编码声明)。例如,XML脚本可以开始于XML声明〈? xml version ="1.0 " encoding = " UTF-8 " >,其指示正在使用XML版本1. O并且编码是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数据之前必须存在以IS0/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 Unicode Standard 版本 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编码标签中标识的编码方案。
下面描述本发明的这些特性以及附加的特征、功能和细节。类似地,以下还描述了本发明的打印机和其他电子设备和系统以及相关的方法和计算机程序产品的相应的和附加的实施方式。


由此在总体方面描述了本发明的实施方式,现在将参考附图,其不一定是按比例绘制的,并且其中
图I是根据本发明的一个实施方式的打印系统的示意框图2是本发明的一个实施方式的方法的功能软件流程图;以及
图3是根据本发明的一个实施方式的能够作为打印机或者其他计算设备或者系统操作的实体的示意框图。
具体实施方式
现在将参考附图在下文中更加全面地描述本发明的实施方式,附图中示出了本发明的一些但非全部实施方式。实际上,本发明的实施方式可以以多种不同的形式实现,并且不应当限于此处所述的实施方式;当然,提供了这些实施方式以使得本公开将满足可适用的法律要求。在全文中,相似的参考标号指的是相似的元件。
将理解,从下文中,多种类型的计算设备和系统可以与本发明一起使用,计算设备和系统例如包括计算机、打印机、打印服务器、因特网服务器、路由器、移动电话、移动媒体设备、手持式数据终端、个人数据助理(PDA)以及其他计算设备和系统。本发明的实施方式可以通过和/或利用从Vernon Hills, 111的Zebra Technologies公司商业可得的打印机来实现,包括以下打印机型号XiIII+、90XiIII+、96XiIII+、110XIII+、140XiIII+、 170XiIII+、220XiIII+、型号 Z4M、Z6M、105SL 型号 R4Mplus、R402、R-140 和型号 Xi 系列打印机。涉及这些以及类似的打印机和相应的打印系统的更多细节可以参见于2002年I 月4日提交的、名称是XML Printer Technology的美国临时申请序列号60/345,389 ;于 2001 年 12 月 7 日提交的、名称是 Bar Code Labeling Systems Having Machine Readable Standards的美国临时申请序列号60/341,427 ;于2002年7月17日提交的、名称是Native XML Printer的美国申请序列号10/197,014,现在是美国专利号6,540,142 ;于2003年I月 10日提交的、名称是XML Printer System的美国申请序列号10/332,604 ;于2006年2月10 日提交的、名称是XML Printer System的美国申请序列号11/351,748 ;于2007年7月6日提交的、名称是XML Printer System的美国申请序列号11/774,152 ;于2003年I月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年I月24日提交的、名称是Global Printing System and Method of Using Same 的美国临时申请序列号60/761,610 ;于2007 年 I 月 24 日提交的、名称是Global Printing System and Method of Using Same 的美国申请序列号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,......112η或者其他设备(例如,ERP 188)而操作时,计算机系统112类似于用于打印机的数据的任何其他主机或者源(诸如计算机系统112a......112η和ERP 188)。此类设备的关系对于本发明的实施方式不是特定的。
计算机系统112可以包括任何适合的处理设备128,处理设备128诸如本领域所公知的计算机、微处理器、RISC处理器(精简指令集计算机)、CISC处理器(复杂指令集计算机)、大型计算机、工作站、单片计算机、分布式处理器、服务器、控制器、微控制器、离散逻辑计算机或者类似的处理器。例如,处理设备128可以是IntelCore 或者Pentium 微处理器、其他x86兼容微处理器或者等同的处理设备。
存储器子系统126可以包括任何适合的存储组件,存储组件诸如RAM 114、ROM 116、EPROM (电可编程ROM)、闪存、动态存储器、静态存储器、FIFO(先进先出)存储器、 LIFO(后进先出)存储器、循环存储器、半导体存储器、磁泡存储器、缓冲存储器、硬盘存储器118、光学存储器、高速缓冲存储器120、数据库存储器122等,这是本领域已知的。可以使用任何适合形式的存储器或者存储或者存储器子系统126,不管是否是磁性介质上的固定存储、半导体器件中的存储或者通过通信链路可访问的远程存储。
用户接口 130可以包括在计算机系统112中或者耦合至计算机系统112,并且可以包括各种用户输入设备136,用户输入设备136诸如本领域所公知的用户可选择的按钮或者开关、键盘、鼠标、触摸屏、条形码扫描仪、RFID读取器(或者读取器/记录器)或者类似的用户输入设备。用户接口 130还可以包括一个或多个适合的用户输出设备140,诸如IXD 显示器、CRT、各种LED指示灯、语音输出设备以及类似的数据输出呈现设备,这是本领域已知的。
为了在计算机系统112与外部源之间进行通信,通信接口 142可以可操作地包括在计算机系统112中或者耦合至计算机系统112。通信接口 142例如可以是如针对计算机系统112所示的用于直接连接至打印机250的接口,或者如针对计算机系统112a......112η所示的用于连接至局域网、以太网、内联网或者其他适合的网络144的接口。通信接口还可以连接至公共交换电话网(PSTN)或者POTS(简易老式电话系统),其可以促进与网络144 的通信或者到打印机250的直接连接。还可以采用专用和远程网络。如本领域已知的,可以使用任何适合的可商购的通信设备或者网络。
如上所述,计算机系统112、112a......112η可以耦合至打印机250。打印机250可以是XML打印机,其中系统的本机或者自然“语言”是XML,并且由此称为“本机XML打印机”。打印机250包括处理器228,并且还可以包括参照计算系统112和图3的实体更加全面地示出和描述的附加计算硬件。打印机250可以包括介质/纸张控制系统252、打印绘制子系统254 (诸如包括打印驱动器或者打印绘制驱动器,不要与软件打印驱动混淆)以及打印头机构256。可以使用能够打印条形码标贴的任何适合的打印机,其可以包括各种点阵、喷墨、激光和/或热敏打印机。例如,此类适合的打印机从Vernon Hills, 111.的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 Transfer Printer 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 On Demand Certain Selected Media And Value-Adding Elements、于 2001年10月25日提交的美国申请序列号10/001,364,在此通过引用并入其全部内容。
用户接口 230可以包括在打印机250中或者耦合至打印机250,并且可以包括各种用户输入设备136,诸如用户可选择的按钮或者开关、键盘、鼠标、触摸屏、条形码扫描仪、 RFID读取器(或者读取器/记录器)或者类似的用户输入设备,这是本领域已知的。用户接口 230还可以包括一个或多个适合的用户输出设备140,诸如IXD显示器、CRT、各种LED 指示灯、语音输出设备和类似的数据输出呈现设备,这是本领域已知的。
为了在打印机250与外部源(诸如计算机系统112、112a......112η)之间通信,通信接口 242可以可操作地包括在打印机250中或者耦合至打印机250。通信接口 242例如可以是如针对打印机250所示的用于直接连接至计算机系统112的接口或者用于连接至局域网、以太网、内联网或者其他适合的网络144的接口。通信接口还可以连接至公共交换电话网(PSTN)或者POTS(简易老式电话系统),其可以促进与网络144的通信或者到计算机系统112、112a......112η或者其他设备的直接连接。还可以采用专用的和远程的网络。可以使用本领域所公知的任何适合的可商购的通信设备或者网络。如上所述,除了计算机系统112、112a......112η以外,通信接口 242可以提供与其他设备的直接或者间接以及有线或者无线的通信,其他设备诸如外部硬盘驱动器、可移动存储器设备(诸如USB闪存驱动器)或者其他存储设备、RFID标签读取器、条形码扫描仪、另一打印机以及其他数据源。经由通信接口 242与打印机250通信的任何设备可以是诸如向打印机250传入XML数据流的传入数据源,例如包括存储在打印服务器中的XML打印数据、USB闪存驱动器或者经由通信接口 242向打印机250传输的其他设备。
还示出了企业资源规划(ERP)系统188,其例如可以是直接或者经由网络144而向打印机250传输XML数据的仓库管理系统。ERP系统188可以发起针对诸如条形码标贴的打印信息或者对诸如RFID数据的编码信息的请求。当然与计算机系统112、112a......112η类似,可以使用任何企业计算机系统,并且本发明不限于与任何类型的企业计算机系统结合使用。
对于示出了根据本发明的一个实施方式的打印机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的流程图的相应过程的部分。
ASCII 透明 UTF-16BE UTF-16LE ASCII 透明 ASCII 透明 UTF-16LEUTF-16LEUTF-16BEUTF-16BEU 丁 F-16BE UTF-16LE ASCII 透明 UTF-16LE UTF-16BE ASCII 透明 UTF-16BE UTF-16LE ASCII 透明字符返闯 /换行 (CRihBBOM< OdOa3c3fOOOdOOOa OdOOOaOO003c003f 3c003f00OdOa3cO03fOOOdOa003c003fOdOOOaOO003c003fOdOOOaOO3c3fOOOdOOOa3c003f00OOOdOOOa3c3fOdOa OdOafeff fffe003c003f 3c003fl)0 OOOdOOOaefbbbf3c3fOOOdOOOa OdOOOaOOfffe feff3c003f00 003c003fOdOOOaOOefbbbf3c3fOOOdOOOa OdOOOaOOfeff fffe003c003f 3c003f00OdOaefbbbf3c3f新肌编码ASCII透明UTF-16BEUTF-16LEUTF-16LEUTF-16BEUTF-16BE ASCII 透明 UTF-16LE ASCII 透明 UTF-16BE UTF-16LE ASCII 透明 UTF-16LE UTF46BE ASCII 透明 UTF-16BE UTF-16LE ASCII 透明图2流程44-46-4844-60-62-6444-60-80-8444-60-62-6644-60-62-6444-60-80-8244-46-4844-60-62-6644-46-4844-60-62-6444-60-80-8444-46-4844-60-80-8444-60-62-6444-46-4844-60-62-64 44-6 請-8444-46-48情况cdef转换A-AB-BL-LA-LA-BL-BL-AB-LB-AA-FEFF-BA-FFFE-LB-EFBBBF-AB-FFFE-LL-FEFF-BL-EFBBBF-AB-FEFF-BL-FFFE-LA-EFBBBF-A
A = ASCII 透明
B = UTF-16BE
L = UTF-16LE
FEFF = UTF-16BE BOM
FFFE = UTF-16LE BOM
EFBBBF = UTF-8B0M
通过执行对传入数据流的字节级检查,以及寻找关键字位置处的空0x00字节的存在和/或不存在,本发明的实施方式能够唯一地标识当前的数据流匹配18种转换情况中的哪一种。并且18种转换情况中的每一种可以用于唯一地标识正在使用哪种可能的编码方案(ASCII 透明的、UTF-16BE 或者 UTF-16LE)。
再次并且更加具体地参考图2的流程图,给出了 XML编码方案的自动检测的方法, 并且按照流程图所示出的次序和决策。作为该方法的前驱,并且如下文关于框92详述的, 本发明实施方式的方法可以依赖于传入数据流的当前编码方案的知识。由此,如果需要,方法可以开始于在到达下文描述的框90之前的方法的第一轮期间,将传入数据流的当前编码方案存储到诸如可能被访问的存储器中,或者该步骤可以在方法开始之前进行。存储当前编码方案可以通过诸如使用日志文件或者仅维护具有当前编码方案的指示的RAM地址来执行。另外,在当前编码方案是ASCII透明的时,存储当前编码方案可以仅需要不再将之前存储的非ASCII透明的编码方案表示为当前编码方案,并且,例如,当前编码方案默认地确定或者由ASCII透明的编码方案的特性来实时确定。例如,打印机可以跟踪记录当前编11前码态在编状码方案,并且使用本发明的方法来检测当前编码方案的改变(其继而被标识为打印机将要跟踪记录的当前编码方案),从而按照本发明的实施方式来操作。存储当前编码方案的方式对于本发明的实施方式不是特定的。
如开始框10所标识的,方法开始,随后初始化(创建和/或起始)并且清除“先进先出”(FIF0)数据缓冲器和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数据是良好形成的并包含有Β0Μ,并且可以使用标准的成品解析器来解析。包括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之间的相似和差异中得到例证。这两种转换情况的0 /1^和〈?序列分别是OdOOOaOO 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编码方案及其字节顺序的检测和确定,打印服务器可以插入适当的Β0Μ,并且进一步向一个或者多个打印机传输一个或者多个传入XML数据流。这允许单个设备(打印机)执行在没有UTF-16字节序标记(BOM) 或者编码声明的情况下检测和确定一个或者多个传入XML数据流中用于XML声明的UTF-16 编码方案及其字节顺序所需要的处理,从而允许随后的下游设备能够依赖于XML数据流中目前是良好形成的XML语句中的Β0Μ。
类似地,作为本发明的又一示例性实施方式,专有软件打印驱动可以用于执行在没有UTF-16字节序标记( BOM)或者编码声明的情况下检测和确定一个或者多个传入XML 数据流中用于XML声明的UTF-16编码方案及其字节顺序所需的处理,从而允许诸如打印机的随后的下游设备能够依赖于XML数据流中目前是良好形成的XML语句中的Β0Μ。
以类似的方式,在本发明的又一示例性实施方式中可以包括在一个或者多个数据源和一个或者多个其他设备之间操作的任何电子设备,用于在没有UTF-16字节序标记 (BOM)或者编码声明的情况下检测和确定传入至电子设备的一个或者多个传入XML数据流中用于XML声明的UTF-16编码方案及其字节顺序。例如,条形码扫描仪或者RFID标签读取器可以分别接收和标识编码在诸如条形码或者RFID标签上或者其他对象中的数据或者 XML数据。而且,条形码扫描仪或者RFID标签读取器或者与条形码扫描仪或者RFID标签读取器相关联的软件,将接收到的数据作为XML数据或者XML数据的一部分向另一设备传输,或者向另一设备传输接收到的XML数据。因此,条形码扫描仪或者RFID读取器或者与条形码扫描仪或者RFID读取器相关联的软件可以(类似于打印服务器可能的)操作用以在没有字节序标记的情况下自动地确定传入至条形码扫描仪或者RFID标签读取器的传入数据流中的UTF-16编码方案。而且,由此,响应于UTF-16编码方案及其字节顺序的检测和确定,条形码扫描仪或者RFID标签读取器可以插入适合的Β0Μ,并且进一步向一个或者多个其他设备传输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,M 牙(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的设备和系统)。
本领域技术人员将会想到对此处描述的本发明的多种修改和其他实施方式,属于所述多种修改和其他实施方式的这些发明具有以上描述和相关联的附图中提出的教导的益处。因此,可以理解,本发明不限制于所公开的具体实施方式
,并且旨在将修改、等同物和其他实施方式包括在所附权利要求的范围内。
权利要求
1.一种方法,包括在从第一编码方案向第二编码方案的转换处,在没有字节序标记的情况下自动确定传入数据流中的UTF-16编码方案,其中所述第二编码方案是UTF-16编码方案。
2.根据权利要求I所述的方法,其中在从所述第一编码方案向UTF-16编码方案的所述转换处自动确定UTF-16编码方案包括 接收所述传入数据流中的结构标记语言数据;以及 根据自动确定的UTF-16编码方案来处理所述传入数据流的随后部分。
3.根据权利要求I所述的方法,其中自动确定UTF-16编码方案包括 接收所述传入数据流中的结构标记语言数据;以及 存储所述传入数据流的当前编码状态,作为自动确定的UTF-16编码方案。
4.根据权利要求I所述的方法,其中自动确定UTF-16编码方案包括 在打印服务器处接收所述传入数据流中的XML数据; 在所述转换处向所述传入数据流中插入标识自动确定的所述传入数据流中的UTF-16编码方案的字节序标记,以创建增强的传入数据流;以及 向打印机传输所述增强的传入XML数据流。
5.根据权利要求I所述的方法,其中所述传入数据流包括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编码方案的字节序标记,以创建增强的传入数据流,以及 传输所述增强的传入数据流;以及 打印机,可通信地连接至所述打印服务器,并且配置用于接收所述增强的传入数据流。
全文摘要
本发明提供了在没有UTF-16字节序标记(BOM)或者编码声明的情况下自动检测和确定传入XML数据流中用于XML声明的UTF-16编码方案及其字节顺序的打印机和其他电子设备、系统、方法和计算机程序产品。这允许即使在XML数据没有以BOM或者编码声明开始时,也可以自动和明确地精确检测混合编码环境(诸如,来自使用不止一种编码方案的多个源)内以UTF-16编码的XML数据。
文档编号G06F17/22GK102982013SQ20121018122
公开日2013年3月20日 申请日期2008年7月31日 优先权日2007年11月14日
发明者F·C·苏希, J·S·韦特斯泰恩 申请人:Zih公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1