背景技术
计算机软件应用程序允许用户创建各种文档辅助他们工作、教育与休闲。例如,字处理应用程序允许用户创建信件、文章、书籍、备忘录等等。电子制表软件应用程序允许用户存储、处理、打印和显示各种字母数字数据。这种应用程序具有许多众所周知的能力,包括丰富的编辑、安排格式和计算。
为跟上这种计算机软件应用程序更高级功能的需要,软件开发者已开始使用结构化数据格式,包括标记语言,诸如可扩展标记语言(XML),来允许用户标注软件应用程序文档以给文档有用的结构,这个结构与负责创建该文档的软件应用程序的正常功能或关联于该文档的可视格式是分离的。例如,用户可能希望在她的字处理应用程序上创建用于准备简历、遗嘱或她希望传送给出版商的文章的模板文档。通过将结构应用于文档,接收文档的个人或机构可通过处理文档使用这个结构,以利用由文档结构定义的数据。
一些字处理应用程序允许用户用XML元素标注字处理文档,因此用户可为插入文档的数据定义某个数据类型和数据定义。例如,简历文档可包括“Experience”(经历)段,其中用户将包括现在和过去的工作经历。使用XML,用户可能希望标记文档的“Experience(经历)”段来定义,某些容许的信息以规定次序以规定数量可包括在文档的Experience(经历)段中。例如,用户可希望标记文档的Experience(经历)段以包含四个现在或过去的Experience(经历)项。
遗憾的是,这种计算机软件应用程序的大多数用户不具有对诸如XML的标记语言的必要的理解来正确应用容许的标记语言元素于文档。尤其是,一些诸如XML之类的标记语言具有规定可应用于文档的容许的标记结构的规则。按照许多XML大纲(schema),混合内容或者是不允许的或者为用户产生一错误情况。也就是说,如果用户使用了父XML元素,其中用户使用了许多子XML元素,那么可能不允许用户在父元素结构中包括不用结构标记的数据或文本节点,父元素结构中数据或文本节点具有已合适地用XML结构标记的兄弟(sibling)元素。例如,简历文档可用适合于简历的Experience(经历)段的结构标记。可用被称为<experience>的父元素标注Experience(经历)段。在Experience(经历)段内,可包括称为<employer1>、<employer2>和<employer3>的子元素来在整个经历结构内添加结构。如果用户包括未用数据结构标记的数据,例如,在<employer1>和<employer2>之间的“dates of employment(工作日期)”,则“dates of employment”可看作Employer(用人单位)1和Employer(用人单位)2元素的未标注或未结构化的兄弟元素。
按照许多象XML这样的数据格式,因为数据包括在数据结构内但没有用它自己的结构标注且不是关联于结构的相邻数据的一部分,这造成了混合内容情形。甚至如果由给定用户所用的数据格式版本允许这样的混合内容情形,用户可能没有注意到她未能用合适的结构标注未标注的数据。如果对于用户和由用户使用的数据格式版本留下这种未标注数据是可接受的,则用户可选择这样做,但可能有在文档中定位未标注数据的困难时间。因而,需要一方法和系统,用于显示文档中未标注文本节点来允许用户了解未标注数据的位置和上下文。
关于这些和其它考虑,产生了本发明。
详细说明
下列本发明实施例的描述是参考上述附图进行的,其中几幅图中相同的数字指相同的部分或部件。本发明专注于显示诸如象XML的标记语言文档的数据格式化文档中的未标注文本节点的位置和关系的方法和系统。
操作环境
图1及下列讨论意在提供本发明可在其中实施的适合的计算机环境简单概括的描述。虽然本发明将在运行于与个人计算机一起的操作系统上的应用程序的通用环境中描述,那些本领域熟练技术人员将认识到本发明还可以结合其它程序模块实现。通常,程序模块包括完成特定任务或实现特定抽象数据类型的例程、程序、组件、数据结构等。而且,那些本领域的熟练技术人员将理解本发明可与其它计算机系统配置一起实施,包括手持设备、多处理器系统、基于微处理器或可编程消费电子设备、蜂窝电话、小型机、主机计算机等等。本发明还可在分布式计算环境中实施,其中任务是由通过通信网络连接的远程处理设备完成的。在分布式计算环境中,程序模块可位于本地和远程存储器设备中。
参考图1,实现本发明的示例性系统包括一常规个人计算机20,它包括处理单元21、系统存储器22和连接系统存储器至处理单元21的系统总线23。系统存储器22包括只读存储器(ROM)24和随机访问存储器(RAM)25。基本输入/输出系统26(BIOS),包含诸如在起动期间帮助个人计算机20内部元件之间传送信息的基本例程。被存储在ROM24中。个人计算机20还包括硬盘驱动器27、磁盘驱动器28,例如读取或写入可移动盘29、及光盘驱动器30,例如读取CD-ROM盘31或读取或写入其它光介质。硬盘驱动器27、磁盘驱动器28和光盘驱动器30分别通过硬盘驱动器接口32、磁盘驱动器接口33和光盘驱动器接口34连接到系统总线23上。驱动器及其相关的计算机可读介质为个人计算机20提供非易失存储器。尽管以上计算机可读介质的描述指硬盘、可移动磁盘和CD-ROM盘,那些本领域熟练技术人员应该理解由计算机可读的其它类型介质,诸如磁盒、闪存卡、数字视频盘、伯努利盒等等也可用于示例性操作系统。
许多程序模块可被存储于驱动器和RAM25,包括操作系统35、一或多个应用程序100、字处理程序模块37(或其它类型的程序模块)、程序数据,诸如货单38,和其它程序模块(未示出)。
用户可通过键盘40和诸如鼠标42的指点设备将命令和信息输入到个人计算机20中。其它输入设备(未示出)可包括话筒、游戏杆、游戏垫、卫星式转盘、扫描仪等等。这些和其它输入设备常常通过连接到系统总线的串行接口46连接至处理单元21,但是也可以通过其它接口连接,诸如游戏端口或通用串行总线(USB)。显示器47或其它类型的显示设备也通过一个接口诸如视频适配器48连接至系统总线23。除显示器之外,个人计算机一般包括其它外部输出设备(未示出),诸如扬声器或打印机196。
个人计算机20可在一个使用逻辑连接至一或多个远程计算机诸如远程计算机49的网络化环境中运行。远程计算机49可以是服务器、路由器、对等设备或其它普通网络节点,且一般包括许多或全部相对于个人计算机20所述的元件,尽管只有存储器设备50在图1中示出。图1中所示的逻辑连接包括局域网(LAN)51和广域网(WAN)52。这样网络环境在办公室、企业范围的计算机网络、内联网和因特网中是常见的。
当在LAN网络环境中使用时,个人计算机20通过网络接口53连接至LAN51。当在WAN网络环境中使用时,个人计算机20一般包括调制解调器54或用于建立在WAN52诸如因特网上的通信的其它工具。调制解调器54,可以是内置的或外置的,可通过串行接口46连接至系统总线23。在网络化环境中,相对于个人计算机20所述的程序模块,或其一部分,可存储在远程存储器设备中。将理解到所示的网络连接是示例性的,并且可使用用于在计算机之间建立通信链路的其它方法。
运行
如图2所示,示出了例示性软件应用程序屏幕显示150。显示在显示150中的屏幕是各种软件应用程序屏幕显示的示例,诸如字处理器显示、电子制表软件显示、web浏览器显示等等。屏幕显示150示出了示例性字处理器应用程序显示,具有用于文档输入和编辑的工作空间155。按照图2中的例示性实例,正由用户创建文章文档,它有文章标题160和文章子标题165。如那些本领域熟练技术人员应该理解的,图2所示的文本只是作为例子,且输入工作空间155的数据可以是在其下创建文档的软件应用程序所允许的、包括字母数字文本和图像在内的任意类型格式。
如工作空间155所示,许多数据格式结构化元素将示出来标注文档。图2所示的数据格式是依照可扩展标记语言的。应该理解,图2所示的XML结构只是作为例子,因为本发明的功能同样应用于向用户显示应用了数据格式化的文档的数据结构的任意数据格式。例如,<article>标记185包括在文档的开始和结束以定义文档为一“article(文章)”文档,且各种其它元素诸如<body>元素205和<location>元素210包括在“article”结构里。如那些本领域熟练人员众所周知的,文档的XML标注允许用户用某些数据类型和数据结构定义文档的各部分。例如,用户可在<title>元素195内定义文档的一部分,包括类型“title(标题)”的数据并包括为标题规定的允许结构。
为了给文档提供带有一组管理数据类型和结构的语法规则,它们可包括在诸如图2所示的“article”文档的给定文档中,将大纲附着于或关联于文档来提供管理每个数据结构元素和标记的规则,有了这些元素和规则用户可标注给定文档。例如,“article”文档可具有诸如“article-schema.xsd”的附着或关联大纲文件来提供容许的XML元素组,诸如<article>元素、<title>元素、<body>元素等等。大纲文件包括管理那些元素可应用于文档的次序的规则和关联于应用于文档的各个元素的特殊规则。例如,附着或关联于“article”文档的大纲,在图2中所示的,可规定关联于给定元素的数据,例如日期元素必须包括日元素,后面跟着月元素,后面再跟着年元素。此外,大纲可要求关联于日期元素的数据必须就在<location>元素210之前。
如那些本领域熟练技术人员所理解的,XML大纲文件的开发者确定了XML元素的名称和那些元素所允许的相关数据类型与数据结构。然后,按照给定大纲文件用XML结构标注的文档的所有用户都可利用包含在XML结构内的数据而不考虑文档的全局类型和结构。例如,如果将在图2中所示的“article”文档传送给文档出版商,出版商可开发软件应用程序来分析文档找到由出版商使用的文档内数据的特定类型。出版商可以,例如,只希望发布文章标题作为整篇文章未来出版的广告。使用附着于文档的大纲文件,出版商将了解关联于XML元素<title>元素已按管理该文档的大纲文件准备好。因而,出版商可开发一软件应用程序来定位<title>元素并抽取相关于它的数据插入出版商自己的文档,用这个数据作为整篇文章未来出版的广告。
出版商可抽取这个数据而不考虑文档的其它方面,诸如其位置和包含在“body”段中内的数据。这通过文档的每个用户遵循附着于或关联于文档的大纲文件中规定的数据类型和数据结构规则这一事实而变得可能。大纲文件可附着于文档,或者大纲文件可在独立的位置维护,诸如在可由文档访问的大纲文件库中。也就是说,文档可包含文件路径指针或唯一的名字空间标识符(例如,URI或URN)来定位和/或识别向文档提供管理文档XML结构的大纲文件。还是参考图2,<article>标记185示出一标注在文档的XML结构的父标记。诸如<heading>元素190、<body>元素205的元素示出全局“article”结构内关于标记185的子元素。<title>元素195和<subtitle>元素200示出<heading>元素190的子元素。同样,<location>元素210示出<body>元素205的子元素。
如上所述,正如那些本领域熟练技术人员应该理解的,本发明实施例并不限于带有可扩展标记语言结构的文档标注的显示。本发明实施例可同样用于向任意使用任何诸如超文本标记语言(HTML)等等的其它类型数据格式化语言或系统的文档添加标注。也就是说,本发明实施例可用来显示其它类型的、诸如HTML元素的标记语言元素的树形视图,以及相应的指示符作为警告用户错误的方法或者允许用户导航到关联于错误标记的文本或数据的方法,在相应的指示符处元素未被合适地应用或者有遗漏。
如图2所示,两个文本节点“10/28/2002”170和“the quick brown fox...”180包括在文档中,但没用结构标注。在其它已标注的文档中包含未标注或未结构化数据,表示了混合内容文档。按照许多大纲的规则,未标注文本节点170和180违反了大纲规则,因为它们位于具有兄弟结构化元素的结构中。例如,如图2所示,文本节点170和180位于<body>元素205的结构内,而兄弟的<location>元素210位于未标注文本节点170和180之间。按照许多大纲,混合内容或者不允许或者产生编辑程序模块的二义性,因为未标注数据不可由数据结构编辑程序模块操作。从用户观点看,未标注数据可能表示用户想要标注但错误地未能适当标注的数据,或者数据可能表示用户故意未能标注的数据,但在缺少结构以帮助用户导航至该数据时,用户就不能方便地定位文档中的数据。例如,用户可能只想标注包含在图2所示的文章文档中的段落的标题句,但用户故意不想标注每个段落中的剩余句子。在没有数据结构对每个这种段落中未标注句子的帮助的情况下,用户可能会发现难以方便地导航到那些句子。
按照本发明实施例,为用户提供树形视图窗格250来向用户以分层显示(outline)形式显示已以彼此相关的次序和位置应用于文档的数据格式诸如XML标记和元素。例如,如图2所示,示出<article>标记具有<heading>元素作为<article>标记的子元素。<title>元素和<subtitle>元素示出为<heading>元素的子元素。<body>元素示出为<article>标记的子元素,而<location>元素示出为<body>元素的子元素。按照本发明实施例,未标注文本节点指示符270和未标注文本节点指示符280示出于树形视图窗格250中作为<body>元素265的子元素。指示符270和280表示相应文档的未标注文本节点170和180。此外,根据指示符相对于<location>元素的位置,提供直观的说明来显示由指示符270和280表示的文本节点具有兄弟元素,即<location>元素210。按照本发明的一个实施例,且如图2所示,指示符270和280是包括在树形视图上的该位置中的省略号(...),如果适当地用数据格式化结构标注那些文本节点时,用于文本节点170和180的适当标注的元素否则将驻留在该位置处。
可供选择,文本节点的值可包括在树形视图上的该位置中,如果适当地用数据格式化结构标注那些文本节点时,用于文本节点170和180的适当标注的元素否则将驻留在该位置处。例如,如果未标注文本节点值为“John Doe”而不是在该文本节点的树中位置处显示(...),则真实值,例如,“John Doe”就可显示在树中。为了展示,值可被格式化为区分于其它信息,诸如斜体或粗体化该值(例如,John Doe)。如果用户选择指示符270或指示符280,关联于所选指示符的相应文档中的文本被突出显示于文档,这样向用户示出相应于指示符270或280的未标注文本节点的位置。如果指示符向用户报警应该用数据格式化结构标注的文本节点,用户可选择相应的指示符作为立即导航到文本节点位置的方法,以便将结构应用于文本节点。另一方面,如果用户不希望将结构应用于未标注文本节点,用户也可利用本发明功能通过选择相应的指示符270或180导航到文本节点。如那些本领域熟练技术人员应该理解的,用户可按照各种方法选择指示符,包括将用户光标放在想要的指示符270或280上并选择该指示符。可供选择的,用户可用用户鼠标箭头对准在想要的指示符270或280并单击适当的键。
还是参考图2,提供建议结构窗格300来向用户提议应用于未标注文本节点的建议结构。如那些本领域熟练技术人员应该理解的,在窗格300中建议结构是基于录属于文档的大纲的。例如,窗格300包括<date>元素310和<main>元素320。按照可描述标注示于图2的文章文档的可接受结构的示例性大纲,可规定<date>元素和<main>元素。因而,因为图2所示的文档未用<date>元素或<main>元素标注,在窗格300中提供那些元素来向用户提供有用的信息作为按照相关大纲可应用于文档的结构。用户可如上所述地通过选择指示符270选择未标注文本节点170。一旦用户选择指示符270,包括日期“10/28/2002”的文本节点170被突出显示给用户。如果用户想要将日期元素310应用于文本节点170,用户可输入文章主体并手工用<date>元素标注日期文本节点。可供选择,一旦用户通过选择指示符突出显示了文本节点170,用户可从建议的结构窗格300中选择<date>元素310,且文本节点170将自动用该元素标注。
现在参考图3,文本节点170和180在用户用数据格式化结构标注那些文本节点后示出,如上参考图2所述。日期文本节点170示于图3,包含在<date>元素215中,而文本节点180在<main>元素220内显示。如树形视图窗格250所示,一旦未标注文本节点已经用结构标注,则相应的树形视图改变以显示应用于文本的<date>元素和<main>元素。与图2所示的示例比较,树形视图窗格250中的指示符270和280由<date>元素和<main>元素的名称所替代。因而,树形视图窗格250的快速浏览现在显示了当前元素结构,并向用户显示了没有未标注文本节点仍存在于文档中。
图4是一流程图,示出显示数据格式化文档中未标注文本节点的位置的方法。仅作为示例,图4参考图2和3中所示的由XML结构标记的示例文章文档来描述。如应该理解的,按照本发明实施例,图4的描述同样可应用于任何用户想用诸如XML的标记语言标注的文档。
方法400始于开始步骤405并继续至步骤410,在那里用户打开文档,诸如图2和3所示的文档。在步骤415,想要用数据结构标注文档的用户获得关联于该文档的大纲文件。如应该理解的,由用户编辑的文章文档可有一已附着的或关联于该文档的关联大纲文件,如此文档包括指向大纲文件的文件路径指针以获得管理文档结构化标注的大纲文件的使用。可供选择地,用户可接收不带关联大纲文件的文档或者用户可创建该文章文档作为一原始文档,且大纲文件尚不存在。如果大纲文件还未附着于文档,或者如果文档不参考创建文档的应用程序所知道的大纲名字空间,用户不需要获得适当的大纲文件或创建-大纲文件。创建文档的应用程序,例如字处理程序,将能够通过窗格250向用户显示合适的文档结构,包括在未标注文本节点170或180上的标注的缺少。但是,应用程序在没有大纲文件的情况下将没有验证树和保证正确结构的能力。
在步骤402,用户开始用数据结构元素标注文档,因此文档以后的用户可根据用户用来标注文档的数据结构利用包含在文档内的数据。例如,如果用户正为出版商准备文章文档,用户可要求文档按照一特定大纲文件来标注,使得在文档从用户被发送到出版商后,出版商可快速和容易地从文档中抽取所需要的数据。在步骤425,通过用户选择,或者自动地或者可选地由用户选择向用户提供树形视图窗格250。
在步骤430,做出是否文档中的任意未标注文本节点170或180具有诸如<location>元素210的兄弟元素的判定。在步骤435,显示树形视图以当前应用于文档的现有的父和子元素。在步骤440,在文档中相对于其它结构的那些文本节点的位置上,向用户提供指示符270和280(例如,省略号(...))以指示未标注文本节点170和180的存在和位置。
在步骤445,在窗格300中为潜在的应用程序提供未标注文本节点170和180的建议结构化元素的列表。在步骤450,用户可选择文本节点指示符270或280,以便在文档内导航到相关文本节点。在步骤445,关联于用户所选的指示符270或280的文本节点在文档中突出显示以为了导航而提示用户文本节点的位置或允许用户应用一元素于未标注文本节点。在步骤460,用户可标注突出显示的文本节点。方法终止于步骤495。
如上所述,提供了显示标记语言文档中未标注文本节点的方法和系统,以提示用户未标注文本节点的存在与位置。对于那些本领域熟练技术人员,各种修改或变体可在不脱离本发明的范围和精神下在本发明中进行是显然的。本发明的其它实施例对于那些本领域熟练技术人员来说在考虑这里所揭示的本发明的说明书目和实施下都是显而易见的。