XML模式:FIXML和SVG

FIXML
FIX 是众多企业间数据交换格式之一,用于在商业活动中交换信息。此类交换信息通常很重要,比如交易支付数据、股票价格和商业信息的交换。
这些需要传输的信息有时候是非常小的包,有时候又是大段的数据。此类信息交换的传统格式是键/值对,这种形式的信息交换效率非常低。使用 XML 可以简化传递的数据结构,尤其是复杂的数据。
在基于 XML 的优化版本中,开发人员设法压缩了数据文件的大小,同时使数据更易于阅读。股票数据被压缩到了旧格式的四分之一大小。
除了典型的商业应用外,FIXML 不适合用于其他领域。但如果使用 FIXML 可以提高商业效率,结果是每个人都会受益。SVG
可缩放向量图形(SVG)是一种描述绘图的 XML 标准。使用 SVG 可以描述线条、形状、位置及其之间的关系。最有吸引力的是这些信息可以输出为需要的格式,包括可缩放的图形和固定的图片。
SVG 解决了传统绘图过程中的一些重要问题。一般是使用专门的绘图程序完成的。在不同程序之间共享信息和绘图一般来说非常困难。保存为 SVG 意味着任何支持 SVG 的应用程序都能读取和处理这些文件。
绘图的另一个问题是,将它输出为最常用的(尤其是 Web 上)格式时,必须在显示或者结合到其他文档前翻译为位图格式(比如 JPEG 或 PNG)。这种传统的方法存在一些问题。首先,原始绘图必须明确(通常是手工)导出为位图格式。
其次,由于位图格式以原始绘图的逐像素表示为基础,为保证图像的质量必须小心选择和输出目标匹配的尺寸和分辨率。比如,屏幕显示的分辨率需要 72dpi(或 96dpi)以便和多数监视器的标准分辨率匹配。打印输出则需要 300 到 2400 DPI。因此和原始文件相比生成的图像文件可能非常大。
虽然在 PostScript 和 Encapsulated PostScript 之前已经存在基于向量的格式,但是对 CPU 的要求非常高,不适合屏幕显示。
和其他任何向量图像格式一样,SVG 也采用各种形状的列表来描述图像内容,而不是生成像素表示。比如矩形只需要给出左上角作为起点,再加上两条边的长度就行了。图像的描述用 XML 表示。标签包括直线、矩形、多边形、圆等等,可以控制这些元素的样式和格式。
清单 9 给出了一个例子。这里绘制了一个矩形、一个透明的圆和一个三角形。
清单 9. 简单的图形

<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN""http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg width="100%" height="100%" version="1.1"xmlns="http://www.w3.org/2000/svg"><polygonpoints="200,100 300,200 150,250"style="fill:#cccccc;stroke:#000000;stroke-width:1"/><rect x="20" y="20" width="250" height="250"style="fill:blue;stroke:black;stroke-width:1;fill-opacity:0.1;stroke-opacity:0.9"/><circle cx="100" cy="50" r="40" stroke="red"fill="red" style="fill-opacity:0.5"/></svg> 

图 1 显示了生成图像的位图。
图 1. 图像的位图版本
 

SVG 格式描述图像的文件只有 500 多字节,PNG 接近 9 KB。
SVG 使绘图变得更小、更容易使用以及更容易兼容不同的应用程序。