QUOTE:
最初由 keecon 发布
老师 你哪儿去了
我在家里。
琢磨怎么活下去呢
---------------------------------------------------------------------------------------------------------
其实数年前已经不建议使用DTD了吧。而是推荐XML schema。
XSL是转换XML文档用的。
其实XML主要的用途就是分离数据和使用数据的应用程序。专注于对数据本身的描述,不涉及数据如何使用的信息,如表示格式的说明。文件本身的格式是自说明的。于是XML数据文件就很通用,各种语言都可以实现其PARSER。跨平台加标准的PARSER,相当适合平台/应用间交换数据之用。过去我们搞过EDI,用UN/EDIFACT标准,还有部颁平面文件标准。后来一看XML就感觉这个东西的妙处了。
通用性都是通过在体系结构中加入额外的处理层,比如通过把数据和使用数据的应用程序分离开来,来达到的。XML正是处在这样一个额外的层上。这样带来直接的一个后果就是消耗额外的时间/空间消耗。因此XML不适合应用在对性能要求非常高的环境。PARSER的处理,内存的分配和垃圾处理等等,都会影响系统的性能。
另外XML设计就是纯文本文件。二进制文件当然可以通过编码做成XML文件,自然需要解码处理。
XML对标准要求非常严格。因为这个东西是设计用来交换数据用的,因此不能象HTML那样允许应用程序做扩展,或者允许各自决定错误处理方式。一个出错的HTML页面,IE和NETSCAPE还可以自行纠正格式并且展示出什么来,XML这是绝对不可以的。一旦XML文件里格式有错误,绝不可以让应用程序来决定如何纠错。因为这个文件本身,包括里面的数据,已经不可靠了。所以正常情况下,用XML的时候,不要自己去动手写PARSER。因为很容易在自己的PARSER里违反SPECIFICATION的规定,带来生成/读入错误XML数据文件的风险。使用JAVA的人一般都用API了,很多使用C/C++的人,都乐意自己去写XML的PARSER。这样相当危险,除非通读并完全遵循SPECIFICATION。