XML文件压缩的制作方法

文档序号:15575415发布日期:2018-09-29 05:25阅读:564来源:国知局

可扩展标记语言(xml)用于以由机器和人都可读的格式对文档编码。虽然以xml编码的文档常常将不使计算机独自做任何事情,结合被设计为解释xml文档的应用,xml文档可以使那个应用基于当对xml文档编码时使用的标签来执行某些功能,显示某些信息,使用某个格式化,等等。因此,开发了xml标准以便于以正被使用的特定设备不可知的格式的在应用和设备之间的通信。标准可以规定某些关键字或“标签”,其将触发特定的功能被执行。可以接着在设备和/或应用中以对那个设备和/或应用适当的方式实现这些功能。

附图说明

关于结合附图理解的下面的具体实施方式可以更充分认识到本申请,其中相似的附图标记始终指代相似的部分,并且在附图中:

图1示出了与xml文件压缩相关联的示例性文件和数据结构。

图2示出了与xml文件压缩相关联的示例性操作的流程图。

图3示出了与xml文件压缩相关联的示例性操作的另一流程图。

图4示出了与xml文件压缩相关联的示例性打印容器。

图5示出了与xml文件压缩相关联的示例性打印机。

图6示出了与xml文件压缩相关联的另一示例性打印机。

图7示出了示例性打印机,其中示例性系统和方法及等效形式可以操作。

具体实施方式

描述了与可扩展标记语言(xml)文件压缩相关联的系统、方法和等效形式。在各种示例中,将xml文件存储在没有大量可用存储器的设备或项目上可能是合乎需要的。这些项目可以被设计为低成本的,且因此包括较大的存储器存储空间而不影响生产这些项目的成本可能是不实际的。例如,打印容器(例如油墨盒)是大众市场项目,且容器的定价可能是竞争性的,且因此使用具有额外空间的存储器资源可能是浪费的和不必要地昂贵的。

因此,可以用便于减小xml文件的存储器影响的方式来压缩存储在打印容器上的xml文件。虽然当打印容器安装在打印机中时打印机可能花费一些时间来解压缩文件,考虑到设计打印的许多时间围绕打印机的移动机械部件循环,这个处理时间可以是可忽略的。虽然描述了涉及打印容器的示例,本文所述的技术可能在其它领域和/或应用中是可用的。

因此,公开了压缩xml文件的方式,其用于存储这些xml文件。最终,xml文件可以被存储为一组索引和xml文件的压缩版本。可以通过将xml文件的文本分成三种类型的索引来创建索引:标签、属性和值。可以接着根据索引来转换xml文件。索引和压缩的xml文件可以接着存储在例如打印容器中。当打印容器插到打印机内时,打印机可以使用索引将压缩的xml文件解压缩成原始xml文件,允许打印机使用xml文件来执行在xml文件中描述的行动。

图1示出了与xml文件压缩相关联的示例文件和数据结构。应认识到,在图1中描绘的项目是例证性示例,且很多不同的文件、数据结构、用于压缩xml文件的技术等可以根据各种示例来操作。图1示出了xml文件100。xml文件100被示为具有被标示为l00到l10的11行。在这里所示的xml文件100由三种元素类型构成:标签、属性和值。

如本文使用的,标签通常指定义待执行的行动的指令。在xml文件中,例如“<defaults>”、“<spit…/>”和“<routines>”是标签的示例。标签可以包括其它嵌套的标签。在xml文件中示出了两个标签句法。“<defaults>”标签在l00上打开并在l10上以关闭标签“</defaults>”结束,而“<spit…/>”标签在同一行上开始和结束。在这个示例中,为了例证性目的,在不同的行上示出了每个标签,虽然可以在同一行上写多个标签。

标签也可以包括属性。在xml文件100中,“模式”、“频率”和“粒度”是属性的示例。如本文使用的,标签的属性可以用于规定由那个标签触发的唯一行动的参数。此外,属性可以被分配值。在xml文件100中,“1”、“normal”和“thermal_mode”是值的示例。如本文使用的,可以使用与属性相关联的值以规定由属性正修改的标签触发的唯一行动的参数。作为例证,“<wiper-action…/>”具有“速度”属性,其被设置为值“1”。以这种方式使用具有“<wiper-action…/>”标签的“速度”属性可以使与“<wiper-action…/>”标签相关联的行动以某种方式表现。例如,“<wiper-action…/>”标签可以使与打印机相关联的擦拭器开启,且“速度”属性可以用于规定擦拭器将操作的速度,其在这种情况下是“1”。

为了便于上面所述的某些压缩和压缩技术,xml文件100具有特定已知的一组句法可能是合乎需要的。这组句法可以是可能的xml句法的子集。例如,虽然xml可以支持具有在它们中的空格字符的值,确保在xml文件100中的值使用下划线或虚线来代替空格字符(例如在行l03中的“thermal_mode”和在行l02中的“action-defaults”)可能是合乎需要的。使用句法的子集可以通过使确保没有由于两个短语具有压缩到同一压缩短语的两个不同的句法而引起的冲突变得更容易来使压缩、压缩、解压缩和解压缩xml文件100变得更容易和/或更有效。

如上面讨论的,以压缩格式存储xml文件100可能是合乎需要的。虽然如所示的xml文件100可能足够短,使得压缩将是无保证的,对于包含具有标签、属性和值的更多重复的更彻底的指令的较长xml文件,压缩可能是合乎需要的。为了压缩xml文件100,首先可以创建索引110。这可以通过识别在xml文件100中的标签、属性和值并将它们分到它们的单独类别内来实现。在这里,xml文件100包括8个标签、5个属性和6个值。在各种示例中,进一步对标签、属性和值分类以帮助xml文件100的压缩和/或稍后的压缩通过可能是合乎需要的。在这里,标签、属性和值首先按照它们的项目频率并接着按字母顺序被分类。例如,“模式”属性出现在行l03和l09中,而“频率”属性只出现在行l03中。类似地,标签“<defaults>”出现在行l00和l10中,而标签“<progress…/>”只出现在行l08中。

虽然示出了对标签、属性和值编索引的一种方法,可以替代地使用其它方法。作为例证,在索引110中,标签、属性和值都使用同一范围的索引号1-8。在其它示例中,可替代地设计索引,其中标签、属性和值每个被分配非重叠的索引范围。其它索引分配可能也是适当的。

一旦索引110被创建,将索引编码成编码索引115和将xml文件100压缩成压缩的xml文件120就可以开始。在图1中,示出了编码索引115的一个可能的版本。带括弧的项目可表示在编码索引115中的专用标识符,其用于指示在索引110的组成部分之间的间隔。在一个示例中,分隔符可以是例如字符,例如空格、标点符号、组合、已知的值等。在示例编码索引115中,使用5个字符:指示标签索引的开始的“[tag_start]”、指示属性索引的开始的“[attribute_start]”、指示值索引的开始的“[value_start]”、指示在索引110的组成部分之间的间隔的“[separator]”和指示编码索引115的结束的“[index_end]”。在编码索引115和压缩的xml文件120被存储为单个项目的情况下,“[index_end]”分隔符也可以指示压缩的xml文件120的开始。此外,一些分隔符可以由相同的专用标识符表示。

如上面讨论的,在所示的示例索引110中,标签、属性和值每个使用同一索引范围,以及索引范围从已知的值开始。因此,编码索引115可能不需要识别在编码索引115内的标签、属性和密钥的索引值。替代地,这个信息可以被重构为将压缩的xml文件120解压缩的过程的一部分。在标签、属性和值被分配变化的索引的示例实现中,这个信息也可以存储在编码索引115中。

为了创建压缩的xml文件120,可以根据索引110来转换xml文件120。在这里,xml文件100被转换,使得在压缩的xml文件120中的每对字符(例如“t2”)相应于xml文件100的特定标签、属性或值。可以通过检查索引110来看到这个相应性。特别地,第一“<defaults>”标签可以被识别为具有在索引110中的索引2。因此,压缩的xml文件120的第一t2相应于在xml文件100中的第一“<defaults>”标签,因为它是在索引110中的标签(由t指示)号2。类似地,来自xml文件100的行l03的短语“<spitfrequency=“6000”mode=“thermal_mode”/>6”相应于读取“t7a2v2a1v6te”的压缩的xml文件120的部分,“t7a2v2a1v6te”跨越压缩的xml文件120的第一和第二行。值得注意的是,压缩的xml文件120和编码索引115可以根据这些项目如何被创建而具有或多或少的字符,包括可以服务于各种目的的额外符号。

在压缩的xml文件120的这个示例版本中,使用指示标签末尾的专用符号。被表示为“te”的这个符号用于向解释压缩的xml文件120的应用指示最近的开放标签在这里应是闭合的。作为例证,在压缩的xml文件120中的最后一个“te”相应于在xml文件100的行l10上的“</defaults>”标签的闭合。在各种示例中,使用te标签可能是合乎需要的,因为压缩的某些形式越有效,字符就重复得越多。这也可能是为什么按照项目频率对标签索引分类是有用的原因,因为相同索引的增加的使用可以进一步增加压缩效率。

因此,一旦xml文件100压缩成编码索引115和压缩的xml文件120——其组合将被称为已转换文件,已转换文件就可以通过使用压缩技术在尺寸上进一步减小。哪种压缩技术被使用可以取决于编码索引115和压缩的xml文件120如何被创建,因为这些项目的创建可以设计成对特定的数据压缩技术是最佳的。

不管已转换文件是否进一步被压缩,已转换文件都可以接着存储在项目的存储器中,xml文件100与该项目相关联。一个示例项目——其中xml文件100的这种类型的压缩可能是合乎需要的——是包含打印材料的供应品的打印容器。打印材料和/或打印容器可以设计成对特定类型的打印机行得通。打印机可以是归类为例如为家庭或办公室用途设计的桌上型打印机、可以每小时输出数千个项目的工业规模打印机等的二维打印机。打印机也可以是三维打印机。如上面提到的,也可在打印领域之外应用涉及压缩xml文件的这些技术。

根据打印容器相关于的打印机的类型,打印材料可以包括油墨、色粉、清洁液、3d打印机的构建材料等。因此在这个示例中,xml文件100可以包含打印容器被安装于的打印机的指令。这些指令可以告诉打印机如何使用打印材料来有效地操作。因此,这些指令可以与清洁打印机、以另外方式检修打印机、使用打印材料进行打印等有关。其它信息(例如安全信息、一般更新)可以用这种方式传送到打印机。

一旦打印容器安装到打印机内,那个打印机就可以从打印容器的存储器取回已转换文件,并接着开始解压缩,并将已转换文件解压缩成xml文件100。文件如何被解压缩将取决于所使用的压缩技术。将已转换文件解压缩可以与创建压缩的xml文件相反地操作。因为可以将句法限制到已知的一组句法,所以可以通过基于在压缩的xml文件120中的标签、属性和值的特定排序填充句法来重新创建xml文件100。在将已转换文件解压缩成xml文件100之后,打印机可以接着使用指令来执行由xml文件100所述的功能(例如清洁打印机、检修打印机、使用在打印容器中的材料进行打印)。

在一些示例中,在将已转换文件解压缩和解压缩回到xml文件100之后,打印机可以组合来自xml文件100的指令与一组所存储的指令。这些所存储的指令可以是打印机可使用的一组默认指令,而不考虑哪种打印材料被安装,除非被来自xml文件例如xml文件100的指令盖写。

应认识到,在下面的描述中,阐述了很多特定的细节以提供对示例的彻底理解。然而,应认识到,可以在没有这些细节的情况下实施示例。在其它实例中,可以不详细描述方法和结构,以便避免使示例的描述不必要地模糊。此外,示例可以彼此组合来被使用。

如本文中使用的“模块”包括但不限于存储在计算机可读介质上或在机器上执行的硬件、固件、软件,和/或每个的组合以执行功能或行动和/或引起来自另一模块、方法和/或系统的功能或行动。模块可以包括软件控制的微处理器、分立模块、模拟电路、数字电路、编程模块设备、包含指令的存储器设备等。模块可以包括门、门的组合或其它电路部件。在多个逻辑模块被描述的场合,将多个逻辑模块合并到一个物理模块内也许是可能的。类似地,在单个逻辑模块被描述的场合,将单个逻辑模块分布在多个物理模块之间也许是可能的。

图2示出了与xml文件压缩相关联的示例方法200。方法200可以体现在存储处理器可以执行指令的非临时计算机可读介质上。指令当由处理器执行时可以使处理器执行方法200。在其它示例中,方法200可以存在于专用集成电路的逻辑门和/或ram内。

方法200包括在210从可扩展标记语言(xml)文件生成索引。在各种示例中,xml文件可以包含控制打印机的操作的指令。xml文件可以包含基于存储在打印材料容器(例如油墨盒)中的打印材料的类型来控制打印机的操作的指令。作为例证,不同的材料可以用不同的方式影响打印机的部件并可以使那些部件具有不同的维修需要。因此,与存储特定打印材料的打印容器相关联的xml文件也许能够控制打印机以执行适合于该特定打印材料的各种功能,包括维修功能。xml文件也可以包括与例如清洁打印机、检修打印机、使用打印材料进行打印等有关的其它指令。

这组索引可以包括几个索引,包括标签索引、属性索引和值索引。标签索引可以对在xml文件中使用的标签项目编索引。值索引可以对xml文件中的值项目编索引。在一些示例中,在标签索引、属性索引和值索引中的项目可以在它们的相应索引内根据在xml文件内的项目的频率被排序。根据项目频率对索引排序可能是合乎需要的,因为某些压缩技术实现更大的压缩速率,更多的项目被重复。因此,当索引范围重叠时,这些索引的重复使用可以帮助实现更大的压缩速率。

在各种示例中,xml文件可以包含控制打印机的操作的指令。xml文件可以包含基于存储在打印机材料容器(例如油墨盒)中的打印材料的类型来控制打印机的操作的指令。作为例证,不同的材料可以用不同的方式影响打印机的部件并可以使那些部件具有不同的维修需要。因此,与存储特定打印材料的打印容器相关联的xml文件也许能够控制打印机以执行适合于该特定打印材料的各种功能,包括维修功能。xml文件也可以包括与例如清洁打印机、检修打印机、使用打印材料进行打印等有关的其它指令。

方法200还可以包括在220将xml文件压缩成xml文件的压缩版本。可以通过根据索引转换xml文件来压缩xml文件的压缩版本。在一些示例中,为了便于在210的索引的创建、在220的xml文件的压缩和在稍后的点的xml文件的嵌在解压缩,xml文件可以使用xml句法的已知子集。可以预先选择这些句法,使得例如对于任何两个给定的不同xml语句,这两个语句的压缩版本是不同的。类似地,也可以选择句法,使得对于任何两个给定的不同压缩语句,这些语句的解压缩版本也是不同的。

方法200还包括生成已转换文件。已转换文件可以由在行动210创建的这组索引和在行动220创建的xml文件的压缩版本构成。作为例证,索引和xml文件的压缩版本可以连接成单个文件以创建已转换文件。

图3示出了与xml文件压缩相关联的方法300。方法300包括与上面关于方法200(图2)所述的行动类似的几个行动。例如,方法300包括在310从xml文件生成一组索引,在320将xml文件压缩成xml文件的压缩版本,以及在330生成包括这组索引和xml文件的压缩版本的已转换文件。

方法300还包括在340压缩已转换文件。压缩已转换文件还可以包括减小已转换文件的总文件尺寸。方法300还包括在350将已转换文件存储在存储器上。在xml文件包含控制与打印材料相关联的打印机的操作的指令的示例中,已转换文件可以存储在保持打印材料的供应品的打印材料容器的存储器上。这可以允许打印机特别配置成使用各种打印材料而不必将这个信息存储在存储器本身中。这可能在例如配置打印机以使用新打印材料、节省在打印机内的存储器空间等时是合乎需要的。

图4示出了与可扩展标记语言(xml)文件压缩相关联的打印容器400。打印容器400包括打印材料410的供应品。打印材料410可以是例如油墨、清洁液等。打印容器400还包括打印材料分配器420。打印材料分配器420可以采取很多形式,取决于打印容器400被插入的打印机设计成如何操作。例如,如果打印机将打印材料410从待弹射的打印容器400拉到在另一位置处的打印介质上,则打印材料分配器420可以与从打印容器400拉打印材料410的打印机的机构通过界面连接。可选地,如果打印容器是设计成将打印材料410直接弹射到打印介质上的盒,则打印材料分配器420可以直接分配打印材料410。

打印容器还包括存储器430。存储器430包括标签索引432。标签索引432可以包含来自可扩展标记语言(xml)文件的标签项目的列表。可以根据在xml文件中的标签项目的频率来组织标签项目。存储器430还包括属性索引434。属性索引434可以包含来自xml文件的属性项目的列表。可以根据在xml文件中的属性项目的频率在属性索引434中组织属性项目。存储器430还包括值索引436。值索引436可以包含来自xml文件的值项目的列表。可以根据在xml文件中的值项目的频率在值索引436中组织值项目。

存储器430还包括压缩的xml文件438。可以通过根据标签索引、属性索引和值索引转换xml文件来创建xml文件438的压缩版本。在一些示例中,标签索引432、属性索引434、值索引436和压缩的xml文件438可以用压缩格式存储在存储器430中。在各种示例中,打印容器400被插入的打印机可以使用标签索引、属性索引、值索引和xml文件的压缩版本来重新创建xml文件。因此,重新创建的xml文件可以控制与打印材料410、打印容器400、打印材料分配器420等中的一个或多个相关联的打印机的操作。

图5示出了与可扩展标记语言(xml)文件压缩相关联的打印机500。打印机500包括外壳510。外壳510可以接收具有打印材料的供应品的打印容器599。打印材料可以是例如油墨、色粉、清洁液等。

打印机500还包括通信模块520。通信模块520可以包含一组索引和来自打印容器599的压缩的xml文件。可以从这组索引以及未存储在打印容器599上的原始xml文件创建压缩的xml文件。在各种示例中,通信模块520可以从在打印容器599上的存储器取回这组索引和压缩的xml文件。因此在这个示例中,外壳510和打印容器599可以包含适当的电子耦合器以便于在通信模块520和打印容器599上的存储器之间的通信。

打印机500还包括提取模块530。提取模块530可以生成解压缩的xml文件。可以通过根据这组索引转换压缩的xml文件来生成解压缩的xml文件。

打印机500还包括控制模块540。控制模块540可以根据从解压缩的xml文件取回的指令来控制打印机500的操作。在各种示例中,控制模块540可以控制下来操作中的一个或多个:清洁打印机的部件、检修打印机的部件、使用包含在打印容器599中的打印材料进行打印等。

图6示出了与xml文件压缩相关联的打印机600。打印机600包括与上面关于打印机500所述的项目类似的项目。例如,打印机600包括接纳具有打印材料的供应品的打印容器699的外壳610、通信模块620、提取模块630和控制模块640。

打印机600还包括解压缩模块650。解压缩模块650可以将这组索引和压缩的xml文件解压缩。当这些项目以压缩格式存储在打印容器699的存储器上以进一步减小存储在打印容器699上的数据的数量时,可以执行压缩的xml文件和索引的解压缩。

打印机600还包括存储器660。存储器660可以存储一组默认指令。因此,当解压缩的xml文件修改默认指令时,控制模块640可以根据从解压缩的xml文件取回的指令来控制打印机的操作。如上面讨论的,打印机的操作可以与清洁打印机、检修打印机、使用打印材料进行打印等有关。

图7示出了示例计算机,其中示例系统和方法及等效形式可以操作。示例计算机可以包括部件,例如由总线730连接的处理器710和存储器720。计算机700还包括xml文件压缩模块740。xml文件压缩模块740可以单独地或组合地执行上面关于示例系统、方法、装置等所述的各种功能。在不同的示例中,xml文件压缩模块740可以在硬件、软件、固件、专用集成电路和/或其组合中被实现为存储处理器可以执行指令的非临时计算机可读介质。

指令也可以作为临时存储在存储器720中的数据750和/或过程760被呈递到计算机700,并接着由处理器710执行。处理器710可以是各种处理器,包括双重微处理器和其它多处理器架构。存储器720可以包括非易失性存储器(例如只读存储器)和/或易失性存储器(例如随机存取存储器)。存储器720也可以是例如磁盘驱动器、固态磁盘驱动器、软盘驱动器、磁带驱动器、闪存卡、光盘等。因此,存储器720可以存储过程760和/或数据750。计算机700也可以在很多配置(未示出)中与包括计算机、打印机、外围设备等的其它设备相关联。

应认识到,提供所公开的示例的以前的描述以使本领域中的任何技术人员能够制造或使用本公开。对这些示例的各种修改将对本领域中的技术人员容易明显,并且本文定义的一般原理可以适用于其它示例而不偏离本公开的精神或范围。因此,本公开并没有被规定为限于本文所示的示例,但应符合与本文公开的原理和新颖特征一致的最宽范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1