用于编辑标记语言文档的方法和数据处理系统的制作方法

文档序号:6554176阅读:199来源:国知局
专利名称:用于编辑标记语言文档的方法和数据处理系统的制作方法
技术领域
本发明涉及计算机化的文档。更具体地说,本发明涉及编辑以标记语言编写的计算机化的文档中的改进。
背景技术
通常,标记语言允许以简单、灵活的文本格式来创建文档。例如,XML,一种标准通用标记语言(SGML,ISO-8879)的衍生语言,最初旨在满足大规模电子出版的挑战。XML还在万维网和其他各处上的各种数据交换中担当着日益重要的角色。有关XML的详细说明可以在URL“http//www.w3.org/XML/”处找到。
现有的XML编辑器提供了用于XML文件的所有元素的树视图和用于每个元素的属性的公共编辑器。例如,Xeena是一种XML编辑器,其可以通过URL“www.alphaworks.ibm.com”从Alpha Works获得。在Xeena(其是一种JavaTM应用程序)中,通过表来编辑XML元素的XML属性。使用从文档类型定义(DTD)衍生的编辑图形用户界面(GUI)组件(例如,组合框或文本字段)来输入每个属性值。然后,所述编辑器指导用户将元素插入所述树中。Xeena使用树窗口小部件(widget)来显示分层组织的文件元素和小型的类似于表的窗口小部件。窗口小部件允许用户通过图形用户界面(GUI)连系XML文档并编辑当前选定的元素的属性。
另一种公知的XML编辑器是XML-Spy,其可以从Altova Inc.,900Cummings Center Suite,314-T,Beverly,MA 01915-6181获得。此编辑器以扩展的表格式来呈现XML文档的所有元素及其属性。

发明内容
当所述XML文件达到某一特定的复杂性级别时,树视图变成了一种限制。所述树的某些节点可能具有过于复杂而不能被表示为简单XML属性的语义属性。可以使用XML元素的分层结构连同其属性来表示此类节点自身。例如,假设语义树中的某一节点的属性包括可变长度的列表。XMLDTD支持的属性不能完全表示此列表。
根据本发明的一个公开的实施例,以标记语言编写的文档的语义分层结构由使用树视图编辑器来查看和编辑的元素的分层结构来表示。每个元素表示语义树的节点,能够编辑该特定元素的语义属性的专用编辑器可以被附加到所述节点。此类专用编辑器处理它们被附加到其上的相应单个元素,并且可以处理以所述单个元素为顶端的子树中共享公用属性的元素的分层结构。这些专用编辑器提供了它们被附加到其上的元素的可视化(不一定为分层的形式)。
在本发明的一个方面中,属于所述文档的元素的分层结构被分成上层和下层。使用常规的类似于树的呈现来编辑上层。使用一组专用编辑器来编辑下层。可以配置所述编辑器组以便将特定元素指派给任意一个层。
本发明提供了一种用于编辑以标记语言编写的文档的方法,所述方法通过以下步骤来执行定义所述文档的分层元素;标识所述分层结构的子树的根元素;将选定的专用查看器与所述根元素关联;以及通过启动所述选定的专用查看器来显示所述子树的至少一部分。
所述方法的另一个方面包括与所述子树同步地显示树视图中在所述子树以上的分层元素。
根据所述方法的一个方面,仅使用所述选定的专用查看器来显示所述子树。
在所述方法的再一个方面中,所述选定的专用查看器与标记语言标签相关联。所述标记语言标签可以是XML标签。
本发明提供了一种用于编辑以标记语言编写的文档的方法,所述方法通过以下步骤来执行定义所述文档的分层元素树,所述文档包括分层元素的第一层、分层元素的第二层以及分层元素的边界层,所述边界层被置于所述第一层与所述第二层之间。所述边界层的所述分层元素中的每个分层元素都作为包括分层元素的所述第二层的一部分的子树的顶端。所述方法还通过以下步骤来执行使用树视图编辑器来编辑分层元素的所述第一层;选择与所述边界层的所述分层元素中的一个分层元素关联的专用编辑器;以及使用所述专用编辑器来编辑所述边界层的所述一个分层元素及其所述子树。
本发明提供了一种用于编辑以标记语言编写的文档的数据处理系统,所述数据处理系统包括用于存储所述文档的存储器、主编辑器以及多个专用编辑器。所述系统还包括显示器、与所述显示器和所述存储器相连的处理器。所述处理器可操作以执行以下步骤定义所述文档的分层元素;标识包括根元素及其子元素的所述分层元素的子树;将所述专用编辑器中的一个专用编辑器与所述根元素相关联;以及启动所述一个专用编辑器以便将所述子树的至少一部分输出给所述显示器。
根据所述数据处理系统的一个方面,所述显示器避免所述子树的树视图表示。
根据所述数据处理系统的另一个方面,所述处理器还适合于启动树视图编辑器以便将所述分层元素的一部分输出到所述显示器,所述部分包括所述子树的所述根元素并且不包括其子元素。
根据所述数据处理系统的另一个方面,所述文档是XML文档。
本发明提供了一种计算机软件产品,所述计算机软件产品包括其中存储有计算机程序指令的计算机可读介质,当所述指令被计算机读取时,导致所述计算机执行用于编辑以标记语言编写的文档的方法,所述方法通过以下步骤来执行定义所述文档的分层元素;标识包括所述分层元素的一部分的子树的根元素;将选定的专用查看器与所述根元素相关联;以及通过启动所述选定的专用查看器来显示所述子树的至少一部分。
本发明提供了一种计算机软件产品,所述计算机软件产品包括其中存储有计算机程序指令的计算机可读介质,当所述指令被计算机读取时,导致所述计算机执行用于编辑以标记语言编写的文档的方法,所述方法通过以下步骤来执行定义所述文档的分层元素树,其包括分层元素的第一层、分层元素的第二层以及分层元素的边界层,所述边界层被置于所述第一层与所述第二层之间。所述边界层的所述分层元素中的每个分层元素都作为包括分层元素的所述第二层的一部分的子树的顶端。所述方法还通过以下步骤来执行使用树视图编辑器来编辑分层元素的所述第一层;选择与所述边界层的所述分层元素中的一个分层元素关联的专用编辑器;以及使用所述专用编辑器来编辑所述边界层的所述一个分层元素及其所述子树。


为了更好地理解本发明,通过实例的方式参考了将结合以下附图阅读的本发明的详细说明,其中相同的部件被给予相同的标号,这些附图是图1是根据本发明的一个公开的实施例构建和运行的用于编辑以标记语言编写的复杂文档的系统的示意图;图2是根据本发明的一个公开的实施例的用于以标记语言编写的文档的编辑布置的示意图;图3是图2中示出的编辑布置的详细屏幕显示;以及图4是示出了根据本发明的一个公开的实施例的编辑以标记语言编写的文件的方法的流程图。
具体实施例方式
在以下描述中,说明了许多具体细节以便提供对本发明的彻底理解。但是,对本领域的技术人员显而易见的是,本发明可以在没有这些具体细节的情况下被实施。在其他实例中,并未详细示出用于常规算法和处理的公知电路、控制逻辑以及计算机程序指令的细节,以免不必要地使本发明变得不清晰。
体现本发明的各方面的软件编程代码通常被保存在诸如计算机可读介质之类的永久性存储装置中。在客户机-服务器环境中,此类软件编程代码可以被存储在客户机或服务器上。所述软件编程代码可以包含在与数据处理系统一起使用的各种公知介质中的任何介质上。这包括,但不限于,磁和光存储设备(如盘驱动器、磁带、光盘(CD)、数字视频光盘(DVD)),以及计算机指令信号,所述计算机指令信号包含在具有或不具有载波(所述信号在其上被调制)的传输介质中。例如,所述传输介质可以包括诸如因特网之类的通信网络。此外,尽管本发明可以包含在计算机软件中,但是可替代地,使用诸如专用集成电路之类的硬件组件或其他硬件或硬件组件和软件的某些组合,可以部分或整体地包含实现本发明所必需的功能。
现在转到附图,首先参考图1,图1是根据本发明的一个公开的实施例构建和运行的能够编辑以标记语言编写的复杂文档的系统10的示意图。
系统10包括处理器12(通常是编程有适合的软件的通用计算机)和存储器14。尽管在图1中将存储器14示为所述计算机的本地数据存储装置,但是也可以在远离所述计算机的位置维护所述存储器,例如,在服务器或共享盘系统上进行维护并通过网络由处理器12来访问。存储器14具有文档存储区16,其保存包含将被编辑的文档的文件。还为分析和编辑文档所必需的程序提供了空间,所述程序包括用于分析文档的语法定义的分析引擎18、常规标记语言编辑器20以及专用查看器或编辑器22、24、26。
现在参考图2,图2是根据本发明的一个公开的实施例的用于以标记语言(如,XML)编写的文档28的编辑布置的示意图。此处经常参考XML来表示本发明的原理。但是,这是示例性的,通过可以由应用本领域的普通技能完成的适合的修改,可以使用许多标记语言来实施本发明。
本质上,标记语言文件由元素的分层结构构成,每个元素都可以作为包括其自己的属性和元素集的子树的顶端。元素及其属性的集合在DTD或模式文件中定义。因此,文档28具有分层语法定义,其被分为两个单独的层由边界34分隔的上层30和下层32。此处任意地使用术语“上”和“下”来区分两个语法层。就文档28的实际配置而言,这些术语没有物理含义。根据文档的特定语法定义(即,根据其DTD或模式),以可配置的方式完成将文档28分为层30、32。
现在参考图3,图3是根据本发明的一个公开的实施例的呈现标记语言文件的编辑布置的显示屏幕36。属于上层30的文档28(图2)的元素被表示在屏幕36的左侧窗格38,由编辑器20组织成树视图40。位于边界34上的元素(此处称为边界元素或子树的根元素),以及位于边界以上的元素显示在左侧窗格38。但是,包括此类边界元素的分层子孙的子树没有显示在左侧窗格38中。相反,当用户选择任何位于边界34上的元素(例如,元素42)时,专用查看器或编辑器22、24、26中的一个被调用,使得能够在右侧窗格44中查看和编辑元素42的内容,包括其在分层结构中的子树。模式结构可以包括其他元素及其属性。代表性地指示了一个此类结构46(长度)。尽管图1和图3中示出了三个专用编辑器,但这只是代表性的。许多不同的专用编辑器可以被链接到下层32内的不同结构。下面的列表2中示出了图3的显示的更多详细信息。
再次参考图2,用于上层30中的元素的默认编辑器20可以是任何常规通用编辑器,例如XML编辑器。
下层32内的所有元素在语义上都取决于位于边界34(图2)上的祖先,并且不能在此祖先元素的上下文之外被编辑。使用被指定为祖先元素的专用编辑器的编辑器22、24、26中的任何一个编辑器来查看和编辑所述祖先及其子孙。为了为下层32(图2)中的结构提供更有用的编辑能力,专用编辑器22、24、26不应被限于通用XML编辑器的能力。相反,它们适合于使用专用于被呈现的特定类型的边界元素(例如,元素42(图2))的图形用户界面来呈现适当的语义上下文。例如,如果元素42是包括表示一个表的元素的子树的顶端,则可以使用类似于电子表格的编辑器来编辑元素42及其子孙。
配置继续参考图2,作为编辑器20的配置的一部分,为位于边界34上的元素指定了专用编辑器。使用编辑器20来编辑任何在边界34以上的元素,编辑器20本质上是树视图窗口小部件,显示元素分层结构以及包含每个元素的属性的表。如上所述,任何位于边界以下的元素都只具有一个位于边界34上的祖先,并使用指派给该祖先的专用编辑器对其进行编辑。
在编辑器20的配置过程中,专用编辑器被链接到至少某些在DTD或模式中定义的元素,例如通过将专用编辑器或指针与标记语言标签(如,XML标签)相关联。也可以通过将与编辑器22、24、26有关的信息硬编码到专用XML编辑器或查看器中来完成此操作。但是,推荐在外部文件中提供配置信息。这可以是DTD、模式或甚至另一个文件(如XML文件)。最后一个选项是优选的。外部文件的使用是模块化的,并允许专用编辑器被重新指派,而与DTD或模式无关。
列表1是定义用于元素的专用编辑器的XML文件的一个片段。
列表1<SpecialPurposeElement name=“MyElement”>
<editor class=“MyElement_Editor”/>
</SpecialPurposeElement>
操作现在参考图4,图4是示出了根据本发明的一个公开的实施例的编辑以标记语言编写的文件的方法的流程图。为了使呈现清晰,在图4中以特定顺序示出了处理步骤。但是,显而易见的是,这些步骤中的许多步骤可以被并行地、异步地执行或以不同的顺序执行。
过程开始于初始步骤48。选择一个文档。选择主树视图编辑器并且访问或初始化其配置文件。可替代地,主树视图编辑器可以随后被配置为单独的过程。
接着,在步骤50,访问和分析包含在所述文档的模式或DTD中的语法定义以便标识位于上层30中的高级元素、位于边界34上的边界元素以及由所述边界元素(图2)作为顶端的下层32中的低级子树。所述语法定义形成了下列步骤的基础。
接着,在步骤52,根据语法定义选择边界元素。
接着,在步骤54,将专用编辑器与在步骤52选择的当前边界元素相关联。这可以通过将标识所述专用编辑器的数据与标记语言标签相关联来完成。在主编辑器中做出所述指派的适当的指示,以便当用户选择所述边界元素时,可以调用其相应的专用编辑器。
接着,在步骤56,由所述当前边界元素作为顶端的子树被使得可用于在步骤54选择的专用编辑器。这可以以多种方式来完成。例如,所述子树可以被读取到所述专用编辑器的存储区中。可替代地,指向所述子树的指针可以被传递给所述专用编辑器。
控制继续到决策步骤58,在步骤58,判定是否还有更多的语法定义的边界元素将被处理。如果在决策步骤58的判定是肯定的,则控制返回步骤52。
如果在决策步骤58的判定是否定的,则控制继续到最终步骤60。现在可以加载具有相同语法定义的文档和其他文档,以便使用所述主树视图编辑器来进行初始查看和编辑。当用户选择了边界元素后,可以调用适当的专用编辑器。如图3所示,边界元素及其子树的结构可以与高级元素一起被呈现在并排同步显示上。可替代地,所述专用编辑器可以输出一个或多个单独的显示屏幕。
实现细节C++专用编辑器被实现为c++类。所有这些类都继承自单个基类SP_Editor。如列表1所示,使用注册机制来形成实现编辑器的C++类与“编辑器”的“类”属性中给出的字符串之间的关系。分析模块(例如,分析引擎18(图1))或与编辑器20集成的类似模块分析包含专用编辑器的定义的文件、标识需要此类编辑器的元素、在注册表中查找编辑器名称,以及相应地实例化新的编辑器。
JavaJava实现与C++实现类似。但是,通过利用Java的反射功能,可以简化标识编辑器类的过程在分析了定义专用编辑器的XML文件后,使用反射来标识实现给定的专用编辑器的类。
实例1列表2示出了定义X-Gen请求文件的语法的DTD的一部分。X-Gen是系统级测试用例生成器,并且其接受定义用于将被生成的测试用例的模板的请求文件。图3的屏幕显示是此DTD的可视表示。
列表2<!ELEMENT x_gen_request...
(|bounded_interaction|repeat|one_of|all_of|...)+><!ATTLIST x_gen_requestrandom_seed NMTOKEN“0”author CDATA#IMPLIED>
<!ELEMENT all_of...(|bounded_interaction|repeat|one_of|all_of|...)+>
<!ATTLIST all_of.
generation_order(…)‘as_given’order_control(...)#IMPLIED>
<!ELEMENT bounded_interaction(...,act*)>
<!ATTLIST bounded interactioninteraction %interaction_entity;#REQUIRED>
<!ELEMENT act((...,)*,(participant|actor)+)>
<!ATTLIST act...
name CDATA#REQUIRED>
从语义的观点来看,列表2中的元素的分层结构包含以下类型的节点x_gen_request、bounded_interaction、repeat、one-of、all-of以及bounded-interaction。所有在列表2中的元素bounded interaction之后的XML元素(例如,元素act、actor以及participant)不是语义树中的节点,而是bounded interaction的语义属性。
本领域的技术人员将理解,本发明并不限于以上具体示出和描述的内容。相反,本发明的范围包括以上描述的各种功能的组合和子组合,以及在阅读上述描述之后,本领域的技术人员可以做出的现有技术中所没有的它们的变化和修改。
权利要求
1.一种用于编辑以标记语言编写的文档的方法,所述方法包括以下步骤定义所述文档的分层元素;标识包括所述分层元素的一部分的子树的根元素;将选定的专用查看器与所述根元素相关联;以及通过启动所述选定的专用查看器来显示所述子树的至少一部分。
2.根据权利要求1的方法,还包括显示树视图中在所述子树以上的所述分层元素中的多个元素的步骤,其中所述子树和在所述子树之外的所述分层元素的至少一部分被同时显示。
3.根据权利要求1的方法,其中只使用所述选定的专用查看器来显示所述子树。
4.根据权利要求1的方法,其中所述关联选定的专用查看器的步骤包括将所述选定的专用查看器与标记语言标签相关联。
5.根据权利要求4的方法,其中所述标记语言标签是XML标签。
6.一种用于编辑以标记语言编写的文档的方法,所述方法包括以下步骤定义所述文档的分层元素树,所述文档包括分层元素的第一层、分层元素的第二层以及分层元素的边界层,所述边界层被置于所述第一层与所述第二层之间,其中所述边界层的所述分层元素中的每个分层元素都作为包括分层元素的所述第二层的一部分的子树的顶端;使用树视图编辑器来编辑分层元素的所述第一层;选择用于与所述边界层的所述分层元素中的一个分层元素相关联的专用编辑器;以及使用所述专用编辑器来编辑所述边界层的所述一个分层元素及其所述子树。
7.根据权利要求6的方法,还包括同时显示分层元素的所述第一层和所述子树的步骤。
8.根据权利要求6的方法,其中所述选择专用编辑器的步骤包括将所述专用编辑器与标记语言标签相关联。
9.根据权利要求8的方法,其中所述标记语言标签是XML标签。
10.一种用于编辑以标记语言编写的文档的数据处理系统,所述数据处理系统包括用于存储所述文档的存储器、主编辑器和多个专用编辑器;显示器;与所述显示器和所述存储器相连并可操作地执行以下步骤的处理器定义所述文档的分层元素;标识包括根元素及其子元素的所述分层元素的子树;将所述专用编辑器中的一个专用编辑器与所述根元素相关联;以及启动所述一个专用编辑器以便将所述子树的至少一部分输出给所述显示器。
11.根据权利要求10的数据处理系统,其中所述显示器避免所述子树的树视图表示。
12.根据权利要求10的数据处理系统,其中所述处理器还适合于启动树视图编辑器以便将所述分层元素的一部分输出给所述显示器,所述部分包括所述子树的所述根元素并且不包括其所述子元素。
13.根据权利要求10的数据处理系统,其中所述文档是XML文档。
14.一种用于编辑XML文档的方法,所述方法包括以下步骤定义所述文档的分层元素;标识包括所述分层元素的一部分的子树的根元素;将选定的专用查看器与所述根元素相关联;以及通过启动所述选定的专用查看器来显示所述子树的至少一部分。
15.根据权利要求14的方法,还包括在树视图中显示所述分层元素的步骤,其中所述子树和在所述子树之外的所述分层元素的至少一部分被同时显示。
16.根据权利要求14的方法,其中只使用所述选定的专用查看器来显示所述子树。
17.根据权利要求14的方法,其中所述关联选定的专用查看器的步骤包括将所述选定的专用查看器与XML标签相关联。
18.一种用于编辑XML文档的方法,所述方法包括以下步骤定义所述文档的分层元素树,所述文档包括分层元素的第一层、分层元素的第二层以及分层元素的边界层,所述边界层被置于所述第一层与所述第二层之间,其中所述边界层的所述分层元素中的每个分层元素都作为包括分层元素的所述第二层的一部分的子树的顶端;使用树视图编辑器来编辑分层元素的所述第一层;选择用于与所述边界层的所述分层元素中的一个分层元素相关联的专用编辑器;以及使用所述专用编辑器来编辑所述边界层的所述一个分层元素及其所述子树。
19.根据权利要求18的方法,还包括同时显示分层元素的所述第一层和所述子树的步骤。
20.根据权利要求18的方法,其中所述选择专用编辑器的步骤包括将所述专用编辑器与XML标签相关联。
21.一种计算机软件产品,所述计算机软件产品包括其中存储有计算机程序指令的计算机可读介质,当所述指令被计算机读取时,导致所述计算机执行根据权利要求1到9中的任一权利要求的方法。
全文摘要
以标记语言编写的文档的语义分层结构由使用树视图编辑器来查看和编辑的元素的分层结构来表示。每个元素被表示为语义树的节点,能够编辑该特定元素的语义属性的专用编辑器可以被附加到所述节点。此类专用编辑器处理它们被附加到其上的单个元素,并且可以处理以所述单个元素为顶端的子树中共享公用属性的元素的分层结构。这些专用编辑器提供了它们被附加到其上的元素的可视化(不一定为分层的形式)。
文档编号G06F17/30GK1825303SQ20061000193
公开日2006年8月30日 申请日期2006年1月19日 优先权日2005年1月24日
发明者R·埃梅克, A·戈尔丁, L·魏茨曼 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1