惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

酷 壳 – CoolShell
酷 壳 – CoolShell
Microsoft Security Blog
Microsoft Security Blog
Recent Announcements
Recent Announcements
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Last Week in AI
Last Week in AI
罗磊的独立博客
腾讯CDC
云风的 BLOG
云风的 BLOG
月光博客
月光博客
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 三生石上(FineUI控件)
宝玉的分享
宝玉的分享
U
Unit 42
I
InfoQ
D
DataBreaches.Net
Blog — PlanetScale
Blog — PlanetScale
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
V
V2EX
美团技术团队
IT之家
IT之家
Stack Overflow Blog
Stack Overflow Blog
F
Fortinet All Blogs
GbyAI
GbyAI
S
SegmentFault 最新的问题

博客园 - Cavingdeep

用metaclass实现AOP风格的Profiler Singleton implementation using metaclass 初试IronPython与.NET的集成 Refactoring as a way to improve the existing design 用metaclass来实现AOP 不该用Generics实现Abstract Factory的理由 新兴XML处理方法VTD-XML介绍 Performance Tips I DCG 2.0.72 (Beta1) 发布了 NUnit发布2.2.3兼容.NET 2.0 RTM 如果你想拥有一个可嵌入式模板引擎…… 改进ASP语法打造更高效的模板语言II 改进ASP语法打造更高效的模板语言 Release of DbHelper 1.2.1 深入XML系列技术 DbHelper at Tigris SQLite系列 集合的初始容量与性能 DbHelper basic usage
XML的特征以及一些用途
Cavingdeep · 2005-11-08 · via 博客园 - Cavingdeep

XML绝对不仅仅是简单的一堆tag,你可以把它当作以下任何一种事物来看待:

  • 数据载体
  • 编程语言
  • 文档语言

以上是一部分XML适用的领域,但绝对不是全部。也许你会问,难道XML是变形金刚吗?怎么可以变成这么多种不同领域的东西来?是,XML就像一个训练有素的军人,用不同的武器武装就可以胜任不同的岗位,管它是陆军、海军还是空军。这是怎么回事呢?我这里所提到的武器,就是X系列的其他技术,如XSLT,XPath等,用它们来武装XML就可以达到胜任多个岗位的能力。请看以下图解:

XML的组合应用

看到了吧,XML的威力!这里再分别提一下目前这些XML技术的使用案例:

  • Ant, NAnt:以XML为语言形式,制作了基于target, task的任务编程语言。这里之所以选择XML而不是重新设计一种语言是为了降低编译器编写的成本。

  • SOAP:用XML为Web Service定制的一套通信协议,目前大多数XML Web Service都在使用。

  • 配置文件:目前大多数项目都选择XML作为自己的配置文件格式,可以看作是数据载体的一种。

  • 支持XML的数据库:这些数据库可以将XML作为一种特殊的字段类型,可以直接在这个字段中使用XPath、XQuery检索数据,使XML成为了一种类似于数据库的数据载体。

  • DocBook:它定制了多种schema,以XML作为文档载体,然后通过各种其他手段包括DOM、XSLT、XSL-FO等对XML文档进行格式化并最终展现。是一个将XML作为文档语言的案例。

其他案例还有很多,如果你还没有用到XML,那还等什么?难道说你真的不需要它吗?!请再考虑一遍!

为什么X系列这样流行呢?因为用它的好处很多,总结起来它有以下几大好处(从成本角度来看):

  • 时间的节省,X系列的所有理论伴有框架、工具等的支持,这些都是现成的,如果我采用XML,那么我立刻就可以拥有这些能力,包括XML的读取、书写,XML的格式验证(XSD),数据、结构的转换(通过XSLT),数据的检索(XPath)等等。如果不采用XML,那么这些我都需要自行实现。

  • 研发成本,如果一个方案不采用XML,那么自行实现的技术风险就要比采用XML的大(除非技术实力真的很强),因为XML本身是可以很好的扩展并且是有先例可以借鉴的,但自行实现就没有这些优势了。

  • 兼容性与扩展性,如果采用XML,会更方便的兼容第三方的解决方案,目前XML是一项被广泛采纳的标准,大多数组织都会选择在XML的基础上开发其他标准,如工作流的XPDL, Wf-XML,e-Commerce中的RosettaNet等。此外,你还可以通过XSLT在不同的标准间进行转换,能做到什么,就看你的想象力了。如果可以在对第三方的支持上有效快速的兼容、集成,那么无疑是对维护成本的一大笔节省。

最后再提一个XML的强项,也是比较有前途的应用,Mapping!XML结构上的高度灵活性与众多的辅助技术决定了它,也许是最好的mapping选择。我可以自由的在不同的数据源之间做映射,如下图所示:

Mapping with XML