[mental studio]猛禽[blog]
之前我一直是用delphi提供的xml data binding来做的,基本做法是:先用工具(如xmlspy)做好一个xml schema(xsd),然后用xml data binding生成delphi的接口与类.当然,一旦生成好就很方便了,在程序里我只要操作这个接口就好了,其中各个field都会被变成属性,并且类型也都如我在xsd中的定义.但问题在于程序在开发过程中,总是会有一些变化的,在这种情况下,我就不得不同时开着xmlspy修改xsd,然后重新用 xml data binding的wizard跑一遍,非常的麻烦. 【程序编程相关:delphi2005中文翻译 】
去年我花了很多时间尝试用delphi进行基于xml的web应用开发.起初的设想是很美好的,但结果做出来的东西很简陋.一部分原因就在于xml到object之间的数据绑定实现太麻烦(另一部分是因为对xslt不熟,学习它花了很多时间). 【推荐阅读:第3部分 编译文件(第8页) 】
所以当我想到数据集的对象化后,立即想到也可以用rtti来实现object的xml持久化--其实delphi6开始的soap实现就是用rtti来实现object到soap数据(就是xml)的转换的.显然我已经是非常的后知后觉了,当我在«强大的delphi rtti--兼谈需要了解多种开发语言»一文中说到我的打算时,朋友lex chow回复我说他在大约一年前就做过了这方面的工作,我当即跟他要来了他的源码.lexlib是他写的是一个有很多功能的库,看上去结构有点像.net 的基本类库(当然没那么大^o^),object的xml持久化只是其中的很小的一部分.因为我只需要这一部分,就没必要用这整个一个库这么麻烦,于是参考了lexlib并结合我在«用delphi的rtti实现数据集的简单对象化»中已经实现的部分,做了一个简单的实现:
... 下一页