资源预览内容
第1页 / 共4页
第2页 / 共4页
第3页 / 共4页
第4页 / 共4页
亲,该文档总共4页全部预览完了,如果喜欢就下载吧!
资源描述
计算机科学2 0 0 2 V 0 1 2 9 N - o 8基于X M L 的信息结构与逻辑的集成策略A nX M L B a s e dI n t e g r a t eS t r a t e g yf o rI n f o r m a t i o nS t r u c t u r e sa n dL o g i c s华山唐世渭杨冬青李红燕( 北京大学信息科学中心,视觉与听觉信息处理国家重点实验室北京1 0 0 8 7 1 )A b s t r a c tT h eX M L - - b a s e di n t e g r a t i o no fv a r i o u si n f o r m a t i o n si si n v o l v e di nm a n yW e ba p p l i c a t i o n s A n dt h e r ea r em a n yi n f o r m a t i o n sh a v es p e c i a ls t r u c t u r e so ro p e r a t i o nl o g i c s T h i sa r t i c l ep r o v i d e sac o r r e s p o n d i n gs t r a t e g y ,c o m b i n e dw i t hs t o r a g es c h e m a ,d e a l i n gw i t ht h e s eX M L b a s e di n f o r m a t i o n s K e y w o r d sX M L ,I n f o r m a t i o ns t r u c t u r e s ,I n f o r m a t i o nl o g i c s ,S c h e m a1 引言目前,基于异构信息源的网络信息集成应用发展迅猛,而在网络信息的集成与传递过程中,X M L 起到了举足轻重的作用。使用X M L 来描述中间( M e d i a t o r ) 层,使得数据异构问题可以轻易地被解决。同时,结合不同的X S L 或C S S ,可以将数据内容以不同的面貌展现给不同的用户。基于X M L 进行网络信息的集成与传递,已经成为网络应用中的热点己但是,随着网络集成信息的多样化,X M L 的应用也面临着新的问题。那种只包含单纯数据的X M L集成方法,在某些情况下无法很好地运作,也没能充分利用X M L 可扩展的特性。尤其是对于具有结构化特性和处理逻辑的信息,比如图表信息、空间数据信息等。另外,在这类信息的处理过程中,数据库模式起到非常重要的作用。好的X M L 信息结构将有利于信息在数据库中的存储,反过来,好的数据库模式也有利于X M L 的构建。值得注意的是,一般的集成策略都忽视了数据库模式与X M L 构建的关系。 本文将着重介绍这类信息的X M L 集成方式。2 信息结构及逻辑的集成策略在基于X M L 的网络集成应用中,随着集成和传递的信息量的增大,对信息简单的罗列已经不能很好地适应需求。这就需要依照信息自身的结构和 处理逻辑,对信息进行一定的封装处理,以利于在对X M L 解析后,对相应信息的提取、组织和存储。而某些特定领域的信息,结构和逻辑本身就是需要传递的内容,比如,对于复杂的图表信息,既包 含数据的结构化信息,如图表数据的布局与配色信息;也包含数据的处理逻辑信息,如根据图表数据和设定的公式进行计算的信息,3 2 对于这类包含结构特性和处理逻辑的信息,需要结合数据的数据库存储方式,设计出最有效的集成策略。下面就结合对图表信息的研究,介绍一下集成这类信息的具体策略。2 1对信息结构化特征的集成对于网络信息集成应用来说,数据是重中之重,随之而来的就是对数据的查询、添加、删除和更新等基本操作,这些操作都是通过各式各样不同布局的图表来完成的。( 这里所说的布局,不单指页面元素的位置,还包括其形状、颜色等属性) 。对于那些用户定制图表页面的应用,即动态图表页面的应用,由于用户定制的随意性和多样性,无法事先在X S L 中加以设定,就必须使用X M L 对信息含有的结构化特性进行集成。如医疗系统中由医生定制化验单或医生定制图像标识等。这就需要针对这类特殊信息,根据相应的领域需求,设计合适的集成策略。更为重要的是,由于涉及到图表,必然与图表数据的基本操作相关联,这就与图表数据在数据库中的存储模式相关联。也就是说,X M L 文件所集成的,不仅仅有布局等结构信息,还涉及数据在数据库中的存储结构。有两类信息需要在数据库中存储,一类是定制信息,即图表页面的结构信息;一类是数据信息,即基于图表页恧所输入的数据信息。这两类信息的存储模式是基本相同的。不失一般性,下面仅就后者进行详细介绍。( 1 ) 位置集成法顾名思义,就是用图表元素在页面中所处的位置P o s i t i o n ( x p o s ,y _ p o s ) 来确定图表元素的布局。其中,x p o s 是距离页面左边的距离,y - p o s 是距离页面顶端的距离。图表元素是指文字框、单选框、多选框、下拉列表、图像、文本等页面的基本组成部分。这些图表元素在X M L 文件中顺序排列,属性中记录了它们的布局信息,除了位置信息,同时记录的还有图表元素的形状、大小、颜色、初始值等信息。 在X S L 文件中,可按取得的X M L 元索的类型,结合其属性,分别予以显示。使用的语句很简单,设置s t y l e 如下:( x s l :a t t r i b u t en a m e 一“s t y l e 、 p o s i t i o n :a b s o l u t e ;l e f t :( x s l :v a l u e o ls e l e c t 一“x p o s ”) ;m a r g i n t o p :( 构件名) ( 构件属性 ( - - 级构件 ( 一级构件)构件的具体层数和划分的方法是依据应用的需求和图表页面的复杂程度而定的。对于用户定制的 面向特定领域的图表页面,可以根据应用的具体要求,总结出各个图表页面中的共性,并设计构件的划分方案。构件的划分需要遵循如下两条原则:一致性原则:保证同一级构件中的图表元素集合的一致性数量原则:减少所划分出的构件级数其中,第一条原则是要保证构件划分的一致性,比如,某个x 级构件是若干输入框的集合体,而另一个x 级构件只是一个标注( L a b e l ) ,这就不符合一致性的原则;第二条原则需要在第一条原则的基础上实现。在确定了构件的划分后,对于任意用户定制的 图表页面,就可以按照一级构件一 二级构件一 三级构件的层次关系生成X M L 文件,而在X S L 中,可以使用t a b l e 做为每级构件的框架,上一级构件的t a b l e 中所显示的内容就是若干下一级的构件。在数据库存储模式上,可以按照划分的构件层次设计表结构,每级构件对应一个构件表,表内存储对该级构件的记录,下一级构件表中每一条记录都指向上一级构件表中的某条记录,实际数据保存在最底层构件的属性内。例如,对于一个有1 个一级构件,2 个二级构件的图表页面,每次数据输入后,都会 在一级构件表内生成1 条记录,在二级构件表中生成2 条记录,数据就保存在二级构件表的2 条记录中。3 3 层次集成法的优点是图表元素排列简单整齐,尤其是数据库存储,按层次管理数据,便于数据的分类存取。更为重要的是,生成的X M L 也是按层次组 合的,其中每一个图表元素集合都可以被其他页面所使用,也就是拥有很好的可复用性,这对于图表定制来说,非常有利,节省了大量人力和空间。层次集成法的缺点是对图表元素布局做了一定 的限制,用户定制图表元素的位置受限,即需要满足元素对齐、嵌套等条件。同时,数据库表数目的增加,使数据访问操作变得复杂。在某些应用中,页面上多数是规格化的表格元素( 如文字框、单选框、多选框、下拉列表等等) ,而且元素间要求比较整齐,就可以使用层次集成法。例如,我们所实现的网络医疗系统中,医生需要根据不同病症为患者定制化验单,基本上是整齐的表格页面,如图2 所示。由于这种页面在整体布局上满足上述的条件,因此我们采用层次集成法来构建它的X M L 文档与数据库表模式( 下文将做介绍) 。图2 层次集成法图3X M L 定制器( 3 ) 综合集成法就是把位置集成法与层次集 成法综合在一起使用,整体架构使用层次集成法描述,局部细节使用位置集成法描述。X M L 文件按照构件层次组织,底层构件包含若干用位置集成法描述的图表元素。X S L 先通过层3 4 次关系,以t a b l e 的形式确定页面的大体架构,在每个底层t a b l e 中用相对位置显示最终的图表元素。在数据库存储模式上,综合表示法与层次集成法相类似,也是按照层次关系建立多级表结构。综合集成法,既有位置集成法局部灵活多变的 优点,又有层次集成法整体架构清晰、支持复用的优点,尤其适用于图像与表格混合定制的应用。但在一 些领域特性明显的应用中,不如位置集成法和层次集成法更有针对性。2 2 对信息处理逻辑的集成在X M L 集成和交换数据的同时,对于这些数 据的处理逻辑也可以被结合进去。尤其是某些数据的处理,不需要数据库的支持,在客户端( C l i e n t ) 就可以完成。比如,设置表格中文字框输入数据的上限和下限,如果客户输入数据不在范围内,则报错。又比如,根据客户输入的2 条数据,自动计算出第三条数据。这部分逻辑处理信息,既可以集成于X M L 中,让客户端的X S L 根据所要进行的逻辑处理的类型, 在程序中添加相应的模块;也可以在服务器端实现所需的逻辑函数( f u n c t i o n ) ,然后将函数以字符串的形式存储于X M L 的属性中,交给X S L 处理。由于逻辑函数的多样性,我们倾向于选择第二种方式。根据用户输入的逻辑处理的要求,生成相应 的新函数的字符串,通过X M L 传递给X S L ,X S L 就可以直接将这些新的函数添加到页面中,其中所使用的主要语句 1 如下:( x s l :c o m m e n t x s l :v a l u e o fs e l e c t = “n e w f u n c t i o n s ”) ( x s l :c o m m e n t ) 。逻辑函数的复杂程度与所需的数据处理难易程 度相关,具体的编写方法是基于不同领域的,这里就不赘述了。本文所要表明的,是这种将逻辑处理信息集成进X M L ,并实现由客户端进行部分数据处理的思想。5 具体实现上面讲述了将具有结构化特性和处理逻辑的信息集成到X M L 的策略。另一方面,虽然现在对于 X M L 的使用已经很普遍,但是,编写X M L 的工具仍旧很简单,不适应构建复杂结构的X M L 。下面将以我们实验室开发的医疗信息集成系统为例,介绍 一种面向领域的支持X M L 构建的定制器,以及X M L 所集成信息的逻辑实现。如上所述,在我们的医疗信息集成系统中,用户定制图表的信息使用层次集成法进行集成。根据系 统的具体要求,划分出四级构件,一级构件就是整个用户定制模板;二级构件是模板中具有相同目标的( 下转第5 4 页)元素内容的处理器对当前匹配状态的部分谓词条件进行检查。若满足,将匹配状态向前推进一步;否则,从候选列表中删除表示当前匹配状态的 X P a t h N o d e ,因为该X P a t h 表达式与该X M L 文档的匹配过程已经失败。为了简洁起见,元素内容的处理器和元素终止标签的处理器就不在这里给出伪代码了。过程E l e S t a r t H a r t d l e r 输入元素名e 它的属性a t t r 和层次h I 对元紊e 的初
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号