能否告訴我 你們都怎麼應用XML?(200分)

  • 主题发起人 主题发起人 bananafish
  • 开始时间 开始时间
B

bananafish

Unregistered / Unconfirmed
GUEST, unregistred user!
最近,我一直問自己xml有什麼好處,為何要用它,它跟message set 又有何差別?
例如,如果tag 名稱亂取,XYZ表示身分ID<XYZ>your's ID</XYZ>.這實在跟這樣一串message
...^XYZ=your's ID^...沒什麼差異.除了tag 具有的自我解釋內容能力跟處理複雜datastructure
外,它到底還有什麼好處?喔,我朋友跟我說另一好處是現在大家都在談它.好像不談它就落伍.
我曾用SOAP結合VC,VB,delphi做了兩三個還算賺錢的專案,我不是不了解它.
只是如果要向老闆說服以後run在半導體廠內的資料流都用xml,老闆就會提出疑問
這東西跟message set(自訂protocol)有何差異,很少人會把message set定到自己都看不懂.
再者,老實講,就算有xml schemas,小程式例如算算圓面積,一般只要做的專案夠大,整合的系統
夠多,訂訂xml schemas就可解決?哪一次不需要雙方坐下來談,丟xml schemas給他,他就知道怎
麼送message了?少唬人了.這跟你坐下來跟他解釋你的message set有何差異?
自己都無法說服自己,又如何去說服別人?
跟message set 差不了多少,那為何花時間去學它?
你們可以給我信心讓我去說服我老闆或客戶嗎?各位十方大德
你們如何應用XML?
 
我感觉:
1. xml 好学, 所以不用担心会花很多时间.

2. 解析 xml 的方法是现成和标准的.以您的例子为例:
如果是 XYZ=your's ID, 则必须写上一段字符串(string)解析程序(程式)
如果是<XYZ>your's ID</XYZ>, 则可以用 XPath, 统统可用 selectSingleNode.

3. XML Paser 通过定义 DTD, schemas 具有一定监测错误的功能, 比如 not null 规则,
您的 XYZ=your's ID 解析程序还得加上一些语句处理 XYZ=

4. 通过 XSLT 可以把 xml 变成 text, html, pdf ... 或者其他 xml 输出.
而如果直接解析 message set 以后, 则还要写一大堆的输出模块.

如果您的应用(專案)能利用到这些好处, 就可以考虑使用 xml.

当然对不同应用场景, 具体情况需要具体分析.
有些应用也许可能是 UDP 传二进制数据包更好.
 
我现在用XML文件代替ini文件和注册表保存配置信息,特别是用来代替
同是树形结构的注册表再好不过了!!
 
hehe
XML最得意的是:在若干年后,只要懂现在的语言,就能够懂数据表示的是什么意思!


 
XML主要用于不同应用程序间互相传递数据,而不是用来写狐狸花哨的WEB界面的。我常用它来
描述数据,特别是用于SOCKET。
你用过就知道,XML用来描述数据,特别是数据查询结果集,非常的方便。假如你用
的是自定义的包格式,那可能是十分复杂的,一旦你的数据量大,类型又多又复杂,那样
的数据包将会变得极难维护,不但自己看起来累,要是拿给别人看,也会把人家累死。:)
我们以前描述数据集是这样描述的:

#6数据集#5#4字段一#4字段二#4....#5 #5#4字段一#4字段二#4....#5 .......#6
第一条记录 第二条记录

够累吧,要是在加上其他数据,如验证、加密、附加信息@#^@^&#*@&*# :)

而且,自定义的数据包比较难维护,一旦格式要改,很可能导致整个打包、解包的方法也要
更改,增加了维护难度。燃而XML是统一的标准(如DOM),不管你数据如何更改,打包、解包
的方法改动量是极小,甚至更本不用改。而且,根本不用考虑如果数据在不同语言、不同平台
里流动会不会出现不兼容的情况。
举个例子:
如果你有个数据包,可能会穿过多个SERVER,每个SERVE都可能对这个包进行各种增加、删除、
修改,而这个包是从NT的VB程序发出,中间穿过各种WINDOWS、UNIX、LINUX的机器,最后到达
一个UNIX的JAVA程序上去,如果你用自定义的MESSAGE的话,这个过程就够你受的了,就算中间
数据正常传送了,其中加、减了这么多数据,你能保证你最后的解包程序能正确地解出来吗?也许能,
在你掉了10几斤肉后就有可能。 :) 而且这样的程序是没法维护的。但是使用XML就不存在任何上述问题。
因为它和平台、语言都无关,而且是基于世界统一的标准构件的。
 
昨晚刚用日志文件恢复了一部分的数据,
突然发现,如果当时是用XML格式写这些日志的话,
现在解析起来就不会这么累了。。。:)
亡羊补牢,为时未晚。。。。。。
 
xml是容易看了,容易写了,但是我觉得它太罗嗦了....
看看这个例子
<student><name>xxx</name><age>18</age><result>98</result></student>
其中的标记大大多于其中的信息
在socket传输中,如果我本来的数据量为2Mb,如果我自定协议,应该我就只用2m多一点就搞定了
如果用xml,似乎不止4m,xml太奢侈了。
其树形表达也还过得去,不过不知大家看过TTreelist的保存文件数据结构么?
形如:
学生1
姓名:xxx
年级:18
成绩:98
学生2
.....
只要改动一点点,同样比xml占用空间小得多。
我个人意见:数据传输,储存中最好还是用自己的协议。只需要数据发布的地方设置xml输出,方便与其它软件传送数据就行了
 
对个人程序或许可以,但是,如果想在程序中留有接口给别人扩充,就可以用xml的方式了。
先说前台,用<right><left>sex.bmp</left></right>这样的方式来定义软件的skin,应该比“右上”要方便一些吧?
如果skin的切图复杂,相信结构良好的xml更容易看一些。
再说后台。。。如果您开发了一个存储。。。恩,什么呢?就学生资料的吧??如果我也想把自己的一部分数据(原来用的其他程序)
导入到您这个程序的数据库中去。首先,如果您是用xml作为中间导入,那么,我可以很快看懂,很方便的把自己的数据转化为xml
来进行。否则的话,大概要麻烦一些。。。这只是小型应用场合,越大的地方越是这样好。。
规范的必要性。。
 
后退
顶部