This appendix is normative.
Different sets of SVG conformance criteria exist for:
An SVG document fragment is a Conforming SVG Document Fragment if it adheres to the specification described in this document (Scalable Vector Graphics (SVG) Specification) including SVG's DTD (see Document Type Definition) and also:
<?xml...?>statement is included at the top of the document, and if an appropriate
<!DOCTYPE svg ... >statement which points to the SVG DTD is included immediately thereafter, the result is a valid XML document.
The SVG language or these conformance criteria provide no designated size limits on any aspect of SVG content. There are no maximum values on the number of elements, the amount of character data, or the number of characters in attribute values.
A file is a Conforming SVG Stand-Alone File if:
SVG document fragments can be included within parent XML documents using the XML namespace facilities described in Namespaces in XML.
An SVG document fragment that is included within a parent XML document is a Conforming Included SVG Document Fragment if the SVG document fragment, when taken out of the parent XML document, conforms to the SVG Document Type Definitions (DTD).
In particular, note that individual elements from the SVG namespace cannot be used by themselves. Thus, the SVG part of the following document is not conforming:
<?xml version="1.0" standalone="no"?> <!DOCTYPE SomeParentXMLGrammar PUBLIC "-//SomeParent" "http://SomeParentXMLGrammar.dtd"> <ParentXML> <!-- Elements from ParentXML go here --> <!-- The following is not conforming --> <z:rect xmlns:z="http://www.w3.org/2000/svg-20000303-stylable" x="0" y="0" width="10" height="10" /> <!-- More elements from ParentXML go here --> </ParentXML>
Instead, for the SVG part to become a Conforming Included SVG Document Fragment, the file could be modified as follows (the example below shows the use of Stylable SVG):
<?xml version="1.0" standalone="no"?> <!DOCTYPE SomeParentXMLGrammar PUBLIC "-//SomeParent" "http://SomeParentXMLGrammar.dtd"> <ParentXML> <!-- Elements from ParentXML go here --> <!-- The following is conforming --> <z:svg xmlns:z="http://www.w3.org/2000/svg-20000303-stylable" width="100px" height="100px" > <z:rect x="0" y="0" width="10" height="10" /> </z:svg> <!-- More elements from ParentXML go here --> </ParentXML>
A Conforming SVG Generator is a program which:
Additionally, an authoring tool which is a Conforming SVG Generator conforms to all of the Priority 1 accessibility guidelines from the document "Authoring Tool Accessibility Guidelines 1.0" [ATAG] that are relevant to generators of SVG content. (Priorities 2 and 3 are encouraged but not required for conformance).
SVG generators are encouraged to follow W3C developments in the area of internationalization. Of particular interest is the W3C Character Model and the concept of Webwide Early Uniform Normalization, which promises to enhance the interchangability of Unicode character data across users and applications. Future versions of the SVG Specification are likely to require support of the W3C Character Model in Conforming SVG Generators.
An SVG interpreter is a program which can parse and process SVG document fragments. Examples of SVG interpreters are server-side transcoding tools (e.g., a tool which converts SVG content into a raster image) or analysis tools (e.g., a tool which extracts the text content from SVG content). An SVG viewer also satisfies the requirements of an SVG interpreter. An SVG Viewer does indeed parse and process SVG document fragments, where processing consists of rendering the SVG content to the target medium.
A Conforming SVG Interpreter is defined as follows:
A Conforming SVG Interpreter is required to be one of the following (see Stylable SVG vs. Exchange SVG):
An SVG viewer is a program which can parse and process an SVG document fragment and render the contents of the document onto some sort of output medium such as a display or printer; thus, an SVG Viewer is also an SVG Interpreter.
There are two sub-categories of Conforming SVG Viewers:
Specific criteria that apply to both Conforming Static SVG Viewers and Conforming Dynamic SVG Viewers:
Although anti-aliasing support isn't a strict requirement for a Conforming SVG Viewer, it is highly recommended for display devices. Lack of anti-aliasing support will generally result in poor results on display devices.
Specific criteria that apply to only Conforming Dynamic SVG Viewers:
The Web Accessibility Initiative [WAI] is defining "User Agent Accessibility Guidelines 1.0" [UAAG]. Viewers are encouraged to conform to the Priority 1 accessibility guidelines defined in this document, and preferably also Priorities 2 and 3. Once the guidelines are completed, a future version of this specification is likely to require conformance to the Priority 1 guidelines in Conforming SVG Viewers.
A higher order concept is that of a Conforming High-Quality SVG Viewer, with sub-categories Conforming High-Quality Static SVG Viewer and Conforming High-Quality Dynamic SVG Viewer.
Both a Conforming High-Quality Static SVG Viewer and a Conforming High-Quality Dynamic SVG Viewer must support the following additional features:
A Conforming High-Quality Dynamic SVG Viewer must support the following additional features:
A Conforming SVG Viewer is required to be one of the following (see Stylable SVG vs. Exchange SVG):
Thus, there are multiple independent conformance axes for a Conforming SVG Viewer:
Any combination of the above are possible in a particular Conforming SVG Viewer. An implementation that supports all of the options would be a Conforming Dynamic, High-Quality, Stylable SVG Viewer.
If the user agent includes a CSS2 capability, a Conforming Stylable SVG Viewer must support CSS styling of Stylable SVG content.