XML开发

2024-10-05

XML开发(共10篇)

XML开发 篇1

摘要:针对传统的Web应用开发和基于XML技术的Web应用开发方式的比较, 基于XML技术的Web开发方式更灵活, 更方便。XML技术能够解决Web Services中业务系统抽象, 统一多种业务受理流程, 分隔显示逻辑与业务逻辑, 构建灵活的数据交换, 提供具有方便快捷的二次开发, 提高Web应用开发的效率, 从而以适应越来越复杂的Web应用系统的开发需求。

关键词:XML,WEB开发,WEB应用

一、引言

Web服务经常从它的组件技术的角度来进行描述。XML以及HTTP各自组成了Web服务体系的一部分, 它们都发挥了重要作用。让我们看看XML技术对Web服务平台的贡献。

二、XML在WEB开发中的重要性

1、标准化

与其它Web服务技术相比, 标准化是XML特色之一。XML提供了Web服务应用程序之间传输数据的标准格式。万维网联盟 (W3C) 管理XML标准并发布给全球的XML技术提供者, 这就确保了XML产品的兼容性。除了XML引擎和产品外还有XML文法 (grammar) 。每一个XML语法都是一种在某个特定问题领域进行数据格式化的标准方法。遵循并采用XML文法, 你就可以使两个应用程序间通信的数据格式标准化。

2、接口协议

从编程的角度出发, 接口在没有暴露实现的情况下提供了编程结构。如果使用DTD (文件类型定义) 和大纲 (schema) , 那么XML就有类似的特性。DTD和大纲都用来描述XML文档的结构以及XML文档的建立规则。可以用一个 (或者多个) 相关DTD (或者大纲) 组织这样的规则集合, 我们称之为XML文法。XML文法不仅可以用于应用程序之间通信的标准化, 还可以为开发者提供一个接口协议。换句话说, 开发者在创建一个需要使用XML文档结构的应用程序时, 他不需要知道文档是如何实现的 (即实际的XML文档) 。DTD以及大纲描述了文档的结构, 它们可以作为开发的接口协议。对DTD的任何改动同时也改变了协议。

3、简化

XML文档的另一个重要方面就是它的简化特性。这里并不是XML的实现很简单, 而是说XML的概念和方法简单。例如, XML是基于文本文档的, 这就简化了打开XML文档并查看其内容的过程。用XML简化Web服务模型很方便, 这一点也很重要。Web服务天然就比单独的XML要复杂。假设XML和CORBA同样复杂, 而且其它Web服务技术的复杂度相同, 那么Web服务技术就会变得非常笨重。但是通过使用简单的搭积木的方法, 如XML、SOAP等等, 我们可以控制Web服务的复杂度在一个可以容忍的范围之内, 这样用它创建的应用程序不至于难以控制。

4、封装

封装是在开发Web服务的时候尤重要。从本质上来说, 封装指的是获得一个或者多个数据块 (chunks of data) 并把它们集合成一个简单对象的概念。封装与集合 (aggregation) 类似, 但是它们之间有一个重要的差别, 即封装一般意味着它没有外部依赖性。你可以创建带有外部依赖性的XML文档;但是在事务Web服务模型 (transactional Web services model) 中, 利用封装会显得更加明智。通过设计包装了依赖性的XML解决方案, 你一般都可以消除事务处理过程 (交易) 中的问题。强迫在交易中定位外部数据并使其与XML数据一致的方法是有害的, 尤其是在外部数据常常发生变动的情况下。如果把数据封装到XML文法中去, 就交易获得正确的数据。

三、XML在WEB中的应用

1、XML用于交换数据

通过使用XML, 可以在互不兼容的系统间交换数据。在现实世界中, 计算机系统和数据库通过互不兼容的格式来容纳数据。对开发人员来说, 其中一项最费时的挑战一直是在因特网上的系统之间交换数据。通过将数据转换为XML, 可以极大地降低这种复杂性, 并创建可被许多不同类型的应用程序读取的数据。

通过使用XML, 可以在因特网上交换金融信息。在不久的将来, 预计会有很多关于XML和B2B的应用。XML会成为企业间交换金融信息的最主要的语言。XML可被用来共享数据通过使用XML, 纯文本文件可用于共享数据。

3、XML可用于存储数据

通过使用XML, 纯文本文件可用于存储数据。也可使用XML将数据存储于文件或数据库之中。可以编写从数据仓库中存储信息的应用程序, 而普通的应用程序就可被用来显示这些数据。

4、XML可以将HTML与数据分离

通过使用XML, 您的数据可存储于HTML之外。当我们使用HTML来显示数据时, 数据存储于HTML中。通过使用XML, 数据可以被存储在单独的XML文件中。这样做的话, 您就可以把注意力集中在使用HTML进行数据布局和显示上面, 并确保底层数据的改变不会牵扯到HTML的改变。XML数据也可作为数据岛存储于HTML页面内部。您仍然可以专注于使用HTML对数据进行格式化和显示。

XML安全加密技术框架 篇2

关键词: XML;XML加密;XML数字签名

中图分类号:TP393文献标识码:A 文章编号:1009-3044(2007)16-30897-02

Scheme of XML Data's Encryption Technology

WU Qi-ming

(Department of computer and information science,Hechi University,Yizhou 546300, China)

Abstract:This paper is pointing on the XML-Security problems,and a scheme was designed for the XML's secure transmission which is being used in a application system,by researching the XML encryption and XML signature.This scheme provided a protection for the XML,which also can enhance the security of the data.

Key words:XML; XML encryption; XML signature

1 前言

安全性领域是一个快速增长的领域。随着网络的爆炸性的发展,其安全性问题日益受到人们的关注。在利用像Internet这样的公开性网络进行通信或者商业活动时,如何保证信息在通信中的保密性、完整性并能得到认证,是Internet实用化的关键。随着越来越多的公司利用XML来传输结构化数据,文档的安全问题也变得越来越重要。XML的优势来自于它的语义和结构的灵活性和可扩展性,也正是这些优点引入了一些与其他文件安全问题不同的XML数据文件安全问题。当今,为XML数据安全提供保障的关键技术是XML加密,XML签名等。如何把这些技术合理,高效的应用到实际当中去,为网络间的信息交换提供有力的支持成为了一个重要的课题。本文提出一种基于XML应用系统的安全加密方案,一方面使用XML加密来保障数据的安全,另一方面使用数字签名方式来保障数据的安全传输。

2 XML的特点及其在网络服务程序中的应用

XML从总体来讲,具有以下的特点:

自描述性:XML允许自定义标签(tag),并且这些标签可以说明数据的语义,而不是HTML中的格式说明。

独立于平台和应用:XML的文档内容是基于UNICODE的文本,适于网络的传输。

半结构化:XML数据可以用 DTD或者Schema来规范;同时XML表示的是一种层次型的数据,因此比传统的数据库更适合描述现实中的信息。

机器可处理的(machine processable):相对于完全无规则的文本,计算机很容易处理XML文档,同时相对于无法表示语义的HTML文档,计算机很容易理解XML文档的语义,并且这种可读性对人同样适用。

可扩展性:XML是一种元标记语言,可用来定义各种实例标记语言标准,用户可以为数据定义它们自己的词汇表,从而定义数据的处理方式。

按W3C标准,典型WEB通信程序层次结构如图1。

在XML基础上发展起来的Web服务(Web Service)是一种革命性的分布式计算技术。它使用基于XML的消息处理作为基本的数据通讯方式,消除使用不同组件模型、操作系统和编程语言的系统之间存在的差异,使不同类系统能够作为计算网络的一部分协同运行。开发人员可以使用像过去创建分布式应用程序时使用组件的方式,创建由各种来源的Web服务组合在一起的应用程序。由于Web服务是建立在一些通用协议的基础上,如HTTP( Hypertext Transfer Protocol, WWW服务程序所用的协议),SOAP (Simple Object Access Protocol),简单对象访问协议),XML, WSDL( Web Services Description Language)Web服务描述语言),UDDI ( Universal Description, Discovery, and Integration,通用描述发现和集成协议)等,这些协议在涉及到操作系统、对象模型和编程语言的选择时,没有任何倾向,因此Web服务将会有很强的生命力。不管是B2B,B2C还是P2P形式的系统,其WEB服务的核心都可以按图1实现。

图1 Web通信程序层次结构

3 XML加密技术

3.1 加密技术

加密技术也就是利用技术手段把重要的数据变为乱码(加密)传送,到达目的地后再用相同或不同的手段还原(解密)。

加密包括两个元素:算法和密钥。一个加密算法是将普通的文本(明文)与一窜数字(密钥)的结合,产生不可理解的密文的步骤。密钥由位序列(数字)组成,密钥和算法对加密同等重要。密钥加密技术的密码体制分为对称密钥体制和非对称密钥体制两种,他们使用的算法叫对称算法和非对称算法,非对称算法又叫公开密钥算法(简称“公钥算法”)。相应地,对数据加密的技术分为两类,即对称加密(私人密钥加密)和非对称加密(公开密钥加密)。

XML数据的加密与传统的数据加密相比有如下特点:可以对整个文档进行加密、也可以对XML文件中元素和元素内容进行加密,基于XML文件传输的数据中有着更灵活的安全机制。

在国外,对这种技术的应用已经比较成熟。但是国内对于XML技术的应用研究以及XML安全方面问题的研究却仍然处于起步阶段。研究都不够深入,应用也不是十分的广泛。然而,XML技术的广泛应用是不可阻挡的趋势。XML以及XML安全技术一定渐渐的被人们所接受,并应用到实际工作中。目前已经存在一些工作在Internet加密和安全协议,如安全套接字层(Secure Socket Layer,简写SSL)、传输层安全性(Transport Layer Security,简写TLS)和IP安全性(IP Security,简写IPSec),这些协议能够被用于在两个通信应用程序之间保护隐私和确保数据的完整性。XML加密与上述协议在两个方面存在差异。第一个差异是:如果使用XML加密,我们可以选择加密那些真正需要加密的XML元素,而其他不重要的元素则不会被加密。第二个差异是:XML加密既可用于加密直接传送给另一个应用程序的数据,也可用于加密许多应用程序通过存储介质所访问的数据。相反,诸如SSL,TLS和IPSec之类的协议从总体上加密两个通信应用程序之间所使用的整个连接,但不能用于加密数据存储。XML加密并不能替代这些己有的安全协议,不过它能解决完全不同类型的安全性问题。下面是XML加密能够解决的两个主要问题:

(1)只加密结构化数据的特定子集

(2)加密多个通信方能访问的结构化数据存储

3.2 XML加密方案

XML加密组合对称和非对称算法。对称算法用于XML数据元素的批量加密,非对称算法用于安全地交换对称密钥。下面给出接收和发送加密的XML数据消息时的一个方案:如图2。

图2 XML加密过程图

以上XML加密用XML格式来表示加密结果,提供了一个标准的处理模型。这种标准的表示格式和处理模型支持互操作性,从而有助于加密文档的交换。

4 XML数字签名(digital signature)

对数据进行加密只解决了传送信息的机密性问题,而防止他人对传输的数据进行破坏(数据完整性),以及如何确定发信人的身份(身份的确定性)还需要采取其它手段,这一手段就是数字签名。在公钥加密中,用公钥进行加密操作,同时使用私钥进行解密。而在数字签名中,用私钥加密原始数据的消息摘要,同时使用公钥进行解密,然后再重新计算这个消息摘要并检查数据是否被篡改。

XML签名提供的功能:

XML签名能用于任意数据,这些数据可能位于指定XML文档的内部或外部 XML签名为数据提供下列的性能:

(1)完整性:由于对数据进行签名,所以能够保证数据不被篡改或者没有讹误。

(2)身份验证:保证数据来自签名者。

(3)不可抵赖性:保证签名者承认文档内容。

XML数字签名的生成过程如图3 。

图3 XML数字签名的生成过程

5 应用程序XML加密框架

应用程序XML加密框架如图4,其中加密模块见图2,数据签名见图3。

图4 应用程序XML加密框架

6 总结

XML安全技术是与XML技术最好的结合,XML安全技术尽管是一门较新的技术,但是它具有灵活,方便,安全等特点,同时它也是与XML数据结合效果最好的安全技术。正因为如此,由于各种数据生成,传输,处理,全部采用的是XML技术,所以为了更好的加强XML数据的安全性,本人选择了使用XML安全技术。有着传统的安全技术基础,又有着适应新技术的改进。为基于XML开发的应用系统提供了一个良好的安全加密解决方案。尽管XML加密处理了许多加密中的问题并且使它在Web服务中的使用更为简便,但它的确也存在着一些限制。如(1) XML加密的语法和处理模型非常复杂,如果没有适当的实现工具来支持,则应用程序发现使用XML加密很困难。(2) XML加密没有为加密和解密提供标准的编程API或者Web服务模型。这对于那些跨平台的应用程序来说可能会产生可移植性的问题,因为应用程序的代码由专用供应商的API决定。这也是我今后一段时间重点研究的问题。

参考文献:

[1]韦琳娜,张连宽,段新东.XML数字签名和传统数字签名的对比研究[J].计算机工程,2004(10):16-20.

[2]王浩川,孙挺.数字签名技术在网络安全中的应用[J].中州大学学报,2001(1):77-79.

[3]禄凯,唐小梅,马明武.加密技术在Web信息系统中的应用[J].电讯技术,1999(4)63-67.

XML开发 篇3

随着互联网的飞速发展和社会信息化水平的不断提高,计算机网络技术在教育领域的应用越来越广泛,传统的考试方式正面临着重大的变革,网络考试做为一种先进的考试方式,将成为必然趋势,开发一个功能完善的网络考试系统有了迫切的市场需求。基于Internet的WEB在线考试系统的开放性、分布性的特点使得考试突破了时间和空间的限制,因此,基于WEB的考试系统正成为当前考试系统研究的热点之一。

传统的网络考试系统很多是基于ASP开发的,ASP使用VBS/JS这样的脚本语言混合html来编程,而那些脚本语言属于弱类型、面向结构的编程语言,而非面向对象,这就明显产生以下几个问题:1)代码逻辑混乱,难于管理。2)代码的可重用性差。3)弱类型造成潜在的出错可能。那么,ASP.Net有哪些改进呢?ASP.Net和ASP的最大区别在于编程思维的转换,而不仅仅在于功能的增强。比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变,业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高,你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。

1 系统设计

1.1 系统设计应用的三层结构

随着WEB应用的复杂度不断提高。本系统应用了三层结构,如图1所示。也就是表现层、逻辑层、数据层[1],在部署上表现层对应Web Server,逻辑层对应Application Server,而数据层则对应Data Base Server。表现层是用户直接接触的层面,包括直接可以看到的功能、界面等。业务层集中于事务的处理过程,也称之为中间层。数据层集中于数据的处理[2]。其体系结构如图1所示。采用三层结构具有高效、便于开发与维护、便于今后扩展功能等优点。

1.2 系统总体设计与功能模块

基于.NET和的SQL SERVER通用远程考试系统是一个复杂的综合系统,实现教师终端管理系统,如图2所示,与学生端测试系统,如图3所示的科学化规范化相结合的过程。系统授权三种登录身份管理员、教师和考生。系统包括题库管理、人员管理、组卷、考试、批阅试卷和成绩等子系统,系统总体机构如下图所示。

教师端:

学生端:

下面以进行远程考试的流程来说明各子系统功能。

题库管理和人员管理子系统管理员登录后进行题库管理和人员管理。题库管理子系统包括录入题目、修改题目和删除题目,组卷子系统教师登录后通过组卷子系统确定试卷的题型种类、题目数量、题目难度比和知识点分布自动组建所需要的试卷。

人员管理模块的功能是对考生信息和教师信息帐号以及密码进行管理。

考卷生成完毕后,教师确定考试日期、考试时间和参加考试的学生名单,并设定该考生考试的密码。本系统可以根据实际情况通过电子表格批量增加加考生,这样减少了教师录入考生信息的时间,提高了工作效率。

考试系统学生在考试时间获得考试密码,通过浏览器进行身份验证登录后,输人正确的试卷编号,在规定的时间内进行答题.当达到规定的时间后,系统将自动予以提交。系统自动对客观题批阅并将答案和分数存人数据库。

批阅子系统教师登录进人批阅子系统,对主观题进行批阅。系统将总分以及各题得分存入数据库。同时还可以把成绩导入电子表格,进行成绩的统计分析及分类汇总形成成绩分析报表。

成绩子系统考生通过浏览器查询记录在库的标准答案和成绩。教师通过成绩统计系统掌握考试情况,如计算试卷难度、各分数段的人数、百分率、平均分,对试卷和学生的成绩进行综合分析和评定,使得教师更好的掌握学生的学习情况,以便于在今后的教学中做出适当的调整和改进,提高教学效率和教学质量。

1.3 数据库设计

该系统的数据库是采用SQL Server 2005,如图4所示,主要包括试题表、考试信息表、试卷信息表、用户信息表、成绩表等。而对于每次生成的试卷和每个考生的答卷,数据库都新建一组表存放相应数据。题目信息和考试信息表如下图所示。

1.4 系统实现关键技术

.N E T架构能够开发在台式机上运行的分布式企业应用程序,这些应用程序通过Internet跨平台运行,同时具备非常高的性能、伸缩性和健壮性[3]。ASP.NET建立在微软新一代Microsoft.NET平台上,为用户提供强大的企业级Web应用服务编程框架。ADO.NET在Microsoft ADO的基础上进行改进,他是一种基于标准的编程模型,用于创建分布式、数据共享应用程序。ADO.NET的核心组件是Data Set数据集对象,Data Set提供访问数据库的一系列接口,是不依赖于数据库的独立的数据集合。

远程考试系统是一个比较复杂的系统,包括许多功能模块,下面是部分代码的实现。

1)ADO.NET联接字符串:

2)XML联接文件

3)ASP.NET代码用于选择题浏览:

2 结论

本文首先在对各种传统网络考试系统的应用程序架构、开发技术和系统特点进行深入分析的基础上,提出了基于.NET的WEB在线考试系统设计思路。基于.NET的WEB在线考试系统是典型的B/S架构的应用程序,安装使用和维护简单,在高速网络的支持下,可以很好地满足一般考试需求[4]。其次,在对基于网络的无纸化考试系统需求进行充分分析的基础上,本文重点研究了考试系统的设计与实现方案,并对数据库服务器和WEB应用程序设计过程中的技术要点进行了分析。考试系统主要包括教师的后台题库管理、考试管理、成绩管理和用户权限管理及学生端WEB登陆测试系统的用户管理、考试管理、时间管理、试卷上交管理两大功能模块。我们采用面向对象方法对系统进行需求分析、设计和构建系统模型,利用VFP9.0数据库应用程序开发平台。采用先进的.NET框架下的ASP.NET,实现用户界面层的设计,可移植性好、代码执行效率高、与数据库的连接方便[5]。先进的XML技术提高了系统的跨平台、可扩展性以及规范性[6]。服务器端,系统采用Windows server2003,安全性好、运行稳定、管理容易。数据库平台采用SQL Server2005,使用方便、可伸缩性好、与相关软件集成程度高。考试系统的总体结构采用基于浏览器方式的网络三层结构应用体系,客户端运用WEB平台,提高了系统的易维护性和易用性。

参考文献

[1]梅晓勇,颜君彪.网络环境下的考试系统应用设计与实现[J].计算机工程与应用,2003,(26).

[2]刘东飞,夏丹.基于_NET的网络考试系统设计与实现[J].福建电脑,2006,5(31):121-122.

[3]邓式阳.一种基于Web的网络考试系统设计[J].山东:潍坊学院学报,2005,6(22):27-29.

[4]言海燕.基于Web技术的Matlab网络考试系统的设计[J].电脑学习,2008.2(47):21-22.

[5]Scott Worely.ASP.NET技术内幕[M].北京:人民邮电出版社,2002.

XML开发 篇4

正值两种XML标准争得面红耳赤之时,通用汽车、福特汽车和克莱斯勒三大汽车制造商联合发起了一项倡议,呼吁汽车行业的商业文档使用同一种XML 数据交换格式。

从上个世纪80年代以来,汽车行业就开始应用EDI了。而今,XML被广泛认为是一种比EDI(电子数据交换)更灵活的定义共享商务内容的方法。3家汽车巨头以及他们的供应商,都认为是时候换用XML 了。然而,负责定义Web Services 的W3C 组织和定义ebXML 计划的OASIS 组织分别提供了2 种类似又彼此竞争的XML标准。如果2种标准不能统一,业内商业文档会因为格式不同而难以相互交流,很多行业内的厂家也就宁愿使用原有的EDI 格式。

每年由AIAG(Automotive Industry Action Group)组织的汽车科技大会上,3 家主要汽车巨头及其供应商都要聚集在一起商讨汽车业的IT问题。在今年的AIAG会议上,3家巨头想要运用它们的影响力促使W3C与OASIS 的XML 标准进行整合。福特公司的技术负责人说:“若我们采用ebXML,而我的合作伙伴采用Web Services,那我们的商业内容将不能互通”。

一些人乐观地认为XML标准会因为三大巨头的积极推动走向整合,但有人还是担心其整合的速度达不到汽车行业的期望。目前,汽车巨头们在AIAG 的资助下已经完成了用于汽车行业库存目录管理的XML商业文档格式,他们还期望到今年年底能定义出更多种类的商业文档格式,并计划提交给OASIS 和W3C 做参考。

微软和IBM 都是AIAG 的成员,微软还赞助了本次大会。微软表示鼓励这种来自于行业的创新思路并期望能设计出一种汽车行业的新的数据交换模型。虽然AIAG 几年前正式表达了对ebXML 的支持,但现在风头直指Web Services,IBM 和微软也极力推荐Web services 来进行汽车行业内的数据整合。

-叶静译

创新硬盘播放机配备3.8 英寸显示屏

新加坡创新公司于2004 年9 月初宣布,将上市配备3.8 英寸LCD 显示屏的数码音乐播放机“Zen Portable Media Center”,其零售价格为499.99 美元。

“Zen Portable Media Center”为创新公司Creative Zen 系列中新的旗舰产品,可直接连接PC 来导入静画、动态图像或音乐文件。配备3.8 英寸液晶显示屏和容量为20GB 的硬盘,可保存数千张照片或多达9000 首音乐歌曲。

该产品支持WMA和MP3格式的音乐文件,由可抽换式锂聚合体电池驱动,最长可播放22 个小时的音乐文件或7 小时视频。另外,该产品配备了USB2.0接口,可利用Windows Media Player 10 的Auto Sync 功能轻松与PC 同步。

-每文

由78 国6000 台计算机组成的全球最大网格

近日,英国科学家展示了全球最大的网格计算机。该网格计算机系统是由分散在78个国家的6000 多台计算机组成,它是全球最大、首个永久性网格 Large HadronCollider Computing Grid (LCG)的一部分, 主要用于粒子物理领域的研究。

科学家预计,该网格计算机系统每年能够处理15petabytes的数据。但他们并没有就此停止,还将进一步扩大该网格系统,希望在2007年建成由10万台计算机组成的网格系统。

日本开发出新印刷电路技术

日本产业技术综合研究所和日立制作所组成的联合研究小组开发成功直接在塑料和胶片上印刷电子组件的技术,将来IC 卡、芯片电子卷标均可以利用这种技术印刷而成。

XML开发 篇5

XML是由W3C制定的新标准标记语言, 其最大特点是将信息的描述与信息的处理分开, 使得数据具有自我描述的能力。PowerMart是一种高性能的ETL工具, PowerMart.dtd是PowerMart元模型的一种表示形式, 整个ETL规则 (XML文档) 的语法正是由此定义的, 通过它可以剖析PowerMart元模型的组织结构。掌握PowerMart.dtd, 可以有效地提高开发效率。

1 XML技术

XML (extensible markup language) 是W3C组织于1998年2月制定的一种通用语言规范, 是SGML的简化子集, 它以一种开放的自我描述方式定义数据结构, 在描述数据内容的同时能突出对结构的描述, 从而体现出数据之间的关系。XML是一种元标记语言[1,2], 使用者可按需要创建新的标记, XML的可扩展性就在于此。带标记的元素是XML文档的构造块 (如图1) , 这种元素可以有若干个属性, 并可以包含零个或多个子元素。这些元素可以是文本数据, 也可以是带标记的元素。

〈?xml version="1.0" encoding="gb2312" 〉

〈!DOCTYPE POWERMART SYSTEM "powrmart.dtd"〉

〈POWERMART CREATION-DATE="09/12/2009 09:46:08" REPOSTTORY-VERSION="133.41"〉

〈REPOSITORY NAME="REP-NAME" VERSION="133" CODEPAGE="MS936"

DATABASETYPE="DB2"〉

〈FOLDER NAME="FLD-NAME" GROUP="Administrators" OWNER="Administrator"〉

〈CONFIG NAME="default-session-config" ISDEFAULT="YES"〉

〈/CONFIG〉

〈SESSION NAME="s-M-MAME" ISVALID="YES" MAPPINGNAME="M-MAME"

MAPPINGVERSION="1.0.0"〉

〈/SESSION〉

〈WORKFLOW NAME="WF-NAME" ISVALID="YES" SERVERNAME="SER-NAME"

SUSPEND-ON-ERROR="NO" REUSABLE-SCHEDULER="NO"〉

〈/WORKFLOW〉

〈/FOLDER〉

〈/REPOSITORY〉

〈/POWERMART〉

图1 XML文档示例

XML文档可以在它的文档类型声明里声明某个DTD (Document Type Definition, 文档类型定义) 。如上述XML文档的DTD由文件powermart.dtd定义[3] (如图2) 。DTD是关于XML文档中出现的标记和元素结构语法约束。它可以用来验证一个XML文档。DTD是一系列关于元素类型 (Element Type) , 属性 (Attributes) , 实体 (Entities) 和符号 (Notations) 的定义。它定义了文档所需要的标记, 比如可在文档里使用的元素类型, 以及这些元素之间可能的联系。

〈!--Informatica Repository DTD Grammar-Version6.1--〉

〈!ELEMENT POWERMART (REPOSITORY*) 〉

〈!ATTLIST POWERMART CREATION DATE CDATA #IMPLIED

REPOSITORY NERSION CDATA #IMPLIED〉

〈!ELEMENT REPOSITORY (FOLDER*) 〉

〈!ATTLIST REPOSITORY NAME CDATA #REQUIRED

DATABASETYPE CDATA #IMPLIED

CODEPAGE CDATA #IMPLIED

VERSION CDATA #IMPLIED

PARENTREPOSITORY CDATA #IMPLIED〉

〈!ELEMENT FOLDER (FOLDERVERDION*, CONFIG*, SCHEDULER*,

TASK*, SESSION*, WORKLET*, WORKFLOW*) 〉

〈!ATTLIST FOLDER NAME CDATA #REQUIRED DESCRIPTION CDATA #IMPLIED

SHARED (SHARED|NOTSHARED) #IMPLIED OWNER CDATA #IMPLIED

GROUP CDATA #IMPLIED PERMISSIONS CDATA #IMPLIED〉

图2 powermart.dtd定义

XML具有许多重要的特性, 首先是可扩展性。正如C++让使用者声明自己的类, XML让使用者创建和使用他们自己的标记而不是HTML的有限词汇表。可扩展性是至关重要的, 企业可以用XML为电子商务和供应链集成等应用定义自己的标记语言, 甚至特定的行业一起来定义该领域的特殊的标记语言, 作为该领域信息共享与数据交换的基础。

其次是灵活性, XML提供了一种结构化的数据表示方式, 使得用户界面分离于结构化数据。在XML中, 可以使用样式表, 如XSL (Extensible Stylesheet Language, 可扩展样式语言) 和CSS2 (Cascading Style Sheets Level 2, 层叠样式表第2进阶) , 将数据呈现到浏览器中。另外, XML文档之间的超链接功能由独立XLink (Extensible Linking Language, 可扩展链接语言) 来支持, 所有这些方面都可以互相独立地改进并发展。

再者是自描述性, XML文档通常包含一个文档类型声明, 因而XML文档是自描述的。XML文档中的数据可以被任何能够对XML数据进行解析的应用所提取、分析、处理, 并以所需的格式显示, XML表示数据的方式真正做到了独立于应用系统。

除此之外, XML采用Unicode字符编码系统, 从而支持世界上几乎所有的主要语言, 并且不同语言的文本可以在同一文档中混合使用。

2 ETL工具Informatica PowerMart

ETL (Extract Transform Loading) 是数据从业务系统抽取、转换、转载到数据仓库的过程[4], 是构建数据仓库最困难的部分。在具体的设计过程中, 大部分要解决的难题都集中在这一层。因此, ETL工具的选择就显得尤为关键, 其运行性能, 支持并行处理的能力以及系统的稳定性都非常重要。

无疑在众多的ETL工具中, Informatica公司的ETL工具PowerMart无论在执行能力还是战略远见的完整性上都是名列前茅的, 但它并不符合CWM规范[5], 如果抽取工具换了其他的厂商, 要将ETL规则从PowerMart中导出, 再导入到新工具, 实现元数据的平稳交换并不是一件容易的事情。幸运的是, Informatica公司开发的PowerMart的DTD正是PowerMart元模型的一种表示形式, 整个ETL规则 (XML文档) 的语法正是由此定义的, 通过它可以剖析PowerMart元模型的组织结构。

2.1 Powermart.dtd的组织结构

PowerMart.dtd的组织结构定义自以下文档:

〈!-- Informatica Repository DTD Grammar – Version 6.1 --〉

〈!ELEMENT POWERMART (REPOSITORY*) 〉

〈!ATTLIST POWERMART

CREATE-DATE CDATA #IMPLIED

REPOSITORY-VERSION CDATA #IMPLIED〉

如上定义, 整个POWERMART元素由任意多个 (0…*) REPOSITORY 子元素组成, 含有两个属性CREATE-DATE与REPOSITORY-VERSION。它们均为字符数据属性类型, 都是可选的, 而且没有缺省值。

〈!ELEMENT REPOSITORY (FOLDER*) 〉

〈ATTLIST REPOSITORY

NAME CDAYA #REQUIRED

DATABASETYPE CDATA #IMPLIED

CODEPAGE CDATA #IMPLIED

VERSION CDATA #IMPLIED

PARENTREPOSITORY CDATA #IMPLIED〉

一个REPOSITORY元素由任意多个 (0…*) FOLDER子元素组成, 含有属性NAME、DATABASETYPE、CODEPAGE、VERSION、PARENTREPOSITORY。它们均为字符数据属性类型, 都是可选的, 而且没有缺省值。

〈!ELEMENT FOLDER (FOLDERVERSION*, CONFIG*, SCHEDULER*, TASK*, SEESION*, WORKLET*, WORKFLOW*) 〉

〈!ATTLIST FOLDER

NAME CDATA #REQUIRED

DESCRIPTION CDATA #IMPLIED

SHARED (SHARED|NOTSHARED) #IMPLIED

OWNER CDATA $IMPLIED

GROUP CDATA #IMPLIED

PERMISSIONS CDATA #IMPLIED〉

一个FOLDER元素由任意多个 (0…*) FOLDERVERSION、CONFIG、SCHEDULER、TASK、SESSION、WORKLET、WORKFLOW子元素组成, 含有属性NAME、DESCRIPTION、SHARED (属性值为SHARED或NOTSHARED) 、OWNER、GROUP、PERMISSIONS。它们均为字符数据属性类型, 都是可选择的, 而且没有缺省值。其中, 除了FOLDERVERSION之外的诸元素均用于描述整个数据仓库信息流的运行、实现及调度, 对应自CWM管理层中的数据仓库处理包和操作包, 与ETL规则本身关系不大。

2.2 Informatica PowerMart的体系机构

PowerMart是基于引擎和元数据驱动的体系架构, PowerMart体系结构中有两个Server:

Informatica Repository Server和Informatica Server。Informatica Repository Server是资料库Server, 可用来管理ETL过程中产生的元数据, Informatica Server则是ETL引擎[6]。

客户端PowerMart Designer是设计开发环境, 定义源及目标数据结构, 设计数据转换规则, 生成ETL映射;Workflow Manager合理地实现复杂的ETL工作流, 实现基于时间、事件的作业调度;Workflow Monitor监控Workflow和Session运行情况, 生成日志和报告;Repository Server Administrator Console建立和维护资料库;Repository Manager则定义了对资料库和安全性的管理。

在资料库已创建的前提下, 通过客户端PowerMart Designer和Workflow Manager开发实现将数据从业务系统ETL到数据仓库的过程。

3 Designer和Workflow的XML描述

Designer通过Mapping生成ETL映射, 一个完整的Mapping应包含了Targets、Sources以及Transformation, 在Mapping中Mapplets的应用也是非常的广泛。在Mapping的设计中通过各种Transformation规则 (Filter、Join、Aggregator、Router等) 的应用, 完成数据从Targets到Sources的ETL。Mapping的XML定义如下:

3.1 声明Powermart.dtd

〈?xml version="1.0" encoding="gb2312" 〉

〈!DOCTYPE POWERMART SYSTEM "powrmart.dtd"〉

〈POWERMART CREATION-DATE="09/10/2009 11:05:11" REPOSITORY-VERSION ="133.41"〉

3.2 定义Repository, DatabaseType为DB2

〈REPOSITORY NAME ="REP-NAME" VERSION ="133" CODEPAGE ="MS936" DATABASETYPE ="DB2"〉

〈/REPOSITORY〉

3.3 在Repository中又定义Folder

〈FOLDER NAME ="FLD-NAME" GROUP ="Administrators" OWNER ="Administrator" SHARED ="NOTSHARED" DESCRIPTION ="" PERMISSIONS ="rwxrw-r--"〉

〈/FOLDER〉

3.4 定义Source和Target

〈SOURCE NAME ="SRC-NAME" DBDNAME ="DB-NAME" OWNERNAME ="DB-OWNER" DESCRIPTION="" BUSINESSNAME="" DATABASETYPE="DB2" OBJECTVERSION="1"〉

〈/SOURCE〉

〈TARGET NAME ="TRG-NAME" CONSTRAINT ="" DESCRIPTION ="" BUSINESSNAME ="" DATABASETYPE ="DB2" TABLEOPTIONS ="" OBJECTVERSION ="1"〉

〈/TARGET〉

3.5 最后定义了数据转换规则, 实现ETL映射

〈MAPPING NAME ="M-P-NAME" ISVALID ="YES" DESCRIPTION ="" OBJECTVERSION ="1"〉

〈/MAPPING〉

Mapping只定义源及目标数据结构, 设计数据转换规则, 生成ETL映射, ETL工作的执行和调度还需要在Workflow中完成。Workflow中定义了Session以及ETL作业调度规则。每个Session都需关联到一个Mapping。Session可设置为共享与非共享, 不同类型的Session在XML中定义的位置也不同。共享的Session (REUSABLE ="YES") 在{FOLDER}中定义, 非共享的Session (REUSABLE ="NO") 则在对应的{WORKFLOW}中定义:

〈FOLDER〉

〈SESSION NAME ="S-M-RNAME" ISVALID ="YES" REUSABLE ="YES" SORTORDER ="Binary" DESCRIPTION ="" MAPPINGNAME ="M-RNAME" MAPPINGVERSION ="1.0.0"〉〈/SESSION〉

〈WORKFLOW〉

〈SESSION NAME ="S-M-P-NAME" ISVALID ="YES" REUSABLE ="NO" SORTORDER ="Binary" DESCRIPTION ="" MAPPINGNAME ="M-P-NAME" MAPPINGVERSION ="1.0.0"〉〈/SESSION〉

〈/ WORKFLOW 〉

〈/FOLDER〉

Workflow则定义了ETL的调度规则:

〈WORKFLOW NAME ="WF-P-NAME" ISVALID ="YES" ISENABLED ="YES" SERVERNAME ="SER-NAME" DESCRIPTION

="" SCHEDULERNAME ="Scheduler" SUSPEND-ON-ERROR ="NO" REUSABLE-SCHEDULER ="NO"〉

〈/WORKFLOW〉

4 应用分析

广东发展银行EDS平台是满足分行、部门或其他系统的数据抽取需求, 同时具有数据交换、整合服务功能, 为各后台信息管理系统提供统一、整合的数据的全行数据应用的总枢纽。EDS平台的数据分发工作流共有三百多个, ETL逻辑分为实时同步和批量抽取两类, 工作流的调度规则均类似。在Workflow Manager中开发一个实时同步逻辑的工作流平均需要30分钟 (不包括设计阶段, 只计生产时间) , 掌握了PowerMart.dtd, 则可以开发出一个通用的XML模版, 针对不同的工作流, 通过分析Workflow的XML描述可以看出只需对XML模版进行少许的修改, 重指定对应的Mapping, 生成新的XML文件, 再将该XML文件导入PowerMart Repository中, 即可生成新的工作流作业。这种基于XML的开发方式极大地节省了开发时间, 同时也可避免在Workflow Manager上执行繁琐的开发操作, 结合UltraEdit来修改XML, 可更进一步提高开发效率。图3为基于XML技术开发的表MCCADPF的分发工作流。

5 小结

通过对PowerMart.dtd的分析和研究, 提出了一种基于XML技术的开发方案, 并且在广东发展银行EDS项目的开发中获得了成功, 但这种基于XML的

开发方案有一定的局限性, 需要结合项目的特点来开发出XML模版, 该方法适合互用性较高的批量工作流的开发。

参考文献

[1]瞿裕忠, 张剑锋, 陈峥, 等.XML语言及相关技术综述.计算机工程, 2000;12, (12) :4—6

[2]刘绚, 薛贺.基于XML的数据集成应用架构中的模式管理模型.科学技术与工程, 2007;7 (3) :325—328

[3]王悦.基于CWM规范的异构平台抽取工具的元数据交换.北京邮电大学学位论文, 2005:42—54

[4]WilliamH.Frmon.数据仓库.王志海, 译.北京:北京机械工业出版社, 2006

[5]雷启明.基于CWM的商场数据仓库ETL系统构架研究.商业研究, 2008; (551) :39—40

XML开发 篇6

在“十一五”期间,在国资委进行的中央企业信息化水平评价中,中国石油连续两年被评为A级,信息化水平处于央企前列。

当前,在计算机技术领域中,管理信息系统是已经朝着智能化的方向发展,除了传统的数据库系统技术外,一些新技术如商业智能、数据挖掘、分布式数据库、XML技术等不断兴起,智能信息系统随之出现。

塔西南公司医院HIS系统已也被带入到了利用XML技术的智能信息化的前沿。

2009年10月开始,用XML技术来实施塔西南公司职工医院信息系统HIS与巴州医保IC卡接口(中间件)开发成功,前台客户端开发工具为PB 9.0,后台服务器为Oracle/9i,2009年11月门诊IC卡接口投入运行,2010年5月,住院IC卡接口投入运行。

全国医疗、医保改革工作在持续不断推进,国内原有的许多医院HIS系统没有与医保IC卡的刷卡结算接口。今后,从事计算机开发工作的许多同仁们都会面对,承担为各自的医院HIS系统开发与医保IC卡接口软件任务的问题。

2 开发背景

2009年10月1日起,新疆医保系统全疆开始使用统一医保软件,联网运行。

这次的新型医保接口IC卡刷卡——全新疆联网型巴音郭楞蒙古自治州(简称巴州)新医保IC卡接口,是2009年11月自治区全疆范围实施的“金保工程”,为全自治区医保联网操作,进而走向全国医保联网操作做准备。

2009年,进入此批试点的地区有北疆的2个,新疆昌吉回族自治州(简称昌吉州)、新疆伊犁哈萨克自治州(简称伊犁地区)南疆的2个,阿克苏地区、巴州。这次的新接口软件开发,不仅要把塔西南医院HIS系统本地医疗数据实时传到自治区社保局去,同时还要用XML技术进行远程网上结算再传回来,数据格式应用XML技术,即XML技术的医保IC卡的联机事务处理。

自2009年10月1日起,自治区社保局强行规定,各个医院一律停止手工办理医保IC卡结算业务。塔西南职工医院医保IC卡门诊、住院结算数据必须在巴州社保局的网上远程实时进行报销结算业务并传输XML数据到自治区社保局。

这样,塔西南职工医院、社保中心就遇到了困难,因为原塔西南职工医院HIS系统是2003年开始运行的,当时就根本没有考虑此接口,且接口数据协议标准和格式要求是XML技术。不开发此支付结算接口中间件,塔西南职工医院就无法开展医疗业务和使用医保IC卡给患者结算。

技术实现上就是指患者在门诊就医、出院结算时,可通过在塔西南医院HIS系统下就实时自动的实现到巴州社保局(相距约1000公里)的远程报销结算业务(医保IC卡接口联机事务处理)。

同时,该系统数据组织上要能实现塔西南医院HIS系统与巴州医保IC卡系统之间的处方数据共享,即处方只开一遍,医保IC卡就能接收到HIS的数据。收费人员就不用再重复又一次输入处方了,完全解决和避免门诊结算、住院结算二次重复录入的问题,以提高收费窗口的工作效率和工作质量。

3 技术原理

3.1 网络拓扑图

如图1所示。

3.2 接口技术路线

《新疆医保系统支付接口应用编程接口规范》(以下简称规范)的使用对象为重庆银海软件公司的医保支付组件库(以下简称组件库)来完成医保支付的为定点医疗机构提供应用软件的HIS供应商、药店MIS供应商或其他第三方应用软件供应商,如图2所示。

规范从编程的角度来介绍以上内容。

应用模式:银海医保支付组件库是一组运行在Windows32位环境下的COM组件,第三方应用软件使用相应的COM组件调用方式来调用它。

3.3 XML技术

XML是可扩展标记语言(EXtensible Markup Language)的简称,它的先驱是SGML和HTML,它们都是很成功的标记语言,但是在某些方面,这两种语言也存在着自身的一些缺陷,XML正是为了解决它们的不足而产生。XML技术特别适合于异质数据库之间的跨平台数据传递。

XML作为表示结构化数据的一个工业标准,为组织者、软件开发者、Web站点和终端使用者提供许多有利的条件。

XML使用的字符集是Unicode,一种增强型的ASCII。每个ASCII文档可以自动转换成Unicode文档,因此,就可以用标准文本编辑器来创建XML文档。

XML原理及应用是IT技术的发展前沿,目前,所有软件厂商和IT企业都宣布对XML的支持,XML已经成为现代信息处理的重要技术。

XML是纯文本的,可阅读的,并且实现简单,既可以自由扩展,不限制任何自然语言对标记进行定义,又可用最基本的文本编辑软件和维护文档,得到廉价或免费的XML的处理工具。

新疆巴州医保IC卡接口中的XML技术与XML数据参数组织格式举例,如表1所示。

4 接口描述

4.1 说明

(1)组件库注册在每一台需要进行医保支付业务的客户机上(该客户端也必须能连接到医保网络),通过被动调用的方式将医保支付业务功能嵌入到定点医疗机构的系统中(以下简称HIS)。

(2)接口交易组件库提供了6个公共方法:

1)yh_interface_init初始化

2)yh_interface_destroy资源释放

3)yh_interface_call业务方法调用

4)yh_interface_confirm业务办理确认

5)yh_interface_cancel业务办理取消

6)yh_interface_getuncertaintytrade不确定交易查询

交易参数组织采用XML格式(所有社保经办机构交易调用及交易参数统一),差别处理对于HIS透明。

(3)新接口存在多社保经办机构处理,并且各社保经办机构处理模式存在差异,接口交易内部也可能存在用户交互窗口,因此建议HIS事务管理与接口交易调用相互独立。

4.2 PB调用举例

4.3 交易类型和调用流程

(1)查询类交易:包括一般查询交易和接口内部完成确认、取消的交易。

(2)处理类交易:包括门诊结算(回退)、入院办理(回退)、住院结算(回退)和清算(回退)等交易,一次完整的处理类交易可以有3种方式:

1)只有处理流程,符合情况是处理流程执行失败(接口返回错误代码及信息)。

2)处理流程+确认流程,符合情况是处理流程执行成功,his处理也成功,调用确认流程。

3)处理流程+取消流程,符合情况是处理流程执行成功,his处理失败,调用取消流程。

在HIS进行处理环节,应该保存返回的交易流水号和验证码,中该表名称为交易记录表,并且保存的过程在HIS处理的事务内。

4.4 塔西南医院HIS系统中的医保IC卡接口业务

本网上远程实时支付结算接口中间件软件程序需求项目管理的范围:辅助处置项目、药品(中成药、中草药、西药)、一次性用品。

子系统为:门诊、住院两大子系统。

4.4.1 门诊

(1)向IC卡—传输辅助处置项目。

(2)向IC卡—传输处方项目。

(3)向IC卡—匹配数据。

1)提取数据。

2)生成XML格式文件。

(4)对IC卡—实时结算(刷卡)。

(5)对IC卡—打印发票及清单。

(6)对IC卡—数据清理。

4.4.2 住院

(1)对IC卡—待遇审批。

(2)对IC卡—数据清理。

(3)对IC卡—传住院号。

(4)对IC卡—入院办理。

(5)对IC卡—住院费用明细写入。

1)提取数据。

2)生成XML格式文件。

(6)对IC卡—出院办理。

(7)对IC卡—住院费用实时结算(刷卡)。

(8)对IC卡—打印发票及清单。

1)打印住院费用明细表。

2)打印住院费用审核表。

3)打印住院发票。

(9)对IC卡—住院费用结算查看。

(10)对IC卡—住院费用结算回退。

(11)对IC卡—住院费用明细回退。

(12)对IC卡—出院办理回退。

(13)对IC卡—入院办理回退。

4.5 交易列表

《新疆医保系统支付接口应用编程接口规范》(以下简称规范)的使用对象为重庆银海软件公司的医保支付组件库(以下简称组件库)来完成医保支付的为定点医疗机构提供应用软件的HIS供应商、药店MIS供应商或其他第三方应用软件供应商,共有交易44种,具体如表2所示。

5 结语

该软件系统使门诊、住院结算便捷快速,高效。如在网络连接良好正常,住院病历数据规范情况下,一般处理一笔结算业务,从入院申请、费用明细上传、出院办理、费用结算,再到打印费用审核单、打印费用明细清单、打印全疆统一结算发票,这个过程大约需要5-6分钟,完全实现了职工医院医疗管理系统(HIS)与巴州社保IC卡网上结算系统2个系统之间的数据无缝平滑连接与自动化。

多个收费员可以同时收费操作医保IC卡刷卡,完成实时支付结算业务。经过近19个月的运行,门诊刷卡约58000多人次,住院刷卡约2300多人次,证明运行平稳(具体可参看图4)。也受到了上级部门巴州社保局、塔里木油田社保中心、塔里木油田矿区信息中心、塔西南社保中心、塔西南职工医院、塔西南信息中心的高度评价。也使塔西南社保中心、职工医院的相关医保业务跟上了自治州、新疆医保改革管理工作的步伐。

参考文献

[1]袁俊,王增武,廖德钦.XML原理及应用.四川:电子科技大学出版社,2006.

XML开发 篇7

可扩展标记语言XML是W3C组织认可的文档数据格式标准[1],它独立于任何语言和体系结构,使用XML创建的数据可以被任何应用程序在任何平台读取,是一种平台无关的表示数据的方法,被广泛应用于电子数据交换、Web交换数据、矢量图形、远程过程调用等领域。对XML的处理,主要包括XML/SOAP的解析、模式确认、XPath处理及XSLT功能转换等,其中XML解析是XML处理中最关键且代价最大的环节之一[2]。XML解析过程大体可分为三个步骤:字符转换、词法分析和句法分析。通常来说不同的解析模型中前两个步骤的处理过程基本相同,而句法分析过程会根据不同的解析模型建立相应的数据表示。目前常用的解析模型包括DOM、SAX、StAX和VTD-XML。不同的解析模型在应用中具有不同的操作特点和性能表现[3]。

1 VTD-XML解析模型

虚拟令牌描述符VTD-XML是一种无提取的XML解析方法[4],很好地解决了DOM模型占用内存过大等缺点,并能实现快速的解析与遍历、对XPath的支持、增量更新等。VTD记录是一个64 bit长度的数值类型,记录每个元素的起始位置、长度、深度和令牌类型等信息,如图1所示。

该模型将原XML文件以二进制的方式读入内存,在一个比特数组上解析每个元素的位置并把一些信息记录下来,之后的遍历操作便在这些保存下来的记录上进行,如果需要提取XML内容就利用记录中的位置等信息在原始比特数组上进行解码并返回字符串。

VTD-XML的遍历方式采用了位置缓存LC(Location Cache),将VTD记录以其深度作为标准构建的一个树形的表结构如图2所示。

LC中的数据存储也采用64 bit长的数值类型,前32 bit代表一个VTD的全局索引,后32bit代表了这个VTD记录的第一个孩子的LC索引,VTD-XML利用这些信息可计算出任何一个想要到达的位置,遍历的性能十分突出。

2 XML文档的分块解析方法的提出

对于体积庞大的XML文档,如果能够对其进行分块并行解析,将极大提高解析速度。分块解析的一个关键问题在于对元素嵌套关系进行分解与合并。在VTD-XML解析模型的基础上,提出一种XML文档分块解析的方法,主要包括以下三个步骤。

2.1 文档分割

进行解析前,首先需要产生大小基本相近并且以开始标签为起始的文件块。分割方法为:

(1) 初步分割可采用“数量优先”或“体积优先”两种模式。数量优先模式下,文档被分割为指定数量个文件块;体积优先模式下,文档按照预先设定的体积大小依次分块。

(2) 调整文件块起始点。初步分割后找到文件块中第一个由“<”和“>”标记的元素开始标签,以此作为该文件块的解析起始点,并将该文件块中位于此起始点前的部分并入上一个文件块。用此方法分割为三块后的示例XML文档如下,文档中没有使用名字空间和元素属性:

灰色箭头标明了根据大小进行初步分割后的分割点;黑色箭头标明了进行调整后的实际解析起始点。此时每个文件块均以一个开始标签作为起始。

2.2 分块解析

在该步骤中跳过检查XML文档是否形式良好,直接根据文件块内容生成VTD记录,方法如下:

(1) 根据VTD模型标准对文档中的元素进行分析,产生对应的VTD记录。

(2) 对应每一个文件块,设置“前结构缓存”PSC(Prefix Structure Cache)和“后结构缓存”SSC(Suffix Structure Cache)。它们各包含一个32字节宽的标记名称栈和一个8 位的LC深度参数,用来标明文件块LC间的衔接关系。

(3) 在解析中遇到缺少对应开始标记的结束标记时,如上例中第二个文件块中的</scores>标签,向存储遍历路径的栈底部送入对应的开始标签,使得该文件块形式良好以继续提取VTD记录。同时将该元素名称送入PSC。若该结束标签位于文件块尾部,表明该文件块内其余内容均属于该标签对应的元素,则将LC深度参数值置为0,否则置为1。

(4) 当文件块扫描至结束,存在没有对应结束标签的开始标签时,如上例中第一个文件块中的<scores>,向存储遍历路径的栈顶部继续送入对应的结束标签以完成解析,并将这些元素名称依次送入SSC。此时最后一个未闭合元素,即为下一文件块起始处元素的祖先元素,因此将LC深度参数置为此元素的LC深度值。

根据以上步骤,在解析一个包含有“</c>”、“</b>”、“</a>”等三个结束标签和“<d>”、“<e>”等两个开始标签的文件块时,所生成的PSC和SSC如图3所示。

(5) 解析过程的输出结果包括文件块的VTD记录、LC、PSC和SSC。以上述示例文件的第二个文件块为例,解析过程如下:

2.3 记录合并校验

在记录合并阶段,对于VTD记录可以直接按文件的前后顺序进行合并;而LC的合并需要通过PSC和SSC实现:

(1) 对PSC和SSC中的元素名称进行校验,若出现元素名称和次序不匹配则抛出错误,停止解析。

(2) 计算当前文件块与上一文件块LC的深度差d:

d=m+k

其中,m为上一文件块SSC中的LC深度参数,k位当前文件块PSC的LC深度参数。当前LC记录中嵌套深度为i的记录对应到上一文件块中的嵌套深度即为i+d

(3) 调整当前文件块各深度的LC中的子元素LC索引,使之与前一文件块LC索引值相接:

Ii,j=Ii,j+Ii+1,max

其中Ii,j表示在深度为i的第j条LC记录中首个子元素的LC索引值。Ii+1,max表示上一文件块LC中深度为i+1层的记录总数。Ii,j为调整后,可以进行拼接的索引值。

将调整索引值后的深度为i的各条LC记录合并至上一文件块深度为i+d的LC记录之后,生成新的LC记录,更新PSC、SSC,删除PSC和SSC中已配对的元素名称。完整的合并流程图4所示。

此过程根据分块解析步骤中输出的PSC和SSC对每个文件块的LC进行合并,根据计算出的深度差确定当前文件块各深度LC在上一个文件块LC中的对应深度,并对当前文件块的LC子孙元素的索引值进行调整,将LC按照正确的深度和索引值进行合并。记录合并操作过程实际上就是数组的操作,其中数据的比较、移位、复制等操作均可通过硬件电路高效地完成。

3 方法的应用

以前文所述的XML示例文档为例,对其第一和第二个文件块分别进行解析,产生的LC、PSC和SSC如图5所示。

使用前文所述的记录合并方法,对第一和第二文件块LC合并后的LC记录如图6所示。

继续应用该规则对第三个文件块的LC进行合并,即可获得整个文件的LC。结果与整块解析后的输出文件内容一致,并且最后通过对PSC和SSC的校验表明文件形式良好。

4 在硬件系统上的实现及效果

VTD-XML模型的一个显著优势在于它是64位固定长度的,可以用数组而非指针来存放VTD记录。在读取、查询等操作时非常高效,一方面避免了因为大量使用对象而产生的性能问题,同时为在硬件系统上实现解析功能提供了可能[5]。基于VTD-XML模型的分块解析方法,更是为在硬件系统实现解析功能中提供了进一步提高解析性能的途径。VTC-XML具有流式特点,即处理—丢弃结构,可在芯片上设计固定尺寸的寄存文件来实现功能[6],在此基础上进行分块解析能够在使用硬件电路进行文档解析时显著提高解析速度。通过将文档分块并进行并行解析,可以大大缩短提取VTD记录所消耗的时间。

我们在Altera公司的Cyclone III开发板上实现了该方法的解析器原型,使用Verilog语言设计了简单的文件传输通路,多路状态机以及合并处理单元。我们将不同大小的XML文件在改原型系统上进行了解析处理测试,并使用DOM和VTD-XML解析模型在用NIOS II软核构建的SOPC系统上进行软件解析,解析所消耗的时间对比情况如表1所示。

可以看出,此解析方法可以应用于VTD-XML解析模型在FPGA上的实现,进一步发挥硬件解析器的并行处理能力,提高文件的解析速度。在实际的硬件系统设计中,可设置模式转换控制器,根据文档大小和具体的处理需求对所使用的分割模式

进行选择和管理。文档分割后,同时使用多个FSM和PDA[7]模块对文件块进行解析,并将LC记录按照深度分别保存。虽然LC记录的合并也可以分块进行,但为了避免频繁的内存操作降低性能,一般仍采用分段解析、一次合并的处理方式。

5 总 结

XML 解析是XML 文件处理中的重要一环。本文在VTD-XML解析模型的基础上,通过对XML文档进行分割并构造前、后结构缓存,提出了一种XML文档的分块解析方法,方法适用于各种大小和数量的文件块,具有较高的灵活性。同时该方法适于在FPGA等硬件平台上实现,通过并行解析提高解析工作的速度。

摘要:针对提升XML文档解析处理速度的问题,提出了一种基于VTD(Virtual Token Descriptor)模型的分块解析方法。该方法对XML文档进行分割、分块解析,并利用VTD-XML解析模型的无提取等特点构建了文件块结构缓存,用于对分块提取的记录进行合并校验。同时给出了方法的应用实例,并在FPGA硬件平台上实现了该方法的原型,实验证明该方法能明显提高XML文件的解析处理速度。

关键词:XML,VTD-XML,解析器,分块,FPGA

参考文献

[1]World Wide Web Consortium.Extensible Markup Language(XML)1.0,3rd[EB/OL].2004.http://www.w3.org.

[2]Nicola M,John J.XML Parsing:A Threat to Database Performance[C]//Proc.12th Int’l Conf.Information and Knowledge Management.USA:ACMPress,2003:175178.

[3]Pan Y,et al.Parallel XML Parsing Using Meta-DFAs[C]//Proc.3rdIEEE Int’l Conf.e-Science and Grid Computing.USA:IEEE CSPress,2007:237244.

[4]Zhang Jimmy.A Quick Overview on Virtual Token Descriptor[EB/OL].2005.http://vtd-xml.sourceforge.net/VTD.html.

[5]Zhang Jimmy.XML on a Chip[EB/OL].2005.http://www.xml.com/pub/a/2005/03/09/chip.html.

[6]曹毅,朱兰娟.加速XML解析过程的研究[J].微型电脑应用,2009,25(4):5859.

XML开发 篇8

XML是Extensible Markup Language的缩写, 即可扩展标记语言, 是一种人们可以用来创建自己的标记的标记语言。它由万维网协会 (W3C) 创建, 用来克服HTML (即超文本标记语言 (Hypertext Markup Language) , 它是所有网页的基础) 的局限。和HTML一样, XML基于SGML (Standard Generalized Markup Language:标准通用标记语言) 。尽管SGML已在出版业中使用了数十年, 但对其理解方面的复杂性使许多本打算使用它的人望而却步。SGML也代表“听起来很棒, 但或许以后会用 (Sounds great, maybe later) ”。XML是为Web设计的。

XML实际上是Web上表示结构化信息的一种标准文本格式, 它没有复杂的语法和包罗万象的数据定义。XML同HTML一样, 都来自SGML。SGML是一种在Web发明之前就早已存在的用标记来描述文档资料的通用语言。但SGML十分庞大且难以学习和使用。鉴于此, 人们提出了HTML语言。但近年来, 随着Web应用的不断深入, HTML在需求广泛的应用中已显得捉襟见肘, 有人建议直接使用SGML作为Web语言。但SGML太庞大了, 学用两难尚且不说, 就是全面实现SGML的浏览器也非常困难。于是Web标准化组织W3C建议使用一种精简的SGML版本———XML。XML与SGML一样, 是一个用来定义其他语言的元语言。与SGML相比, XML规范不到SGML规范的1/10, 简单易懂, 是一门既无标签集也无语法的新一代标记语言。

XML继承了SGML的许多特性, 一是可扩展性。XML允许使用者创建和使用他们自己的标记而不是HTML的有限词汇表。这一点至关重要, 企业可以用XML为电子商务和供应链集成等应用定义自己的标记语言, 甚至特定行业一起来定义该领域的特殊标记语言, 作为该领域信息共享与数据交换的基础。

二是是灵活性。HTML很难进一步发展, 就是因为它是格式、超文本和图形用户界面语义的混合, 要同时发展这些混合在一起的功能是很困难的。而XML提供了一种结构化的数据表示方式, 使得用户界面分离于结构化数据。所以, Web用户所追求的许多先进功能在XML环境下更容易实现。

三是自描述性。XML文档通常包含一个文档类型声明, 因而XML文档是自描述的。不仅人能读懂XML文档, 计算机也能处理。XML表示数据的方式真正做到了独立于应用系统, 并且数据能够重用。XML文档被看作是文档的数据库化和数据的文档化。

除了上述先进特性以外, XML还具有简明性。它只有SGML约20%的复杂性, 但却具有SGML约80%的功能。XML比完整的SGML简单得多, 易学、易用并且易实现。另外, XML也吸收了人们多年来在Web上使用HTML的经验。XML支持世界上几乎所有的主要语言, 并且不同语言的文本可以在同一文档中混合使用, 应用XML的软件能处理这些语言的任何组合。所有这一切将使XML成为数据表示的一个开放标准, 这种数据表示独立于机器平台、供应商以及编程语言。它将为网络计算注入新的活力, 并为信息技术带来新的机遇。目前, 许多大公司和开发人员已经开始使用XML, 包括B2B在内的许多优秀应用已经证实了XML将会改变今后创建应用程序的方式。

从1998年开始, XML被引入许多网络协议, 以便于为两个软件提供相互通信的标准方法。简单对象访问协议 (SOAP) 和XML-RPC规范为软件交互提供了独立于平台的方式, 从而为分布式计算环境打开了大门。几乎所有主要的软件厂商都支持SOAP。SOAP的快速成功史无前例地提高了软件的互操作潜力。当今, Web服务革命正在兴起, 而SOAP正是其基础协议。

二、XML对各个数据库的支持应用

由于XML具有标记不同字段 (field) 的能力, 使得搜索变得更简单和动态化, 从而把企业准备扔进废纸篓的文件变成了进行数据挖掘的宝藏。XML把内容从演示格式中解放出来, 使材料可以多次重复使用。同样的内容可以分别用于新闻发布、白皮书、宣传册、演示和Web页面。对那些需要把不兼容的系统融合在一起的企业, XML可以充当公共传输工具, 以中性格式进行数据传输。此外, XML还可以处理各种数据, 包括文本、图像和声音, 并且可以由用户进行扩展以处理任何特殊类型的数据。从去年以来, 三大主流数据库厂商分别以不同的形式对外宣布:支持XML。

(一) DB2与XML

IBM加强对Viper数据库XML性能的全面支持。DB2 Viper将从根本上改变数据库的游戏规则。通过将Viper置于信息构架的核心位置, 用户可以快速地从传统数据管理转换到前所未有的信息管理技术上来, 这可以使他们将信息提升为一种服务。

(二) Oracle与XML

2005年年初, Oracle发布支持XML的工具包, 并宣称与许多共享件和试用版XML组件不同, 产品版本的Oracle XDK提供XML支持 (已经过严格的企业生产环境验证, 包括Oracle SOA、Oracle JDeveloper/ADF、Oracle XML DB和Oracle XML Publisher) 。使用Oracle XDK的Oracle用户可享受24x7的正式支持。

(三) SQL Server与XML

XML (扩展标记语言) 已经成为当今最重要的因特网技术之一。XML的基于文本结构的灵活性使得它可以应用在不可置信的广阔范围的网络任务中。

三、基于XML的三层C/S模型

从网络体系结构各层次上看, 基于XML的三层C/S模型具体实现的功能概括如下:

数据层———实现数据的集成, XML数据产生于多种数据源, 但都以统一的XML格式表达传输。

功能层———实现数据的发送与处理, 应用服务器通过http交换数据, 通过dom处理XML数据。

表示层———实现数据的显示, XML数据可以有多种表现形式, 而且可以为外部直接访问、编辑或转换, 也可被其他系统所用。

在基于XML的三层C/S模型中把XML作为一种结构化信息交换的表示方法, 负责所有与数据源的通信, 根据最终用户的要求, 聚集和组织从多个远程数据库服务器上获取数据, 并用XML形式交互式地把数据源返回的消息传递给客户机。

以下是XML的三层C/S模型应用过程:

1.从数据层获取数据生成XML文档

由于XML能够使不同来源的结构化的数据很容易地结合在一起, 所以通过XML, 可以在中间层服务器上对从后端数据库和其他应用处来的数据进行集成。然后, 数据就能被发送到客户或其他服务器作进一步的集合、处理和分发。

虽然每个数据库描述数据都是不同的, 但XML可以自己定义文件标签, 例如:通过XML, 图书管理资料就可以很容易以标准的方式按照书名、作者、图书简介或其他的标准进行分类。

2.XML数据的发送与刷新

利用XML开放的、基于文本的格式, 可以将它通过http像html一样传送。同时, 中间层应用服务器将支持XML更新功能, 将数据服务器上数据的变化及时地传递给客户, 反之亦然。因此, 中间层能够从客户端得到更新的数据, 并把数据传送到数据储存服务器上。

3.XML数据在表示层的显示

XML描述的数据发到表示层后, 能够用多种方式显示。XML定义的数据, 其显示与内容是分开的, 因此允许对同一数据指定不同的显示方式, 使数据更合理地表现出来。css和xsl为数据的显示提供了公布的机制, 本地的数据能够以客户配置、使用者选择或其他标准决定的方式动态地表现出来。

html描述数据的外观, 而XML描述数据本身。由于XML注重的是内容, 其显示要通过xsl (extensible stylesheet language, 可扩展样式语言) 或css来实现。xsl是为XML文件定义的一种标识语言, 它提供类似但却远远超过css的强大功能。

xsl以包含了一套元素集的XML语法规范而定义, 该语法规范将被用来把XML文件转换成html文件或XML文档。一个xsl样式表集合了一系列设计规则以用于将信息从XML文件中汲取出, 并将其转换成html等其他格式。xsl凭借其可扩展性能够控制无穷无尽的标签, 而控制每个标签的方式也是无穷尽的。这就给web提供了高级的布局特性。

4.处理和编辑XML数据

在基于XML的C/S模型中, 不但能够通过XML集合多个数据源的数据, 并把数据源数据及时传输给表示层;而且, 只要能理解XML数据, 就能从客户层处理和编辑中间层的数据, 然后通过中间层与数据层之间的数据刷新机制, 对数据层数据进行刷新。

运用XML解析器能够读入一串XML数据, 经过处理, 产生一棵结构树, 并且使用dom把所有数据元素作为对象。解析器或者用脚本把数据进行进一步的处理, 或者把数据移交给另外的应用软件或对象进行进一步的处理。

dom实际上是一个应用编程接口 (api) , 用来定义一种标准方法。通过这种方法, 能够处理XML结构树的元素。对象模式控制着使用者如何同结构树交流, 并且把所有树的元素作为对象暴露出来。dom用扩展方式支持名域、数据类型、查询和xsl转化。

5.基于XML的三层C/S模型的应用实例

下面具体介绍如何实现基于XML的三层C/S模型, 以笔者做所过的三层C/S模式的图书资料管理为例。它是基于XML表达、传输与处理的, 其详细实现如下:

(1) 获取数据生成XML文档

中间层通过XML获取数据源数据, 生成XML文档, 其中每一书目的信息包括:书名、作者、图书简介、出版日期。下面所列的就是获取数据源的一段典型例程。

(2) XML文档通过http从应用服务器传送到客户机层, 并且支持XML更新功能, 使得中间层或数据服务器上数据的变化可以传递给客户。

(3) XML数据在表示层 (客户机层) 的表达

发送到客户端的数据 (图书资料管理数据) , 可以根据用户对象及其不同的应用要求有不同的显示形式。如下所示的xsl样式表, 就是一个显示示例, 将生成一个html文档, 包括一个表格, 其中的一行就为一个“书目”元素。

(4) 编辑、处理数据的实现

只要理解了中间层XML文档的数据, 就能从任何地方处理和编辑数据 (图书资料管理数据) 。

如下例所示, loaddocument程序打开XML文档, 然后调用另一个程序displaynode, 它用来显示文档的结构。loaddocument传递给正在打开的XML文档的childnodes属性一个引用作为它的参数, 同时传递一个整数用来标示开始显示的层次级别。代码利用参数来格式化在visual basic文档结构显示窗口中的文本。

displaynode属性的函数会遍历文档寻找需要的node_text节点类型串, 一旦代码找到一个node_text的节点, 它会利用nodevalue属性来获得相应的文本串。另外, 当前节点的parentnode属性指向一个元素类型的节点。元素节点实现了一个nodename属性,

四、总结

在基于XML的三层C/S模型中, 中间层一次性从远程数据库中获取满足客户需求的信息, 生成相应的XML文档, 以后中间层就不需要再与远程数据库进行交互了, 即与远程数据库的连接也就终止了。一旦中间件软件把满足客户需要的信息组装起来以后, 就可以以XML形式发送给客户了, 这样客户与中间层也就无需进一步交互。XML的实体机制是一种节省大量时间的工具, 而且也是将多种不同型态的数据并入XML文件中的方法。在XML文件中, 你可以将经常使用的XML文字区段定义成实体, 可以快速地将XML文字加入到你需要的任何地方, 也可以将外部的档案定义成实体, 然后将档案的数据附加到文件;这些数据可以由XML本文或其他的文字或非文字数据所组成。

同时, 丰富的XML数据发送给客户端后, 客户应用和脚本语言就可以直接使用这些数据, 这时客户端与中间层服务器之间连接就可以终止了。

因此, 在C/S模型中发送给中间层的信息是简洁的、个人化的、精确的。应用服务器负责在正确的时候组装并交付正确的信息, 这将网络上的流量减小并提高了交互能力和用户的满意程度。而且, 由于中间层可以提供动态的、易访问的内容, 这些内容可以被客户方操作。而且, 无需刷新整个用户界面就可以更新页面的内容, 这样就减少了从服务器方获取客户方已有信息所需的交互时间。用户可以方便地远程管理数据, 使得网络成为一种具有更大的交互性和互操作性的媒体。

其次, 运用基于XML的三层C/S模型, XML结构化的数据可以从商业规范和表现形式中分离出来, 而且可以更详细地定义某个数据对象的数据结构, 解决了信息标准化的问题。

通过在三层C/S模型使用XML, 使得企业之间可以通过网络, 与合作伙伴间, 进行跨平台、跨操作系统的信息交换。

参考文献

[1]hiroshi maruyama, kent tamura, naohiko uramoto.XML and java developing web applications[M].addison-wesley, august1999.

[2]ed tittel, norbert mikula, ramesh chandak.XML for dum-mies[M].idg booksworldwide, inc, 1999.

XML开发 篇9

进入21世纪以来,随着Internet技术发展的日新月异,以微软的.NET体系和Sun的J2EE体系为代表的WEB Services技术已经成为当前Internet技术的两大主流。无论二者体系架构如何不同以及如何发展改进,XML作为其架构的核心配置作用始终倍受重视。因此XML课程已成为当前从事Internet领域的软件行业教育的重要课程,许多高校都纷纷开设XML方面的课程以跟上当前发展的步伐。

但在实际教学过程中,相应的教材存在两个极端,一方面是纯语言语法教学,由于XML技术应用涉及相关技术多,应用范围广,按照语法讲解,无法体现出XML技术的应用价值,同时在有限的课堂教学内不可能完全、透彻地讲解,以致使学生陷入到语法学习中,无法真正理解和掌握XML技术。另一方面则大多是作为应用开发的参考资料,过于看重项目开发的知识应用而缺乏系统完整性,同时由于XML技术发展的不断发展,相关的新知识也不断涌现,教材很难跟上实际需要。

XML课程是理论与实践结合非常紧密的课程,纯粹的理论教学无法掌握XML的应用开发技术,但纯粹的实践又不能深刻理解到XML的本质。因此本文将围绕XML课程的两大问题,针对众多繁杂的知识点,重新构建出三大层次的XML课程知识体系。采用行为引导方法研究如何在XML课程中实现理论知识学习和实践应用的结合。

XML语言是自我描述的可扩展的语言,这决定XML技术本身就是不断扩展的。从近几年的WEB技术发展来看发现XML技术在WEB领域占据着重要的核心地位,同时XML技术的相关应用领域也越来越广,因此XML课程知识体系的构建非常重要,一方面必须包含XML核心基础知识,另一方面应该扩展日新月异的应用技术。笔者通过近四年XML教学经验的积累,把XML课程知识归纳划分为基础层次、访问层次和应用层次。其中基础层次是核心的,必须掌握的知识点,也是变化最少的层次;应用层次是XML生命力的体现所在,也是变化最多的层次;访问层次是实现基础层次和应用层次之间架构桥梁的层次。

一、XML课程教学方法的设计

针对XML知识点众多、知识内容繁杂以及知识更新变化快的特点,笔者通过对XML课程知识点的分析,构建出三个层次组成的XML知识体系。因此笔者在课程教学过程中,紧密围绕三个层次,采用行为教学法,使三个层次知识点在有限的教学时间内交叉融入到教学过程中。

1.行为引导教学方法

行为引导教学方法是指在老师的引导下,学生同时用脑、心、手进行学习的一种教学方法。行为引导教学方法使学生成为学习的主体,教师在教学过程中引导学生在参与学习的过程中激发学习兴趣,让学生主动地进行探索式和研究性学习,提高学生学会学习的能力。行为引导教学方法是一种以职业活动为导向,以能力为本位的职业能力培养的教学方式。在这种教学方式中,教师帮助学生获得知识、技能、价值观和思维方式,同时也提高了学生的核心能力。行为引导教学方法体系主要是由八种经典方法以及教师结合自身教学实践所创造的各种创新方法组成。这八种经典方法为:头脑风暴教学法、项目教学法、引导文教学法、案例教学法、角色扮演教学法、模拟教学法、张贴板教学法和未来设计教学法。

2.基于行为引导的XML课程教学体系设计

针对三个层次的知识点,XML课程教学体系的设计建立在行为引导教学方法基础上,关注的是如何充分调动学生主动学习的愿望和动机,培养学生进行探索性学习、研究性学习的精神,尤其是如何通过团队学习,有效地促进学生核心能力的培养。主要采用了项目教学法、案例教学法、情感教学法、角色扮演法。

(1)主教材和辅导教材的选择。主教材的选择应完全满足基础层次知识点的要求,同时包含部分访问层次知识点。不管XML相关技术如何发展,XML如何作为一门国际标准语言规范使用是本课程必须掌握的基础知识。需要注意的原则是教材应尽量简洁精练,以免使学生陷入到复杂的语法学习中。

(2)教学大纲设计。课堂讲授课时占总课时的3/4,其中理论知识授课占2/4,主要讲述基础层次的知识点和部分访问层次的知识点;交流反馈活动占1/4,主要以讲座形式讲述应用层次知识点以及学生互动讲评等;实验课时占总课时的1/4,主要以项目开发形式提供学生实践和老师实时答疑解决问题。

(3)教学方法的实现。一是综述性课程教学:通过行为引导体系中的案例教学法。介绍当前XML的最新应用及其发展。结合应用层次知识点帮助学生了解XML应用场合及其作用,激发学生学习兴趣,注意掌握学生信息的反馈。二是基础理论课程教学:采用行为引导体系中的项目教学法。首先提出项目需求,安排好任务完成时间。帮助学生提炼出要完成该项目所需要掌握的知识大纲,从而按顺序讲解基础层次的知识内容。三是实践课程教学:采用行为引导体系中的角色扮演教学方法。由学生自愿组合成立项目开发小组,进行项目小组成员角色定位和任务分工。按照项目进度要求提交原型系统,引导学生各项目组互相测试验收,并提交各项目组的项目开发改进方法和总结报告。四是反馈跟踪课程教学:采用行为引导体系中的情感教学法。引导学生主动提出问题,补充相应的知识点,要求学生每次听课后提交所学知识点大纲以及存在的问题。

此外,除课堂教学之外,应多开展课外学习辅导活动,巩固课堂教学成果,加深学生认识和体会,拓展XML知识视野。

二、实际教学结果分析

在综述性课程教学中,结合项目教学法采用了两个项目:一个是“基于XML的多样式通用个人简历”项目开发,该项目结合学生毕业面试的现实需求,帮助学生如何设计和实现满足不同公司特色的应聘简历;另一个是“基于XML的多样化试卷生成系统”项目开发,该项目以学生经常遇到的考试试卷为对象,设计一种试卷可以避免抄袭并能够呈现个性化的试卷,让学生第一次站在教师的角色上考虑设计。第一个项目需要的XML基础层次的知识点,第二个项目则是在基础层次基础上,需要XML访问层次的知识点。根据调查数据对比,这两个项目在实际项目教学过程中起到了非常好的效果。在实践课程教学中,更关注的是学生团队合作能力的培养和提高,通过学生项目小组的构建、角色的分工,极大地锻炼了学生小组合作能力的开发;有效地配合了学院自主实验,学校课外科技立项等活动的开展。

XML课程的开设学时总共为32学时,其中实践上机为8学时,课堂教学为16学时。在这短短的32个学时里要将XML课程的三个层次知识点讲授给学生,采用传统的教学方法是不可能做到的。在采用新的教学方法后效果非常明显。学生主动学习的热情很高,课堂交互性高,学生对XML相关新知识涉及的范围越来越广,这同时对教师的要求也越来越高,教师需要及时掌握更多的XML相关技术知识。恰恰因为如此,才更能将XML技术的生命力赋予了XML课程同样的生命力。

注:本文得到国家自然科学基金项目(项目编号:60603087)和浙江省科技厅项目(项目编号:No. 2007C31006)资助。

XML、上帝和老子 篇10

XML是可扩展标记语言 (Extensible Markup Language, XML) , 用于标记电子文件使其具有结构性的标记语言, 可以用来标记数据、定义数据类型, 是一种允许用户对自己的标记语言进行定义的源语言。

2、XML的结构

XML的结构是描述和验证XML资料内容的文件, 因此XML的结构有验证XML内容和构建XML的作用。

在使用XML的结构构建XML时候, 可以通过XML的结构列出要编辑的XML的节点定义和属性定义, 从而可以通过动态生成的编辑界面输入节点和属性的信息编辑XML。

二、最简单的XML的结构定义

1、重新定义XML的结构

目前Schema是最常用的XML结构定义语言, 这里定义一个比Schema还要简单的XML的结构, 我们只定义XML的节点名和属性名的描述。

比如我们可以使用来定义XML的节点名, 使用来定义XML的属性名。

由于属性是属于节点的, Child子节点是属于Person节点的, 因此上面的XML的结构是:

使用这个方法定义的XML的结构还是一个XML, 这个XML的结构不能描述xxx这样的XML文档, 但不影响本文的结论。

这个定义XML的结构的方法和Schema的原理是相同的, 只是没有顺序、出现次数、元素类型等等限制内容。

2、结构的结构

使用2.1的XML结构的定义, 可以计算任意XML的结构的结构, 那么会发现它是唯一的。

即:

这是一个每层节点都相同的XML (见颜色块) , 它有无限层子节点。

要证明任意XML的结构的结构是唯一的, 可以用本文的XML的结构定义手工计算几个XML的结构, 只要两步迭代计算就可以找到元事物了。

3、元事物

我们称2.2发现的结构的结构为元事物, 即任意XML的结构的结构就是元事物。

三、事物和构建事物的过程

1、XML和事物

XML是一种标记语言, 使用XML可以表示任意事物。因此当我们说任意XML时, 也可以指任意事物。

因此元事物也就是任意事物的结构的结构。

2、从元事物构建任意事物的过程

(1) 定义事物的结构

元事物是任意事物的结构的结构, 因此常用于定义事物的结构。

(1) 使用元事物命名事物。

其含义是对事物 (thing) 的属性 (name) 赋值, 这是对事物命名, 如可以构建:

(2) 对事物的属性命名。

其含义对名为attribute的事物的属性 (name) 赋值, 则是命名属性, 比如:

(3) 定义子事物。

因为元事物是由无限层子节点的且每层子节点都相同, 因此可以使用子节点定义子事物。比如:

3、通过结构构建事物

和使用元事物构造结构事物相同, 使用一个事物的结构用同样的方法可以构造事物, 比如使用上面的结构可以构造:

此时是对Person和子事物Child的属性name和age赋值, 其实也可以看作是对name和age命名。

4、构建任意事物

使用上面的方法可以使用元事物直接或者间接的构建任意事物。从它是任意事物的结构的结构这一点可以说明。

四、元事物的性质

1、是任意事物的结构的结构

通过元事物可以直接或者间接的构建任意事物, 因此它可以比喻成是任意事物的创建者, 是创造世界的事物。

2、是自身的结构

元事物还是自身的结构, 因此可以通过元事物构造自己, 因此元事物是自己的父。

3、可以构造自己

元事物还是自身的结构, 因此可以通过元事物构造自己, 因此元事物也是自己的子。

五、元事物的上帝

从元事物的性质可以看出, 元事物的作用是构造万物, 是自己的父, 也是自己的子, 是不是像上帝的三个位格呢?

六、元事物和老子

老子说“无名世界之始, 有名万物之母”。

老子的这句话有很多种解释, 也可以解释成客观世界是早就存在的, 但对于我们来说, 万物有了名之后才存在我们的世界里 (或者语言世界里) 。

而元事物构造事物的方法就是对事物命名, 并且元事物可以直接或者间接的构造任意事物, 因此元事物和老子的“有名万物之母”字面上的意思是相同的。

七、元事物到底是什么?

元事物究竟是什么, 它是一个简单并且普通的事物, 居然和上帝以及老子都能扯上关系, 难道不好奇么?我认为元事物有可能和认知相关, 也有可能是结构主义寻找的终极结构。

摘要:XML、上帝和老子本来是很难联系到一起的事物, 但如果以最简单的方式定义XML的结构, 那么可以发现任意XML的结构的结构是唯一的。这个唯一的结构我们称它为元事物, 由于结构具有构造事物的功能, 因此它的性质就和上帝的性质相同了, 并且元事物构造方法就是对事物命名, 因此符合了老子的“有名万物之母”。

【XML开发】推荐阅读:

构件开发07-14

协同开发07-15

开发成果07-18

开发后期10-16

开发价值10-17

动画开发10-19

场地开发10-20

大力开发10-21

开发意见10-21

理性开发10-21

上一篇:竞争现状下一篇:篮球制度