Vector Format Comparisons

From Svg wiki

SVG is only one of several major vector graphics formats. Others include:

  • Macromedia Flash
  • Microsoft VML
  • Microsoft XAML
  • Postscript (including PDF)

Comparisons between these formats are inevitable. There is much misinformation (and disinformation) spread about each of these formats; this page will attempt to be as accurate as possible, in order to help the reader make an informed decision about which to use for any given purpose. Naturally, this wiki is focused on the benefits of SVG, so the advantages of SVG may receive more attention.

Open Format

Each of the technologies claims to be an open format in one way or another. SVG is arguably the most open. Each of the others has certain restrictions or encumbrances.

  • SVG is completely open to any implementation on any platform, and is available as a viewer in a wide variety of browsers, plug-ins, mobile devices, set-top boxes; there are also many authoring environments and utilities.
  • Flash has a published specification, but it has the following restriction on its use:
    Can I use the File Format Specification to create a SWF interpreter or player?
No, the File Format Specification is provided for the specific purpose of enabling software applications to export to the Macromedia Flash File Format (SWF).
Source: Macromedia File Format Specification FAQ
  • VML is an open format, but is only implemented in Microsoft's Internet Explorer. It is not a W3C Recommendation, but it is a W3C Note
  • XAML has a published specification, but Microsoft can impose restrictions on its use. More details will be provided as they are discovered.
  • Postscript and PDF are open formats; portions of the PDF format are standardized by the ISO. Most browsers have PDF viewing plugins; however, they are generally not suitable for 'inline' embedding.

Text-Based versus Binary

SVG and VML are both completely text-based, though SVG can be compressed. SWF (Flash) is a binary format, which can also be compressed. XAML source code is text-based, but it is compiled into a binary.