This appendix is normative.
This appendix defines a DTD for SVG 1.1, which is used as part of determining whether a given document or document fragment is conforming. See Conformance Criteria for details on how the DTD is to be used in this regard. Note in particular that simply validating a given XML document against this DTD cannot definitively, by itself, determine conformance to this specification.
If errors are found in this DTD, then they will be listed in the SVG 1.1 Second Edition errata. A dated version of the flattened DTD will always be available from http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-flat-20110816.dtd.
The modularization of SVG included here is a decomposition of SVG 1.0 [SVG10] and errata into a collection of abstract modules that provide specific units of functionality. These modules may be combined with each other and with modules defined in other specifications (such as XHTML) to create SVG subset and extension document types that qualify as members of the SVG family of document types. See Conformance for a description of SVG family documents, and An XHTML + MathML + SVG Profile [XHTMLplusMathMLplusSVG] for a profile that combines XHTML, MathML and SVG.
Each major section of the SVG specification corresponds to a module named after that section, e.g. "Text Module" or "Basic Structure Module". A module without the "Basic" prefix implies that the module includes the complete set of elements and attributes, with no restrictions, from the corresponding section of the specification. If there is a need to provide a subset of the functionality of the complete module, then a Basic module is created with the "Basic" prefix added to the name of the complete module. For example, the "Basic Text Module" is a subset of the "Text Module".
It is an error for a profile of SVG 1.1 to include both the complete module and its basic subset (e.g. the "Text Module" and the "Basic Text Module").
Most modules define a named collection of elements or attributes. These collections are used as a shorthand when describing the set of attributes allowed on a particular element (e.g. the "Style" attribute collection) or the set of elements allowed as children of a particular element (e.g. the "Shape" element collection). All collections have names that begin with an uppercase character.
When defining a profile, it is assumed that all the element and attribute collections are defined to be empty. That way, a module can redefine the collection as it is included in the profile, adding elements or attributes to make them available within the profile. Therefore, it is not a mistake to refer to an element or attribute collection from a module that is not included in the profile, it simply means that collection is empty.
The exception to this is the collection Presentation.attrib, which is the union of all the presentation attribute collections (i.e. all the attribute collections with the string "Presentation" in their name). Presentation.attrib is not defined in any module, but it exists in every profile.
A subset module (i.e. a Basic module) may define a different named collection from a superset module. Since it is an error to include a subset and superset module of the same group in a profile, all attribute and element collections will either be defined once by the module that includes them, or will have their default empty value (again, with the exception of Presentation.attrib which is not defined by any module).
The modularization of SVG 1.1 allows profiles to be described by listing the SVG modules they allow and possibly a small number of restrictions or extensions on the elements provided by those modules.
The "Full" profile of SVG 1.1 is the collection of all the complete modules listed in this specification (i.e., every module that is not a subset module).
When applied to conformance, the unqualified term "SVG" implies the "Full" profile of SVG 1.1 defined by this specification. If an implementation does not implement the Full profile, it must state either the profile to which it conforms, or that it implements a subset of SVG.
DTD-based modularization has proven to be an unwieldy method of defining composable XML languages, due to the inherent inability to describe certain complex content models in DTDs as well as their being agnostic with respect to XML namespaces. While the SVG 1.1 DTD is provided in a modularized form, it is recommended that alternate technologies such as Namespace-based Validation Dispatch Language [NVDL] be used to accomplish XML language composition instead.
This section contains the formal definition of each of the SVG abstract modules as a DTD module. Any element and attribute collections defined by the module are also listed.
The Core Attribute Module defines the attribute collection Core.attrib that is the core set of attributes that can be present on any element.
Collection name | Attributes in collection |
---|---|
Core.attrib | id, xml:base, xml:lang, xml:space |
The Container Attribute Module defines the Container.attrib attribute collection.
Collection name | Attributes in collection |
---|---|
Container.attrib | enable-background |
The Container Attribute Module defines the Container.attrib attribute collection.
Collection name | Attributes in collection |
---|---|
Viewport.attrib | clip, overflow |
The Paint Attribute Module defines the Paint.attrib attribute collection.
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 |
The Basic Paint Attribute Module defines the Paint.attrib attribute collection.
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-rendering |
The Paint Opacity Attribute Module defines the Opacity.attrib attribute collection.
Collection name | Attributes in collection |
---|---|
Opacity.attrib | opacity, stroke-opacity, fill-opacity |
The Graphics Attribute Module defines the Graphics.attrib attribute collection.
Collection name | Attributes in collection |
---|---|
Graphics.attrib | display, image-rendering, pointer-events, shape-rendering, text-rendering, visibility |
The Basic Graphics Attribute Module defines the Graphics.attrib attribute collection.
Collection name | Attributes in collection |
---|---|
Graphics.attrib | display, visibility |
The Document Events Attribute Module defines the DocumentEvents.attrib attribute collection.
Collection name | Attributes in collection |
---|---|
DocumentEvents.attrib | onunload, onabort, onerror, onresize, onscroll, onzoom |
The Graphical Events Attribute Module defines the GraphicalEvents.attrib attribute collection.
Collection name | Attributes in collection |
---|---|
GraphicalEvents.attrib | onfocusin, onfocusout, onactivate, onclick, onmousedown, onmouseup, onmouseover, onmousemove, onmouseout, onload |
The Animation Events Attribute Module defines the AnimationEvents.attrib attribute collection.
Collection name | Attributes in collection |
---|---|
AnimationEvents.attrib | onbegin, onend, onrepeat, onload |
The XLink Attribute Module defines the XLink.attrib, XLinkRequired.attrib, XLinkEmbed.attrib and XLinkReplace.attrib attribute collections. These collections differ only in whether the 'xlink:href' attribute is required or what the default value for the 'xlink:show' attribute is.
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 |
The External Resources Attribute Module defines the External.attrib attribute collection.
Collection name | Attributes in collection |
---|---|
External.attrib | externalResourcesRequired |
The Structure Module defines the Description.class, Structure.class and Use.class element collections.
Collection name | Elements in collection |
---|---|
Description.class | desc, title, metadata |
Use.class | use |
Structure.class | svg, g, defs, symbol, Use.class |
The Basic Structure Module defines the Description.class, Structure.class and Use.class element collections.
Collection name | Elements in collection |
---|---|
Description.class | desc, title, metadata |
Use.class | use |
Structure.class | svg, g, defs, Use.class |
The Conditional Processing Module defines the Conditional.class element collection and the Conditional.attrib attribute collection.
Collection name | Elements in collection |
---|---|
Conditional.class | switch |
Collection name | Attributes in collection |
---|---|
Conditional.attrib | requiredFeatures, requiredExtensions, systemLanguage |
The Image Module defines the Image.class element collection.
Collection name | Elements in collection |
---|---|
Image.class | image |
The Style Module defines the Style.class element collection and the Style.attrib attribute collection.
Collection name | Elements in collection |
---|---|
Style.class | style |
Collection name | Attributes in collection |
---|---|
Style.attrib | style, class |
The Shape Module defines the Shape.class element collection.
Collection name | Elements in collection |
---|---|
Shape.class | rect, circle, line, polyline, polygon, ellipse, path |
The Text Module defines the Text.class and TextContent.class element collections and the Text.attrib, TextContent.attrib and Font.attrib attribute sets.
Collection name | Elements in collection |
---|---|
Text.class | text, altGlyphDef |
TextContent.class | tspan, tref, textPath, altGlyph |
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 |
The Basic Text Module defines the Text.class and TextContent.class element collections and the TextContent.attrib and Font.attrib attribute sets.
Collection name | Elements in collection |
---|---|
Text.class | text |
TextContent.class | (empty) |
Collection name | Attributes in collection |
---|---|
TextContent.attrib | text-anchor |
Font.attrib | font-family, font-size, font-style, font-weight |
The Marker Module defines the Marker.class element collection and the Marker.attrib attribute set.
Collection name | Elements in collection |
---|---|
Marker.class | marker |
Collection name | Attributes in collection |
---|---|
Marker.attrib | marker-start, marker-mid, marker-end |
The Color Profile Module defines the ColorProfile.class element collection.
Collection name | Elements in collection |
---|---|
ColorProfile.class | color-profile |
The Gradient Module defines the Gradient.class element collection and the Gradient.attrib attribute set.
Collection name | Elements in collection |
---|---|
Gradient.class | linearGradient, radialGradient |
Collection name | Attributes in collection |
---|---|
Gradient.attrib | stop-color, stop-opacity |
The Pattern Module defines the Pattern.class element collection.
Collection name | Elements in collection |
---|---|
Pattern.class | pattern |
The Clip Module defines the Clip.class element collection and the Clip.attrib attribute collection.
Collection name | Elements in collection |
---|---|
Clip.class | clipPath |
Collection name | Attributes in collection |
---|---|
Clip.attrib | clip-path, clip-rule |
The Basic Clip Module defines the Clip.class element collection and the Clip.attrib attribute collection.
Collection name | Elements in collection |
---|---|
Clip.class | clipPath |
Collection name | Attributes in collection |
---|---|
Clip.attrib | clip-path, clip-rule |
The Mask Module defines the Mask.class element collection and the Mask.attrib attribute collection.
Collection name | Elements in collection |
---|---|
Mask.class | mask |
Collection name | Attributes in collection |
---|---|
Mask.attrib | mask |
The Filter Module defines the Filter.class and FilterPrimitive.class element collections and the Filter.attrib, FilterColor.attrib, FilterPrimitive.attrib and FilterPrimitiveWithIn.attrib attribute collections.
Collection name | Elements in collection |
---|---|
Filter.class | filter |
FilterPrimitive.class | feBlend, feFlood, feColorMatrix, feComponentTransfer, feComposite, feConvolveMatrix, feDiffuseLighting, feDisplacementMap, feGaussianBlur, feImage, feMerge, feMorphology, feOffset, feSpecularLighting, feTile, feTurbulence |
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 |
The Basic Filter Module defines the Filter.class and FilterPrimitive.class element collections and the Filter.attrib, FilterColor.attrib, FilterPrimitive.attrib and FilterPrimitiveWithIn.attrib attribute collections.
Collection name | Elements in collection |
---|---|
Filter.class | filter |
FilterPrimitive.class | feBlend, feFlood, feColorMatrix, feComponentTransfer, feComposite, feGaussianBlur, feImage, feMerge, feOffset, feTile |
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 |
The Cursor Module defines the Cursor.class element collection and the Cursor.attrib attribute collection.
Collection name | Elements in collection |
---|---|
Cursor.class | cursor |
Collection name | Elements in collection |
---|---|
Cursor.attrib | cursor |
The Hyperlinking Module defines the Hyperlink.class element collection.
Collection name | Elements in collection |
---|---|
Hyperlink.class | a |
The View Module defines the View.class element collection.
Collection name | Elements in collection |
---|---|
View.class | view |
The Script Module defines the Script.class element collection.
Collection name | Elements in collection |
---|---|
Script.class | script |
The Animation Module defines the Animation.class element collection and the Animation.attrib, AnimationAttribute.attrib, AnimationTiming.attrib, AnimationValue.attrib and AnimationAddtion.attrib attribute collections.
Collection name | Elements in collection |
---|---|
Animation.class | animate, animateColor, animateTransform, animateMotion, set |
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 |
AnimationAddition.attrib | additive, accumulate |
The Font Module defines the Font.class element collection.
Collection name | Elements in collection |
---|---|
Font.class | font, font-face |
The Basic Font Module defines the Font.class element collection.
Collection name | Elements in collection |
---|---|
Font.class | font, font-face |
The Extensibility Module defines the Extensibility.class element collection.
Collection name | Elements in collection |
---|---|
Extensibility.class | foreignObject |
This section contains the DTD driver for the SVG 1.1 document type implementation as an XML DTD. It relies upon SVG 1.1 module implementations defined in Section A.3.
A SVG Family Document Type (such as SVG 1.1) must define the content model that it uses. This is done through a separate content model module that is instantiated by the SVG Modular Framework. The content model module and the SVG 1.1 DTD Driver (above) work together to customize the module implementations to the document type's specific requirements. The content model module for SVG 1.1 is defined below:
This section contains the attribute collection for SVG 1.1. The attribute collection module and the SVG 1.1 DTD Driver work together to customize the module implementations to the document type's specific requirements.