admin 管理员组文章数量: 1086019
2024年4月20日发(作者:第一个springmvc程序)
维普资讯
第10卷第3期
北京石油化工学院学报
Journal of Beijing Institute of
Petro・chemical Technology
Vo1.10 No.3
Sep.2002
2002年9月
基于网络新语言XML的数据库程序开发
余有明 孙慧瑜 张晓明
(北京石油化工学院自动化系,北京102617)
摘 要XML作为网络数据交换的标准,在同种数据或异种数据的互连和交换中,有着广泛的应
用前景和强大的功能。介绍了XML对数据库进行操作的技术以及用XML进行数据库应用程序的开发方法,
并与传统的开发方法进行了比较,实现了通过VB编程从C/S结构的C端把产品信息成功地提交到S端的数
据库。
关 键 词
中图法分类号
XML;数据库;Internet
TP306
1 XML标准简介
XML是eXtensible Markup Language(可扩展
台,可使用任意编程语言实现的方法。
(2)节点接口
XML Parser用来装载XML文档到缓存中,
文档装载时可以使用DOM进行检索和处理。 的标志语言)的缩写,是W3C组织于1998年2
月发布的标准,是解决异种数据互连的国际标
准,用于描述数据的内容,使数据的内容和表现
方式分离。
在国际互连网Intemet上,服务器与服务器
之间、服务器与浏览器之间有大量的数据需要
DOM采用树形结构表示XML文档,文档元素
是树的最高阶层,该元素有一个或多个子节点
用来表示树的分枝。
节点接口程序通常用来读和写XML节点
树中的个别元素,文档元素的子节点属性可以
用来构造个别元素节点。XML Parser用来证明
Web中的DOM支持遍历节点树的所有函数,并
可通过它们访问节点及其属性,插入删除节点,
转换节点树到XML中。
除了Load和LoadXML函数(正式的DOM
不包括标准函数Loading XML文档),所有Mi.
crosoft XML Parser函数得到W3C XML DOM的
交换。这些被交换的数据,都要求对数据内容
和表现方式有所说明,在这种背景下,XML应
运而生,担负起描述交换数据内容的作用。
在互连网世界里,如果都讲方言,互相交换
信息时都要进行翻译,将是一个难以沟通和交
流的世界。在互连网世界,XML之所以重要,
恰恰是由于它扮演了“国际语言”角色的缘故。
此外,XML还提供了定义各行各业的“专业术
语”的工具、标准llj。
以下是XML中的几个基本概念:
(1)文档对象模型(DOM)
DOM是XML文档的编程基础,它定义了处
正式推荐。
表1列出本文最后引用实例的节点类型。
表1舭
节点类型
处理指令(Processing
instruction)
节点类型
示 例
理执行文档的途径。编程者可以使用DOM增加
<?xml version=“1.0”en—
文档、定位文档结构、添加修改文档元素。W3C
的重要目标是利用DOM提供一个适用于多个平
台的编程接口。W3C DOM被设计成适合多个平
收稿日期:2002-o3-o1
coding=“gb2312”?>
<Root>…</Root>
根节点(Root Element)
元素(Element)
属性(Attribute)
原文( )
<Product ID=“10001”>
Test</Product>
D=“1000o1”
Test
维普资讯
第3期 余有明等.基于网络新语言XML的数据库程序开发 23
2 XML与网络数据库的操作
XML比HTML有许多优越性,具体而言,
XML文件比HTML文件易维护,XML比HTML
的每篇文章(article)有一个作者、一个文章名和
一
个可以缺省的发表年份。一个作者至少有一
(1)查询匹配的数据
个办公室等等。
表现力更灵活等。这些优点使XML在电子商
务和网络数据库的应用中显示了强大的优势。
用以下语句可以检索出出版商是“Addison
Wesley”的书的作者:
Select¥book.Author from bib.Uri“www.a.
b.c/bib.xml’’
在电子商务中,大量的信息要通过数据库
存储和交换。由于XML数据文件可以象数据
库文件或表单一样很好地表达数据项之间的关
系和数据项的内容。而且,W3C又提出了XML
—
Book 8 bib.Book
where 8 book.publisher.1laine=“Addison
Wesley’’
QL语言来实现XML数据的搜索与整理。
XML—QL是一种类似结构化数据库查询语言
(SQL)的语言,下面通过几个例子来展示它与
SQL功能上的类似。
这是一个关于书的例子,先定义一个数据
库的规格或DTD,如图1所示。
同标准SQL语句的比较:
Select book.Author from book
Where book.Publisher=“Addison Weslev”
(2)多个数据项的组合查询
下列检索语句可以列出出版商是“Addison
Wesley”的书的作者和书名
Select result<¥book.Author。¥book.Title
>
Database Server
from bib.Uri“www.a.b.c/bib.xml’’book
¥bib.Book
Update
Where 8 book.publisher.nalil_e=“Addison
Wesley”
和标准sQL的比较:
select book.au[hor,book.title from book
Where book.Publisher=“Addison Wesley’’
XML Enabled Browser
(3)分组查询
以下查询可以根据出版商来列出书名
select result<¥book.publisher.nali_le.
¥book.title>
from bib Uri“www.abe.a.b.c/bibxml”.
.
图1 XML更新数据库并产生动态网页的全过程
<!ELEMENT book(author+,title,pub-
lisher>
<!ARRI,IST book year CDATA>
book 8 bib.book
where 8 book.au[hor.1astname=”Wang”
<!ELEMENT article(author。title。year?>
<!ARRI,IST article type CDATA>
group by¥book.publisher.nalil_e
<!ELEMENT publisher(nalTle,address)>
<!ELEMENT author(firstname?,lastname。
otiqee+)>
和SQL的比较:
select book.publisher.nd ̄rl-le,book.title from
book
where book.aUthor.1astnan ̄=“Wang”
group by book.publisher.ha/he
<!ELEMENT office(CDATA lJ long ogiee)
>
<!ELEMENT long office(building,room)
>
(4)排序查询
下面的例子可以对XML数据文件进行排
序:
select result<¥book.publisher.nd ̄rl-le.
¥book.title>
<!ELEMENT watch(naine。brand)>
在这个文件里规定了一本书(book)至少有
一
个作者、一个书名和一个出版商。规定书中
维普资讯
24 北京石油化工学院学报 2002年第lO卷
from bib Uri“www.a.b.e/bib.xml”.book
¥bib.book
where¥book.author.1astname=“Wang”
order by¥book.publisher.name
和传统的SQL比较:
eslect book.publisher.name,book.title from
book
where book.author.1astname=“Wang’’
order by book.publisher.name
当然XML—QL还有嵌套查询等其它SQL
的功能,这里不再一一赘述。可以说,XML与
XQL的出现无疑为网络数据库的应用揭开了新
的篇章。近期内,ORACLE已推出了与XML匹
配的数据库新版本。笔者认为,XML和XQL有
可能在今后的发展中取代传统的数据库,从而
为网络数据的传输提供更新、更好、更方便、更
快捷的传输机制。
用XML进行数据库操作不需要特殊的数
据库软件,它是以文本形式进行数据传输,可以
缩短传输时间,容易形成统一的标准,容易实现
跨操作系统的文件传输l2j。
3利用 进行数据库程序开发
在传统的数据库开发模式中(见图2),
Client端要和Sever端进行数据通信,要直接对
服务器Sever上的数据库Database进行读写操
作。程序员必须获得数据库的操作权(比如口
令),就有可能造成口令外漏,这样就存在一定
的安全隐患。另外,如果要进行Sever问的数据
交换(可能不同Sever间操作平台不同或使用的
Database不同),要针对各个异种数据源编写特
定的接口程序。程序的可扩展性、灵活性受到
很大限制【 。
筹 区
Client直接t
到Sever的j
Datbaase进1
行读写操作l
IClient 1
_一
图2传统的数据库开发模式
XML标准是国际通用标准,它适用于各种
操作平台和数据库平台,不同Sever间数据交换
不用再编写特定的接口程序,只要位于不同
eSver上的Database之间定义各自的XML数据
标准就能实现数据互连。同样,Client端要与
eSver端进行数据通信,也可依据Sever上的
Database的XML标准,通过向Sever传送XM1
文件或XML流,在Sever用XML Parser解析
XML文件或XML流对数据库进行操作,见图
3。这样,程序的安全性、灵活性、可扩展性都得
到了很大地提高。这是传统的数据库开发模式
所不能比拟的优势。
区
f Client与sever十
间通过XMI
文件或XML
流对Database
J进行读写操作
IClient 1
图3基于XML的数据库开发模式
以下的实例是用VB6.0开发的Client/Sever
程序,Sever端用的Datbaase是SQL Sever7.0,
XML Parser用的是Microsoft XML3.0即MSXML,
完成的功能是Client提交产品信息到Sever端
入数据库。实例只是部分程序,主要是说明如
何通过Microsoft XML3.0在Client端生成DOM
树,在Sever端解析DOM树l 。
3.1 Client端程序
Dim xadDOC As New MS= L.DOMDocument
’创建XML的DOM对象
Dim xmlRoot As MS= ML.IXMIJ)0MElement
’定义XML的ELEMENT变量
Dim ProductCount as integer’定义Product
Count变量,记录添加的产品数
Private Sub Form
—
Load()
ProduetCount=1’初始化变量ProduetCount
Product(0).Enabled=False
Product(0).Text=ProduetCount
eSt xmlRoot=xmlDoc.createElement(‘‘Root”)
’创建名为Root的ELEMENT对象
XmlDoc.appendChild xmlRoot’把创建的
ELEMENT对象置于DOM的根节点
End Sub
Private Sub save
—
Click()
Dim xmlProduct as MS= L.IXMLDOM Ele—
ment
Dim xmlProducthem As MSXMI .IXMI D0M
维普资讯
第3期
Element
余有明等.基于网络新语言XML的数据库程序开发 25
et xmlProduct:xmlRoot.getElementBy Tag— S
xmlDoc. createElement Set xmlProduct=
Name(“Product”).Item(i)
etS xmlProducthem=xmlProduct.getElement
(“Product”)’创建名为Product的ELEMENT对
象
xmlProduct.setAttribute“ProductlD”,CStr
ByTagName(“Product Name”).Item(0)
ProductName=xmlProducthem.getAttribute
(ProductCount)
xmlRoot.appendChild xmlProduct
etS xmlProductltem=xmlDoc.createElement
(“value”) ’得到Client的XML数据后,经过
Parser解析后,得到分离的产品元素,最后通过
ADO/RDO把产品信息写入数据库。
Next 1
(“ProductName”)
etAttribute“value”.Trim
xmlProductltem
S
(Product(1).Text)
xml Product.appendChild xmlProducthem
et xmlSProducthem=Nothing
et xmlProduct=NothiSng
et xmlRoot=NotShing
ProductCount=ProductCount+1’产品内部
标号加1
Product(0).Text=ProductCount
End Sub
et xmlDoc=NotShing
End Sub
4 总结
通过介绍XML的标准,举例阐述XML对
3.2 Sever端程序
Private Sub winSockReceiver
DataArrival(In—
网络数据库的操作能力,并利用XML进行了数
据库程序的实例开发,可以看出,XML在数据
尤其是异种数据的互连和交换中,有着广泛的
应用前景和强大的功能。在不久的将来,应用
dex As Integer,ByValbytesTotal As Long)
Dim xmlDoc As New DOMDocument
Dim xmlRoot
Dim xmlProduct
Dim xm]Productltem
Dim getStr As String
Dim ProductName
于Intemet的软件和传统的软件都会支持XML
标准。
参考文献
1瞿裕忠等.XML语言及相关技术综述[J].计算机工
程,2OOO(12):4~6。
2
winSockReceiver(Index).GetData getStr,vb—
String
xmlDom.1oadXML(xmlStr) ’根据变量
xmlStr载入DOM树
etS xmlRoot=xmlDom.documentElement
Elliofle Rusty Harold.XML实用教程[M].北京:机械
工业出版社,1999
’获得根节点xmlRoot
For i=0 to xmlRoot.childNodes.1ength—l
3
Natanya Pitts.XML轻松进阶[M].第二版.北京:电
子工业出版社,2000
4
罗靖华.XML超媒体与网络应用指南[M].北京:清
华大学出版社,1996.298~362
’循环读入产品信息
Database Programming Based on a New Network Language XML
Yu Youming Sun Huiyu Zhang Xiaoming
(Department ofAutomation, ,lg Institute ofPetro—chemical Technology,8e ̄ing 102617)
Abstract As an international network data exchange standard,XML has a wide application foreground and
powerful functions in the connection and exchange of homogeneous or heterogeneous data. In this paper,how
维普资讯
北京石油化工学院学报 2002年第10卷
to use XML to operate database and to develop database application is introduced,and the developing method
is compared with the traditional one.Data information is successfully transmitted from C to S based on C/S
network structure database by programming.
Key words XML;database;intemet
、L ‘ 0 ^'= ^●= ^●= ^●: ^ : d‘: ^●: ^●: L 0 c ^●: ^':、 。0^ = ^ ^ : c■d0: ^ : ^
环境工程专业
环境与生态是本世纪人类面I临的最重要问题之一,环境与生态的好坏将直接影响人类社会的
生存与可持续发展。因此,环境工程是本世纪重点发展的研究和技术领域,其中的环保设备产业具
有广阔的发展前景和良好的就业市场。
业务培养目标:本专业培养德、智、体全面发展,知识、能力、素质协调发展,能分析和解决问题,
适应社会需要,胜任环境工程领域的各项工作,能在各种企事业部门从事与环保产业相关的规划、
设计、施工、管理、教学和科研等方面工作的环境工程学科高级技术人才。业务培养要求:本专业学
生应掌握空气、水、噪声、固体废弃物等污染的控制和治理技术,具有对污染控制、清洁生产、资源综
合利用、人工环境等设备进行设计制造、安装运行以及维护管理的能力。
毕业生应获得以下几方面的知识和能力:
(1)具有较扎实的自然科学基础,较好的人文、艺术和社会科学基础及正确应用本国语言、文字
进行表达的能力;
(2)掌握现代基础化学、工程制图、工程力学、流体力学、电工及电子技术、环境工程学科以及机
械学科的基本理论、基本知识;
(3)掌握水/大气/固体废弃物/噪声污染控制工程、清洁生产、资源综合利用、人工环境等方面
的基本原理和相应设备技术,了解其科学前沿动态及发展趋势;
(4)具有环境分析与监测、环境规划与评价、实施HSE管理体系的初步能力;
(5)获得本专业领域的工程实践训练,具有较强的计算机和外语应用能力;
(6)掌握文献检索、资料查询的基本方法,具有初步的科学研究和实际工作能力。
主干学科:环境科学与工程、机械工程。
主要课程:现代基础化学、高级语言程序设计、工程力学、流体力学、仪器分析、工程制图、机械
设计、电工及电子技术、现代机械设计方法、环境分析与监测、环境工程学、环保设备原理设计与应
用、环保过程仪器仪表、环境评价与规划、人工环境与设备。
主要实践性教学环节:工程制图、金工实习、认识实习、生产实习、计算机应用、机械原理与设计
课程设计、给排水管道工程课程设计、水处理工程课程设计、毕业设计(论文)等。
主要专业实验:流体力学实验、水处理实验、环境监测实验等。
授予学位:工学学士。
(本院招生办提供)
版权声明:本文标题:基于网络新语言XML的数据库程序开发 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1713573263a641408.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论