用于生成网络内容的基础结构的制作方法

文档序号:6384967阅读:191来源:国知局

专利名称::用于生成网络内容的基础结构的制作方法发明的领域本发明主要涉及计算领域,尤其是提供可被用来动态地创建网络内容,如由入口站点和搜索引擎创建的网页,的基础结构。发明的背景传统网页包括符合标记语言的内容,标记语言诸如超文本标记语言(HTML)或扩展超文本标记语言(XHTML),它适合于由网络浏览器表现。一些网页是静态的——例如,一页永恒的、不变的HTML或XHTML内容可被存储在文件中,文件可被下载到用户机器并且显示在浏览器上。然而,大多数商业网络内容,如由搜索网站、入口站点、电子商务网站提供的内容,不是静态的,而是动态生成的,以至于网站对于用户能够个性化,或响应来自于用户的一些输入而生成。动态生成的内容由专门为此目的设计的程序生成。这样的程序是可执行或可解释编码的模块,根据一套规则或过程模块创建内容。例如,当用户向搜索引擎网站发送一个查询时,搜索引擎查阅各种各样的源(例如,已知网页的数据库)以产生结果,然后搜索引擎网站处的内容生成程序生成包括结果的一页HTML内容,并且向用户发送那页。清楚地,这样的结果页面必须被动态地生成,因为结果页面的内容将根据用户提交什么查询而改变。虽然在动态生成网络内容上现存软件是有效的,但是当存在对程序需要产生的内容的创造性变化时,这样的软件感到灵活性的缺乏。例如,搜索引擎可使用显示搜索结果为搜索引擎定位的网页标题清单的程序。然而,如果搜索引擎的操作者希望引入一个表示这些结果的新方法(例如,用已定位网页的缩略图加强清单),一般,完成这个改变的唯一方法是重写程序(或,至少,增加支持缩略图包含的程序的编码)。大多数网络内容可视作由较小内容段的模块化“积木”构建。例如,搜索结果页面由各种各样的独立内容段组成(例如,标识、版权启事、最新搜索的结果、用于输入另一个搜索查询的搜索框、广告等等)。理论上,网络内容的模块化性质建议单个程序可驱动内容生成处理,通过由内容设计者在运行时期提供的模块化积木构建内容。内容的创造性改变不使这样的程序的改变成为必需,因为程序可简单地针对使用不同的积木来产生不同内容。然而,在不改变软件本身可对内容做出什么类型的创造变化的方面,传统内容生成软件是十分有限的。以上述观点,有必要有个克服先前领域的弊端的系统。发明概述本发明提供用于生成内容,如网页的基础结构。基础结构基于一页内容可从更小的部件构建的想法,这些部件可独立地设计、完成和修改。本发明使得这些更小部件,以及它们拟合在一起的方式,能够在运行时期被明确规定给内容生成软件。依照发明,内容的创建由“线框”、“视图”和内容生成对象明确规定。线框是定义一内容段的空间区域的数据结构。例如,线框可将网页定义为具有四个长方形区域,从页面的顶部至底部垂直地运行。这些区域的每个称为“槽”。“视图”是将线框中每个槽绑定到内容生成对象,或一连串的内容生成对象(或,另一可选择地,指定特定的槽为空)的数据结构。为了表现视图,绘制工具访问视图中确定的线框,并且对于那个线框中的每个槽,使得内容生成对象被绑定到那个槽中以产生内容。绘制工具然后将由对象产生的内容放入槽中。对于线框中的每个槽这个处理被重复。绘制工具的输出是一内容段(如HTML网页),内容包含由在线框的合适区域中的每个内容生成对象产生的内容。内容生成对象包括“控制”、可扩展式样语言(XSL)标记以及视图。控制是生成将被放入槽中的HTML或XHTML内容的可执行或可解释编码。XSL标记是可被XSL处理软件用来生成HTML或XHTML内容的数据。由于要在内容产生中计算视图结果,视图本身就是内容生成对象。因此,内容可从实际上是最高层视图的子视图、子子视图等等的视图构建。当绘制工具遇到被绑定到子视图中的槽时,绘制工具可递归地调用自己以根据那个视图为槽生成内容。依照本发明的特点,根据配置文件中包含的参数,控制可展示不同的行为。因此,根据在配置文件中什么参数被提供,给定控制可被设计来产生一内容段的不同变体。本发明的其他特点如下所述。附图的概述结合附图阅读,以上概述,以及以下较佳实施例的详细描述将被更好地理解。为了说明本发明,图中示出的是本发明的用作范例结构;但是,本发明不被限制于所揭示的特定的方法和手段。图中图1是用作范例的计算环境的框图,发明的方面在其中可被实现;图2是用作范例的网络浏览器的用户界面的框图;图3是第一用作范例的线框的框图;图4是第一用作范例的控制的框图;图5是第一用作范例的视图的框图,视图将控制绑定到第一用作范例的线框中;图6是第二用作范例的线框的框图;图7-8是用作范例的可扩展样式语言(XSL)标记的框图;图9是第二用作范例的控制的框图;图10是第二用作范例的视图的框图;图11是第三用作范例的视图的框图;图12是依据本发明的方面被生成的用作范例的内容的框图;图13是依据本发明的方面用于生成内容的用作范例的基础结构的框图;图14是依据本发明的方面用于生成内容的用作范例的处理的框图。发明的详细说明综述许多商业网络内容从更小的内容段被构建,内容以定义的方式图示地被拟合在一起。本发明提供了使得内容提供者根据这些更小段能够明确规定内容如何被构造的基础结构。基础结构包括根据内容提供者的规范动态地生成内容的绘制工具。用作范例的计算环境图1展示了用作范例的计算环境,本发明的方面在其中可被实现。计算系统环境100仅仅是合适的计算环境的一个例子,并且不被试图建议作为发明使用或功能的范围的限制。计算环境100应被解释为对于任何部件之一或部件组合既不具有任何依赖性,也不具有要求,这些部件在用作范例的操作环境100中被说明。本发明可与许多其他通用或专用计算系统环境或配置一起运行。适合和本发明一起使用的众所周知的计算系统、环境、和/或配置的例子包括,而非限制,个人计算机、服务器计算机、手持式或膝上型设备、多处理系统、基于微处理机的系统、机顶盒、可编程用户电子装置、网络PC、小型计算机、大型计算机、嵌入式系统、包括任何以上系统或设备的分布式计算系统等等。本发明可用由计算机执行的计算机可执行指令的一般上下文来描述,如程序模块。一般地,程序模块包括完成特定任务或实现特定抽象数据、类型的例程、程序、对象、部件、数据结构等。本发明也可在分布式计算环境中被实践,其中任务由远程处理设备完成,远程处理设备通过通信网络或其他数据传送媒体被链接。在分布式计算环境中,程序模块或其他数据可位于包括存储器存储设备的本地和远程计算存储媒体中。关于图1,用于实现本发明的用作范例的系统包括以计算机110形式存在的通用计算设备。计算机110的部件可包括,但非限制,处理单元120、系统存储器130以及系统总线121,系统总线121将包括系统存储器的各种各样的系统部件耦合到处理单元120上。系统总线121可以是任何一些类型的总线结构,总线结构包括存储器总线或存储器控制器、外围总线、以及使用任何各种总线结构的本地总线。作为例子,而非限制,这样的结构包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强型ISA(EISA)、视频电子标准协会(VESA)本地总线、以及外围部件互连(PCI)总线(也称为Mezzanine总线)。计算机110一般包括各种计算机可读媒体。计算机可读媒体可以是可被计算机110访问的任何可用媒体,并且包括易失的和非易失的媒体,可移动的和不可移动的媒体。作为例子,而非限制,计算机可读媒体可包括计算机存储媒体和通信媒体。计算机存储媒体包括易失的和非易失的、可移动的和不可移动的媒体,这些媒体以用于诸如计算机可读指令、数据结构、程序模块或其他数据的信息存储的任何方式或技术被实现。计算机存储媒体包括,而非限制,RAM、ROM、EPROM、闪存或其他存储技术、CDROM、数字多用光盘(DVD)或其他光盘任何存储、磁盒、磁带、磁盘存储或其他磁存储设备,或可用来存储所需信息并且可被计算机110访问的任何其他媒介。通信媒体一般包含计算机可读指令、数据结构、程序模块或在诸如载波或其他传输装置的调制数据信号中的其他数据,并且包括任何信息传递媒体。术语“调制数据信号”意思是,具有一个或多个以编码信号中的信息的信号这样的方式设置或变换的特征的信号。作为例子,而非限制,通信媒体包括诸如有线网络或直接连线连接的有线媒体,以及诸如声的、RF、红外或其他无线媒体的无线媒体。以上任何的组合也应被包括在计算机可读媒体的范围内。系统存储器130包括以易失的和/或非易失的存储器形式存在的计算机存储媒体,如只读存储器(ROM)131和随机存取存储器(RAM)132。基本输入/输出系统133(BIOS),包括帮助在计算机110中的单元之间传送信息的基本例程,如在启动期间,一般被存储在ROM131中。RAM132一般包括可被处理单元120立即访问和/或正被处理单元120操作的数据和/或程序模块。作为例子,而非限制,图1说明了操作系统134、应用程序135、其他程序模块136和程序数据137。计算机110也可包括其他可移动的/不可移动的、易失的/非易失的计算机存储媒体。仅仅作为例子,图1说明了从不可移动的、非易失的磁媒体中读取或写入的硬盘驱动140,从可移动的、非易失的磁盘152中读取或写入的磁盘驱动151,以及从可移动的、非易失的光盘156中读取或写入的光盘驱动155,光盘如CDROM或其他光媒体。可被用在用作范例的操作环境中的其他可移动的/不可移动的、易失的/非易失的计算机存储媒体包括,而非限制,磁带盒、闪存卡、数字多用光盘、数字录象带、固态RAM、固态ROM等等。硬盘驱动141一般通过诸如接口140的不可移动的存储器接口被连接至系统总线121,磁盘驱动151和光盘驱动155一般通过可移动存储器接口,如接口150,被连接至系统总线121。以上讨论的并且在图1中被说明的驱动和与它们有关的计算机存储媒体向计算机110提供了计算机可读指令、数据结构、程序模块以及其他数据的存储。在图1中,例如,硬盘驱动141被作为存储操作系统144、应用程序145、其他程序模块146和程序数据147来说明。注意,这些部件可以与操作系统134、应用程序135、其他程序模块136和程序数据137相同或不同。操作系统144、应用程序145、其他程序模块146和程序数据147在此被给予不同的数字以说明,至少,它们是不同的复制。用户可通过诸如键盘162和指点器161的输入设备向计算机20输入命令和信息,指点器161通常指鼠标、轨迹球或触摸板。其他输入设备(未展示)可包括话筒、游戏杆、游戏板、卫星抛物面、扫描仪等等。这些或其他输入设备常通过与系统总线耦合的用户输入接口160被连接至处理单元120,但也可通过其他接口和总线结构,如并行口、游戏口或通用串行总线(USB)被连接至处理单元120。监视器191或其他类型的显示设备也经由接口,如视频接口190,被连接至系统总线121。除了监视器,计算机还可包括诸如扬声器197和打印机196的外围输出设备,它们可通过输出外围设备接口190被连接。计算机110可运行于使用逻辑连接至一个或多个远程计算机,如远程计算机180,的联网环境中。远程计算机180可以是个人计算机、服务器、路由器、网络PC、对等设备或其他普通的网络节点,并且一般包括以上描述的与计算机110相关的计算机许多或所有单元,尽管只有存储器存储设备181在图1中被说明。图1中所描述的逻辑连接包括局域网(LAN)171和广域网(WAN)173,但也可包括其他网络。这样的联网环境在办公室、企业级计算机网络、内部网和因特网中是平常的。当被用在LAN联网环境中,计算机110通过网络接口或适配器170被连接至LAN171。当被用在WAN联网环境中,计算机110一般包括调制解调器172或用于建立在WAN173,如因特网,上通信的其他装置。调制解调器172可以是内置的或外置的,可经由用户输入接口160,或其他合适的装置被连接至系统总线121。在联网环境中,所描述的与计算机110有关的程序模块,或其部分,可被存储在远程存储器存储设备中。作为例子,而非限制,图1将远程应用程序185作为驻存在存储器设备181上来说明。要理解的是,所示的网络连接是用作范例的,并且在计算机之间建立通信链接的其他装置也可被使用。用作范例的网络浏览器图2展示了用作范例的网络浏览器的可视接口。如本领域中所知的,网络浏览器是使得用户能够与某类型内容(如HTML内容)交互,并且能够从网络中检索这样的内容的一段软件。浏览器200可以,例如,组成存储在计算机110上(图1中所示的)、并且在处理单元120上执行(图1中所示的)的软件。浏览器200可从计算机110所连接到的广域网173(图1中所示的),例如因特网,中访问内容,。一般地,浏览器也可以访问在计算机110上本地存储的内容。图2的用作范例浏览器向用户显示各种各样的信息。特别是,浏览器200向用户显示站点链接栏202。站点链接栏202包括框204,用户可输入统一资源定位(URL)到框中,依次点击浏览器到特定内容项目。在图2的例子中,用户输入URLhttp//search.msn.com到框204中,由此表明用户希望访问由URL标识的内容。浏览器200从它可能位于的因特网的哪个地方中检索这个内容,并且在视图区域206中显示内容。在图2的例子中,内容用HTML或XHTML传送。(在URL中的词语http表示“超文本传输协议”;在URL中它的出现表明基本内容是HTML或XHTML内容)。浏览器200包含,或访问,HTML和/或XHTML解释器,解释器呈现由浏览器200接收到的HTML或XHTML内容。在图2的例子中,浏览器200在标题栏208中显示内容的标题(“MSNSearch——“MoreUsefulEveryday”)。一般的浏览器,诸如浏览器200,也使得用户能够完成各种各样的功能,如打印、邮寄、或保存已显示的内容;使用“收藏夹”或“书签”的清单来导航到其他内容;改变文本内容的默认字体等等。这个功能通过菜单栏210和/或按钮212向用户展示。如下所述,本发明为生成内容提供了基础结构,如在视图区域206中被显示的那些。用于创建内容呈现的数据结构本发明提供了归纳和抽象用来创建诸如用于网页的XHTML内容的过程的基础结构。(对于这点,浏览器可呈现内容的例子应指的是作为XHTML内容的内容。但是,应该理解的是本发明可被用来生成其他类型的内容,如HTML、无线标记语言(WML)、话音可扩展标记语言(VXML)等等)。本发明的基础结构利用了四种类型的数据结构线框、视图、控制和配置文件。“线框”是定义一页内容的空间区域的数据结构。每个区域被称为“槽”。“控制”包括动态地生成XHTML内容的可执行或可解释编码,被放入由线框定义的特定的槽中。“视图”是在特定的槽和特定的控制(或特定的一连串控制)之间建立映像的数据结构。视图也可将可扩展样式语言(XSL)标记、或另一个视图映像到槽中(视图也可将一连串XSL标记或视图映像到槽中);到槽中的XSL标记和视图的映像在下面更详细讨论。“配置文件”包括被控制用来影响它们行为的数据。例如,控制可能能够生成特定内容段的两个或更多的不同变体,并且配置文件可包含表明这些变化中的哪个应被生成的参数。图3展示了用作范例的线框300。线框300将内容的概念页分成区域,区域如上所注,被称为“槽”。在图3的例子中,有四个槽,304(1)、304(2)、304(3)和304(4)。每个槽有个名字;在这个例子中,从304(1)到304(4)的名字各自为“slot_header”、“slot_results”、“slot_sidebar”和“slot_footer”。线框300本身也有名字(“WireFrame_Site”,在这个例子中)。如下所要讨论的,名字被用在视图数据结构中以识别线框及其每个槽。一般地,线框被表示为XHTML结构。因此,图3中所示的用作范例的线框可被定义为如下&lt;wireframename=”wireframe_site”&gt;&lt;div&gt;&lt;slotname=”slot_header”/&gt;&lt;/div&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;slotname=”slot_results”/&gt;&lt;/td&gt;&lt;td&gt;&lt;slotname=”slot_sidebar”/&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div&gt;&lt;slotname=”slot_footer”/&gt;&lt;/div&gt;&lt;/wireframe&gt;如所见,上述XHTML定义设计了四个内容区域具有槽名“slot_header”的顶端区域;具有槽名“slot_footer”的底端区域;以及在顶端和底端区域之间的两列表格,其中左列被称为“slot_results”,右列被称为“slot_sidebar”。图4展示了用作范例的控制400,它生成XHTML内容402。控制400有名字(“Control_Footer”,在这个例子中),并且,如下所述,名字被用在视图数据结构以识别控制。控制400可被用来产生将被插入到线框300中名为“slot_footer”的槽中的内容。控制400包括可执行或可解释编码,当编码执行时被配置成动态地生成XHTML内容402。控制400可用各种各样的方式实现。例如,控制400可包括机器可执行编码(如.exe或.dll文件)、可解释脚本(如在JAVA或C#语言中的脚本),虚拟机器编码(如Java字节码)等等。下面是描述控制400功能的伪码的例子。(将易于理解的是下列伪码可在任何上述可执行或可解释部件中被实现。)<prelisting-type="program-listing"><![CDATA[  XTHMLControl_Footer()  {  StringstrFooter;  strFooter=_  “<TABLEWIDTH=771”HEIGHT=”16”CELLPADDING=”0”  CELLSPACING=”0”BORDER=”0”>  <TR><TDWIDTH=”770”HEIGHT=”1”BGCOLOR=”#bdbebd”>  <SPACERTYPE=”block”HEIGHT=“1”/></TD></TR>  <TD><TDHEIGHT=”15”class=”nsf”>&amp;ndsp;&amp;nbsp;  ”  strFooter=strFooter&amp;file_read(copyright_notice.txt);  strFooter=_  “</TD></TR></TABLE>”  returestrFooter;  }]]></pre>上述伪码将控制400定义为生成和返回XHTML内容的名为“Control_Footer“的函数。在这个例子中,Control_Footer将XTHML编码返回到表格中,表格具有特定尺寸和背景颜色,并且包含诸如”Copyright2003MicrosoftCorporation-AllRightsReserved”的文本串(或不管什么文本串被包含在文件“copyright-notice.txt”中。)如上所注明的,控制可借助于被称为“视图“的结构被映像(或“绑定”)到线框的槽中。图5展示了用作范例的控制到线框200的槽中的映像。在这个例子中,控制420(被称为“Control_Header”)映像到槽304(1),控制410(”Control_Results”)映像到槽304(2),控制430(”Control_Sidebar”)映像到槽304(3),以及控制440(”Control_Footer”,如上所述与图4有关的)映像到槽304(4)。这种映像根据线框200定义了一页XTHML内容,线框中,由槽304(1)、304(2)、304(3)、和304(4)定义的每个区域将各自地被由控制420、410、430、440生成的XHTML内容填充。这个映像表示视图500。视图500,如图5所描述的,可由下列数据结构来表示<prelisting-type="program-listing"><![CDATA[  <viewname=”view_Classic”wireframe=”wireframe_site”>  <bindingslot=”slot_header”>  <ctlControl_Header/>  </binding>  <bindingslot=”slot_results”>  <ctlControl_Results/>  </binding>  <bindingslot=”slot_sidebar”>  <ctlControl_Sidebar/>  </binding>  <bindingslot=”slot_footer”>  <ctlControl_Footer/>  </binding>  </view>]]></pre>以上所示的数据结构将名字“view_Classic”分配给视图。因为一般系统有几个视图,名字允许视图从几个视图中被识别。正如所见,数据结构包含每个槽的“绑定”,并且表明将被“绑定”到槽中的特定控制。虽然上述例子展示被绑定到每个槽中的简单控制,但是应该注意到,多个控制可被绑定到单个槽中以被按次序地执行。因此,“slot_header”的绑定可如下被读取&lt;bindingslot=”slot_header”&gt;&lt;ctlControl_A/&gt;&lt;ctlControl_B/&gt;&lt;ctlControl_C/&gt;&lt;/binding&gt;这种绑定将表明名为“Control_A”、“Control_B”和“Control_C”的控制按表明的次序执行以便将内容填充slot_header中。此外,当上述例子仅仅展示被绑定到槽中的控制,如前所注明的,本发明也允许视图或XSL标记被绑定到槽中。控制到槽的绑定是绑定的最简单例子。但是,槽绑定的概念可以被通用化,图6-12展示了这样通用化的例子。用视图来明确规定内容的例子如上所述,控制是生成XHTML内容的软件对象。将控制“映像”或“绑定”到槽意味着槽将被由控制生成的XHTML内容填充。然而,控制不是生成XHTML内容的唯一类型的对象。特别是,本领域所熟知的是XSL标记可被计算来产生XHTML内容。此外,当视图被计算来将合适的内容放入线框的槽中时,这个计算的结果是XHTML内容,所以视图也是产生XTHML内容的另一个对象。考虑这些事实,可看到XSL标记和视图,以及可被计算来产生XTHML内容的任何其他类型的对象,可被映像到槽。图6-11展示如何构建视图,视图可被绑定到线框300(图3中所示的)中名为“slot_header”的槽。结合以前例子,视图包含用于特定线框的槽绑定,所以有必要定义将被用在视图中的线框。图6展示了线框600,被称为”WireFrame_Header”。线框600有四个槽,602(1)、602(2)、602(3)和602(4),各自被称为“slot_big7”、“slot_banner”、“slot_sharkfin”和“slot_querybox”。这个线框可由下列数据结构定义&lt;wireframename=”WireFrame_Header”&gt;&lt;div&gt;&lt;slotname=”slot_big7”/&gt;&lt;/div&gt;&lt;div&gt;&lt;slotname=”slot_banner”/&gt;&lt;/div&gt;&lt;div&gt;&lt;slotname=”slot_sharkfin”/&gt;&lt;/div&gt;&lt;div&gt;&lt;slotname=”slot_querybox”/&gt;&lt;/div&gt;&lt;/wiregrame&gt;图7-10展示将被绑定到线框600的槽602(1)至602(4)的各种各样的对象。图7展示了名为“Big7”的XSL标记700。XSL标记700关联于XSL数据,它在合适的XSL处理软件的帮助下,可被用来生成XHTML内容,内容包含出现search.msn.com美国版网站的顶端的“big7”链接702。这些“big7”链接是”MSNHome”、”MyMSN”、“Hotmail”、”Search”、“Shopping”、“Money”以及“People&amp;Chat”。图8展示了另一个XSL标记800,被称为“Banner”。XSL标记800可被XSL处理软件以与XSL标记700相同的方式计算。但是,XSL标记800产生条幅广告802。在图8的例子中,这个条幅广告是用于Redmond大学的。图9展示了被称为“Control_Sharkfin”的控制900。控制900生成在曲线图形(参照数字902)旁边展示字母MSN的XHTML内容,内容出现在search.msn.com网站上。(图形从鲨鱼的背鳍导出其名字,曲线是它的联想)图10展示了被称为“View_QueryBox”的视图1000。与视图500一起(上述连同图5讨论的),视图1000表示在线框的槽和将为那些槽生成内容的对象(如控制、XSL标记、或视图)之间的映像或绑定。在图10的例子中,线框1002有两个槽,1004(1)和1004(2),各自被称为“slot_searchbox”和“slot_polead”。视图1000将槽1004(1)(“slot_searchbox”)绑定到为框1006和“go”按钮1008产生XHTML内容的对象中,用户可将查询打入框1006,用户可点击“go”按钮1008向搜索引擎发送查询。槽1004(2)(“slot_polead”)被绑定到为广告1010产生XHTML内容的对象。将XSL标记700和800、控制900、以及视图1000绑定到线框600的槽的视图可被创建(图6中所示的)。图11展示了这样的绑定。XSL标记700(”Big7”)被绑定到槽602(1)(“slot_big7”)。XSL标记800被绑定到槽602(2)(“slot_banner”)。控制900(”Control_Sharkfin”)被绑定到槽602(3)(“slot_sharkfin”)。视图1000(”View_queryBox”)被绑定到槽602(4)(“slot_querybox”)。由这种绑定定义的视图1100可如下列数据结构表示<prelisting-type="program-listing"><![CDATA[ <viewname-=”view_header”wireframe=”WireFrameheader”>  <bindingslot=”slot-big7”>  <xslBig7/>‘XSLyieldsBig7HTML  </binding>  <bindingslot=”slot_banner”>  <xslBanner/>“XSLyieldsBannerAdcreative  </binding>  <bindingslot=”slot_sharkfin”>  <ctlControl_Skarkfin/>  </binding>  <bindingslot=”slot_querybox”>  <viewView_QueryBox/>  </binding>  </view>]]></pre>上述数据结构将“view_header”的名字给于视图1000,并且创建了图11中所描述的绑定。在上面例子中,要注意的是被绑定到槽的每个类型的对象被标志预定为它的类型——例如,“xslBanner”,以表明“Banner”是XSL标记,并且相似的词语“ctlControl_Skarkfin”和“viewView_QueryBox”来标志控制和视图。使用这种类型的标志是较佳的,因为控制、XSL标记、以及视图要求不同类型的处理,并且标志使得视图绘制工具(下面连同图13-14所讨论的)能够容易地识别什么类型的对象需要处理。如上所注明的,图6-11展示了例子,其中视图(视图1100)被绑定到线框300中的槽304(1)(”slot_header”)。(另一个视图不得不被创建以将线框300的槽绑定到将填充这些槽的内容生成对象。这个视图将包括在槽304(1)和视图1000之间的绑定。这样的视图的细节能够容易地从后续讨论中被理解。)图12展示了根据这个绑定可被创建的结果内容。图12展示了线框300,及其四个槽304(1)、304(2)、304(3)和304(4)。因为槽304(1)(“slot_header”)被绑定至视图1100中,线框600(视图1100是以此为基础的)作为覆盖槽304(1)被展示。线框600,依次,有四个槽602(1)、602(2)、602(3)和602(4)。在这四个槽中,槽602(4)被绑定至视图1000(图10中所示的),视图1000,依次,是以线框1002为基础的。因此,在图12中线框1002作为覆盖槽602(4)被展示。从图12中可理解,其中所示的内容形成了层次,其中线框1002是在线框600的一个槽中,线框600,依次,是在线框300的一个槽中。从层次底部到向上分析图12中所示的内容,可以看到视图1000生成下列内容框1006和“go”按钮1008(在线框1002中的槽1004(1)内),以及广告1010(在槽1004(2)内)。这个内容位于线框600中的槽602(4)内。线框600也包含内容项目702、802和902,这些可从XSL标记和控制中被生成,如以上图7-9中所描述的。视图1100因此生成被包含在线框600的槽中的内容。因为视图1100已被绑定到线框300的槽304(1),由视图1100生成的内容被放入槽304(1)中。图12也展示了槽304(2)-304(4);视图可以被明确规定为以上述方式将这些槽绑定到控制、XSL标记、以及视图。虽然图6-12的例子展示被绑定到单个控制、XSL标记、或视图的每个槽,如上所注明,槽可以被绑定到多个控制、XSL标记、或视图,它们都能被计算来填充给定的槽。应该注明的,虽然图12使用虚线来展示线框及其槽的外形,但是这些线实际上不被包括在从视图构建的内容中。这些线仅仅在图12中被展示以说明层次结构,在结构中内容可根据本发明被构建。从视图生成内容的结构图13展示了依据本发明被用来生成内容的各种各样部件的概述。绘制工具1302是使用视图1304来生成XHTML内容的软件部件,内容适合于在浏览器(如浏览器200,图2中所示的)上表现。绘制工具可以,作为例子,在搜索引擎的服务器上存在,并且可以被用来动态地生成结果页面以响应用户查询。如上所讨论的,视图,如视图1304,包括在线框1308的槽的一方和内容生成对象1308的另一方之间的映像或绑定。也如上所讨论的,内容生成对象1316可采取各种各样的形式;控制1310、XSL标记1312、以及视图1314是对象的例子,内容生成以对象为基础。控制1310,如上所述,包括动态地生成内容的可执行或可解释编码。因为控制1310可以作为程序被实现,根据它们的输入它们能够展现不同行为。配置文件1316向控制提供这个输入。例如,根据各种各样情况,“sharkfin”控制(参照数字900,图9中所示的)可被用于生成鲨鱼鳍图形的不同版本(如,更宽或更窄的版本)。例如,根据网站是正通过导航栏202(图2中所示的)被直接访问,还是通过将视图区域206分割成两个窄的子区域的搜索协助特性被访问,search.msn.com网站可生成鲨鱼鳍的或宽或窄的版本。配置文件1316可包含被鲨鱼鳍控制用来明确规定哪个鲨鱼鳍的版本将被生成的参数。如果鲨鱼鳍控制被设计来响应配置文件中的参数,那么鲨鱼鳍的不同版本可用单个控制和多个配置文件被创建;不同的配置文件可根据哪个鲨鱼鳍的版本将被产生提供给控制。此外,配置信息可作为槽绑定的部分在视图中被明确规定。例如,绑定&lt;bindingslot=”slot_a”&gt;&lt;control_name=”header”mode=”default”&gt;&lt;/binding&gt;可被用来明确规定“header”控制将被用于默认模式,并且相似的绑定&lt;bindingslot=”slot_a”&gt;&lt;control_name=”header”mode=”searchpane”&gt;&lt;/binding&gt;也可被用来明确规定“header”控制将被用于“searchpane”模式。这种明确规定不同模式的方式与使用不同配置文件来明确规定用于控制的不同参数的方式同样直作用。如配置文件使用的另一个例子,在这里描述的基础结构可被搜索引擎用来生成查询和结果页面。不同用户可能希望以不同格式浏览搜索结果,——例如一个用户可能希望仅仅接收搜索结果的文本描述,而另一个用户可能希望浏览伴随文本描述的缩略图。单个“结果”控制可以被写(如,用于绑定到“slot_results”槽304(2)中,图3中所示),这能够生成各种格式的结果。由“results”控制生成的特定格式依赖于包含在配置文件1316中的参数。结果被表示的实际格式可通过改变配置文件被简单地改变。在一个例子中,一些配置文件(每个具有不同参数)可被提供,并且用户可以被给以改变结果呈现的机会。例如,当用户接收包含搜索结果的页面时,用户可使用页面上的菜单来选择用户想要接收结果的不同形式。用户的选择然后被发送至搜索引擎服务器,带有服务器用不同配置文件重新生成页面的请求。应该注意的是配置文件1316可被作为传统的“文件”被实现(例如,被存储在文件系统中的指定对象),但不限制于这个实施例。一般地,“配置文件”表示存储在某个地方并且可被控制访问的数据,而不管这个数据是如何被存储的。根据视图生成内容的过程根据视图生成内容的过程可由下列伪码描述<prelisting-type="program-listing"><![CDATA[  RendererEval()  {  ForeachSlotintheView’sWireFrame  {  FindSlotbindinginViewBindings  Ifbindingexists  IfbindingisaControl  Slot=Evaluatethecontrol  IfbindingisaXSLTag  Slot=ProcessXSL  IfbindingisaView  Slot=RendererEval(subview)Ifbindingdoesnotexist  Slot=empty  }  }]]></pre>上述RendererEval()方法被实现,例如,通过绘制工具1302。方法采用视图作为参数,步进通过视图的线框中的槽,并且根据什么对象被绑定到槽为每个槽生成合适的XHTML内容。如果槽被绑定到控制,控制被执行并且槽被由控制生成的XHTML内容填充。如果槽被绑定到XSL标记,那么XSL处理软件被应用到标记上以生成合适的XHTML内容。如果槽被绑定到视图,那么视图被计算来生成XHTML内容。在上面的伪码中,“子视图”是被绑定到“RendererEval()”函数正在计算的槽的视图。正如以上伪码中所见的,RendererEval()可以递归地调用自身以计算这个子视图。图14展示了由绘制工具1302实现的过程的流程图。绘制工具得到视图(方块1402)。在以上伪码例子中,当视图被作为参数被传递到绘制工具的最高层方法时,这个步骤被完成。绘制工具然后检查第一个槽绑定(方块1404)。如果绑定是空的(方块1405),那么没有内容放入这个槽中,所以绘制工具继续到方块1414以决定是否有任何更多的槽。然而,如果槽没有绑定,那么绘制工具进行计算绑定到槽的对象,并且根据那个对象用合适的内容填充槽。如上所注明的,绑定较佳地表明槽是否被绑定到控制、XSL标记或视图。根据什么类型的对象被绑定到槽,绘制工具出现分支(方块1408)。如果槽被绑定到控制,那么控制被执行以产生XHTML内容,并且XHTML内容被放入槽中(方块1408)。如果槽被绑定到XSL标记,那么XSL标记被处理以生成XHTML内容,并且内容被放入槽中(方块1410)。如果槽被绑定到另一个视图,那么这个其他的视图被计算来生成XHTML内容,并且那个内容被放入槽中(方块1412)。如上所注明的,当视图在槽绑定中被遇到时,计算那个视图的过程是和计算最高层视图的过程本质相同的;方块1412,事实上,可作为对完成图14过程的方法的递归调用被实现。当前的槽被处理后,绘制工具决定在当前视图中是否有另外的槽(方块1414)。如果没有这样的槽,那么过程终止。如果有另外的槽,那么绘制工具继续到下一个槽(方块1416),并且返回到方块1405来处理下一个槽。要注意的是,上述例子仅仅为了解释被提供,并且决不被理解为本发明的限制。当本发明参考各种实施例描述时,要理解这里所使用的词是描述和说明性的词,而不是限制的词。此外,尽管本发明参考特定装置、材料和实施例在此描述,但是本发明不试图被限制于这里揭示的特例;而是,本发明扩展至所有功能上等效的结构、方法和使用,如在后附权利要求书的范围中。那些本领域熟练的技术人员,得益于这个规范的指导,在不脱离本发明在其方面的范围和精神下,使得许多本发明的修改和变化可以被做出。权利要求1.一个用于生成内容项目的系统,其特征在于,它包括第一线框数据结构,它定义内容项目的多个区域;第一组内容生成对象;第一视图,它将第一组内容生成对象映像到由第一线框定义的区域中;以及绘制工具,对于由第一线框定义的每个区域使得内容根据由视图映像到区域的内容生成对象被生成;以及将生成的内容插入区域。2.如权利要求1所述的系统,其特征在于,内容项目包括超文本标记语言(HTML)或扩展超文本标记语言(XHTML)网页。3.如权利要求1所述的系统,其特征在于,由视图映像到区域的内容生成对象是包括可执行或可解释编码的控制,生成的内容由所述可执行或可解释编码的执行生成。4.如权利要求3所述的系统,其特征在于,还包括配置文件,其中由可执行或可解释编码生成的内容至少部分地基于所述配置文件中包含的数据。5.如权利要求3所述的系统,其特征在于,视图明确规定了模式,在模式中可执行或可解释编码要运行,并且由可执行或可解释编码生成的内容至少部分地基于明确规定的模式。6.如权利要求1所述的系统,其特征在于,由视图映像到区域的内容生成对象包括可扩展式样语言(XSL)标记,并且根据所述XSL标记,绘制工具使用XSL处理器生成内容。7.如权利要求1所述的系统,其特征在于,由视图映像到区域的内容生成对象包括第二视图,第二视图通过将第二线框与第二组内容生成对象联系起来明确规定内容,生成的内容通过绘制工具的计算第二视图生成。8.如权利要求1所述的系统,其特征在于,至少一个由第一线框定义的区域不与任何内容生成对象一起被第一视图映像,并且绘制工具使得内容项目能够反映在所述由第一线框定义的区域之一中的内容缺失。9.一个用于生成内容项目的方法,其特征在于,包括访问明确规定一组线框的槽与一组内容生成对象之间的联系的视图,线框的槽定义了内容项目的区域;以及对于每个槽,根据内容生成对象,将内容插入所述槽之一中,视图将内容生成对象与所述槽之一联系起来。10.如权利要求9所述的方法,其特征在于,内容项目包括超文本标记语言(HTML)或扩展超文本标记语言(XHTML)网页。11.如权利要求9所述的方法,其特征在于,内容生成对象包括可执行或可解释编码,视图将内容生成对象与所述槽之一联系起来,并且其中被插入所述槽之一的内容通过执行所述可执行或可解释编码被生成。12.如权利要求11所述的方法,其特征在于,可执行或可解释编码在确定所生成内容期间考虑包含在配置文件中的数据。13.如权利要求11所述的方法,其特征在于,可执行或可解释编码在确定所生成内容期间考虑在视图中明确规定的模式。14.如权利要求9所述的方法,其特征在于,内容生成对象包括可扩展式样语言(XSL)标记,视图将内容生成对象与所述槽之一联系起来,并且方法还包括根据XSL标记,使用XSL处理器生成内容。15.如权利要求9所述的方法,其特征在于,内容生成对象包括子视图,视图将内容生成对象与所述槽之一联系起来,并且方法还包括计算子视图以生成被插入到所述槽之一中的内容。16.用计算机可执行指令编码计算机可读媒体以完成生成网页的方法,其特征在于,方法包括接收第一视图,视图明确规定了第一线框与第一组内容生成对象之间的对应关系,第一线框包括网页的多个区域,每个区域或者是空的或者是对应于第一组内容生成对象之一;对于第一线框中的每个所述区域如果所述区域之一对应于一内容生成对象,那么在所述区域之一中,根据所述内容生成对象,将内容加至网页;如果所述区域之一对应于一内容生成对象,那么使得网页被构造以反映所述区域之一中内容的缺失。17.如权利要求16所述的计算机可读媒体,其特征在于,这组内容生成对象包括一个或多个可执行或可解释编码,它们操作来生成内容;可扩展式样语言(XSL)标记,它向XSL处理器明确规定将被生成或检索的内容;第二视图,它明确规定了第二线框与第二组内容生成对象之间的对应关系。18.如权利要求17所述的方法,其特征在于,可执行或可解释编码生成的内容是包含在配置文件中的数据的函数。19.如权利要求17所述的方法,其特征在于,可执行或可解释编码生成的内容是在第一视图中为可执行或可解释编码明确规定的模式的函数。20.计算机可读媒体在其上编码了数据结构以帮助内容项目的生成,其特征在于,数据包括第一线框的第一标识符,第一线框定义内容项目的多个区域;对于由第一线框定义的至少一个区域,明确规定关联于所述区域之一的内容生成对象的绑定,绑定通过关联于所述区域之一的第二标识符识别所述区域之一,绑定还通过关联于所述内容生成对象的第三标识符识别内容生成对象。21.如权利要求20所述的计算机可读媒体,其特征在于,所述第一、第二和第三村识符的每一个包括一文本串。22.如权利要求20所述的计算机可读媒体,其特征在于,内容生成对象包括生成将被插入进所述区域之一的内容的可执行或可解释编码。23.如权利要求20所述的计算机可读媒体,其特征在于,内容生成对象包括XSL标记,它向XSL处理器明确规定将被生成或检索的内容。24.如权利要求20所述的计算机可读媒体,其特征在于,内容生成对象包括将第二线框的区域与一组内容生成对象联系起来的第二视图。全文摘要用于表示网络内容的结构,将那个内容的各种组成模块化。“线框”定义了一页内容的空间区域。区域被称为“槽”。“视图”定义了在线框中的槽和生成内容对象之间的映像或绑定。根据被绑定到槽的对象,绘制工具用内容填充槽。槽可被绑定到控制、可扩展式样语言(XSL)标记、或其他视图。控制是生成内容以填充槽的可执行或可解释编码。XSL处理器也可根据XSL标记生成这样的内容。此外,视图可以被递归地使用,所以槽的内容可由另一个视图生成。控制可从配置文件中接收参数,所以给定的控制可产生给定原始内容段的不同变体。文档编号G06F17/30GK1525314SQ20041000761公开日2004年9月1日申请日期2004年2月24日优先权日2003年2月24日发明者M·罗卖林-斯托批格男,M·A·F·卡尔布西,F卡尔布西,M罗卖林-斯托批格男申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1