XML Learning & JSON
JSON正在越来越收到欢迎. 那天在和cmsware的Hawking聊天的时候, Hawking就提到他在Ajax的时候越来越多的使用JSON, 因为无论是在Javascript还是在PHP中使用JSON都非常simple. 对此我非常认同, JSON既简单又极具扩展性. 特别是那种类似hash的access方式, 比起DOM来确实方便. 于是很多人提出用JSON替换XML在Ajax中的位置.
在我看来很多人不喜欢XML的原因在于XML的解析稍显复杂, 并因此认为XML不好用, 效率低. 比如很多人不喜欢用Spring是因为Spring的配置方式. 在我没用从事现在的开发工作前, 我对XML也挺发怵的, 觉得XML挺复杂的. 然而实质却是XML太简单了, 本质就是Element. 所以我现在的生活已经无法缺少XML了, 当然这也和我的工作有关.
个人认为学习并掌握所有XML的相关基础知识的时间不超过1个月. 而几个最基础的点在于XML, XML Schema(DTD就算了, 了解一下即可), XPath, XSLT. 并且这些基础点都可以同步进行, 互相促进. 而且由于Schema和XSLT本身就是XML, 所以学习起来相当简单. Schema些许难掌握的是ComplexType, 而XSLT的难点在于递归, 如果这些都掌握了. 那XML就是非常有力的武器, 在你的Application的各个方面.
JSON最具杀伤力的弱点在于没有Validation.
同时没有XML便于查询的优点, 并且没有XSL那样的转换技术. 所以本质上来说JSON仅是一种数据交换方式.


但是在 PHP 开发上大量使用 XML 也不合适, 这样意味每个页面都要解析一大堆 XML, 对性能是考验, 在设计上也很难把 XML 这一环表现出来.
我用接口代替 XML, 在表现层上用接口的实现类注入, 其实和 XSL 是一个道理, 但在设计上就方便得多, 一目了然.