xml给我们带来了什么?我们是为了使用xml而使用xml吗?
椅子 2004-06-15 03:01:17 我是跳跃性思维,请大家见谅。
1。xml能代替html吗?
这个问题在各论坛上均可见,甚至不只一个人这么问。
能代替吗?如果让用户将xml文件直接在浏览器打开,场面是不容想像的,我们得用到xsl,将xml转换成html是能让用户接受的事情。一个复杂的主页,如www.sina.com.cn你要将其硬改成xml和xsl,我想不仅网页编辑叫苦,还没有显示出任何的优势;另外如下列代码常常在xsl中出现:<xsl:template match=”/para”><tr><td><xsl:apply-templates/></td></tr></xsl:template>,注意其中的<tr><td>那可是html标记。
好了,xml不能代替html,他的诞生也不是为了替代html
2.Xml在web中的应用到底有多大的范围?
我尝试了两次大规模的在项目中使用xml。
第一次的做法是:用dom替代了recordset,翻页、查询的速度是令人想像不到的快,因为数据都在dom里,也就是说缓存在本地,对其操作速度快也很正常,问题也出在这里,超过3000条数据,(网络环境10mb局域网),客户端等待的时间已经超出指标,所以此办法只能适用于数据库记录少的情况。同样是这次,我用xmlhttp来代替post,执行数据库的添加、删除、修改功能,由于是异步的,客户端还是一个字:快。由于是明码,为了保护我的数据库字段名和表名,我专门设计一个函数来加密和解密,真是晕死。
另外值得提出的一点是:因为有了dom,我才能用jscript实现了网页中编辑报表的功能(输入数据,实时计算如同excel,等等)
第二次的做法是:用dom来替代recordset,不过是单条记录的,比如网站上的新闻系统,通过dom直接生成xml文件保存在服务器物理硬盘上,再通过xsl来转换,这样的做法对用模版来生成静态html的方法是高级了一点,和用服务器端脚本来动态生成页面比较呢,访问速度快多了。同样是这次,由于web服务器和db服务器的安全性考虑,我希望能从db 向 www 单向提供数据,于是仔细阅读了mssql中的xml和internet支持,由于与我的目标不符合,所以我没有继续深入。今天看到关于这个的帖子,我又去看了一遍联机帮助,还是没有找到说服我在下一个网站上部署他的理由。
上面提到的两次开发中,服务器端脚本分别是asp、jsp,客户端脚本是jscript。当然两者用到的dom可就不是一个东西了,方法、属性大部分相同。
3.xml在数据库的应用
说到这里,就不得不说到oa,做过oa的人(非二次开发)对流程是最有体会的,程序里定义死,会产生大量的后期修改工作,当 国的做法就是换一个领导换一个工作流程,自定义流程里有用jscript做的,代码繁杂,不容易阿,更常见的是notes和exchange的工作流,这两个东西贵是出了名的,大中企业才上。Oracle9i推出的xml字段让我兴奋了几个月,因为在sql语句中可以用xpath查询阿!!!
用jscript做自定义流程的可能使用过xml,xml这种无拘无束的子节点就是非线性流程最佳体现嘛。流程作为一个xml被放入到记录中了,用sql语句很轻易查询出流程执行到哪一步,该谁做,做什么,现在做oa可真是不需要workflow了,用关系数据库就可以了。Oracle也不低廉,大家等其他关系数据库相继推出吧。
我用vb、ado、xml来实现了不同数据库记录的迁移,说起来很简单,ado的recordset对象的save方法就生成了xml,用stream对象和recordset对象结合,可以将xml保存到数据库中,中间唯一要做的就是不同数据库数据类型的转换,这个太简单了,用recordset的save方法生成xml的时候,数据类型就包含在表所在子节点的属性中,把不同数据库分别建一个表,表中再建包含所有字段类型的字段,很容易就得到db到ado不同数据类型的对应表,db1到db2的数据类型对应表也就不难取得了。
4.xml在其他方面的应用
我就不多说了,office2000的另存为html给我的感觉就是html内嵌xml,他给我们带来的就是在程序中生成word文档(带表格、表头)而不需要模版
还有就是通过不同的xsl-fo,我们可以把xml转换成pdf,flash等等。