Understanding the design criteria for SVF helps in understanding how the format
works, how it can be used, and how it relates to other vector formats.
Contains hyperlinks, is compact and streamable.
- Simple to write
Most information is optional. An SVF file could consist of nothing but
the intro string and a line.
- Simple to read
Single way to encode most information. Limited set of commands.
- Simple to display
It should be easy to build a low-overhead viewer that completely supports SVF.
While it should be restricted to a small set of features for simplicity,
it should also be complete enough to accurately represent such common vector
drawings as maps, flowcharts, and CAD (e.g. AutoCAD and MicroStation).
Accomplished using variable precision
and current state.
Accomplished through custom user data,
embedded objects with arbitrary
MIME types, and the
Extension command for encapsulating future SVF commands.
A viewer shouldn't have to make an initial pass through the file to figure out
details necessary for display or translation. Information can be used as soon
as it's read - it doesn't depend on anything after it in the file.
Accomplished through extents and other
information being specified in the header.
Should be machine and operating system independent.
For example, the font table can specify alternate
information for systems without the desired font.
All strings are stored in Unicode.
- Representational not Structural
For simplicity, SVF is intended to be a simple graphical representation.
It doesn't contain detailed organizational information.
- Database links
Through object ids, objects and groups of objects
can be tied back to the original drawing or database.
SVF/XML Design Criteria
- Contains same information as binary version
Must be able to easily translate between the XML and binary versions of SVF.
Information can be used as soon as it's read - it doesn't depend on anything
after it in the file.
- Follows XML standards and recommendations
Must be human readable and writable. Must be able to work with other XML standards.
- Simple to embed in other XML documents
Very little markup is required for minimal SVF information.
SVF2 Design Criteria
- Backward Compatibility
All SVF1.1 files should automatically be valid SVF2.
New commands should follow same general rules as SVF1.1.
- More complete
SVF1.1 supported a reasonable subset of vector descriptions.
Based on feedback from many companies and individuals, SVF2 was
designed to more completely represent a wide range of vector information.