确认可扩展标记语言文档并实时报告模式违背情况的系统和方法

文档序号:6369234阅读:154来源:国知局
专利名称:确认可扩展标记语言文档并实时报告模式违背情况的系统和方法
近年来各种标记语言已经广为流行。作为其中的一种,可扩展标记语言XML是一种通用的标记语言,它提供了识别、交换和处理各种数据的方法。比如,XML用于产生的各种文档,它们可用于各种应用程序。XML文件中的元素有相关联的命名空间(namespace)和模式(schema)可扩展标记语言XML中,命名空间通常被用来作为每个XML文档的唯一标识。每个XML文档通过使用命名空间使得程序能够容易地区分出与该文档相关的XML类型。这个唯一的命名空间也同样支持区分来自不同文件又恰好有着相同名字的标记元素。
在XML环境中,XML模式提供了描述和验证数据有效性的途径。模式说明了什么样的元素和属性可用来描述在XML文档中的内容,元素可出现在哪里,哪些元素可出现在其他元素内。模式的使用保证了文件结构的一致性。模式可由用户产生,通常由像XML这样的标记语言提供支持。通过使用支持模式的XML编辑器,用户可以操纵XML文件,并依从用户创建的模式产生XML文档。
通常,当插入XML文档的元素和标签有错时,XML编辑器在把错误克服之前将拒绝用户继续XML文档的制作。这种情况下,如果与模式不符,XML编辑器往往不允许对XML文档进行编辑,从而编辑器无法提供自由格式编辑。编辑器的另一选择是让用户产生整篇XML文档,然后再从整体上验证XML文档的有效性。那么,验证时所出现的错误需要找出并予以改正。
本发明旨在能够进行可扩展标记语言(XML)文档有效性确认,并在用户编辑该文档时,实时的报告模式模式违背情况(schema violation)。字处理器具有相关联的可扩展标记语言(本地XML(native XML))。当用户将非本地XML模式文件与XML文档相关联的时候,字处理器就使用带有确认引擎(validationengine)的非本地XML模式来确认XML文档中的非本地XML元素。当用户将来自该模式的非本地XML元素插入XML文档中时,平行树(parallel tree)作为确认引擎的对象由字处理器来维护。该树包含与插入到XML文档中非本地XML元素相应的节点。该平行树帮助防止本地XML标记干扰XML文档中的非本地XML标记。尽管非本地XML标记与本地XML标记共存于相同的XML文档中,但该平行树还是允许独立于本地XML标记而来单独确认非本地XML标记。
在一个实施例中,每次将非本地XML元素插入到XML文档中时,取决于插入非本地XML元素的上下文,在平行树中的恰当位置创建了相应的节点。相应的,每次从XML文档中删除非本地XML元素时,相应的节点也从平行树中删除了。
除了追踪非本地XML元素之外,平行树还追踪着非本地XML元素的文本内容。非本地XML元素的内容存在于XML文档中,而不是平行树中,但平行树仍保持到元素的链接。如果需要,为平行树有效性确认的缘故,平行树会把内容检索出来。然后,该确认过程就可以确认该平行树节点间的结构关系,以及每个节点对其文本内容所施加的内容类型限制。
平行树实时的反映了XML文档中的变化,并允许对非本地XML标记的实时确认。当在非本地XML标记或XML文档的文本内容发生变化之后出现空闲瞬间时,相应于XML文档中发生变化区域的平行树的子树由确认引擎来确认。若非本地XML或文本内容的变化有一个或多个错误,则确认引擎就将该错误通知字处理器。然后,依照用来处理此类错误的用户接口指令,字处理器在XML文档以及平行树中均亮显该错误。


图1阐明了可用于本发明一个范例实施例中的范例计算装置。
图2是实施本发明范例环境的方框图。
图3是依照本发明的XML文档和平行树的范例方框图。
图4是依照本发明的XML文档和包含错误平行树的范例方框图。
图5是依照本发明,确认XML文档并报告错误的范例过程逻辑流程图。
图6是依照本发明,对XML文档中的变化进行定位和处理的范例过程逻辑流程图。
图7是依照本发明,确认XML文档的范例过程逻辑流程图。
图8是依照本发明,显示XML文档和平行树中错误的范例过程逻辑流程图。
具体实施例方式
在说明书和权利要求书中,除非上下文明确规定,下列术语均采用这里所述的明确意义。
术语“标记语言”或“ML”是指文档中的特别代码的语言,它指定文档的某些部分如何由应用程序解释。在字处理器文件中,标记元素可与指定元素内容如何显示或安排的特定格式相关联。在另外实施例中,如其它XML文档,所述标记可能旨在描述数据而不涉及显示问题。
术语“本地可扩展标记语言”或“本地XML”指与字处理器应用程序相关联的标记语言元素及与字处理器应用程序相关联的模式。
术语“非本地可扩展标记语言”或“非本地XML”指用户或其它应用程序创建,并遵从不同于本地XML模式的模式的标记语言元素。
术语“元素”是指XML文档的基本单位。元素可包含属性、其它的元素、内容和其它XML文档的块料(building blocks)。
术语“标签”是指插入到XML文档中描绘文档元素的命令。每个元素通常不超过两个标签开始标签和结束标签。具有一个标签的空元素(无内容)也是允许的。
标签之间的内容作为元素的“子”(或后代)。因此,嵌入到元素内容中的其它元素称为“子元素”或“子节点”或元素。直接嵌入到元素内容中的文本作为元素的“子文本节点”。子元素和和元素中的文本一起组成了该元素的“内容”。
术语“属性”是指被设定为特定值并与元素相关联的附加性质。元素可具有任意数量的与其相关联的属性,包括没有属性。属性被用来将附加信息与不包含在元素内容中的元素相关联。
示例性操作环境参照图1,用来实施本发明的一个范例系统包含计算装置,如计算装置100。基本配置包含虚线108内的那些部件。在基本配置中,计算装置100通常包含至少一个处理单元102和系统存储器104。取决于计算装置的准确配置和类型,系统存储器可为易失性的(如RAM)、非易失性的(如ROM、闪存等)或这两者的某种组合。系统存储器104通常包含操作系统105,一个或多个应用程序106,可以包含程序数据107。在一个实施例中,应用程序106包含具带有XML编辑器122的字处理器应用程序120。在这种配置中,字处理器应用程序120能在自由式编辑环境中打开和编辑XML文档。尽管在这里是以字处理器应用程序120来阐明本发明的,但本发明对其它类型的应用程序也有相同的适用性,这一点对本领域的熟练技术人员来说将是显而易见的。
计算装置100可具有附加的特征和功能特性。例如,计算装置100还可包含附加数据存储装置(可移动和/或不可移动),如像磁盘、光盘或磁带。这类附加存储器在图1中由可移动存储器109和不可移动存储器110来表示。计算机存储媒体可包括易失性的和非易失性的、可移动的和不可移动的媒体,以任何方法或技术实施信息的存储,如计算机可读指令、数据结构、程序模块或其它数据。系统存储器104、可移动存储器109和不可移动移动存储器110均是计算机存储媒体的例子。计算机存储媒体包扩,但不局限于,RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多用途关盘(DVD)或其它光存储器、盒式磁带、磁带、磁盘存储器或其它磁存储装置,以及能用来保存所需信息并能由计算装置100存取的其它任何媒体。任何这样的计算机存储媒体可以是装置100的一部分。计算装置100也可具有诸如键盘、鼠标、书写笔、语音输入装置、触摸输入装置等这样的输入装置112。计算装置100也可包含诸如显示器、扬声器、打印机等这样的输出装置114。这些装置是本领域所熟知的,这里就不必赘述了。
计算装置100也可包含通信连接器116,以使其能同其它计算装置118进行通信,比如在网络上进行通信。通信连接器116是通信媒体的一个例子。通信媒体通常可由计算机可读指令、数据结构、程序模块或已调制数据信号中的其它数据,诸如载波或其它传送机制来具体体现,该通信媒体包含任何信息传递媒体。术语“已调制的数据信号”意指将其一个或多个特性设置或改变为能对信号中信息进行编码的形式。作为例子,但不局限于此,通信媒体包括诸如有线网络或直线连接(direct-wired connection)这样的有线媒体,以及诸如声音、RF、红外线和其它形式的无线媒体。这里用到的术语“计算机可读媒体”既包含存储媒体,也包含通信媒体。
图2是实施本发明范例环境的方框图。图2所示的范例环境200包括字处理器120、XML文档210、非本地XML模式215、XML确认引擎225和数据结构230。数据结构230包括错误数据235、平行树220和同步数据240。
在一个实施例中,字处理器120具有其自身的名空间(namespace)和用于与字处理器120相关联的XML文档的模式。由字处理器120模式定义的标签和属性的设置可将XML文档的格式定义到这样一种程度,以致可将其视为自己的标记语言,即字处理器标记语言(本地XML)。本地XML得到字处理器120的支持,它可遵从其它标记语言的规则,同时创建自身的进一步规则。本地XML提供包含丰富显示信息的标记语言,这些显示信息通常与诸如文本格式(如粗体、斜体、下划线)、段落格式(如行间距、对齐(justification)和类似格式),列表格式(如表格行和列)和类似的格式这样的字处理相关联。然后,本地XML可与将更多实质结构加到文档的用户定义模式一起使用。
依照本发明,本地XML和非本地XML元素可共存于XML文档210中,并可分别确认。非本地XML元素与非本地XML模式215相关联。当非本地XML元素被确认时,检查它是否符合非本地XML模式215。如前面所述,模式阐明了什么标签和属性被用来说明XML文档中的内容,每个标签放在哪里,什么样的内容类型可在元素中出现,哪个元素可在其它元素中出现,确保文件以相同的方式组织。因此,当非本地XML元素按非本地XML模式215中所述组织时,该元素是有效的。在下面图7的讨论中进一步对非本地XML元素的确认进行了说明。
XML确认引擎225是配置为维持元素树并依照某个模式验证该元素树的模块。简言之,可传递给XML确认引擎225定义元素树的对象,如相应于XML文档210中元素的对象,模式指针,如指向诸如非本地XML模式215者,也可能是一个或多个元素树元素的内容。有了该信息,XML确认引擎225就依照模式验证元素树,并将任何违背信息报告给呼叫过程(calling process)。
在例程运作时,依照本发明的一个实施例,字处理器120维持了几个可参与到非本地XML元素确认中的数据结构230。平行树220是包含相应于XML文档210中每个非本地XML元素节点的元素树。在一个实施例中,平行树220知悉XML文档210的每个元素和内容,而且XML文档210也知悉平行树220的节点。因此,用户可亮显平行树220中的节点,而且相应于该节点的元素也在XML文档210中亮显了。与之相似,亮显XML文档210的部分会导至平行树220的相应节点被亮显。在下面图3的讨论中进一步对范例平行树进行说明。
错误数据235包括当出现与XML确认引擎225确认的元素相关的错误时从XML确认引擎225返回到字处理器120的数据。错误数据235也可包含字处理器120显示错误通知的信息。在一个实施例中,当出现确认错误时,字处理器120就报告四个单独的错误类型。这四个错误类型包括位置错误、无效内容错误、内容缺失错误和无效属性错误。除了提到的这四个错误,也可以使用其它不同类型的错误。将错误指定为特定错误类型简化了修正错误所必须的分析。错误数据235也可包含进一步与错误相关的信息,如关于可以如何修正显示给用户的错误的建议。错误信息的显示及关系将结合图8进一步说明。
同步数据包含用来将平行树220与XML文档210进行实时同步化的数据。在一个实施例中,同步数据240包含与XML文档210中的每个元素相关联的标识符表。所述标识符唯一地标识出XML文档210中的每个元素,因而也唯一地标识出平行树220中的每个节点。同步数据240帮助使出现在XML文档210中的变化和平行树220实现同步,包括在平行树220中添加或删除节点。包含添加节点到平行树220的步骤范例将结合图6做说明。
图3所示是可依照本发明维护的范例XML文档210和平行树220。XML文档210既包含本地XML元素,也包含非本地XML元素。标记语言中的元素通常包括打开标签(由“<”和“>”表示)、某些内容和关闭标签(由“</”和“>”表示)。在本例中,与本地XML模式相关联的标签包含标签中的“w”(如元素302),与非本地XML模式相关联的标签包含标签中的“r”(如元素304)。与本地XML相关联的标签视作与字处理器的名空间(字处理器名空间)相关联。相对地,与非本地XML相关联的标签作为与不同的名空间相关联,在本例中为“履历”名空间。XML文档210的元素可进一步包含内容。例如,“工作”包含在“目标”元素中,“123主要”包含在“街道”元素中。“街道”元素包含在“地址”元素中。对这些元素进行定义,依照的是相应于以前由用户或其它应用程序给出的履历名空间(如履历模式)的非本地XML模式。“w”和“r”前缀是作为各名空间的XML简洁符号。
平行树220包含XML文档210中每个非本地XML元素的节点(如节点322、324、326)。在一个实施例中,平行树220由与字处理器120分离的确认引擎225来维持(见图2)。平行树220实时地随着XML文档210的变化而更新。当平行树220按非本地XML模式215确认XML文档210时,平行树220允许字处理器120完全忽略本地XML元素。换言之,当为了确认有效性把平行树220提供给确认引擎时,非本地XML元素对对的非本地XML模式(?元素)是实际上透明的。然后,平行树220可对任何本地XML元素单独确认,结合图7对这一点将做进一步说明。
如图所示,平行树220包含与每个非本地XML元素相关联的内容。在另一个实施例中,在平行树被传递到确认引擎225进行确认之前,所述内容不复制到平行树220中。然而,在另一个实施例中,被复制到平行树220中的内容限于与要确认平行树220的部分相关联的内容。平行树220的确认结合图7做进一步说明。
图4是范例XML文档410及包含错误的平行树420的方框图。XML文档410和平行树420类似于图3所示的XML文档210和平行树220,然而,错误(关于非本地XML模式215)已经被添加到非本地XML标记中。该错误由错误元素432表示,是邮政编码。依照非本地XML模式215,该“邮码”(“zip”)元素是设定成地址的子,或“街道”(“street”)元素兄弟兄弟(sibling)。然而,在所示的例子中,由于“邮码”被放置成“街道”的子,所以该“邮码”元素是无效的。依照本发明,平行树420反映出的是“邮码”元素被作为“街道”元素的子插入。因此,当依照非本地XML模式215确认平行树420(或包含“街道”元素的某些相关子树)时,错误被返回。在本例中,字处理器120将XML文档410中的错误用下划线标识,然而,也可使用其它的显示指示符来标示该错误。
错误的标示也包含在平行树420中,其中,图标442表示“邮码”节点422有相关联的错误。在另一个实施例中,其它显示指示器可用在平行树420中来表示与节点相关联错误的存在。根据所示的例子,右击XML文档410中加下划线的元素(如错误元素432)产生错误显示430(如右击菜单)。错误显示430列出了有关错误的详细信息,如错误的类型。错误显示430也可包含给用户试图修正错误的建议动作。该建议动作可以是交互式的,允许用户从一列可能的错误解决方案中挑选。
另外,在图标442上停留(hovering)可显示给用户其它信息,如工具提示440。“工具提示”通常指将附加信息提供给用户的非交互式显示元素。例如,所示的工具提示提供文本通知“邮码不能在街道内”。在一个实施例中,为显示错误显示430或者工具提示440,可以选择图表442或者错误元素432,或在它们上面停留。涉及在XML文档410中及平行树420中显示错误指示符的范例过程在图8的讨论中说明。
探测、确认知错误报告图5是依照本发明,用来确认XML文档和报告模式违背情况的范例过程的逻辑流程图。过程500在方块501处开始,其中XML文档正被编辑且发生了变化。“变化”指在XML文档中插入、修正或删除XML元素,或改变非本地XML元素的文本内容。响应该变化,在方块502处继续过程。
在方块502处,XML文档所发生变化在XML文档中被定位。某些变化,如添加新元素,可能需要进一步处理来将相应节点填加到平行树上。结合图6进一步说明用来定位和处理XML文档中变化的范例过程。过程前进到方块503。
在方块503,XML文档中改变的部分被标记为“脏”。“脏”是指XML文档中有待确认的或由于所述变化其有效性不再确保的部分。标识符或其它的指示符可与XML文档发生变化的部分相关联。在一个实施例中,任何已经改变、被删除或被添加元素的亲(parent)父被标记为脏。当过程500前进到确认脏部分时,确认引擎就验证所述的亲父及所述亲的子。过程在方块504处继续。
在方块504处,相应于XML文档中变化部分的平行树节点也被标记为“脏”。标识符或其它的指示符可与相应变化发生处的平行树节点相关联。在一个实施例中,与XML文档中的每个元素和平行树中的每个节点相关联的唯一标识符被标记为脏,因此,同时将XML文档的部分和平行树的节点标记为脏。过程在决定方块505处继续。
在决定方块505处,做出了撰写或编辑XML文档的用户是否已达到空闲或超时(timeout)点的决定。空闲是指用户当前没有提供用户输入到字处理器的时间点。超时是指在预定的时间段内没有出现空闲状态的情形。若经过了足够时间,则将会出现超时条件。过程在方块505处循环,直到出现空闲状态或超时条件。当达到空闲状态或出现超时条件时,过程前进到方块506。
在方块506处,所述的一个或多个平行树脏节点由确认引擎来确认。平行树是确认引擎的对象或是链接到确认引擎,从而使该树不必传递到确认引擎来确认。确认平行树脏节点的范例过程结合图7做进一步说明。过程在决定方块507处继续。
在决定方块507处,依据由确认引擎返回的错误数据,做出XML文档的非本地XML元素中是否存在错误的决定。确认引擎将错误数据返回到字处理器中,表示确认引擎已分析的平行树中每个节点的有效性。在一个实施例中,错误数据包含出现在字处理器的错误类型。若不存在错误,则过程移动到方块509,过程终止。若存在误差,过程在方块508处继续。
在方块508处,依据XML文档和平行树中的显示指示符,用户被告知非本地XML确认元素中的错误。将出现的错误报告给用户的范例过程结合图8做进一步说明。过程前进到方块509,过程终止。
图6是依照本发明,定位和处理XML文档中变化范例过程的逻辑流程图。当图5所示过程500进入到方块502中时,过程600在方块601处进入。过程在方块602处继续。
在方块602处,确定XML文档已改变部分的亲父。例如,在图4中,XML文档410中的“街道”元素是“邮码”元素432的亲父。在一个实施例中,确定了父,以使包含父和该父后代的平行节点子树可被标记为脏。因为除了已变化节点的直接父以外,变化通常不影响元素的有效性,所以确认父和父的后代仍旧确保整个XML文档是有效的。确定父也帮助将平行树与XML文档进行同步化。然后,父可用作XML文档中变化位置的指示符。在一个实施例中,与变化元素的父相关联的标识符被保存在图2所示的同步数据240中。过程前进到方块603。
在方块603处,字处理器确定了正在变化元素的最接近的兄弟兄弟。例如,在图3中,“目标”元素和“地址”元素视作兄弟兄弟。确定最近的兄弟帮助将平行树和XML文档进行同步化。该最近的兄弟提供了XML文档中变化位置的第二指示符。在一个实施例中,与已变化元素父相关联的标识符被保存在图2所示的同步数据240中。在另一个实施例中,也确定了最近的兄弟是在XML文档中正变化元素的上面还是下面。过程在确定方块604处继续。
在决定方块604处,做出变化是否需要在平行树中创建新节点的决定。当在XML文档中创建新的非本地XML元素时,需要新节点。实时创建该新节点来保持XML文档与平行树的同步化。当不需要新节点时,过程移动到方块609,过程返回到过程500的方块503。然而,若需要新节点,则过程移动到方块605。
在方块605处,创建相应于XML文档中新元素的标识符。该标识符唯一地标识了XML文档中的元素。过程在方块606处继续。
在方块606处,在平行树中创建无父节点。该无父节点当前没有用平行树中的父来标识。过程在方块607处继续。
在方块607处,涉及在XML文档中创建元素的标识符与无父节点相关联。将该标识符与无父节点相关联使字处理器能将该节点与XML文档中新元素的位置联系起来。在一个实施例中,已经确定了对XML文档中新元素的父和最近的兄弟,因此,也确定了平行树中的父和最近的兄弟。过程在方块608处继续。
在方块608处,平行树中相应于XML文档中新元素的父元素的父节点被指示认领无父节点。然后,该新节点显示在平行树中的正确位置,使XML文档与平行树同步。过程前进到方块609,返回到过程500的方块503。
图7是依照本发明,确认XML文档范例过程的逻辑流程图。当图5所示的过程500进入到方块506中时,过程700在方块701处进入。过程在方块702处继续。
在方块702处,与待确认非本地XML元素相关联的内容被复制到平行树。在一个实施例中,XML文档中的内容在初始时未包含在平行树中,若该内容包含在平行树中,平行树所需的存储空间将几乎是XML文档所需的存储空间。只在确认前将内容复制到平行树使所需的存储空间最小化。在另一个实施例中,复制到平行树的内容局限于与标记为脏的非本地XML元素相关联的内容。过程在方块703处继续。
在方块703处,确认引擎按其非本地XML模式来确认标记为脏的节点和其相关联的内容。该非本地XML模式声明什么标签和属性被用来说明XML文档的非本地XML元素中的内容,每个标签可在何处,什么内容可接受,以及哪个元素可出现在其它元素中。当平行XML树遵从非本地XML模式时,该平行XML树是有效的。在完成确认后,过程前进到方块704。
在方块704处,为确认目的而包含在平行树中的内容被从平行树中删除。将内容从平行树中删除就进一步最小化了平行树所需的存储空间。过程前进到方块705,返回到图5所示的过程500的方块507。
图8是依照本发明,显示XML文档中和平行树中错误范例过程的逻辑流程图。当图5所示过程500进入方块508中时,过程800在方块801处进入,并已确定有错误存在于XML文档的非本地XML元素中。过程在方块802处继续。
在方块802处,由确认引擎认定有错误的元素在XML文档中加了下划线。应当理解,其它的显示指示符(如粗体、斜体、波浪线(squiggly line)等)可用来指定XML文档中具有错误的元素。过程在方块803处继续。
在方块803处,平行树中相应于XML文档错误元素的节点被做了标记。在一个实施例中,图标被置于该节点的附近来表示相应于该节点的元素有错误。在一个实施例中,对出现在与错误元素相关联处的错误类型,该图标是特定的。过程在确定方块804处继续。
在确定方块804处,做出用户是否右击了在XML文档中亮显的错误的决定。若没有发生右击,过程就前进到方块806。然而,若发生了右击,过程就在方块805处继续。
在方块805处,对右击做出响应,关于错误的详细信息及修正错误的指令将显示呈现给用户。在另一个实施例中,其它的用户输入,而不是右击,可用来启动该错误显示。该错误显示在以上图4的讨论中做了进一步说明。过程前进到确定方块806。
在决定方块806,做出用户是否将鼠标指点器停留在平行树中的图标上的决定。若用户决定不将鼠标指点器停留在错误上,则过程前进到方块808,返回到图5所示过程500的方块509中。当鼠标指点器停留在图标上时,过程在方块807处继续。
在方块807处,响应鼠标指点器在平行树的图标上的停留,将工具提示显示给用户。在一个实施例中,工具提示的文本提供所发生错误的简单陈述。例如,若特定的元素必须包含内容,工具提示的文本可能会是“本元素不能为空”。在一个实施例中,其它的用户输入,而不是用鼠标指点器停留在图标上,可用来显示工具提示。图4示出了范例图标和工具提示。过程前进到方块808,返回到图5所示过程500的方块509。
上述的说明、例子和数据提供了本发明文件的制造和使用的完整说明。由于本发明的许多实施例可在不背离本发明主旨和范围的情况下来实施,所以本发明可见于所附权利要求书。
权利要求
1.一种用来确认和报告可扩展标记语言(XML)文档模式违背情况的方法,其中XML文档包含本地XML和非本地XML,所述方法包含定位XML文档中非本地XML元素的变化;标记XML文档的一部分以表示与所述XML文档部分相关的变化已经发生;标记平行树中的节点以表示变化已经发生,其中所述节点对应于XML文档中发生变化的部分;按相应的非本地XML模式来确认平行树的节点;决定非本地XML元素中的错误是否来自响应确认节点供给的错误数据;以及若出现错误,则在XML文档中和平行树中显示错误通知。
2.如权利要求书1所述的方法,其特征在于,所述定位非本地XML元素的变化进一步包括识别每个发生变化的非本地XML元素的父元素;识别每个发生变化的非本地XML元素的最近兄弟元素。
3.如权利要求书1所述的方法,其特征在于,进一步包括当在XML文档中创建新的非本地XML元素时,在平行树中创建新的节点。
4.如权利要求书3所述的方法,其特征在于,所述创建新节点进一步包括创建相应于新的非本地XML元素的标识符,其中新的非本地XML元素的父元素和兄弟元素是可从标识符来确定的;在平行树中创建无父节点;将所述标识符与所述无父节点相关联;指示一相应于父元素的父节点认领所述无父节点。
5.如权利要求书1所述的方法,其特征在于,所述确认平行树的节点进一步包含将内容复制到平行树,其中该内容与XML文档中发生变化的部分相关联;按相应的非本地XML模式来确认包含内容的节点;从平行树中删除所述内容,以使平行树的存储空间最小化。
6.如权利要求书5所述的方法,其特征在于,所述按相应的非本地XML模式来确认包含内容的节点包括根据非本地XML模式,用XML确认引擎来检查平行树。
7.如权利要求书1所述的方法,其特征在于,进一步包括在确认平行树之前,确定超时或空闲条件何时出现。
8.如权利要求书1所述的方法,其特征在于,所述显示错误通知进一步包括根据第一显示指示符,标示XML文档中发生错误的部分;根据第二显示指示符,标示平行树中相应于XML文档中发生错误部分的节点。
9.如权利要求书8所述的方法,其特征在于,相应于所述第一显示指示符和第二显示指示符中至少一个的用户输入产生错误显示,该错误显示提供关于所述错误的交互式信息。
10.如权利要求书8所述的方法,其特征在于,相应于第一显示指示符和第二显示指示符中至少一个的用户输入产生工具提示,该工具提示提供关于所述错误的文本信息。
11.一种具有计算机可执行部件的计算机可读媒体,其特征在于,它包括第一部件,用于创建包含与第一XML模式相关联的第一类型元素及与第二XML模式相关联的第二类型元素的可扩展标记语言(XML)文档部件,所述第一部件被配置为产生显示,指示第一类型元素中的至少一个违背了所述第一XML模式;第二部件,用于存储节点部件每个节点与所述第一部件中的相应元素相关联,所述第一部件和所述第二部件是同步的;第三部件,用于确认元素的部件所述第三部件被安排为通过响应确认的违背信息,将错误数据返回到所述第一部件。
12.如权利要求书11所述的计算机可读媒体,其特征在于,进一步包括相应于错误数据的第四部件,其中所述错误数据被安排为当用户输入与在XML文档和第二部件中的至少一个中显示的指示符相互作用时被创建。
13.如权利要求书12所述的计算机可读媒体,其特征在于,所述第四部件被进一步安排为显示有关相应于错误数据的错误的信息,包括错误类型、修正错误的指令和错误声明中的至少一种。
14.一种用数据结构编码的计算机可读媒体,其特征在于,它包括第一数据结构,包含可扩展标记语言(XML)元素;第二数据结构,包含相应于所述第一数据结构元素的元素树;和显示指示符,在所述第一数据结构中元素及所述第二数据结构中的相应节点附近,该显示指示符表示出确认错误。
15.如权利要求书14所述的计算机可读媒体,其特征在于,所述显示指示符被安排为与用户输入交互,以进一步启动错误显示,提供关于确认错误的交互信息。
16.如权利要求书14所述的计算机可读媒体,其特征在于,所述显示指示符被安排为与用户输入交互,以进一步初启动工具提示,提供关于确认错误文本信息。
17.一种计算机可读媒体,具有用来确认和报告可扩展标记语言(XML)文档模式违背情况的计算机可执行指令,其特征在于,所述XML文档包含本地XML和非本地XML,所述指令包括定位XML文档中的非本地XML元素的变化;若所述变化对应于XML文档中新的非本地XML元素的创建,则在平行树中创建新节点;将XML文档的一部分标记为受所述变化影响;在平行树中标记节点以表示已经有变化发生,其中所述节点对应于XML文档中被所述变化所影响的部分;按相应的模式确认平行树中已标记的节点;确定非本地XML元素中的错误是否来自响应确认节点的供应错误数据;和如果是这样,那么就在XML文档和平行树中显示错误通知。
18.如权利要求书17所述的方法,其特征在于,所述定位非本地XML元素的变化进一步包括标识每个非本地XML元素中发生变化的父元素;标识每个非本地XML元素中发生变化的最近兄弟元素。
19.如权利要求书17所述的方法,其特征在于,所述创建新节点进一步包括创建相应于新的非本地XML元素的标识符,其中从该标识符确定新的非本地XML元素的父元素和兄弟元素;在平行树中创建无父节点;将标识符与无父节点相关联;指示一对应于父元素的父节点认领所述无父节点。
20.如权利要求书17所述的方法,其特征在于,所述确认平行树节点进一步包括将内容复制到平行树,其中所述内容对应于XML文档的所述部分;按相应的非本地XML模式确认包含所述内容的节点;和将内容从平行树中删除,以使平行树的存储空间最小化。
21.如权利要求书17所述的方法,其特征在于,所述显示错误通知进一步包括根据所述第一显示指示符,标示XML文档中出现错误的部分;根据所述第二显示指示符,标示相应于XML文档中出现错误部分的平行树节点。
22.如权利要求书21所述的方法,其特征在于,相应于所述第一显示指示符及所述第二显示指示符中的至少一个的用户输入产生错误显示,提供关于该错误交互信息。
23.如权利要求书21所述的方法,其特征在于,相应于所述第一显示指示符及所述第二显示指示符中的至少一个的用户输入产生工具提示,提供关于该错误文本信息。
全文摘要
用来确认可扩展标记语言(XML)文档并实时报告模式违背情况的系统和方法。维护包含对应于XML文档非本地XML元素的节点的平行树。当XML文档发生变化时,相应于该变化的非本地XML元素就被做标记。按相应于非本地XML标记的XML模式来确认相应于已标记非本地XML元素的节点。然后,根据XML文档和平行树中的显示指示符,向用户报告与非本地XML标记中错误相对应的元素和节点。
文档编号G06F15/16GK1472645SQ03145220
公开日2004年2月4日 申请日期2003年6月25日 优先权日2002年6月27日
发明者B·M·琼斯, M·萨维茨基, R·A·利特尔, B M 琼斯, 利特尔, 幕 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1