首页> 中国专利> 使用DHTML和XSLT编写任意XML文档

使用DHTML和XSLT编写任意XML文档

摘要

描述了使用DHTML视图和XSLT编写XML的方法和系统。在DHTML视图中可以自动或半自动地提供各种用户接口,所述用户接口允许用户与DHTML视图进行交互。接口允许用户与DHTML视图交互,并且使得自动针对描述与DHTML视图相关的数据的对应XML文档进行那些交互,其中一些接口被称作“文档内”接口。各种文档内接口的呈现不仅考虑到XML模式(XML文档是其实例),而且考虑到被用来将XML文档转换成DHTML视图的XSL-T(XSLT转换)。另外,引入“水晶”的概念,并且此概念被用来将与DHTML视图的交互直接映射回到对应的XML文档。“水晶”的基本形式包含一或多个行为和相关的XSL-T。“水晶”被用来将XML转换成DHTML视图。“水晶”的行为被定义成特定或相关的数据形,数据形由XML文档来定义。行为不必依赖任何模式、数据或标签。由于其数据形相关性质,可以封装“水晶”以便重用于各种XML文档,所述XML文档彼此没有关系,除了由XML定义的形之外。行为可以附属于XSLT产生的DHTML标签。行为保证与DHTML视图的用户交互直接映射回到XML文档。通过这种方式,可以编写XML文档以反映用户对DHTML视图做出的改变。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-05-08

    未缴年费专利权终止 IPC(主分类):G06F17/00 授权公告日:20081203 终止日期:20190514 申请日:20010514

    专利权的终止

  • 2015-05-27

    专利权的转移 IPC(主分类):G06F17/00 变更前: 变更后: 登记生效日:20150507 申请日:20010514

    专利申请权、专利权的转移

  • 2008-12-03

    授权

    授权

  • 2005-08-31

    实质审查的生效

    实质审查的生效

  • 2005-07-06

    公开

    公开

说明书

技术领域

本发明涉及使用动态超文本标记语言(DHTML)编写可扩展标记语言(XML)文档。

背景技术

可扩展标记语言(XML)正逐渐变成传送数据的优选格式。XML是基于标签的层次语言,具有非常丰富的数据表达能力。例如,XML可以表示从半结构化数据(例如在字处理文档中发现的数据)到通常的结构化数据(诸如表格中含有的数据)的数据。XML非常适于各种类型的通信,包含企业-企业的通信和客户端-服务器的通信。

对于XML可以表示的数据的范围,当人们希望为数据提供可以被用户用来处理数据或含有数据的结构的用户接口时,出现了问题。从XML环境外部解决用户接口问题的典型方案是针对不同类型的数据(例如文档、表格数据)使用不同的UI技术。对于XML,当用户很可能遇到和希望与结构化和非结构化数据进行交互时,这个方案显然不是最好的。人们已经做出某些尝试以解决允许用户操作XML文档的问题,但至今为止,这些解决方案非常地不灵活并且不适于完全发挥XML和XSL-T的潜力,其中XSL-T是一种可用于将XML转换成动态HTML或DHTML的转换。有关XML、XSLT和XSD的更多信息可从W3C(环球网联盟)制定和提供的以下文档得到:XMLSchema Part 0:Primer,Extensible Markup Language(XML)1.0,XML Schema Part 1:Structures,和XSL Transformations(XSLT)Version 1.0。

例如考虑图1,其中图解了XML文档100、XSLT转换(XSL-T)102、所得到的DHTML文档104和XML模式或XSD文件106。XML文档100可以被表示成树形结构,其中各个树节点是对应的XML标签。XML文档100必须符合由XSD 106规定的XML模式。XSL-T 102是使用一或多个模板将XML文档树转换成不同类型的树,例如这里的DHTML树的转换处理。DHTML文档104显示XML树中描述的数据。XSL-T是单纯的模板集合,所述模板允许通过DHTML以软件开发人员可以定义的方式呈现数据。

例如考虑可以具有若干字段,即″主题″、″给″等等的电子邮件消息。在XML中,所有这些字段均可以被表示成标签。例如,″主题″字段可以被表示成XML标签″subj″。XSL-T建立引擎,该引擎尝试将当前节点与各个模板匹配,选择一个模板,并且可以在该模板中发现匹配的模式节点。转换电子邮件的XML表示的XSL-T可以包含匹配″subj″标签的模板。模板接着会列出与″subj″标签相关的字符串,但是在DHTML中会将词语″主题:″放在最终显示给用户的字符串之前。这是可以使用XSL-T完成的非常简单的转换处理例子。XSL-T也可以被用来向XML文档中表示的信息增加信息。例如,可以使用XSL-T增加各种标题或其它信息,以及标题下面的来自XML文档的伴随数据。于是,XSL-T实质上提供了非常健壮和灵活的,将XML描述的数据转换成DHTML表示的方式。XSL-T的一个表现形式是,所得到的DHTML结构与含有被XSLT用来提供DHTML的数据的对应XML树结构之间可能有很少的类同之处。

于是通过XSL-T实现了XML到DHTML的转换。这通常是单向转换,其中XML中描述的数据被转换成针对用户的表示格式。使用户能够通过其表示格式(例如DHTML)与数据进行交互是关键点。虽然从XML到DHTML的转换相当简单,然而没有清楚定义灵活并适于完全发挥XSL-T潜力的、与所述转换方向相反(即将DHTML转换成XML)的转换。也就是说,虽然存在对这个问题的简单解决方案,然而XSL-T的健壮性和对应XML与DHTML树中的差异使得非常难以得到相反的转换解决方案。

存在允许用户向DHTML文档输入数据的解决方案,其中所述数据被复制回到XML文档。然而这些解决方案不允许用户改变表示数据的XML树的结构。另外,存在这样的解决方案,即可以允许为某些XML树操作提供DHTML修改的硬编码解决方案,但是所述解决方案的硬编码性质使得它们非常专用于其所用于的数据和XML标签。例如,一个XSL-T模板可以包含允许用户对表格进行结构改变,例如增加新行的硬编码解决方案。这个硬编码解决方案只适用于具体限定的表格。如果开发人员希望针对不同表格使用硬编码解决方案,他们必须物理改变编程的解决方案以便具体应用于该情况。存在允许通过用户友好视图而不是DHTML和XSL-T进行任意XML的编写的解决方案。示例性产品包含Arbortext的Adept Editor,SoftQuad的XMetal,INRIA的Thot和FrameMaker的Framemaker for SGML。

因此,本发明的提出涉及这样的问题,即提供允许用户以灵活、可重复的方式操作DHTML文档的用户接口,其中操作被传送回到XML树,XML树表示具有DHTML表示的数据。

发明内容

描述了使用DHTML视图编写XML的方法和系统。在DHTML视图中可以自动或半自动地提供各种用户接口,所述用户接口允许用户与DHTML视图进行交互,并且改变相关DHTML树的数值(例如文本或性质)。数值改变被转换成相关XML结构的修改。例如XSL-T的转换被应用于修改的XML结构,而XML结构则改变DHTML视图以反映用户的交互。接口允许用户与DHTML视图交互,并且使得自动针对描述与DHTML视图相关的数据的对应XML文档进行数值修改,其中一些接口被称作″文档内″接口。各种文档内接口的呈现不仅考虑到XML模式(XML文档是其实例),而且考虑到被用来将XML文档转换成DHTML视图的XSL-T(XSLT转换)。

另外,引入″水晶″的概念,并且此概念被用来将与DHTML视图的改变直接映射回到对应的XML文档。″水晶″的基本形式包含一或多个行为和相关的XSL-T。在图解的例子中,行为被实现成与XSL-T产生的DHTML标签相关或附加在DHTML标签上的二进制代码。″水晶″被用来将XML转换成DHTML视图。″水晶″的行为被定义成特定或相关的数据形,数据形由XML文档来定义。行为不必依赖任何模式、数据或标签。由于其数据形相关性质,可以封装″水晶″以便重用于各种XML文档,所述XML文档彼此没有关系,除了由XML定义的形之外。

行为可以附加到XSL-T产生的DHTML标签上。行为保证与DHTML视图的用户交互直接映射回到XML文档。通过这种方式,可以编写XML文档以反映用户对DHTML视图做出的改变。

附图说明

图1是图解XML文档、XSLT转换、DHTML视图和XSD或模式的高层模块图。

图2是关于可以被用来实现所述实施例的计算机系统的高层图例。

图3的流程图描述了根据一个实施例的方法中的步骤。

图4的模块图图解了如何将DHTML视图的改变映射回到对应XML文档的一个方面。

图5的流程图描述了根据一个实施例的方法中的步骤。

具体实施方式

综述

描述了使用DHTML视图编写XML的方法和系统。在一个实现中,在DHTML视图中可以自动或半自动地提供各种用户接口,所述用户接口允许用户与DHTML视图进行交互,并且改变相关DHTML树的数值(例如文本或性质)。数值改变被转换成相关XML结构的修改。例如XSL-T的转换被应用于修改的XML结构,而XML结构则改变DHTML视图以反映用户的交互。接口允许用户与DHTML视图交互,并且使得那些交互反映在描述与DHTML视图相关的数据的对应XML文档中,其中一些接口被称作″文档内″接口。无论被用来将XML转换成DHTML的XSL-T的复杂度如何,均可以进行这些修改。各种文档内接口的呈现不仅考虑到XML模式(XML文档是其实例),而且考虑到被用来将XML文档转换成DHTML视图的XSL-T(XSLT转换)。

在另一个实现中,引入″水晶″的概念。″水晶″的基本形式包含一或多个行为和相关的XSL-T。″水晶″被用来将XML转换成DHTML视图。″水晶″的行为被定义成特定或相关的数据形,数据形由XML文档来定义。行为不必依赖任何模式、数据或标签。由于其数据形相关性质,可以封装″水晶″以便重用于各种XML文档,所述XML文档彼此没有关系,除了由XML定义的形之外。在描述的实现中,行为被附加到XSL-T产生的DHTML标签上。行为保证与DHTML视图的用户交互直接映射回到XML文档。通过这种方式,可以编写XML文档以反映用户对DHTML视图做出的改变。由于″水晶″是数据形相关而不是模式相关的,当形被XML文档定义时,它们可被用于编写属于不同模式的XML片段;这些片段简单地共享相同的形。

在本文中会使用以下术语:

·模式-文件(例如XSD文件),描述具体类型的XML文档的模式;模式通常含有定义表示XML文档的XML树的形的预定标签和属性;模式提供各个XML文档必须符合的结构;当编辑XML文档时,可以通过实例化的DOM(文档对象模型)(XDR DOM)访问该模式。可选地,可以从模式获得有关信息并且高速缓存该信息以备使用。

·XML文档-XML模式的实例。理论上,一个模式可以有无限数量的、实例化该模式的文档。当编辑文档时,文档的初始版本和最终版本均遵从相同的模式,尽管文档自身已经不同。当进行处理时,通过实例化的DOM(XML DOM)实例化XML文档。

·XSLT转换-将XML文档转换成HTML视图的XML文件;对于各个XML文档,可以有任何数量的XSLT转换,每个XSLT转换均在相同文档上建立不同的HTML视图。XSL-T文件包括一或多个模板,该模板与XML文档中的单元匹配。当在编辑模式下被应用于编辑知道的XSL-T的NetDocs时,最初由应用作者编写的XSL-T文件被NetDocs转换。这种转换可以将模板分成多个模板,并且根据应用开发者增加的特定于NetDocs的线索增加适当行为(见下文)。当编辑XML文档时,NetDocs通过实例化的DOM(XSL-T DOM)可以访问转换的XSL-T。

·DHTML视图-这是应用于XML文档的XSLT转换的结果。DHTML树含有用于显示数据和行为的可视提示。通过XSLT转换引入这些行为。虽然可以存在由XSLT转换的作者引入的行为,然而在NetDocs进行转换时,存在由NetDocs引入的行为。后一种行为拥有以下逻辑:

○将修改的HTML叶节点的数值复制到XML DOM

○根据HTML文档中的光标位置确定编辑上下文中哪些编辑服务可用。根据HTML上下文并且结合XSD上下文和被用来产生该部分视图的XSL-T模板,确定编辑上下文。使用户知道所述服务

■预定UI结构(例如表格、方框、日历控制、标记)在位(In-place)(在编辑区域中)

■允许NetDocs上下文块区域中的适当XML编辑上下文块。

○根据选择的编辑服务修改XML DOM的结构

○通过只刷新受XML DOM的改变影响的视图部分,增量更新HTML视图。

示例性计算环境

下面描述的实施例可以结合各种计算机系统使用。为了本文的目的,计算机系统可以被看作包含某种处理器,即微处理器和某种操作系统的任意计算设备。于是,可以认为计算机系统包含但不限于传统桌面计算机、更强力的服务器、和诸如蜂窝电话、袖珍计算机设备等等的各种手持设备。

图2示出了可用于实现这里描述的实施例的示例性计算机系统。计算机130包含一或多个处理器或处理单元132,系统存储器134和总线136,总线136将包含系统存储器134的各种系统部件连接到处理器132。总线136表示若干种总线结构中的任意一或多个,包含存储器总线或存储器控制器、外设总线、图形加速端口和使用各种总线体系结构中的任意总线体系结构的处理器或局部总线。系统存储器134包含只读存储器(ROM)138和随机访问存储器(RAM)140。含有帮助在计算机130内的单元之间传送信息,例如在启动期间传送信息的基本输入/输出系统(BIOS)142被存储在ROM 138中。

计算机130还包含针对硬盘(未示出)读取和写入的硬盘驱动器144,针对移动磁盘148读取和写入的磁盘驱动器146,和针对诸如CDROM或其它光学介质的移动光盘152读取或写入的光驱150。硬盘驱动器144、磁盘驱动器146和光驱150通过SCSI接口154或某些其它适当的接口被连接到总线136。驱动及其相关计算机可读介质提供对计算机可读指令、数据结构、程序模块和用于计算机130的其它数据的非易失存储。尽管这里描述的示例性环境使用了硬盘、移动磁盘148和移动光盘152,然而本领域的技术人员应当理解,在示例性操作环境中也可以使用其它类型的、可以存储计算机能够访问的数据的计算机可读介质,例如盒式磁带、快闪存储器卡、数字视盘、随机访问存储器(RAM)、只读存储器(ROM)等等。

若干程序模块可以被存储在硬盘144、磁盘148、光盘152、ROM138或RAM 140上,其中包含操作系统158、一或多个应用程序160、其它程序模块162和程序数据164。用户通过诸如键盘166和定点设备168的输入设备可以将命令和信息输入到计算机130中。其它输入设备(未示出)可以包含话筒、操纵杆、游戏垫、圆盘卫星电视天线、扫描仪等等。这些和其它输入设备通过接口170被连接到处理单元132,而接口170被连接到总线136。监视器172或其它类型的显示设备也通过诸如视频适配器174的接口被连接到总线136。除监视器之外,个人计算机通常包含诸如扬声器和打印机的其它外部输出设备(未示出)。

计算机130通常在网络环境中工作,网络环境使用针对一或多个远程计算机,例如远程计算机176的逻辑连接。远程计算机176可以是其它个人计算机、服务器、路由器、网络PC、对等设备或其它公共网络节点,并且通常包含针对计算机130所述的多个或所有单元,尽管图2中只图解了存储器存储设备178。图2中的逻辑连接包含局域网(LAN)180和广域网(WAN)182。这样的网络环境在办公室、企业计算机网络、内部网和互联网中随处可见。

当用于LAN网络环境时,计算机130通过网络接口或适配器184连接到局域网180。当用于WAN网络环境时,计算机130通常包含调制解调器186或其它用于在例如互联网的广域网182上建立通信的装置。可以位于内部或外部的调制解调器186通过串行端口接口156连接到总线136。在网络环境中,针对针对描述的程序模块或其部分可以被存储在远程存储器存储设备中。应当理解,所述网络连接只是示例性的,可以使用其它在计算机之间建立通信链路的装置。

通常,通过在不同时间存储在计算机的各种计算机可读存储介质中的指令对计算机130的数据处理器进行编程。通常通过例如软盘或CD-ROM发布程序和操作系统。从那里将它们安装或载入到计算机的辅助存储器中。在执行时,它们至少部分地被加载到计算机的主电子存储器中。当这样的介质含有结合微处理器或其它数据处理器实现下述步骤的指令或程序时,这里描述的发明包含这些和其它各种计算机可读存储介质。当根据下述方法和技术对其进行编程时,本发明还包含计算机本身。

为了图解,这里将诸如操作系统的程序和其它可执行程序部件图解成离散的模块,尽管认识到这些程序和部件在不同时间驻留在计算机的不同存储部件中,并且所述程序和其它可执行程序部件由计算机的数据处理器执行。

示例性实现

下面讨论的发明方法和系统与一种实现结合使用,在前面参考引用的文档中描述了该实现的各个方面。该实现实质上提供了具有单独可导航窗口的单独应用程序,所述可导航窗口可以被导航到由应用程序提供的多个不同功能。功能是可扩展的,并且可以通过诸如互联网的网络延伸。

使用模式和XSL-T产生用户接口

当用户与DHTML文档交互,以便以某种方式通过对其一或多个数值或性质的任何操作改变文档时,重要的是以一致的方式对XML文档进行那些操作,所述XML文档描述了DHTML文档后面的数据的结构。为了操作描述DHTML后面的数据的结构的XML文档,需要一种将DHTML中的用户交互转换成XML文档中的变化的方式。这就是找到XSL-T提供的转换函数的逆函数的问题。

在一个实现中,通过自动(或利用应用开发者提供的某种线索半自动地)产生DHTML文档内的、允许用户操作DHTML文档或与DHTML文档交互的适当用户接口(UI),所述实施例解决了这个问题。UI的提供不仅考虑到XML模式,而且考虑到被用于提供DHTML的XSL-T转换。与只根据XML模式来确定哪些可以或不可以加入XML文档的其它XML编写解决方案相比,这个实现有明显的不同。于是UI允许用户与被直接传送回到XML文档的DHTML视图进行交互(例如增加和/或删除结构)。

存在许多不同的潜在类型的UI,这些UI可以被提供给用户,以便允许用户与文档进行交互。某些例子包含但不限于根据用户上下文被自动加入窗口中的上下文块。在前面参考引用的标题为″TaskSensitive Methods And Systems For Displaying Command Sets″的专利申请中更详细地讨论了上下文块。其它形式的UI可以包含所谓的小配件(widget),小配件是文档本身内允许用户与文档交互的装饰(decoration)。例如,如果文档含有表格,则在表格周围可以有附加的装饰,其中在表格上用户可以点击以便增加或删除行或列,或者在列内到处移动表项。另一种UI是快捷键,加速器允许通过键盘进行交互。例如,如果你按下″Control-L″,则实现了某种预定动作。

在这个实施例中,完成判定处理,其中决定为用户提供哪个UI以及在何时提供。也就是说,可能存在若干个不同的UI选择,其中可以根据用户当前正在具体文档中进行的操作和及其在文档中的位置来进行UI选择。本发明的方案是使用若干不同的参数,并且根据参数的分析决定向用户提供哪个UI,使得他们可以与DHTML视图交互。在描述的实施例中,可以使用以下参数:

·有关用户在具体DHTML文档中的位置的选择。由于选择最初从DHTML一边开始并且在XML一边有对应,这表明了用户在具体XML文档中的位置;

·XML模式中对应于用户的选择的部分;

·期望产生的UI类型;和

·XSL-T文件

在XSL-T文件中,存在某些构造(construct),这些构造可以提示出所得到的DHTML中的某些结构。例如,XSL-T文件可以包含″xsl:对于每个″构造(即针对每个客户采取某个动作)。这个构造提示出DHTML中的重复结构,例如表格或段落。也就是说,如果存在一些客户,则重复某个动作会重复定义某个类型的结构。通过考虑这些XSL-T构造,可以识别出能够为用户显示的某些UI类型。

一个例子是表格编辑。例如,如果根据模式确定费用是可选的,则最初在表格中可能没有费用。XSL-T会具有″对于每个″构造以便呈现各个费用,但是由于XML文档中没有此构造,因此不显示任何内容。在这种情况下,UI应当产生增加费用的上下文块。

一旦产生第一个费用,则通过重复进行XSLT转换,现在可以查看表格。这里,根据存在与费用相关的″对于每个″的XSL-T线索,和可以增加多个费用的模式信息,决定不将″增加费用″显示成上下文块,但是增加适当的文档内UI,该UI现在会取代增加附加费用以作为表格的新行的功能。

当解决为用户显示哪个UI以允许与文档交互的问题时,期望使为用户呈现的总体外形尽可能保持整洁。例如,可以为用户呈现许多不同的上下文块,其中每个上下文块均具有其自身的可参加(engagable)按钮,用户通过参加所述按钮与DHTML视图进行交互。由于可能使上下文块区域混乱,这不是期望的。在文档内具有特定于文档本身并且允许用户与文档交互的″文档内″UI(例如小配件UI)会更加理想。″文档内″UI是在一部分文档内出现并且允许用户与一部分文档交互的UI。例如考虑含有嵌入图画的Word文档。当用户点击嵌入图画时,图画可以出现在一个框架内,该框架含有一或多个可以被点击以便操作该图画的按钮,例如用于旋转图画的旋转按钮。与嵌入图画相关的按钮被看作″文档内″UI。

为了提供这类UI,所述实施例检查XSL-T文件以识别哪个UI候选更加适于通过″文档内″UI提供其功能。

例如,如果模式指定允许多个费用,并且XSL-T具有用于费用的″对于每个″构造,通过查看费用匹配之后XSL-T引入的第一个单元,可以确定将增加哪类有用的UI。如果建立DHTML表格,则应当装饰上表格编辑小配件,但是如果存在例如间距(SPAN),则产生上下文块而不是文档内UI。

也就是说,上述上下文块不是″文档内″的,因为它们被配置在位置与一文档区域相邻的窗格内,其中所述用户可以在该窗格内对文档进行操作。所述实施例的一个目的是根据下面讨论的分析识别UI,该UI是用于引入为″文档内″UI的最优候选,所述″文档内″UI具体装饰文档部分并且允许用户与文档本身进行交互。

只考虑这样的情况,即可以呈现的UI不会是文档内UI,其中在分析为用户提供哪些UI时没有考虑到XSL-T。在当前例子中,上下文块是最一般的UI构造。但是如果我们知道具有在DHTML中建立的表格,则上下文块可以被文档内构造替代。通过检查XSL-T,我们可以找到XSLT转换建立了什么DHTML构造。也就是说,在不考虑XSL-T的情况下,只可能会产生一般UI,例如上下文块UI。例如,如果用户正在含有表格的DHTML文档内工作,则可以假定上下文块允许用户通过操作各种″文档外″UI来操作表格,例如增加行、列等等。通过考虑XSL-T,可以改进产生的UI,并且上下文块或至少一部分由上下文块提供的功能可以被其它类型的文档内UI替换。于是XSL-T被用于改进UI。

图3的流程图描述了根据这个实施例的UI产生方法中的步骤。步骤300在DHTML文档中进行选择。用户通过将其光标移动到文档内的具体区域来实现这个步骤。步骤302根据用户选择确定XML文档中的对应选择。例如,如果用户选择了表格中被用来显示XML文档的特定片段的具体部分,则这个步骤确定XML文档中对应于用户选择的确切片段。根据XML文档中的选择,步骤304确定XML模式中对应于选择的适当位置,和根据这个选择可以执行的各种动作。各种动作对应于各种方式,其中用户可以操作其具有选择的文档部分。接着步骤306产生可以针对各种动作类型而完成的适当操作。例如,如果用户正在表格中工作,则这个步骤可以产生增加行或列,或删除行或列的操作。一旦步骤306产生了操作,则步骤308根据XSL-T文件确定向用户显示哪个类型的UI。如果在这个处理中不考虑XSL-T,则可用UI会被提供成上下文块(即非″文档内″UI)。通过使用XSL-T,所述实施例通过减少产生的上下文块的数量,而不是产生″文档内″UI,改进了上下文块的产生,其中″文档内″UI的功能被重新分配成由上下文块来提供。

使用″水晶″的XML结构的操作

如上所述,XML的一个益处是丰富的数据描述能力。XML本质上可以提供各种数据变化。因此,与数据(DHTML中使用XSL-T显示的)交互的UI解决方案已经被硬编码,并且特定于各个模式。这是方便的表现形式,其中通过XSL-T可以提供硬编码解决方案。

在一个描述的实施例中,引入″水晶″的概念,此概念允许将与DHTML视图的交互直接映射回到XML文件或树。更加有利地,″水晶″被用来以独立于XML模式的方式在各种数据形上操作。这意味着,当数据具有具体的、由含有数据的XML树定义的形时,为所述具体的形配置的″水晶″可用于呈现DHTML,以及保证用户与DHTML视图的交互被直接映射回到XML树。″水晶″不关心数据形提供的具体数据,也不关心被用来包含数据的模式或标签。

例如考虑示出XML文档400、″水晶″402和所得到的DHTML文档404的图4。在一个基本形式中,″水晶″包括一或多个行为406和被用来将XML转换成DHTML的基本XSL-T 408。在这个具体例子中,行为被实现成与XSL-T产生的DHTML标签相关或附加在DHTML标签上的二进制代码。例如考虑被直接示出在XML文档400下面的分层树。这个分层树表示存储器中保存的一部分XML树。在这个例子,树具有″产品″根节点和作为″产品″根节点的子节点的″产品1″。在″产品1″节点下面有3个标记为″名称″、″数量″和″价格″的子节点。于是这个XML树可以表示被用来购买各种产品的购买订单的一部分。当通过″水晶″402呈现时,在410处显示结果DHTML视图。这个DHTML视图作为具有与DHTML标签相关的行为的树被直接图示在视图410的上方。DHTML视图实质上是包含由XML文档提供的数据的表格。现在假定用户希望通过增加具有对应数量和价格的附加产品来修改购买订单。过去,此问题的解决方案可以是硬编码一个向XML增加具体″产品标签″,并且接着相应向DHTML视图增加具体″产品标签″的函数。这是非常不灵活的解决方案,该解决方案被具体限制到XML文档的模式和标签上。在描述的例子中,通过与″水晶″402相关的行为来修改XML文档。具体地,针对这个具体XML树结构定义的行为包含可以对XML文档进行的修改,和使用XSL-T应用程序将变化映射到DHTML视图的映射。这个行为是数据形相关的,并且不是模式或数据相关的。

这一点在图4中通过DHTML视图404下面显示的DHTML树结构得到图示。在那里,示出了对应于″产品″节点并且装饰有行为的节点。这个行为是二进制代码,该二进制代码允许用户通过适当UI(例如附加到表格的文档内″增加产品″按钮411)与DHTML视图进行交互,并且将用户进行的任意已定义修改映射回到适当的XML树。当用户与DHTML视图交互时,对XML树进行结构操作(通过增加适当标签和结构),并且接着调用XSL-T以便重新显示DHTML视图。

在购买订单例子中,假定用户通过点击向表格410增加新行的″增加产品″按钮411,向DHTML视图表格增加新产品。在这个例子中,当增加新产品时,行为或二进制代码将修改映射回到XML树,并且通过对XML树进行结构改变来引入修改。在这个具体例子中,结构改变包含向XML树增加分支以表示新增加的产品。这个增加的分支被图示成″产品″XML树上的虚线分支。

考虑直接示出在产品XML树下面的第二个XML树412。这个树是″地址″XML树,并且与地址薄中可能出现的地址相关。这个数据非常不同于和产品XML树相关的数据。事实上,在数据之间根本不存在关系。然而注意,地址XML树的形与直接出现在其上方的XML树相同。在描述的实施例中,类似的″水晶″可用于呈现包含针对名称、街道和邮政编码的记录的地址薄。″水晶″可能包含略微不同的用于标记目的的XSL-T,但是可以包含相同的、在上述例子中被用来操作产品XML树的结构的确切行为。至此,在地址表格上提供了用户接口按钮411,并且用户接口按钮411包含的行为与产品表格的相关用户接口按钮相同。于是,当用户向其地址薄增加记录时,与DHTML″地址″标签相关的行为或二进制代码会保证对DHTML视图做出的任何改变均被直接映射回到对应的XML文档。

更加有利地,″水晶″可以是预封装的软件容器,所述软件容器包含特定于数据的形的行为,并且不必依赖XML文档可能包含的模式或具体数据。这个方案非常适于处理复杂的XSLT转换,这种复杂的XSLT转换是XSL-T提供的健壮所自然导致的。通过引入和关联DHTML树中的行为,解决了XML编写所涉及的、与处理复杂XSLT转换相关的问题。这个方案非常灵活,并且不象过去的解决方案那样被限制于任何一个模式或具体数据。这个方案还为应用开发者提供了开发复杂XSL-T的能力,其中不用担心如何响应用户对DHTML文档的操作而操作底层XML。此外,因为该方案使用了具有特定于数据形但不特定于模式或数据的行为,″水晶″在任何这样的XML文档上均可重用,其中所述XML文档具有的形对应于各种″水晶″的设计所针对的形。

图5的流程图示出了根据上述实施例的方法中的步骤。步骤500定义多个″水晶″,所述″水晶″均包含一或多个行为。在描述的例子中,行为被实现成二进制代码。行为特定于数据形,但不依赖模式或具体数据。步骤502使用一或多个″水晶″根据XML文档呈现DHTML视图。步骤504将至少一个行为附加到DHTML标签上。行为保证任何对DHTML视图进行的修改均被映射回到包含DHTML视图中的数据的XML文档,并且适当改变该XML文档。步骤506以某种方式根据通过UI的用户输入与DHTML视图交互。用户通过与DHTML视图内某种类型的结构,例如表格进行交互,可以实现这个步骤。响应用户与DHTML视图的交互,步骤508使用行为将用户的交互映射回到XML文档,并且在包含数据的XML树中进行适当的结构改变。例如,图4中如虚线所示从″产品″节点引出的XML分支可以是用户向DHTML视图中提供的购买订单增加新产品的结果。

例子

上述方案非常灵活,并且可以被提供应用程序的应用开发者方便地使用。假定独立软件提供商(ISV)为终端用户开发应用程序并且希望构造购买订单。ISV可以为购买订单选择适当的XML模式,而XML模式会接着定义购买订单可以包含的标签的类型。ISV会需要编写适当的XSL-T,所述XSL-T可以通过ISV定义的方式在DHTML中呈现购买订单。或许ISV希望制作特定于具体公司的购买订单。为此,XSL-T为ISV提供了一种方式。也就是说,各个ISV可能希望以特定于ISV的方式与众不同地呈现其数据。于是,虽然它们均可以使用相同的模式,然而会有许多不同的模式实例,其中各个模式实例可能非常不同于其它模式实例。上述基于″水晶″的实现的一个目的是,ISV应当非常容易地开发基于XML的应用程序。因此,当ISV编写其XSL-T时,它们可以引入通过多个不同″水晶″提供的各种行为。这些″水晶″是预定的,使得ISV不必费心定义它们。它们可以简单地选择适于其数据的形的″水晶″,并且将它们与XSL-T合并起来。现在,当XML被转换成DHTML时,用户与DHTML视图的交互可以被映射到底层的XML文档上。

虽然前面已经通过特定于语言的结构功能和/或方法步骤描述了本发明,但应当理解所附权利要求书定义的本发明不必受上述特定功能或步骤的限制。而是将特定的功能和步骤公开成实现权利要求书提到的发明的最优形式。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号