用于显示文档的方法、系统、计算机程序产品和存储设备的制作方法

文档序号:6406524阅读:148来源:国知局

专利名称::用于显示文档的方法、系统、计算机程序产品和存储设备的制作方法
技术领域
:本发明涉及一种显示结构化文档的方法,包括以下步骤加载结构化文档;把结构化文档解析成分层结构。本发明还涉及一种显示结构化文档的系统,所述系统包括加载装置,用于加载结构化文档;解析装置,用于把结构化文档解析成分层结构。本发明还涉及一种包括程序代码装置的计算机程序产品,所述程序代码装置用来执行上述方法。本发明还涉及一种包括上述计算机程序产品的存储设备。从美国专利5,987,256中可以获悉这类方法的实施例。在此,描述了一种用于对由诸如HTML、JAVA之类的对象指定语言指定的对象进行处理的方法。同样,也可以使用依赖于需要再现程序的相对定位的其它指定语言。这种再现程序使用最小的资源集合,并对供具有有限处理资源的目标设备中使用的代码进行翻译。这些有限的处理资源不适合于HTML再现程序、JAVA虚拟机或其它再现引擎的存储与执行。关于这类对象的数据是由如下过程产生的,所述过程包括首先接收指定语言的数据组,用适合于第二再现程序的中间对象语言将第一数据组翻译成第二数据组,所述第二再现程序适用于由使用实际目标显示坐标的目标设备进行再现。第二数据组是存储在机器可读存储设备中的,以供由稀少的客户端平台稍后进行检索和执行。例如,一旦把HTML文件加载到翻译设备中,就加载了关于目标设备的信息。然后,通过搜索HTML标记并根据这类标记创建分层结构,来解析HTML文件。通过利用目标设备的参数和所述分层结构,所述方法根据适合于目标设备的尺寸和调色板的分层结构来执行HTML再现。这在目标设备的屏幕上确定了所有用HTML代码表示的图形对象的坐标。例如,将段落自动换行,将水平刻度尺置于特定位置上,选择颜色,并且执行其它设备特定的处理。本发明的一个目的是提供一种根据序言所述的方法,它实现了文档内容到显示尺寸的更加灵活的自适应性。为了实现这一目的,该方法的特征在于,所述方法进一步包括以下步骤计算分层结构的复杂度;遍历分层结构;以及依据分层结构的遍历部分的复杂度,有条件地显示一部分结构化文档。通过把结构化文档解析成分层结构,例如文档对象模型(DOM)树,将结构化文档再分成较不复杂的单元。接着,通过计算这些单元的复杂度来计算这个树型结构的复杂度。树的节点的复杂度是节点大小的量度,优选地包括节点的子树的尺寸。这一尺寸例如可以随单元的种类而定(像段落或表一样),以及随单元需要的文档空间的数量而定。通过在遍历树期间使用节点的复杂度,在运行时判断节点及其子树是否能被全面显示在显示设备上。在权利要求2中描述了根据本发明的方法的一个实施例。通过将具有其子树的节点的复杂度与预定阈值进行比较,可以容易地判断出能向用户全面显示的文档的部分。该阈值可以取决于显示设备的显示尺寸。该阈值还可以取决于用户偏好或例如所使用的字体大小。在权利要求权利要求3中描述了根据本发明的方法的一个实施例。通过把引用添加到要在独立页面上显示的部分文档中,用户不会松脱开全部文档内容的环境。给用户提供公用用户接口,例如统一资源定位符(URL),所述公用用户接口引用在独立页面上显示的部分文档。在权利要求4中描述了根据本发明的方法的一个实施例。通过把文档分成较不复杂单元的元素,能够考虑每个元素的属性来确定元素的复杂度。例如,由于表边框和单元格边界需要额外的空间,因而表元素比段落元素更复杂。这导致表比段落有更高的复杂度数。通过考虑这些复杂度数,就能更好地判断显示设备是否能依旧将文档的一部分显示在一个页面上。本发明的另一个目的是提供一种根据导言所述的系统,它实现了文档内容到显示尺寸的更加灵活的自适应性。为了实现这个目的,该系统的其特征在于,所述系统进一步包括计算装置,用于计算分层结构的复杂度;遍历装置,用于遍历分层结构;和显示装置,用于根据分层结构的遍历部分的复杂度来有条件地显示结构化文档的一部分。本发明的另一个目的是提供一种实现文档内容到显示尺寸的更加灵活的自适应性的计算机程序代码装置以及存储设备。为了实现这个目的,将所述程序代码装置设计成能执行根据本发明的方法,并且所述存储设备包括根据本发明的计算机程序产品。将通过由下列附图举例说明的实施例来描述本发明图1举例说明了BBC新闻站点;图2举例说明了示意性表布局的示例;图3以示意性的方式举例说明了根据本发明的方法的主要步骤;图4举例说明了包含在页面内的表层次的划分示例;图5以示意性的方式举例说明了包括根据本发明的系统的设备的主要部分。越来越多的设备都变成能使用互联网的设备,而且人们期待这一数目在未来还要增加。随着互联网访问变得更为普遍,提供这种访问的设备将变得更加易于移动,大多数人用以查看互联网内容的显示器的尺寸将会缩小。目前,大多数互联网内容都被编撰成在诸如计算机监视器之类的较大显示设备上查看效果最佳。即使是当显示在相对较大的移动设备屏幕(诸如个人数字助理(PDA)屏幕)上时,内容的可用性也可能会明显降低。诸如页面复杂度、导航帮助和内容的适用性之类的许多因素,都对互联网内容的可用性有影响。一个最为常见的话题就是设计和文档结构的简易性。这在移动设备上更加重要。例如,在PC上运行的典型的浏览器可具有800×600个像素的窗口尺寸以供查看内容。对于菜单、工具栏及其它特征而言,这不包括Web浏览器所使用的其它屏幕实际状况。目前,即使是在高端的移动设备上,成本和实际发行也限制在320×240个像素的整体屏幕尺寸。移动电话甚至可以带有仅100个像素的正方形显示器。尝试显示已为小型设备上的大屏幕编撰的常规web页面给用户带来了问题,因为如此小的页面在屏幕上是立即可见的。因此,用户失掉他们位于页面上的环境,并且页面的导航复杂度增加。这为想要以移动设备为目标的web程序设计者带来了问题,因为移动设备具有与常规台式PC大不相同的可用性需求。目前移动设备的服务,比如像无线应用协议(WAP)或I模式,通过使用标记语言解决了这个问题,所述标记语言是由万维网协会(W3C)定义的HTML功能的子集。就WAP来说,这是具有附加结构特征的非常不同的标记语言,所述附加结构特征用于改善导航(WAP中的“卡片组”隐喻)。I模式使用了HTML的删节版本,该版本的大量功能都被删除了。在这两种情况下,都必须重新编撰内容或以普通的格式编撰内容,并且所述内容自动地适合于在一种或多种设备类型上使用,这可能会导致错误、不一致性和增加的维护工作。这带来的整体影响就是内容主要是为一种设备类型而发布的。在格式化Web页面的过程中,Web站点设计者往往使用表来提供HTML从未意图提供的控制,这个的基本原理可以是跨不同的Web浏览器提供一致的外观和感受;遵循针对于印刷材料而非基于Web的材料的安放风格(housestyle)规则;实现不可能的风格上的效果;或提供以适合于安放风格的方式在页面上编组某些元素的方法。图1举例说明了BBC新闻站点http://news.bbc.co.uk。这个新闻站点使用了多达四层嵌套的十一个表,以维护其布局。该例图示出了大约一半的页面内容,即使是在高分辨率的PC显示器上,用户也必须卷屏查看大部分的页面。所述内容大略要比高端移动设备上的显示器宽三倍、高四倍。这是一种高级别的复杂度,而且在Web站点当中很常见。在小显示设备上无法容易地显示出这一级别的复杂度,因此大大地影响了可用性。用户不但失掉了在他们位于页面上的周围环境,而且还被迫执行更多的用户界面操作,比如像点击、卷屏等等,以便找到他们想看的信息。提供环境和减少对用户交互的需要能够改善可用性。在帮助可用性方面,诸如缩放图像和汇总文本之类的技术是有用的,不过在像上面所举例说明的那些情况下,文档的内在复杂度降低了它在具有小显示器的设备上的可用性。一种改善可用性的方法就是减小这种内在的复杂度。图2举例说明了示意性表布局的示例。容器表200包括子表202、204、206、208和210。子表202包括二重子表212和214。为了减小容器表200的复杂度,代理服务器实现了根据本发明的方法。代理服务器是用来允许设备访问互联网内容的众所周知且通常使用的机制。代理服务器获得对互联网内容的请求并将这些请求传递到实际上包含所述内容的服务器上,并将返回的内容传递到发请求的客户端上。例如,使用这个来经防火墙提供互联网访问,或者使用这个来在将其发送给客户端之前改编内容。实现根据本发明的方法的代理服务器修改例如HTML文档的内容,以便降低web页面的复杂度。也可以对遵循像XML、XHTML等其它格式的文档进行修改,以便降低页面的复杂度。在web页面216上显示容器表200。例如,通过从主页面216中删除子表202的那些表,降低了页面216的复杂度,并且该页面变得更容易导航。页面216的复杂度的降低是按照两种主要方式执行的将页面分隔符插入到长页面中,以减少每一页上的内容数量;以及可以依据嵌套表的复杂度将所述嵌套表放置在独立页面中。使用用于格式化的表,使web页面被分成相关的部分,可以把这些部分放置在独立页面上,并带有到那些部分的超链接而不是原始内容。可以将具有许多嵌套的表的页面视为是树型结构,其中每个嵌套的表都是由树中的节点组成的。可以通过划分这个树来限制web页面内容的复杂度。图3以示意性的方式举例说明了根据本发明的方法的主要步骤。步骤S300是初始化步骤,在该步骤内代理服务器接收文档。在步骤S302内,代理服务器解析文档并且为它创建解析树。所创建的解析树遵循文档对象模型(DOM)。DOM是由万维网协会开发的程序接口技术规范。然而,解析树也可以是由基于流的HTML解析器构建的不太详细的树。这个基于流的HTML解析器搜索特定的HTML标记并且根据这些特定的HTML标记来创建更简易的树。基于流的解析器将页面解析成其组分页面元素。这些都是影响页面的整体结构以及格式化的页面的单独部分而不仅仅是单独的文本块。下列被认为是独立的页面元素段落、表、列表、预先格式化的文本、图像、表格、Java小程序。在下一步骤S304内,计算文档中的每个元素的复杂度。按照每个页面元素可显示的内容(即实际显示在屏幕上的图形元素)的尺寸乘以加权因数以计算出由页面元素本身引入的复杂度,来测量每个页面元素的复杂度。例如,由于表边框和单元格边界都需要额外的空间,所以表比简单的段落更为复杂,因此表的加权因数较高。诸如列表、表格和表之类的一些页面元素都可能包含嵌套的页面元素,例如列表项内的图像或多个段落,因此这些嵌套表元素的复杂度被加到了包含它们的页面元素的复杂度上。这些的复杂度值是文档自身的属性,而不是显示设备的属性。实际上,它是文档树的尺寸的量度,其中每个节点的“尺寸”都可能会随节点的类型而变化。正如下面描述的那样,只有阈值随显示器尺寸或其它外界因素而变化。例如,考虑如图4内举例说明的页面。接着,按照如下测量复杂度。首先,进行列表的复杂度量度,所述列表的复杂度量度在本示例中称为m。然后,为两个列表项中的每一个添加附加的复杂度系数,并且把它称为n。由此,列表及其结构的复杂度量度为(m+2n)这仅仅考虑了列表结构本身的复杂度。因此,只有水平和垂直间隔的影响需要从环绕的文本中分离出列表,以及分离每个元素。它没有考虑列表的实际内容的复杂度。独立地计算列表的实际内容的复杂度,并且将列表项和列表结构的复杂度求和,以给出该列表的总复杂度量度。一旦计算了列表结构本身的复杂度,就考虑组成每个列表项的页面元素的复杂度。第一项由两个段落组成。对于每个段落,将复杂度取为恒定加权因数p乘以段落中的可显示文本的字符中的长度。由此,整体来讲,可以把第一列表项的复杂度视为p(para1+para2)其中para1和para2分别是第一段落和第二段落的长度。按照上面描述的那样,测量包括一个文本段落及其复杂度的第二列表项。它还包括图像,按照加权因数i乘以其区域a来测量所述图像的复杂度。如下给出了这个列表元素的复杂度的量度p(para3)+ia由此,可以按如下计算整个列表的复杂度(m+2n)+(p(para1+para2))+(p(para3)+ia)按照将表中所有单元格的复杂度的总和,乘以由表t的基本加权因数乘以行数(Wrows)的加权值和列数(Wcolumns)的加权值组成的加权因数,来测量该表的复杂度twrowswcolumns(&Sigma;cell0cellmaxcomplexity(celln))]]>对于每个表来说,行和列的加权因数的值都是恒定的。对这个值的其它影响,像单元格间隔、填充尺寸和边框尺寸,都被当作全部元素的一部分来设置,而不是在每个单元格的基础上加以设置。因此,对于计算行和列的加权因数的值时,不考虑这些影响,并且为每个表都计算一次这些加权因数。当计算表的复杂度时,不考虑嵌套表的复杂度。由于计算表的复杂度的目的是根据这个复杂度量度来把表划分成子树,因而树中的每个节点的复杂度不该包括任何子女节点的复杂度,这是因为当对树进行划分时这些子女节点也许不会出现在相同的页面上,由此在这种情况下不会影响到它的复杂度。在步骤S306内,考虑解析树的节点以便按深度优先的方式遍历解析树。在下一步S308内,节点的复杂度被加到当前的复杂度计数中。在步骤S310内,将这个当前的复杂度计数与阈值进行比较。所述阈值取决于许多不限定的属性,例如显示器分辨率、字体大小和用户偏好。如果当前的复杂度计数低于阈值,那么就在步骤S312内将节点或页面元素写入到当前页面中。如果当前的复杂度计数大于阈值,那么该方法就前进至步骤S314。在步骤S314内,创建新页面并且重置当前的复杂度计数。在下一步骤S316内,将像统一资源定位符或URL这类的到新页面的超链接插入到当前的旧页面中,并且该方法前进至步骤S308。现在,在步骤S308内,把当前页面视为新页面。如果把页面元素写入到页面中,那么该方法就前进至步骤S306,并考虑下一个节点。当不存在要遍历的更多节点时,该方法就前进至步骤S320并且停止。对于HTML表,该方法稍有不同地执行。当将表写入到修改后的页面中时,通过按深度优先的方式遍历文档树,一次一个单元格地写出每个单元格的内容。如果在处理那个表的过程中遇到嵌套表并且该嵌套表太复杂以致于无法把它放置在当前页面中,那么就把当前页面及其复杂度计数推入到当前打开页面的堆栈中。为该嵌套表创建新页面,并且把到它的超链接添加至当前页面的当前单元格中。然后,将嵌套表写入到新页面中。一旦已经完全写入了嵌套表,那么就关闭该页面并从堆栈中弹出旧页面,以便能够写入原始表的其余内容。由于可以将表嵌套到任意深度,因而这是一种递归操作。在伪代码中,写入修改后的表的方法如下<prelisting-type="program-listing"><![CDATA[functionwrite_paragraph_element(paragraphElementpe){if(peislist){write_list(pe)}elseif(peisparagraph){write_paragraph(pe)int)current_page=new__page}foreachcellcincurrent_table{foreachparagraphelementpeinc{if(peisatable){write_table(pe)}else{write_paragraph_element(pe)}}}if((table_is_root_table_on_current_page)andnot(table_is_root_of_table_hierarchy)){pop(current_page,complexity_count)}}functionwrite_paragraph_element(paragraphElementpe){if(peislist){write_list(pe)}elseif(peisparagraph){write_paragraph(pe)}elseif(peistable){write_table(pe)}else...}]]></pre>图4举例说明了划分页面400内所包含的表层次的示例。按照表被处理的顺序来对这些表进行编号,这示出了软件按深度优先的方式对表层次进行遍历。这与编写每个表相一致,就好像它们是在HTML源中遇到的一样。表402和404两者都相当简易,并且能被写到同一个页面上。然而,表408太复杂以致于无法在当前页面426上以第三级嵌套将其写入。根据本发明的方法创建了新页面424,并将表408写入到该页面424上。在这种情况下,所述方法遇到表410,所述表410足够简易以致于被写入到同一个页面424上。在完成表410以及表408中的剩余单元格之后,所述方法结束当前页面424并返回到前一页426,并且继续写表404。当遇到表406时,它足够简易从而适合与表402和404位于同一页面上。在完成对表404的处理之后,所述方法遇到表412。这个表十分地复杂以致于需要新的页面428。为分层结构中的所有其它子表继续这一过程。根据本发明的方法是参照HTML页面来描述的。然而,该方法不限于HTML页面,而是在不背离当前方法的设计原理的情况下,能够被应用到基于由W3C所定义的其它层次的面向语言的页面,比如XML、XHTML、RDF等等。图5以示意性的方式举例说明了根据本发明的包含系统502的设备500的主要部分。所述系统502包括用来加载HTML文档的计算机可读代码506。正如先前描述的那样,所述系统还包括用来把HTML文档解析成文档树型结构的计算机可读代码504。计算机可读代码508用来计算HTML文档的复杂度,而计算机可读代码514用来按深度优先的方式遍历文档树,以判断将页面元素显示在当前的页面上还是显示在下一个新创建的页面上。计算机可读代码512用来将当前页面和新创建的页面显示到设备500的显示器上。计算机可读代码是包含在通用存储器中的,所述通用存储器通过软件总线516与中央处理器510进行通信。所述设备500是个人数字助理(PDA),但是也可能是任何具有有限显示能力的手提式显示设备,比如移动电话等等。所述设备还可以是机顶盒或数字电视接收机。所述设备500具有到互联网522的无线连接。将设备接收的文档包含到服务器520上。所述文档可以由所述设备经互联网522加以访问。服务器520与互联网522之间的连接是无线的。这两种连接也都可以是有线的。可以将先前提及的用来执行根据本发明的方法的计算机可读代码从互联网522下载到设备500。也可以从像光盘518这类计算机可读介质上下载所述代码,所述光盘518包含用于执行根据本发明的方法的计算机可读代码524。在后一种情况下,所述设备500包括例如光盘读取器的适合的读取设备。权利要求1.显示结构化文档的方法,包括以下步骤加载结构化文档;将结构化文档解析成分层结构,其特征在于,所述方法进一步包括以下步骤计算分层结构的复杂度;遍历分层结构;以及依据分层结构的遍历部分的复杂度,来有条件地显示一部分结构化文档。2.根据权利要求1所述的显示结构化文档的方法,其中将所述复杂度与预定阈值进行比较,以确定将要在第一页面上显示的第一部分文档和将要在下一页面上显示的第二部分文档。3.根据权利要求2所述的显示结构化文档的方法,所述方法进一步包括添加到第一页面的引用以实现到第二部分文档的导航。4.根据权利要求1所述的显示结构化文档的方法,其中所述文档包括对分层结构有影响的元素,而每个元素的属性都用于计算该分层结构的复杂度。5.显示结构化文档的系统,该系统包括加载装置,用于加载结构化文档;解析装置,用于将结构化文档解析成分层结构,其特征在于,所述系统进一步包括计算装置,用于计算分层结构的复杂度;遍历装置,用于遍历分层结构;以及显示装置,用于依据分层结构的遍历部分的复杂度来有条件地显示一部分结构化文档。6.计算机程序产品,包括用来执行根据权利要求1所述的方法的程序代码装置。7.存储设备,包括根据权利要求6所述的计算机程序产品。全文摘要手提式显示设备往往具有有限的显示能力。为了查看整个HTML页面(200),提供了一种把原始页面分解成较不复杂的单元(210、206、208、204、212、214、202)以便使它们能够最佳地显示在这些小型设备上的方法。将所述文档解析成树型结构,并且计算该树的复杂度。依据所述复杂度,来判断必须将哪一部分文档显示在新页面上。文档编号G06F17/30GK1647035SQ03808420公开日2005年7月27日申请日期2003年3月19日优先权日2002年4月15日发明者S·莫里斯申请人:皇家飞利浦电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1