设计用户界面样式的方法以及具有自适应用户界面的设备 本发明涉及为设备设计用户界面样式的方法。本发明进一步涉及具有自适应用户界面的设备以及计算机程序产品。
扩展标记语言(XML)能够用于各种各样的目的。这些目的之一是用户界面的定义。利用XML文档,最好是遵守某些文档类型定义(DTD)或是模式(Schema),能够提供具有诸如按钮,滑块,复选框,单选按钮等等元素的用户界面的抽象定义。这样,通过分析XML文档以及再现指定地用户界面元素,能够在不同的客户机设备即生成并向用户呈现用户界面的设备上容易地生成用户界面。
希望再现设在用户界面定义文档内的用户界面的客户机设备典型地需要关于观看及感觉的附加信息,或者是更为一般地说,需要用户界面元素的样式。典型地这些信息提供在所谓的样式表内。使用诸如CSS或DSSSL语言,能够容易地定义诸如按钮的字体或颜色或者是在屏幕上的复选框位置之类的样式属性。
为了提供样式定义方面的灵活性,可以使用模块化方法。把样式信息分成各种文档,而不是提供一个单独的样式表文档。这样,诸如要使用的字体之类的普通样式定义可以提供在普通的样式表文档内,并且,诸如在屏幕上的视窗内的用户界面元素的定位之类的特定平台样式定义可以提供在特定样式表文档内。
各种样式表文档需要被一起提供,以使客户机设备能够使用适用于那一特殊平台的所有样式定义。一种解决方案是在用户界面定义内提供样式表清单以及其所打算的使用指示。例如,普通样式表与用于打印的样式表一起,一个用于在屏幕上的显示,另一个用于语音合成器。
另外,更灵活的解决方案包括通过把一种样式表文档引入另一种文档内的包含。在CSS中,例如,这是利用“@import”语句来作出的。具有特定样式信息的样式表能够使用“@import”语句来引用另外的一般来说更为普通的样式表。这样,多个不同的特定样式表文档全都能得益于该更为普通的样式表中的定义。
使用这一机制,提供者能够与一个或多个普通样式表一起制作用于不同平台的各种可用的特定样式表。之后,该特定样式表通过引用而包括该普通样式表。然后,在一特殊平台上的客户机设备下载用于那一特殊平台的用户界面定义和特定样式表以及在该特定样式表内引用的任何普通样式表。于是该客户机设备可以生成并提交该用户界面。
这种方法所固有的问题在于,客户机设备需要用于其特殊平台的特定样式表。这意味着提供者必须使特定样式表可用于每个可能的平台,这几乎是不可能的。当然该客户机设备还可直接下载普通样式表,但是它不能得到任何特定平台的样式信息。
这一问题的原因之一在于:样式信息基本上被按照随意方式组织。不存在将例如用于640×480像素显示的样式信息与用于横向显示的样式信息相链接的语义信息。客户机设备将必须处理所有的样式信息以查看是否存在有与其特定能力有关的任何样式信息。这不是非常有效的。
本发明的一个目的是提供一种如前言中所述的方法,它能对样式信息作更有效处理。
根据本发明,上述目的是以这样的方法实现的,该方法包括:获得用于用户界面的样式信息,该样式信息与分层树内的节点相关联,该树内的每个节点对应于一设备特性,由此,孩子节点比它的双亲节点对应于更具体的设备特性;选择该分层树内的一个节点;收集用于该选定节点以及该选定节点的所有双亲的样式信息;以及,把收集到的样式信息应用于该用户界面。
使用分层树结构具有的优点是能较容易地自动处理样式信息。设备特性的简单分层组织可以从“图形显示”开始,该图形显示被划分成“纵向显示”和“横向显示“。“横向显示”类别可被进一步划分成例如“4∶3比率显示”和“16∶9比率显示”。并且,“4∶3比率显示”本身又能够被划分成诸如640×480或800×600之类的特定分辨率。
现在有可能通过从该树选择匹配一给定设备特性的节点来收集基于设备特性的样式信息。而且,有可能通过收集与该选定节点的双亲(其包括直接双亲节点,还包括祖父母节点,曾祖父母节点等等)相关联的样式信息来收集不直接匹配一给定设备的特性的相关样式信息。
例如,具有640×480像素显示的设备将不仅收集在用于上面给定的树的示例性分层结构内的“640×480像素显示”节点上的样式信息,而且还收集用于“4∶3比率显示“、“横向显示”以及“图形显示”节点上的样式信息,这是由于这些节点代表被具有640×480像素显示的设备所匹配的设备特性。这些节点是节点“640×480像素显示”的双亲,因此能够立即被辨别出,这样它们的样式信息能够被访问。
在一个实施例中,该选定节点对应于匹配该设备的设备特性。该选定节点能够用作用于收集样式信息的参考点。由于设备特性是根据分层树来组织的,因此该选定节点的所有双亲节点也都必须对应于匹配该设备的设备特性。于是该样式信息也将被收集。
在该实施例的一个变型中,该选定节点是该树内对应于匹配该设备的一设备特性的最低节点。这样,保证了用于该设备的最相关的样式信息被收集。
在另外的实施例中,使在该树的第一层上的样式信息在第一样式表文档内可用,使在低于第一层的该树的第二层上的样式信息在第二样式表文档内可用,并在第一样式表文档内提供到第二样式表文档的链接。
采用这一方式,总是存在用作起点的一个单独的样式表,而与也可能可用的任何特定样式表无关。从第一到第二样式表的该链接允许客户机设备访问更具体的样式信息。还能够提供到多个第二层样式表的多个链接,给予客户机设备一个选择,即在哪个链接上根据客户机设备的特性来使用。
该实施例还最佳地使样式信息的重新使用更为容易。由于必须根据分层树来提供样式信息,因此更普通的样式信息会与那些位于该树内比与更具体的样式信息相关联的节点更高位置上的节点相关联。于是该更普通的样式信息能够提供在第一样式表文档内,而更具体的样式信息能够提供在第二样式表文档内。这就允许该普通样式信息可以被重新使用。
在该实施例的一个变型中,通过在语言元素范围内的链接元素来提供到第二样式表文档的链接,该链接元素代表与第二样式表文档内的样式信息相关联的节点的双亲。XML是用于标记信息的实际标准,因此这里使用XML是更可取的。
通过以这种方式提供链接,在单独的设备特性的基础上,而不是如诸如CSS,XSL或DSSSL之类的现有技术系统那样在用于每个设备的一个特定样式表文档的基础上,样式信息的级联变为可能。这就给予了更大的灵活性。
在另外的实施例中,该方法进一步包括确定该树内从顶节点到该选定节点的最短路径并收集与该最短路径上的节点相关联的样式信息。该实施例允许样式信息的选择性收集,这是由于现在仅仅涉及了在该最短路径上的节点。其它节点可以被完全地跳过。这就减少了要处理的样式信息的数量。
样式信息可能需要被合并,例如通过继承或是级联来合并。通过跳过该最短路径外的节点,使要考虑的无关样式信息的数量减少。而且,如果使该样式信息在多个样式表文档内可用,则该实施例减少了需要仅被那些包含了用于该最短路径内的节点的样式信息的文档所访问的样式表文档的数目。
在该实施例的一个变型中,该方法进一步包括收集以该顶层节点开始的样式信息。这样,在该树内总是存在一个已知的进入点,并且不必知道该选定节点准确地位于该树内的何处。
在另外的实施例中,在把收集到的样式信息应用于用户界面之前,把该收集到的样式信息发送给该设备。这使得有可能在服务器内收集样式信息,而不是在其上驻留有要设计其样式的用户界面的(客户机)设备内收集样式信息。
客户机设备会受到其处理能力的限制,例如,由于它们是电池驱动的或者是只有有限的存储器、CPU处理功率或是用于传输样式信息的可用带宽。于是这对于收集在具有较高处理能力的服务器上的样式信息是有利的,因此只需要把结果发送给客户。然后该客户只需要把该收集到的样式信息应用于其用户界面,这要求更低的处理功率。由于现在仅仅是把直接相关的样式信息发送给客户机设备,因此还节省了带宽。
本发明的这些以及其它方面将从参照附图所示的实施例中变得更为清楚并将得到解释,其中:
图1示意地示出一个含有一服务器与几个客户机的系统;
图2示意地更为详细地示出该服务器;
图3示意地示出样式信息的分层组织分组;以及
图4示意地更为详细地示出客户机设备。
贯穿各附图,相同的参考数字表示类似的或相应的部件。图中所表示出的某些部件典型地是用软件来实现的并且因此而代表诸如软件模块或对象之类的软件实体。
图1示意地示出本发明的系统100。系统100包括与诸如因特网或局域网(LAN)之类的网络110相连接的服务器101。与网络110相连接的是各种客户机:膝上型计算机120、台式计算机125、移动电话130以及手持计算机135。
计算机120、125例如通过以太网、IEEE1394或拨号连接与网络110作有线连接。移动电话130以及手持计算机135例如经由蓝牙信标131或是使用GSM,DECT,GPRS或UMTS连接来连到与网络110相连接的基站从而与网络110作无线连接。其它设备诸如数字电视、DVD播放器/记录器或是其它CE设备也可以连到网络110上。
图2示意地更为详细地示出服务器101。服务器101包括存储介质200,其上能够存储可用于下载的信息。根据本发明,存储器200包含用户界面定义文档210、第一样式表文档211以及第二样式表文档212。
用户界面定义文档210能够由一个或多个客户机120、125、130、135来下载并且之后能够用于在客户机120、125、130、135上生成用户界面。该用户界面可适合多种目的。例如,该用户界面可用于控制在服务器101运行的处理,或是控制与服务器101相连接的另一设备。该用户界面还能够被用于其自身在客户机120、125、130、135上的操作。
在本领域内周知有各种用于提供用户界面定义的方式。一些例子是:如在因特网上的http://www.uiml.org所描述的用户界面标记语言(UIML),或是扩展用户界面语言(XUL),该语言的程序员参考资料能够在因特网上的http://www.mozilla.org/xpfe/xulref得到。公知的超文本标记语言HTML也提供了用来提供用户界面定义的(有限制的)方式,在提供填写表单时尤其如此。
通过规定用于抽象元素的一个或多个所谓的属性来提供用于包括用户界面元素在内的抽象元素的样式信息是很常见的。图形元素(“窗口小部件”)的颜色如它的字体、屏幕上的X和Y坐标轴等等一样是一种属性。用户界面作为一个整体还具有属性,例如,其布局、缺省字体、背景颜色或图像等等。样式表文档提供用于一个或多个这些属性的值。
能够为一特殊类型的所有用户界面元素规定属性。另外,能够为某些元素种类例如用在确认对话框内的所有按钮或是菜单中所示出的所有文本规定属性。还能够为个别的元素规定属性。典型地,利用通过XML中的ID属性而给该个别元件分配一个唯一的识别符并为具有特殊ID的元素规定属性来完成上述工作。
属性值能够级联。例如,用于作为整体的用户界面的字体属性能够给出为“Times New Roman”。于是以Times New Roman字体来显示未被提供字体属性值的任何按钮上的文本。然而,可以将用于特殊按钮的字体属性设置成“Garamond”,于是将以Garamond字体而不是TimesNew Roman字体来显示那一特殊按钮上的文本。
图3示意地说明将用在下文例子中的样式属性的可能的分层组织。该分层结构的最高点即层L1提供最普通的样式信息,尽管就样式信息而言它很少应用于所有类型的用户界面类型。因此层L1主要用作进入图3所示的分层树的进入点。
在该分层结构内的层L2上的较低一层,能够在图形样式信息GFX与音频样式信息AUD之间作出第一区别。在该层上,图形样式信息GFX可以包括诸如要使用的颜色或字体的属性。
能够使用取向上的区别例如层L3上的纵向PRTRT或横向LNDSCP来更明确地提供图形样式信息GFX。在层L3上,能够定义用户界面元素的一般相对安排。
进一步加细该区别的该分层结构内的较低层L4为诸如4∶3或16∶9之类的高宽比。在层L4上,能够定义诸如用户界面元素的相对定位、元素的最小及最大尺寸、用百分数表示的个别用户界面元素的宽度与高度之类的样式属性。
更进一步的加细将会是为要使用的屏幕尺寸640×480像素、800×600、1024×768等等的专门定义。在层L5上,能够定义诸如边缘、字体尺寸、背景说明以及用像素表示的个别用户界面元素的宽度与高度之类的属性。
在音频样式信息AUD中,在层L3内,在各种可用的语音识别输入类型诸如基于命令的识别CMD以及基于音位的识别PHNM之间作出区别。形成层L4的进一步区别可以是要被使用的词汇,例如,英语EN或是荷兰语NL。
该分层结构内的深一层以及仅次于图3所示层的其它层也能够被想到。不同的客户机设备可以有不同的用户界面类型或处理不同的用户界面元素。例如,在膝上型个人计算机125中,典型地将菜单条显示在屏幕顶部,而在手持计算机135中,典型地仅在用户请求(例如通过按‘菜单’按钮)时显示菜单条。移动电话130可能不能显示带有具有选项的子菜单的菜单,而是显示具有选项的一个清单,用户能够从中进行选择。
图4示意地更为详细地示出客户机设备400。如以上所述,客户机设备400能够例如是膝上型计算机120、台式计算机125,移动电话130、手持计算机135或是诸如电视,音频或DVD记录器之类的另外的设备。
客户机设备400包括联网模块410,该模块经由网络110从服务器101获得用户界面定义文档210。然后把文档210供给用户界面模块420,该模块处理文档210以便生成用户界面。之后,再现模块450使用诸如显示器452或扬声器451之类的输出装置来把所生成的用户界面呈现给客户机设备400的用户。如从下文可以看出的那样,把样式信息加到该用户界面上。
输入模块430在用户与该用户界面的交互期间从用户接收输入。能够将该输入反馈给用户界面模块420,该模块更新用户界面。还可以使用联网模块410来把某些输入送回到服务器101。用户的其它类型输入能够直接由再现模块450处理。这一安排在本领域内是普遍公知的,因而不再进一步地详细描述。
根据本发明,用户界面模块420处理文档210并查到文档210含有对第一样式表文档211的引用。之后,用户界面模块420激活联网模块410以使它从服务器101下载第一样式表文档211。下载完文档211后,联网模块410把文档211馈送给用户界面模块420。于是,用户界面模块420使用包含在文档211内的样式信息生成用户界面。
第一样式表文档211也可以已经存在于设备400内的本地存储器中,因此它能够通过简单地从该本地存储器读取它而得到。例如,联网模块410可能已经把该样式表文档与文档210一起下载了,或者可以已经在记录载体上提供了该第一样式表文档211。
第一样式表文档211能够含有以诸如CSS或DSSSL之类的适合于标记样式信息的任何语言来标记的样式信息。还有可能使用XML来标记样式信息。作为XML文档的第一样式表文档211的一个说明性例子在下面示出。
(1)<?xml version=″1.0″?>
(2)<uisl level=″1″>
(3) <gfx>
(4) <landscape>
(5) <layout>
(6) <container>paneltree</container>
(7) </layout>
(8) <level2 stylesheet=″stylesheet-landscape.uisl″/>
(9) </landscape>
(10) <portrait>
(11) <layout>
(12) <container>panelsplit</container>
(13) </layout>
(14) <level2 stylesheet=″stylesheet-portrait.uisl″/>
(15) </portrait>
(16) </gfx>
(17)</uisl>
上述XML文档211是形式良好的。下面给出使上述文档211同样从XML意义上说是有效的一个XML DTD例子。
(1)<?xml version=″1.0″encoding=″UTF-8″?>
(2)<!ENTITY%num″CDATA″>
(3)<!ENTITY%coreattrs
(4) id CDATA #IMPLIED
(5) class CDATA #IMPLIED>
(6)<!ENTITY%elements
(7)<container|list|range|entry|button|progress|text|image|all) *>
(8)<!ELEMENT uisl (gfx|audio)>
(9)<!ATTLIST uisl
(10) level %num;#REQUIRED>
(11)<!ELEMENT gfx(general|portrait|landscape)>
(12)<!ELEMENT general(bgcolor?,font?)>
(13)<!ELEMENT bgcolor %elements;>
(14)<!ELEMENT font %elements;>
(15)<!ELEMENT portrait(layout?,orientation?,level2?)>
(16)<!ELEMENT landscape(layout?,orientation?,level2?)>
(17)<!ELEMENT layout(container)*>
(18)<!ELEMENT orientation %elements;>
(19)<!ELEMENT audio (generalaudio|commandbased|phonemebased)>
(20)<!ELEMENT generalaudio(focussound?actionsound?)>
(21)<!ELEMENT focussound %elements;>
(22)<!ELEMENT actionsound %elements;>
(23)<!ELEMENT commandbased(level2)>
(24)<!ELEMENT phonemebased (level2)>
(25)<!ELEMENT level2 EMPTY>
(26)<!ATTLIST level2
(27) stylesheet CDATA #REQUIRED
(28) stylesheet-type CDATA #IMPLIED>
(29)<!ELEMENT container (#PCDATA)>
(30)<!ATTLIST container %coreattrs;>
(31)<!ELEMENT list (#PCDATA)>
(32)<!ATTLIST list coreattrs;>
(33)<!ELEMENT range(#PCDATA)>
(34)<!ATTLIST range %coreattrs;>
(35)<!ELEMENT entry (#PCDATA)>
(36)<!ATTLIST entry %coreattrs;>
(37)<!ELEMENT button (#PCDATA)>
(38)<!ATTLIST button %coreattrs;>
(39)<!ELEMENT progress(#PCDATA)>
(40)<!ATTLIST progress %coreattrs;>
(41)<!ELEMENT text(#PCDATA)>
(42)<!ATTLIST text %coreattrs;>
(43)<!ELEMENT image(#PCDATA)>
(44)<!ATTLIST image %coreattrs;>
(45)<!ELEMENT all(#PCDATA)>
(46)<!ATTLIST all%coreattrs;>
该DTD可以安装在客户机设备400内或是在需要时用联网模块410来下载。为了能够生效,样式表文档211需要关于该DTD的<!DOCTYPE>声明,并且当然相对于该DTD应当生效。用于样式表文档211的各种元素和属性的解释以及该DTD在此说明书的末尾给出。这里可以观察到,8、11、19、23以及24行上的元素定义涉及设备特性,而12-18、20-22以及29-46行上的元素定义涉及样式属性。见此说明书末尾处的用于对所使用的XML的详细解释及其优选说明的表格。
为了举例起见,假设该用户界面将呈现在显示器452上,该显示器具有640×480像素的分辨率。该设备特性以及其它特性能够作为设备特性清单存储在例如存储器440内,这样,用户界面模块420能够查阅该清单以选择适合的样式信息。该清单或者其中的一部分,也能够通过联网模块410下载。该清单能够被视为客户机设备400的设备特性概况。
除了设备特性外,该清单还可以包含对于设备400的一个或多个用户的用户偏好。这种用户偏好可以设置诸如喜爱的字体尺寸或是颜色模式之类的样式属性。例如视力不好的用户也许想指定大的字体尺寸来代替在样式表信息中所指示的小字体尺寸。当使用设备400时,可以提示用户识别他自己,以便只使用他自己的用户偏好。这就允许一个用户指定例如大的字体而另一个用户指定要在同一显示器上使用的小字体。
为了设计用户界面样式,用户界面模块420从分层树的层L1开始,该层对应于第2行上的UISL元素。存在UISL元素的一个子元素,称为GFX元素,其对应于层L2。由于该元素代表图形样式信息,以及设备400的一个特性是其具有图形显示器452,因此用户界面模块420收集包含在GFX元素内的样式信息。
GFX元素含有子元素LANDSCAPE以及PORTRAIT,对应于在图3的树的层L3上的节点LNDSCP以及PRTRT。设备400的设备特性在于它的显示器具有横向取向,因此用户界面模块420选择子元素LANDSCAPE并收集其内(行4-9)所包含的样式信息。之后用户界面模块420将该用户界面元素安排为屏面树。
用户界面模块420在第一样式表文档211的第8行上遇到通到第二个被称为“stylesheet-landscape.uisl”的更具体的样式表文档212上的链接,这是通过称为<level2>的XML元素来实现的。
第二样式表文档212包括用于采用横向视觉用户界面的设备的更具体的样式信息。由于这跟设备400的特性一致,因此用户界面模块420现在激活联网模块410以便从服务器101下载第二样式表文档212。最好,忽略到第14行内的样式表文档“stylesheet-portrait.uisl”的链接,这是由于它不匹配设备400的设备特性。对该不相关样式表文档的忽略节省了带宽和/或处理时间。
下面给出第二样式表文档212的一个说明性实施例。
(1)<?xml version=″1.0″?>
(2)<uisl level=″2″>
(3) <4x3>
(4) <halign>
(5) <all class=″settings″>center</all>
(6) <all class=″effects″>left</all>
(7) </halign>
(8) <level3 stylesheet=″stylesheet-landscape-4×3.uisl″/>
(9) </4x3>
(10)</uisl>
第二样式表文档212是形式良好的。下面给出使文档212同样在从XML意义上说是有效的一个DTD例子。
(1)<?xml version=″1.0″encoding=″UTF-8″?>
(2)<!ENTITY%num″CDATA″>
(3)<!ENTITY%coreattrs
(4) ″id CDATA #IMPLIED
(5) class CDATA #IMPLIED″>
(6)<!ENTITY%elements
(7)″(container|list|range|entry|button|progress|text|image|all)*″>
(8) <!ELEMENT uisl(4×3?,16×9?,otherratio?)>
(9) <!ATTLIST uisl
(10) level %num;#REQUIRED>
(11)<!ELEMENT 4×3(minwidth?, minheight?, maxwidth?,maxheight?,halign?,valign?,alwaysvisible?,alwaystogether?,level3?)>
(12)<!ELEMENT 16×9(minwidth?,minheight?,maxwidth?,maxheight?,halign?,valign?,alwaysvisible?,alwaystogether?,level3?)>
(13)<!ELEMENT otherratio(minwidth?,minheight?,maxwidth?,maxheight?,halign?,valign?,alwaysvisible?,alwaystogether?,level3?)>
(14)<!ATTLIST otherratio
(15) longside %num; #REQUIRED
(16) shortside %num; #REQUIRED>
(17)<!ELEMENT minwidth(container)*>
(18)<!ELEMENT minheight(container)*>
(19)<!ELEMENT maxwidth(container)*>
(20)<!ELEMENT maxheight(container)*>
(21)<!ELEMENT halign %elements;>
(22)<!ELEMENT valign %elements;>
(23)<!ELEMENT alwaysvisible %elements;>
(24)<!ELEMENT alwaystogether(container)*>
(25)<!ELEMENT level3 EMPTY>
(26)<!ATTLIST level3
(27) stylesheet CDATA #REQUIRED
(28) stylesheet-type CDATA #IMPLIED>
(29)<!ELEMENT container (#PCDATA)>
(30)<!ATTLIST container %coreattrs;>
(31)<!ELEMENT list (#PCDATA)>
(32)<!ATTLIST list %coreattrs;>
(33)<!ELEMENT range(#PCDATA)>
(34)<!ATTLIST range %coreattrs;>
(35)<!ELEMENT entry (#PCDATA)>
(36)<!ATTLIST entry coreattrs;>
(37)<!ELEMENT button (#PCDATA)>
(38)<!ATTLIST button coreattrs;>
(39)<!ELEMENT progress (#PCDATA)>
(40)<!ATTLIST progress coreattrs;>
(41)<!ELEMENT text (#PCDATA)>
(42)<!ATTLIST text coreattrs;>
(43)<!ELEMENT image(#PCDATA)>
(44)<!ATTLIST image coreattrs;>
(45)<!ELEMENT all (#PCDATA)>
(46)<!ATTLIST all coreattrs;>
在此说明书的末尾给出样式表文档211内所使用的各种元素和属性的解释以及该DTD。
通过提供用于具有4∶3高宽比的图形显示器的样式信息,第二样式表文档212提供用于具有横向取向的图形显示器的更具体的样式信息。用户界面模块420分析第二样式表文档212并确定更具体的样式信息可用于具有4∶3的比率分辨率的显示器。由于显示器452具有640×480的分辨率,该分辨率对应于4∶3的比率,因此用户界面模块420收集该信息。
元素<4×3>也含有到较低层样式表文档的链接,这是通过称为<level3>的XML元素来实现的。用户界面模块420现在可以激活联网模块410以便下载该较低层样式表文档并应用其内所包含的更具体的样式信息。当然,同样能够把这一机制应用于更低的层。在某些点上,能够把较低层样式表专用于一个特殊的客户机设备。也许理想的是让那个特殊客户机设备的卖主或制造商定义该特定的较低层样式表。
下面给出具有用于4∶3高宽比的图形显示器的更具体样式信息的第三样式表文档的说明性例子。
(1) <?xml version=″1.0″?>
(2) <uisl level=″2″>
(3) <640×480>
(4) <bgpicture>
(5) <container id=″main″>dinosaur_small.jpg</container>
(6) </bgpicture>
(7) <maxwidth>
(8) <container id=″settings″> 500</container>
(9) </maxwidth>
(10) <maxheight>
(11) <container id=″settings″>250</container>
(12) </maxheight>
(13) <margintop>
(14) <container id=″settings″>100</container>
(15) </margintop>
(16) <marginleft>
(17) <container id=″settings″>50</container>
(18) </marginleft>
(19) <fontsize>
(20) <all>medium</all>
(21) </fontsize>
(22) </640×480>
(23) <1024×768>
(24) <bgpicture>
(25) <container id=″main″>dinosaur_big.jpg</container>
(26) </bgpicture>
(27) </1024×768>
(28) </uisl>
该第三样式表文档提供了用于具有640×480或具有1024×768像素分辨率显示的图形显示器的更具体的样式表信息。还能够通过定义一合适的DTD来使该样式表文档有效。
在这些实施例中,如下定义用于用户界面元素的样式属性。将样式属性给作为XML元素,其含有该样式属性所应用于的用户界面元素的清单。还可以将这些用户界面元素给作为XML元素。它们含有用于当样式属性应用于那一用户界面元素时该样式属性的值。用户界面元素能够用类型、ID或是类别来寻址。
在上面的描述中,用户界面模块420始于第一样式表文档211内的<uisl>元素,然后访问包含在第二个以及更深一层样式表文档内的越来越多的特定信息。实际上,在每一层上,用户界面模块420都将选择先前所选定的具有匹配该设备的设备特性的元素的子元素。
用户界面模块420能够选择该树内的一个匹配设备400的设备特性的节点。这最好是该树内对应于设备400的设备特性的最低节点。然后用户界面模块420确定该树内从顶节点至该选定节点的最短路径,并收集在该最短路径上的节点的样式信息,所述最短路径或是从该顶节点开始,或是从该选定节点开始。
在上面给出的例子中,用户界面模块420选择层L5上的节点640×480,并确定从节点GNRC至该选定节点的最短路径。该路径经过节点GFX(层L2),LNDSCP(层L3)以及4∶3(层L4)。现在用户界面模块420知道了在各种样式表文档中的哪个样式信息是要访问的,即与这些节点相关联的信息,并能够跳过与其它节点相关联的信息。
另一方面,用户界面模块420会在每一层上参考设备特性清单以选择最有希望的子元素。这样用户界面模块420就能参考该清单以确定图形显示器是可用的,然后从节点GFX中收集样式信息。由于第一样式表文档211内的对应元素GFX涉及第二样式表文档212,因此检索和处理该第二样式表文档212。用户界面模块420现在再次参考该清单并确定<landscape>元素含有用于用户界面的相关信息。这样,就处理该元素。
也能够在服务器101或是另外的服务器内提供用户界面模块420的样式信息收集功能。设备400会在其处理能力上受到限制,例如,这是因为它是电池驱动的或者是只有有限的存储器、CPU处理能力或是可用带宽。收集在具有较高处理能力的服务器上的样式信息是有利的,以使得仅需要将结果发送给设备400。然后设备400只需要将收集到的样式信息应用到它的用户界面上,这需要更低的功率。在这种情况下,设备400能够把其设备特性概况提交给服务器,以便能够生成适当定制的样式表,或者是能够滤出无关的样式信息。
用在层L2样式表文档内的元素及属性以及相关联的DTD的较佳解释如下。注意,n表示数字值,str表示串值,url表示统一资源定位地址(RFC1738)或统一资源标识符(RFC2396)。标记属性含义<uisl></uisl>xmlns=urllevel=n含有由属性“level”指示的该层的样式属性(在此情形下)。Xmlns属性(标准XML属性)在此用来定义该文档的缺省名字空间。<gfx></gfx>无含有用于基于屏幕的设备的样式属性<general></general>无含有一般的基于屏幕的样式属性,诸如背景色。<bgcolor></bgcolor>无定义用户界面元素的背景色。这是通过把所有的或是某些UI元素映射到颜色值上来完成的。使用下列语法来定义颜色值:‘#’+用于红色的2字符十六进制值(00至ff之间)+用于绿色的2字符十六进制值+用于兰色的2字符十六进制值,例如:#ff00ff用于紫色。<fong></font>无指定关于将会使用哪种字体的提示。可能的值是:-serif-proportional-sansserif-proportional-serif-nonproportional-sansserif-nonproportionalserif字体例如为“Times”及“Garamond”。Sans-serif字体例如为“Arial”及“Helvetica”。所有这些字体都是成比例的。不成比例字体的一个例子是“Courier”。<portrait></portrait>无提供用于纵向屏幕的样式提示(即,当顶部比人们正常使用的位置内的边窄时)。这里所能够定义的样式属性是元素的布置和方位。其它属性被在UI样式表语言的层2内定义(用在该<portrait>-标记内的<level2>-标记来引用)。<landscape></landscape>无提供用于横向屏幕的样式提示(即,当顶部比人们正常使用的位置内的边宽时)。这里所能够定义的样式属性是元素的布置和方位。其它属性被在UI样式表语言的层2内定义(用在该<landscape>-标记内的<leVel2>-标记来引用)。<layout></layout>无指定元素在容器内如何排序。这里能够被选择的所有布局“算法”从屏幕的左上角内开始,并在垂直方向(缺省)内或者是如果该容器的方位被指定为水平的(见<orientation>-标记)则在水平方向内一个一个地放置元素。能够被选择的“算法”是:-panelsplit:把元素一个接着一个地放置,包括带有它们的元素的整个子容器,并且,如果下个元素不再适合,则把它放在新的屏面上,这样就把用户界面分离在几个屏面上。如果使用该布局算法,则要求客户在不同的屏面之间提供一些导航装置。-panelgrid:一个一个地放置元素并在另一列(方位:垂直)或如果下个元素不再适合的话则在另一行(方位:水平)内继续,从而构成一栅格。栅格意指所有的列和所有的行都具有相同的栅格单元数,其大小由行和列内的最大元素确定。如果屏幕上没有列(或行)再适合,则客户能够把它们放到另外的屏面上(即,把UI分离在几个屏面上)或是提供滚动装置。-paneltree:一个一个地放置元素并在下一列(方位:垂直)或是下一行(方位:水平)内继续,但与前一列/行无关,即,不必构成一栅格,这样每一列都能够含有不同数目的UI元素。-menusplit:与panelsplit相同,但是现在子容器能够被隐含。只有子容器的标签必须被显示而不是所有的它的元素被显示,这样能构成菜单和子菜单的分层体系。-menutree:(用于容器的缺省算法)与paneltree相同,但是现在子容器能够被隐含。只有子容器的标签必须被显示而不是所有的它的元素被显示。<orientation></orientation>无指定在其中将拖出UI元素的方位。能够是:垂直(用于容器的缺省)或是水平(用于其它UI元素的缺省)。如果是垂直方位则文本标签必须保持是可读的,不被旋转,而是自顶向下地被写,并且,图像不会被旋转。它们将总是保持其原始方位。<level2/>样式表=str样式表-类型=str指定用于更详细的层2的样式表。不遵守上面提到的<layout>及<orientation>设置的客户不被允许使用用于图形能力的层2样式表信息。<audio></audio>无含有用于支持声音及基于交互的语音的设备的样式属性。<audiogeneral></audiogeneral>无含有一般的基于声音的样式属性,诸如焦点声音以及动作声音。<focussound></focussound>无为UI元素指定当该UI元素获得到焦点时播放哪种声音。<actionsound></actionsound>无为UI元素指定当用户动作发生在该UI元素上时播放哪种声音。<commandbased></commandbased>无含有用于具有基于命令的语音识别的设备的样式属性。<phonemebased></phonemebased>无含有用于具有基于音位的语音识别的设备的样式属性。
用在层L2样式表文档内的元素及属性以及相关联DTD的较佳解释如下: 标记属性含义<uisl></uisl>xmlns=urllevel=n含有由属性“level”指示的该层的样式属性(在此情形1下)。xmlns属性(标准XML属性)在此用来定义该文档的缺省名字空间。<4×3></4×3>无含有用于具有4×3高宽比屏幕的样式属性<16×9></16×9>无含有用于具有16×9高宽比屏幕的样式属性<otherratio></otherratio>longside=nshortside定义用于具有另外比率屏幕的样式属性,其中最长的边用属性“longside”表示,最短的边用属性“shortside” =n 表示。 <minwidth> </minwidth> 无 将容器的最小宽度指定为被其双亲容 器占据的屏幕状况(即,在根容器情 况下的屏幕)的百分数。有焦点的容 器不能被画得小于该尺寸。 <minheight> </miheight> 无 将容器的最小高度指定为被其双亲容 器占据的屏幕状况(即,在根容器情 况下的屏幕)的百分数。有焦点的容 器不能被画得小于该尺寸。 <maxwidth> </maxwidth> 无 将容器的最大宽度指定为被其双亲容 器占据的屏幕状况(即,在根容器情 况下的屏幕)的百分数。有焦点的容 器不能被画得大于该尺寸。 <maxheight> </maxheight> 无 将容器的最大高度指定为被其双亲容 器占据的屏幕状况(即,在根容器情 况下的屏幕)的百分数。有焦点的容 器不能被画得大于该尺寸。 <halign> </halign> 无 指定水平对齐元素列内的元素。可能 的值为“左”,“中央”,“右”。在水平 定向的屏面或菜单树或是水平定向的 屏面/分割菜单的情况下,该值能够 被忽略。 <valign> </valign> 无 指定垂直对齐元素行内的元素。可能 的值为“顶部”,“中央”,“底部”。在 垂直定向的屏面或菜单树或是垂直定 向的屏面/分割菜单的情况下,该值 能够被忽略。 <alwaysvisible> </alwaysvisible > 无 指定元素将在用户界面内一直是可见 的(值:“真”)或者它不是重要的因 而能够被省去(值:“假”)。缺省值为 “真”。 <alwaystogether 无 指定在被引用的容器内的这些元素总></alwaystogether>是必须被聚集在一起(即,当该容器具有焦点时被一起显示)并且必须不被分离在各种无关的容器上。如果这些元素不适合一起在屏幕上,则必须提供某些机制,其例如使用滚动使所有的元素都是可访问的而无需必须导航到另外的容器/屏幕。被定义为总是在一起的容器将会忽略为<layout>(层1中)指定的屏面以及菜单分割值。<level3/> styleshee t=str styleshee t- type=str指定用于更详细的层3的样式表。不遵守上面提到的设置的客户不被允许使用层3样式表信息。
应当注意,以上提到的实施例是说明而不是限制本发明,并且,本领域内的那些技术人员将能够在不脱离附加的权利要求书的范围的情况下设计许多可替换的实施例。
例如,在一个层L1,L2,L3,...上的样式信息不必存储在单独的样式表文档内,尽管这样做使得能够较容易地重新使用样式信息。也能够提供除了以上所给出的元素外的XML元素,或是按需增加或去除属性。例如使用如在CSS内可用的@import或@media结构还能够把到深一层更具体的样式表文档的链接提供在特定元素的环境外。
在同一层上的两个节点可以整个或部分地对应于相同的设备特性。例如,一个节点能够对应于640个像素宽的屏幕,另一个节点能够对应于480个像素高的屏幕。具有640×480的屏幕的设备现在具有选择这两个节点之一或是两个节点都选择的选择项。选择一个节点的决定可以是任意的或是基于确定该设备内什么是最重要的(例如,屏幕宽度是固定的,但滚动条能够用于不足的屏幕高度)。
这甚至会使分层树类似一具有单个根的无环有向的图形。这使得本发明更为灵活,但是略微难于缩拢这样的树。
在权利要求书中,放在圆括号之间的任何参考标记都不应被看作是限制权利要求。“包含”一词不排除除权利要求内所列出的那些元素或步骤之外的元素或步骤的存在。在一元素前的词“一”不排除多个这样元素的存在。本发明能够用含有几个明显的元素的硬件来实现,或者是用被适当编程的计算机来实现。
在列举了几个装置的设备权利要求中,这些装置中的几个能够用一个以及相同的硬件项来体现。某些措施被记载在相互不同的从属权利要求中这一事实并不表明这些措施的组合不能被有利地利用。