10.2.2 频道定义格式CDF
   

前一小节介绍的是Netscape推出的技术,事实上,在XML的应用上,IE也不甘落后。在Internet Explorer 4.0及其以后的版本中,Microsoft推出了“频道”(Channel)的概念,用户可以通过订阅频道实现站点更新内容的自动获取。在频道定义中所使用的格式CDF(Channel Definition Fomat),也是一个XML应用。

使用过IE的人可能都知道,频道使Web站点能自动通知读者重要信息的变化,这种技术称为“Web广播”(Web Casting)或“推送”(push)。可能Microsoft早期希望将CDF发展成为一个标准,因此在CDF推出初期将其提交给了W3C,但W3C对CDF显然不够热心,自从1997年3月9日提交后,W3C一直没有正式承认接收该规范,而且估计以后也不会采取进一步的动作。因此Micosoft在以后的CDF版本更新都没有公布其完整文档。现在唯一支持CDF的浏览器就是Internet Explorer(4.0以上版本),其他的浏览器都不支持而且似乎也不准备支持CDF。

CDF文件是一个定义了读者和站点内容的连接参数的XML文件,它与站点上的HTML文件分开,但链接到某个或某几个HTML文件上。浏览器根据定义的参数决定新内容传递的方式,包括:

  • 将频道添加到频道栏并且订户可以随时检查;
  • 新内容通过电子邮件通知订户,订户可以随时加载频道;
  • 浏览器定期检查站点并自动更新和下载改变的内容。

CDF文件是站点的附加物,通常将定义好的CDF文件链接在站点的主页,比如可以在主页中插入如下链接:

<A HREF="website.cdf">订阅该站点</A>

如果用户使用的是支持CDF的浏览器,可以点击这个链接订阅该频道。否则将下载这个CDF文件。

CDF实际上是Micosoft用XML定义的一个词汇表。下面是Internet Explorer自带的一个简单的CDF文件,本例并没有包括所有的CDF元素,只是希望通过这个例子说明CDF和XML的关系。

<?XML VERSION="1.0" ENCODING="gb2312"?>
<CHANNEL HREF="http://www.zdnet.com.cn/channel/welcome.htm">
  <ABSTRACT>最丰富的电脑业界信息,成功源自您的信任。</ABSTRACT>
</CHANNEL>

其中第一行是XML声明。第二行是CDF文件的根元素CHANEL,它是CDF文件唯一要求的元素,根元素CHANEL必须包含一个HREF属性以指定监视修改的页面。第三行是ABSTRACT元素,其内容是描述频道的文本,该描述通常出现在频道栏的工具提示窗口。

关于CDF词汇表的其他元素,本节不再做详细介绍。一方面原因在于CDF并没有获得业界的广泛支持,另一方面在于Microsoft没有公布当前版本CDF的完整DTD。而且Microsoft提供了一个软件CDF Generator(http://msdn.microsoft.com/downloads/tools/3rdparty/423.asp),可以利用它生成自己站点的CDF文件,根本无需了解CDF的内部细节,下图是CDF Generator运行时的主界面。

如果你确实希望了解CDF的内部细节,可以在http://www.w3.og/TR/Note-CDFSubmit.html处获取早期的CDF定义文档,但这是一个过时的文档,与CDF的当前版本有一定差距。当前版本的CDF定义可以参见MSDN文档(Microsoft Develop Network)和Microsoft的站点(http://www.microsoft.com/)。