SVG Interpreter

Below are detailed the modules, elements and attributes rendered by the SVG Interpreter using the classification made by the World Wide Web Consortium (W3C). W3C® is a trademark (registered in numerous countries) of the World Wide Web Consortium; marks of W3C are registered and held by its host institutions MIT, ERCIM, and Keio.

For a complete list of all SVG modules, elements and attributes that exist, you can browse the following Internet site:

http://www.w3.org/TR/2003/REC-SVG11-20030114/

More information can be found at the following address:

http://www.w3.org/Consortium/Legal/2002/trademark-license-20021231

Element Modules

In the tables below, elements that are not rendered by the SVG Interpreter are displayed in italic style.

Animation.Module animate animateColor animateTransform animateMotion set mpath
Clip Module clipPath
Color Profile Module color-profile
Conditional Processing Module switch
Cursor Module cursor
Extensibility Module foreignObject
Filter Module filter feFlood feColorMatrix feComponentTransfer feComposite feConvolveMatrix feDiffuseLighting feDisplacementMap feFlood feGaussianBlur feImage feMerge feMergeNode feMorphology feOffset feSpecularLighting feTile feTurbulence feDistantLight fePointLight feSpotLight feFuncR feFuncG feFuncB feFuncA
Font.Module font font-face glyph missing-glyph hkern vkern font-face-src font-face-uri font-face-format font-face-name definition-src
Gradient Module linearGradient radialGradient stop
Hyperlink.Module a
Image Module image
Marker Module marker
Mask Module mask
Pattern Module pattern
Script Module script
Shape Module path rect circle line polyline polygon ellipse
Structure Module svg g defs desc title metadata symbol use
Style Module style
Text Module text tspan tref textPath altGlyph altGlyphDef altGlyphItem glyphRef
View Module view

The following modules are parsed and processed by the SVG Interpreter:

  • Hyperlink module lets you associate links to primitives.
  • Image module defines how raster images shall be drawn.
  • Marker module lets you add markers at the beginning, in the middle or at the end of a drawing.
  • Pattern module lets you fill or stroke shapes using a pre-defined graphic object. This predefined graphic object can be defined with vectorial shapes or a bitmap image.
  • Shape module groups together the drawing of graphics primitives.
  • Text module defines how text elements shall be drawn.

Interpreted Elements

Elements interpreted by the SVG Interpreter are listed below.

Hyperlink Module

Elements Attributes Description
a Core.attrib, Conditional.attrib, Style.attrib, transform, target, GraphicalEvents.attrib, Presentation.attrib, External.attrib, XLinkReplace.attrib Associates a group of primitives to link attributes (local or non-local URI). This link is not active during the visualization process but it is saved whenever a conversion to CGM is made.

Image Module

Elements Attributes Description
image Core.attrib, XLinkEmbed.attrib, Conditional.attrib, Style.attrib, External.attrib, GraphicalEvents.attrib, preserveAspectRatio, Paint.attrib, Opacity.attrib, Graphics.attrib, Cursor.attrib, Filter.attrib, Mask.attrib, GraphicalEvents.attrib, Clip.attrib, Profile.attrib, Viewport.attrib, transform, x, y, width, height Describes a vector or bitmap image that is defined via a link to an external file (relative or absolute path) or via a base64 encoding (in that case, the formats that can be read are: BMP, JPEG, TIFF or PNG). Links to external bitmap images are supported but not links to vector images.

Marker Module

Elements Attributes Description
marker Core.attrib, External.attrib, Style.attrib, Presentation.attrib, viewBox, preserveAspectRatio, refX, refY, markerUnits, markerWidth, markerHeight, orient Defines a group of primitives to be re-used as markers via the marker attribute. The markerUnits attribute is not taken into account, it is considered as being equal to userSpaceOnUse. The orient attribute is not taken into account and the marker is not oriented according to the path segment. It is always applied without any orientation.

Pattern Module

Elements Attributes Description
pattern Core.attrib, XLink.attrib, Conditional.attrib , External.attrib, Style.attrib, Presentation.attrib, viewBox, preserveAspectRatio, patternTransform, x, y, width, height, patternUnits Defines a group of primitives to be re-used for filling or stroking shapes. The patternUnits attribute is not taken into account, it is considered as being equal to userSpaceOnUse. The only interpreted pattern is pattern defined with a bitmap image. Patterns defined with a set of vectorial elements are not recognized. Therefore, the child of the pattern element should be of type <image>. This enables to read Drafting documents with a fill texture.

Shape Module

Elements Attributes Description
path Core.attrib, Conditional.attrib, External.attrib, Style.attrib, transform, d, pathLength, GraphicalEvents.attrib, Paint.attrib, Opacity.attrib, Graphics.attrib, Cursor.attrib, Filter.attrib, Mask.attrib, GraphicalEvents.attrib, Clip.attrib, Marker.attrib Defines the outline of a shape. It is made of circular or elliptical arcs, lines, cubic poly-Béziers and quadratic poly-Béziers. This outline can be closed or open.
rect Core.attrib, Conditional.attrib, Style.attrib, GraphicalEvents.attrib, Paint.attrib, Opacity.attrib, Graphics.attrib, Cursor.attrib, Filter.attrib, Mask.attrib, GraphicalEvents.attrib, Clip.attrib, x, y, width, height, rx, ry, transform Defines a rectangle. Rounded corners are not interpreted.
circle Core.attrib, Conditional.attrib, Style.attrib, GraphicalEvents.attrib, Paint.attrib, Opacity.attrib, Graphics.attrib, Cursor.attrib, Filter.attrib, Mask.attrib, GraphicalEvents.attrib, Clip.attrib, cx, cy, r, transform Defines a circle.
line Core.attrib, Conditional.attrib, Style.attrib, GraphicalEvents.attrib, Paint.attrib, Opacity.attrib, Graphics.attrib, Cursor.attrib, Filter.attrib, Mask.attrib, GraphicalEvents.attrib, Clip.attrib, x1, y1, x2, y2, transform Defines a line.
ellipse Core.attrib, Conditional.attrib, Style.attrib, GraphicalEvents.attrib, Paint.attrib, Opacity.attrib, Graphics.attrib, Cursor.attrib, Filter.attrib, Mask.attrib, GraphicalEvents.attrib, Clip.attrib, cx, cy, rx, ry, transform Defines an ellipse.
polyline Core.attrib, Conditional.attrib, Style.attrib, GraphicalEvents.attrib, Paint.attrib, Opacity.attrib, Graphics.attrib, Cursor.attrib, Filter.attrib, Mask.attrib, GraphicalEvents.attrib, Clip.attrib, points, transform Defines a polyline. If the polyline is in open mode, only the outline is drawn, the polyline is not filled.
polygon Core.attrib, Conditional.attrib, Style.attrib, GraphicalEvents.attrib, Paint.attrib, Opacity.attrib, Graphics.attrib, Cursor.attrib, Filter.attrib, Mask.attrib, GraphicalEvents.attrib, Clip.attrib, points, transform Defines a polygon.

Structure Module

Elements Attributes Description
svg Core.attrib, Conditional.attrib, Style.attrib, x, y, width, height, viewBox, preserveAspectRatio, zoomAndPan, version, baseProfile, contentScriptType, contentStyleType, External.attrib, Presentation.attrib, GraphicalEvents.attrib, DocumentEvents.attrib Groups an SVG image.
g Core.attrib, Conditional.attrib, Style.attrib, External.attrib, Presentation.attrib, GraphicalEvents.attrib, transform Groups together one or many elements sharing the same attributes.
defs Core.attrib, Conditional.attrib, Style.attrib, External.attrib, Presentation.attrib, GraphicalEvents.attrib, transform Defines groups of elements that will be re-used. Its children are thus reference elements.
desc Core.attrib, Style.attrib Describes the element.
title Core.attrib, Style.attrib Indicates the title of the element.
symbol Core.attrib, Style.attrib, External.attrib, viewBox, preserveAspectRatio, Presentation.attrib, GraphicsElementEventAttrs Defines a group of elements that will be re-used.
use Core.attrib, Style.attrib, Conditional.attrib, transform, x, y, width, height, XLinkEmbed.attrib, Presentation.attrib, GraphicsElementEventAttrs References a predefined group of elements in order to display it.

Text Module

Elements Attributes Content Model
text Core.attrib, Conditional.attrib, External.attrib, Style.attrib, transform, x, y, dx, dy, rotate, textLength, lengthAdjust, GraphicalEvents.attrib, Paint.attrib, Font.attrib, Opacity.attrib, Graphics.attrib, Cursor.attrib, Filter.attrib, Mask.attrib, GraphicalEvents.attrib, Clip.attrib, TextContent.attrib, Text.attrib Defines a text. The text color is the one defined by the stroke color, and if the stroke color is not explicitly defined then the fill color is used.

Module Attributes

Module attributes are listed below.

Animation Attribute Sets

Collection Name Attributes in Collection
Animation.attrib XLink.attrib
AnimationAttribute.attrib attributeName, attributeType
AnimationTiming.attrib begin, dur, end, min, max, restart, repeatCount, repeatDur, fill
AnimationValue.attrib calcMode, values, keyTimes, keySplines, from, to, by
AnimationAddtion.attrib additive, accumulate

Animation Events Attribute Module

Collection Name Attributes in Collection
AnimationEvents.attrib onbegin, onend, onrepeat, onload

Clip Attribute Set

Collection Name Attributes in Collection
Clip.attrib clip-path, clip-rule

Conditional Processing Attribute Set

Collection Name Attributes in Collection
Conditional.attrib requiredFeatures, requiredExtensions, systemLanguage

Container Attribute Module

Collection Name Attributes in Collection
Container.attrib enable-background

Core Attribute Module

Collection Name Attributes in Collection
Core.attrib id, xml:base, xml:lang, xml:space

Cursor Attribute Set

Collection Name Attributes in Collection
Cursor.attrib cursor

Document Events Attribute Module

Collection Name Attributes in Collection
DocumentEvents.attrib onunload, onabort, onerror, onresize, onscroll, onzoom

ExternalResourcesRequired Attribute Module

Collection Name Attributes in Collection
External.attrib externalResourcesRequired

Gradient Attribute Set

Collection Name Attributes in Collection
Gradient.attrib stop-color, stop-opacity

Graphical Element Events Attribute Module

Collection Name Attributes in Collection
GraphicalEvents.attrib onfocusin, onfocusout, onactivate, onclick, onmousedown, onmouseup, onmouseover, onmousemove, onmouseout, onload

Graphics Attribute Module

Collection Name Attributes in Collection
Graphics.attrib display, image-rendering, pointer-events, shape-rendering, text-rendering, visibility

Filter Attribute Sets

Collection Name Attributes in Collection
Filter.attrib filter
FilterColor.attrib color-interpolation-filters
FilterPrimitive.attrib x, y, width, height, result
FilterPrimitiveWithIn.attrib FilterPrimitive.attrib, in

Marker Attribute Set

Collection Name Attributes in Collection
Marker.attrib marker-start, marker-mid, marker-end

Mask Attribute Set

Collection Name Attributes in Collection
Mask.attrib mask

Opacity Attribute Module

Collection Name Attributes in Collection
Opacity.attrib opacity, stroke-opacity, fill-opacity

Paint Attribute Module

Collection Name Attributes in Collection
Paint.attrib color, fill, fill-rule, stroke, stroke-dasharray, stroke-dashoffset, stroke-linecap, stroke-linejoin, stroke-miterlimit, stroke-width, color-interpolation, color-rendering

Style Attribute Set

Collection Name Attributes in Collection
Style.attrib style, class

Text Attribute Sets

Collection Name Attributes in Collection
Text.attrib writing-mode
TextContent.attrib alignment-baseline, baseline-shift, direction, dominant-baseline, glyph-orientation-horizontal, glyph-orientation-vertical, kerning, letter-spacing, text-anchor, text-decoration, unicode-bidi, word-spacing
Font.attrib font-family, font-size, font-size-adjust, font-stretch, font-style, font-variant, font-weight

Viewport Attribute Module

Collection Name Attributes in Collection
Viewport.attrib clip, overflow

XLink Attribute Module

Collection Name Attributes in Collection
XLink.attrib xlink:type, xlink:href, xlink:role, xlink:arcrole, xlink:title, xlink:show, xlink:actuate
XLinkRequired.attrib xlink:type, xlink:href, xlink:role, xlink:arcrole, xlink:title, xlink:show, xlink:actuate
XLinkEmbed.attrib xlink:type, xlink:href, xlink:role, xlink:arcrole, xlink:title, xlink:show, xlink:actuate
XLinkReplace.attrib xlink:type, xlink:href, xlink:role, xlink:arcrole, xlink:title, xlink:show, xlink:actuate

Interpreted Attributes

Interpreted attributes are listed below.

Core Attribute Module

Collection Name Attributes in Collection
id Identifier of the graphics primitive.

Graphics Attribute Module

Collection Name Attributes in Collection
display Displays or hides the graphics primitive. Only the value "none" is interpreted.

Marker Attribute Set

Collection Name Attributes in Collection
marker-start Draws a marker at the first point of the primitive.
marker-mid Draws a marker at every other point (i.e. except the first and last) of the primitive.
marker-end Draws a marker at the last point of the primitive.

Opacity Attribute Module

Collection Name Attributes in Collection
opacity Defines the transparency of the primitive. Only formats enabling to save as a raster image can manage transparency. Therefore transparency is not displayed. Moreover, even when saving as a raster image, transparency does not support nesting.
stroke-opacity Defines the transparency of the primitive's outline. Only formats enabling to save as a raster image can manage transparency. Therefore transparency is not displayed. Moreover, even when saving as a raster image, transparency does not support embedding.
fill-opacity Defines the transparency of the primitive's fill. Only formats enabling to save as a raster image can manage transparency. Therefore transparency is not displayed. Moreover, even when saving as a raster image, transparency does not support embedding.

Paint Attribute Module

Collection Name Attributes in Collection
color Defines the color. The <color> type is compliant with CSS2 specification for a color defined in sRGB space. This attribute supports several syntaxes defined in [CSS2-color-types] (browse the w3c.org Internet site for detailed information), as well as a list of keywords, each keyword being associated to a color. Supported syntaxes for numerical color specifications are #rgb, or #rrggbb, or rgb(R, G, B), or rgb(R%, G%, B%). Below are examples with different syntaxes that all specify the same color:

EM { color: #f00 } /* #rgb */

EM { color: #ff0000 } /* #rrggbb */

EM { color: rgb(255,0,0) } /* integer range 0 - 255 */

EM { color: rgb(100%, 0%, 0%) } /* float range 0.0% - 100.0% */
fill Defines the fill type. The value "none', "current-color" or a color are supported. Gradients are not supported.
fill-rule Defines the algorithm to be used when filling a polygon. The only supported algorithm is "nonzero". The "evenodd" algorithm is not supported.
stroke Defines how the element is to be stroked. The value "none", "current-color" or a color are supported. Patterns and gradients are not supported.
stroke-dasharray Defines the pattern to be applied to get a dotted line.
stroke-linecap Defines the shape to be used at the end of the outline when it is stroked: round, square, etc. Saving in vector format includes this attribute. However, its display and its save in raster format are not supported.
stroke-linejoin Defines the shape to be used when corners of a polyline are stroked: round, miter, etc. Saving in vector format includes this attribute. However, its display and its save in raster format are not supported.
stroke-width Defines the stroke width. Saving in vector format includes this attribute. However, very thick strokes can be painted using a thin width.

Style Attribute Set

Collection Name Attributes in Collection
style Groups all the attributes together.

Text Attribute Sets

Collection Name Attributes in Collection
letter-spacing Defines the spacing to be used between each character. The display of TrueType fonts does not support this attribute and thus, a great number of generators (discretization).
text-anchor Defines the alignment of a text.
font-family Defines the font family name. Only fonts supported are interpreted correctly, otherwise the default font is used. More About the font-family Attribute
font-size Defines the text height. The height must be defined as a length or percentage.
font-weight Defines whether the text is to be rendered using a bold or normal style. The display of TrueType fonts does not support this attribute and thus, a great number of generators (discretization) as well.

XLink Attribute Module

Collection Name Attributes in Collection
xlink:href Defines links. This attribute is interpreted for the link element or for defining raster images.
xlink:show Defines how the resource pointed to by the link is to be displayed.

Transform Attribute

The transform attribute is parsed and processed. The following transformations are applied:


  • matrix(<a> <b> <c> <d> <e> <f>), which specifies a transformation in the form of a transformation matrix of six values

  • translate(<tx> [<ty>]), which specifies a translation by tx and ty

  • scale(<sx> [<sy>]), which specifies a scale operation by sx and sy

  • rotate(<rotate-angle> [<cx> <cy>]), which specifies a rotation by <rotate-angle> degrees about a given point

  • skewX(<skew-angle>), which specifies a skew transformation along the x-axis

  • skewY(<skew-angle>), which specifies a skew transformation along the y-axis.

More About the font-family Attribute

The font-family attribute sets the font to be used to render the text. It can reference a list of font family names and/or generic family names.

The family-name can be interpreted if the font is supported.

3 types of fonts are supported:


  • CATIA Version 4 fonts
  • TrueType fonts
  • PostScript Type 1 fonts.

These fonts are described in Infrastructure User's Guide: Customizing: Fonts: Customizing Fonts for Displaying Geometry Area Texts.

The generic-family are substituted by the following font with the V6 SVG interpreter:


  • 'serif' is interpreted as 'Times New Roman'
  • 'sans-serif' is interpreted as 'Arial'
  • 'cursive' is interpreted as 'Adobe Poetica'
  • 'fantasy' is interpreted as 'Alpha Geometrique'
  • 'monospace' is interpreted as 'Courier New'.

For detailed information on the generic-family attribute, you can browse the following Internet site:

http://www.w3.org/TR/REC-CSS2/fonts.html#generic-font-families