W3C

Mobile SVG Profiles: SVG Tiny and SVG Basic

W3C Proposed Recommendation 15 November 2002

This version:
http://www.w3.org/TR/2002/PR-SVGMobile-20021115/
Latest version:
http://www.w3.org/TR/SVGMobile/
Previous version:
http://www.w3.org/TR/2002/CR-SVGMobile-20020430/
Editor:
Tolga Capin (Nokia) <Tolga.Capin@nokia.com>
Authors:
See author list

Abstract

This document defines two mobile profiles of SVG 1.1. The first profile, SVG Tiny, is defined to be suitable for cellphones; the second profile, SVG Basic, is suitable for PDAs.

Status of this document

This section describes the status of this document at the time of its publication. Other documents may supersede this document. The latest status of this document series is maintained at the W3C.

This document is the 15 November 2002 Proposed Recommendation of the SVG Mobile specification. The SVG Working Group believes SVG Mobile has been widely reviewed by the community, developers and other W3C groups.

W3C Advisory Committee representatives are invited to send formal review comments to the W3C Team until 20 December 2002 at w3t-svg@w3.org. After the review the Director will announce the document's disposition. This announcement should not be expected sooner than 14 days after the end of the review.

Public comments are also welcome. Please send them to www-svg@w3.org: the public email list for issues related to vector graphics on the Web. This list is archived and senders must agree to have their message publicly archived from their first posting. To subscribe send an email to www-svg-request@w3.org with the word subscribe in the subject line.

The W3C SVG Working Group have released a test suite for SVG 1.1 and SVG Mobile along with an implementation report.

The latest information regarding patent disclosures related to this document is available on the Web. As of this publication, the SVG Working Group are not aware of any royalty-bearing patents they believe to be essential to SVG.

This document has been produced by the W3C SVG Working Group as part of the Graphics Activity within the W3C Document Formats Domain. The goals of the W3C SVG Working Group are discussed in the W3C SVG Charter (W3C Members only). The W3C SVG Working Group has maintained a public Web page, http://www.w3.org/Graphics/SVG/, which contains further background information. The authors of this document are the SVG Working Group participants.

Publication of this document does not imply endorsement by the W3C membership. A list of current W3C Recommendations and other technical documents can be found at http://www.w3.org/TR/. W3C publications may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to cite a W3C Working Draft as anything other than a "work in progress."

Table of contents


1. Introduction

It has been established by industry demand, overwhelming support in the SVG working group and requests from the SVG developer community that some form of SVG suited to displaying vector graphics on small devices is required. Moreover, the mission statement of SVG 1.0 specifically addresses small devices as a target area for vector graphics display. In order to meet these demands the SVG Working Group has committed to a concerted effort to create a profile specification that addresses mobile devices.

A single such profile is not sufficient to deal with the variety of mobile devices, because each mobile device has different characteristics in terms of CPU speed, memory size, and color support. To address the range of different device families, two profiles are defined. The first low-level profile, SVG Tiny (SVGT) is suitable for highly restricted mobile devices; while the second profile, SVG Basic (SVGB) is targeted for higher level mobile devices.

Because of the low memory, low CPU power and limited display of mobile devices, Mobile SVG profiles introduce constraints on content, attribute types, properties, and user agent behavior. This section describes these constraints and design rationale behind them.

  1. Two profiles are designed to allow SVG to render on mobile devices with limited memory, CPU power, and bandwidth.
  2. Mobile SVG profiles attempt to maximize compatibility with SVG 1.0 to display existing content.
  3. A true subset of the SVG 1.0 imaging model is maintained.
  4. Mobile SVG is designed to facilitate export from authoring tools.
  5. Mobile SVG is designed so that SVG 1.1 can be transcoded into SVGB and SVGT preserving as much scalability as possible.
  6. To ensure interoperability between content and software tools compliant with different profiles, SVGT is specified to be a proper subset of SVGB, and SVGB to be a proper subset of SVG 1.1.

2. Mobile SVG Document Types

SVGT and SVGB consist of the following SVG 1.1 modules. For each module, a given profile might contain the Full version, the subsetted Basic version, or no version of that module. For ease of use, the relevant elements in each module are given; in modules other than Full, not all attributes may be supported and there may be restrictions on attribute values. For details, see the module definitions in the SVG 1.1 specification.

SVG Tiny

Structure
Core Attribute Module
Basic Structure Module
defs, desc, g, metadata, svg, title, use
Painting
Basic Paint Attribute Module
Basic Graphics Attribute Module
Hyperlinking
Hyperlinking
a
XLink Attribute Module
Conditional Processing
Conditional Processing Module
switch
Shapes
Shape Module
circle, ellipse, line, path, polygon, polyline, rect
Images
Image Module
image
Text
Basic Text Module
text
Fonts
Basic Font Module
font, font-face, font-face-name, font-face-src, glyph, hkern, missing-glyph
Animation
Animation Module
animate, animateColor, animateMotion, animateTransform, mpath, set
Extensibility
Extensibility Module
foreignObject

SVG Basic

Structure
Core Attribute Module
Structure Module
defs, desc, g, metadata, svg, symbol, title, use
Viewport Attribute Module
Style
Style Module
style
Painting
Paint Attribute Module
Opacity Attribute Module
Graphics Attribute Module
Hyperlinking
Hyperlinking Module
a
XLink Attribute Module
External Resources Attribute Module
Conditional Processing
Conditional Processing Module
switch
Shapes
Shape Module
circle, ellipse, line, path, polygon, polyline, rect
Images
Image Module
image
Text
Text Module
altGlyph, altGlyphDef, altGlyphItem, glyphRef, text, textPath, tref, tspan
Color Profile
Color Profile Module
color-profile
Gradients
Gradient Module
linearGradient, radialGradient, stop
Patterns
Pattern Module
pattern
Clipping
Basic Clip Module
clipPath
Masking
Mask Module
mask
Fonts
Font Module
definition-src, font, font-face, font-face-format, font-face-name, font-face-src, font-face-uri, glyph, hkern, missing-glyph, vkern
Interactivity
Document Events Attribute Module
Graphical Element Events Attribute Module
Animation Events Attribute Module
Scripting
Scripting Module
script
Views
View Module
view
Filters
Basic Filter Module
feBlend, feColorMatrix, feComponentTransfer, feComposite, feFlood, feGaussianBlur, feImage, feMerge, feMergeNode, feOffset, feTile, feFuncR, feFuncG, feFuncB, feFuncA, filter
Animation
Animation Module
animate, animateColor, animateMotion, animateTransform, mpath, set
Extensibility
Extensibility Module
foreignObject
Document Model
Basic Document Model Module

3. Data Types

Data Type Description
Number SVGT and SVGB support fixed point numbers, thus all numbers must be limited in range between -32,767.9999 to +32,767.9999 or the scientific notation equivalent.
Length SVGT only supports user units (i.e., CSS units are not supported), with the one exception that the 'width' and 'height' attributes on the outermost 'svg' element can specify values in any of the following CSS units: in, cm, mm, pt, pc, and %. SVGB supports lengths in user coordinate space and in CSS units.
Coordinate SVGT and SVGB support the coordinate data type, represented with a <length> value.
List of XXX (where XXX represents a value of some type): SVGT and SVGB support the list specification.
Angle SVGT only supports angles if specified with no CSS unit identifiers (which means all angles are in degrees). SVGB supports angles with CSS unit identifiers.
Color SVGT and SVGB support <color> in the CSS2-compatible specification for a color in the sRGB color space, and system colors. Additionally, SVGB and SVGT support 16 original color keywords from XHTML, and do not support X11 colors. SVGB also allows optional support of ICC color profiles.
Paint SVGB supports paint specification for fill and stroke operations, as well as linear and radial gradients. SVGT does not support the more general notion of paint specification and thus only supports solid color fills and strokes.
Percentage SVGB supports percentages. SVGT does not support percentage values except for the 'width' and 'height' attributes on the outermost 'svg' element.
Transform List SVGB and SVGT support transform lists.
URI SVGB and SVGT support the URI datatype.
Frequency SVGB and SVGT do not support frequency values.
Time SVGB and SVGT support time values, with unit identifiers (ms, s).

4. Document Structure

Mobile SVG Document Fragment

SVGB and SVGT content can be in the form of stand-alone SVG Documents or document fragments embedded within a parent XML document. The following is an example of an SVG document fragment embedded within an XHTML 1.1 document:

  
      <?xml version="1.0" standalone="yes"?>
      <html xmlns="http://www.w3.org/1999/xhtml"
               xmlns:svg="http://www.w3.org/2000/svg">
      <head>
          <title xml:lang="en">Sample XHTML + SVG document</title>
      </head>
      <body>
         <svg:svg width="4cm" height="8cm" version="1.1" baseProfile="tiny" >
             <svg:ellipse cx="2" cy="4" rx="2" ry="1" />
         </svg:svg>
      </body>
      </html>

The 'title', 'desc', 'metadata' Elements

SVGB and SVGT support the 'title', 'desc' and 'metadata' elements as defined in SVG 1.1.

The 'svg' Element

SVG Tiny content cannot have nested child 'svg' elements.

The 'baseProfile' attribute on the outermost 'svg' element must have the value "tiny" for SVG Tiny content, and "basic" for SVG Basic content. The 'baseProfile' attribute on nested child 'svg' elements is ignored. The SVG 1.1 specification states that the 'version' attribute of the outermost 'svg' element in SVG 1.1 content must have the value "1.1".

References and the 'defs' Element

For SVGT, all referenced objects, except on the 'image' and 'a' elements, must be internal (using the 'data:' URL scheme, and base64 encoding). SVGB does not put extra limitations on external references as defined by SVG 1.1.

The 'symbol' Element

SVGT does not support symbols.

The 'use' Element

Note that, in SVG 1.1, animations on a referenced element will cause the instances to be animated. SVGB and SVGT also support this feature.

The 'image' Element

SVGB and SVGT require support of the JPEG and PNG formats on the image element. SVGB also requires support of SVG format on the image element.

The 'switch' Element

SVGT and SVGB support the switch element, to determine which SVG 1.1 features are supported by the user agent.

The following feature strings are allowed for SVGT:

The following feature strings are allowed for SVGB:

5. Styling

SVGB and SVGT support subsets of SVG 1.1's presentation attributes.

SVGB allows optional support of CSS Mobile Profile 1.0. SVGT does not support styling with CSS.

SVGB and SVGT can introduce constraints on style properties. Allowed values for style properties are listed in Appendix C.

6. Coordinate Systems, Transformations and Units

SVGB and SVGT support SVG 1.1's notion of viewports.

SVGB and SVGT support nesting of transformations. The types of transformations that are allowed are generic transformation matrices, or simple operations such as rotation, scaling, skewing, and translation.

The 'transform' Attribute

SVGB and SVGT support the transform attribute. The following transform definition types are supported:

The 'viewBox' Attribute

SVGB and SVGT fully support the 'viewBox' attribute. SVGT has restrictions on allowed preserveAspectRatio attribute values.

The 'preserveAspectRatio' Attribute

SVGB and SVGT support the 'preserveAspectRatio' attribute for adapting the content to devices with different display aspect ratios.

In SVGT,  the <align> parameter can only be either 'none' or 'XMidYMid', the <meetOrSlice> parameter can only be 'meet'.

In SVGB, the values of this parameter can be the same as in SVG 1.1.

Establishing a New Viewport

SVGB supports establishing a new viewport via additional embedded 'svg' elements. SVGT does not allow nested 'svg' elements.

Units

SVGT supports user units only, except for the 'width' and 'height' attributes on the outermost 'svg' element where CSS units are also supported. SVGB supports both user units and CSS user identifiers.

Object Bounding Box Units

SVGT does not support bounding box unit specification.

7. Shapes

Paths

SVGB and SVGT support all SVG 1.1 path commands, except the elliptical arc curve command ("A"(absolute) and "a"(relative)).

The path element data is animatable, as defined in the SVG 1.1 specification.

Basic Shapes

SVGT and SVGB support the basic shapes (rectangles, circles, ellipses, lines, polylines, and polygons) as defined in SVG 1.1.

8. Text

SVGB and SVGT represent text with Unicode characters. Mobile SVG user agents are not required to allow text selection and clipboard operations.

SVGT does not support text on a path, 'tspan' and 'tref' elements. SVGT supports the 'rotate' attribute on the 'text' element, but it should be noted that this may cause a slow down of the user agent's rendering speed, and rotation may not be supported with system fonts.

9. Painting: Filling, Stroking and Marker Symbols

SVGB and SVGT support filling and stroking 'path' elements and basic shapes with solid colors.

SVGB supports stroking on text when using outline fonts, but SVGT does not.

10. Color

SVGT and SVGB support <color> in the CSS2-compatible specification for a color in the sRGB color space, and system colors. Additionally, SVGB and SVGT support 16 original color keywords from XHTML, and do not support X11 colors.

Specifying colors using an ICC profile is not supported in SVGT; and as with SVG 1.1, it is optional in SVGB.

11. Gradients and Patterns

SVGB supports solid colors, gradient paints, patterns, and custom paints. SVGT only supports solid color painting.

12. Clipping, Masking and Compositing

SVGB supports clipping, masking and compositing. SVGB does not support additive clipping paths. Also, in SVGB, clipping paths are restricted to rectangles ('rect' elements or references to 'rect' elements through 'use').

SVGT does not support element opacity, fill-opacity, stroke-opacity properties.

13. Filter Effects

SVGB supports a subset of filter effects. SVGT does not support filter effects.

14. Interactivity

SVGB and SVGT support the SVG 1.1 events. SVGT only allows interactivity with declarative animation.

15. Linking

SVGB and SVGT support hyperlink activation from SVG content to other Web resources through the 'a' element.

SVGB supports hyperlink into particular views of SVG content. SVGT does not support this feature.

16. Scripting

SVGT does not support scripting. SVGB allows optional support of scripting, and includes all of the language features from SVG 1.1 to support scripting.

17. Animation

Both SVGB and SVGT support the full set of SVG 1.1's declarative animation features:

The language features to support animation through scripting and DOM are available in SVGB. SVGT only supports declarative animation.

SVGB and SVGT allow implicit targeting of parent elements, and targeting elements using the 'xlink:href' attribute.

SVGB and SVGT support linear, spline, paced and discrete animations.

18. Fonts

SVGB and SVGT support a subset of SVG fonts where only the 'd' attribute on the 'glyph' and 'missing-glyph' elements is available. Arbitrary SVG within a 'glyph' is not supported.

As with Full SVG 1.1, SVGB supports downloadable fonts using WebFonts facility defined in the "Cascading Style Sheets (CSS) level 2" specification. In SVGT, an SVG font can be only embedded within the same document that uses the font.

19. Metadata

Both SVGB and SVGT support embedded metadata, as well as elements and attributes from foreign namespaces included within the SVG content.

20. Extensibility

The SVG renderer is not expected to be able to render content in foreign namespaces, but the foreignObject element allows a subtree in a foreign namespace to be assigned a width and height and passed off to another renderer.


Author List

The authors of this specification are the participants of the W3C SVG Working Group.

Authors:

Acknowledgments

The SVG Working Group would like to acknowledge the great many people outside of the SVG Working Group who help with the process of developing the SVG 1.1 and Mobile SVG specification. These people are too numerous to list individually. They include but are not limited to the early implementers of the SVG 1.0 and 1.1 languages and Mobile SVG profiles (including viewers, authoring tools, and server-side transcoders), developers of SVG content, people who have contributed on the www-svg@w3.org and svg-developers@yahoogroups.com email lists, other Working Groups at the W3C, and the W3C team. Mobile SVG is truly a cooperative effort between the SVG Working Group, the rest of the W3C, and the public and benefits greatly from the pioneering work of early implementers and content developers, feedback from the public, and help from the W3C team.


References

[CSS Mobile Profile]
CSS Mobile Profile 1.0 , Ted Wugofski, Doug Dominiak, Peter Stark, editors, W3C, 24 October 2001 (W3C Candidate Recommendation) Available at http://www.w3.org/TR/css-mobile.
[MOBILE SVG Requirements]
SVG Mobile Requirements , Rick Graham, Tolga K. Capin, editors, W3C, 3 August 2001 (Working Draft). Available at http://www.w3.org/TR/SVGMobileReqs.
[RFC2119]
RFC 2119: Key words for use in RFCs to Indicate Requirement Levels Internet Engineering Task Force, 1997. Available at http://www.ietf.org/rfc/rfc2119.txt.
[SRGB]
Multimedia systems and equipment - Colour measurement and management - Part 2-1: Colour management - Default RGB colour space - sRGB , IEC. Available at http://www.iec.ch/nr1899.htm.
[SVG 1.0]
Scalable Vector Graphics (SVG) 1.0 Specification , Jon Ferraiolo, editor, W3C, 4 September 2001 (Recommendation). Available at http://www.w3.org/TR/SVG/.
[SVG 1.1/2.0 Requirements]
SVG 1.1/2.0 Requirements , Dean Jackson, editor, W3C, 3 August 2001. Available at http://www.w3.org/TR/SVG2Reqs/.
[SVG 1.1]
Scalable Vector Graphics (SVG) Version 1.1 Specification , Dean Jackson, editor, W3C, 15 February 2002. Available at http://www.w3.org/TR/SVG11/.

Appendix A. Element Index

This appendix is normative.

Color code
Supported fully in a Full Module yes
Supported with subsetted functionality in a Basic Module yes
Disallowed in profile n/a

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


Appendix B. Attribute Index

This appendix is normative.

Attribute SVGTiny SVG 1.1 Module SVGBasic SVG 1.1 Module
accent-height %Number Basic Font %Number; Font
accumulate (none | sum) Animation (none | sum) Animation
additive (replace | sum) Animation (replace | sum) Animation
alignment-baseline n/a n/a ( baseline | top | before-edge | text-top | text-before-edge | middle | bottom | after-edge | text-bottom | text-after-edge | ideographic | lower | hanging | mathematical | inherit) Text
alphabetic %Number; Basic Font %Number; Font
amplitude n/a n/a %Number; Basic Filter
arabic-form CDATA Basic Font CDATA Font
ascent %Number; Basic Font %Number; Font
attributeName CDATA Animation CDATA Animation
attributeType CDATA Animation CDATA Animation
azimuth n/a n/a n/a n/a
baseFrequency n/a n/a n/a n/a
baseProfile CDATA Basic Structure CDATA Structure
baseline-shift n/a n/a (baseline | sub | super | <percentage> | <length> | inherit) Text
bbox CDATA Basic Font CDATA Font
begin CDATA Animation CDATA Animation
bias n/a n/a n/a n/a
by CDATA Animation CDATA Animation
calcMode (discrete | linear | paced | spline) Animation (discrete | linear | paced | spline) Animation
cap-height %Number; Basic Font %Number; Font
class n/a n/a %ClassList; Style
clip n/a n/a (<shape> | auto | inherit) Viewport Attribute
clip-path n/a n/a (<uri> | none | inherit) Basic Clip
clip-rule n/a n/a (nonzero | evenodd | inherit ) Basic Clip
clipPathUnits n/a n/a (userSpaceOnUse | objectBoundingBox) Basic Clip
color %Color; Basic Paint Attribute %Color; Paint Attribute
color-interpolation n/a n/a (auto | sRGB | linearRGB | inherit) Paint Attribute
color-interpolation-filters n/a n/a (auto | sRGB | linearRGB | inherit) Basic Filter
color-profile n/a n/a CDATA Color Profile
color-rendering (auto | optimizeSpeed | optimizeQuality | inherit) Basic Paint Attribute (auto | optimizeSpeed | optimizeQuality | inherit) Paint Attribute
content CDATA Extensibility CDATA Extensibility
contentScriptType n/a n/a %ContentType; Structure
contentStyleType n/a n/a %ContentType; Structure
cursor n/a n/a n/a n/a
cx n/a n/a %Coordinate; Gradient
cx %Coordinate; Shape %Coordinate; Shape
cy n/a n/a %Coordinate; Gradient
cy %Coordinate; Shape %Coordinate; Shape
d %PathData; Basic Font %PathData; Font
d %PathData; Shape %PathData; Shape
descent %Number; Basic Font %Number; Font
diffuseConstant n/a n/a n/a n/a
direction n/a n/a (ltr | rtl | inherit) Text
display ( inline | block | list-item | run-in | compact | marker | table | inline-table | table-row-group | table-header-group | table-footer-group | table-row | table-column-group | table-column | table-cell | table-caption | none | inherit ) Basic Graphics Attribute ( inline | block | list-item | run-in | compact | marker | table | inline-table | table-row-group | table-header-group | table-footer-group | table-row | table-column-group | table-column | table-cell | table-caption | none | inherit ) Graphics Attribute
divisor n/a n/a n/a n/a
dominant-baseline n/a n/a (auto | autosense-script | no-change | reset | ideographic | lower | hanging | mathematical | inherit) Text
dur CDATA Animation CDATA Animation
dx n/a n/a %Lengths; Text
dx n/a n/a n/a Basic Filter
dy n/a n/a %Lengths; Text
dy n/a n/a n/a Basic Filter
edgeMode n/a n/a n/a n/a
elevation n/a n/a n/a n/a
enable-background n/a n/a n/a n/a
end CDATA Animation CDATA Animation
exponent n/a n/a %Number; Basic Filter
externalResourcesRequired n/a n/a %Boolean; External Resources Attribute
fill (remove | freeze) Animation (remove | freeze) Animation
fill %Paint; Basic Paint Attribute %Paint; Paint Attribute
fill-opacity n/a n/a %OpacityValue; Opacity Attribute
fill-rule %ClipFillRule; Basic Paint Attribute %ClipFillRule; Paint Attribute
filter n/a n/a %FilterValue; Basic Filter
filterRes n/a n/a %NumberOptionalNumber; Basic Filter
filterUnits n/a n/a (userSpaceOnUse | objectBoundingBox) Basic Filter
flood-color n/a n/a %SVGColor; Basic Filter
flood-opacity n/a n/a %OpacityValue; Basic Filter
font-family %FontFamilyValue; Basic Text %FontFamilyValue; Text
font-family CDATA Basic Font CDATA Font
font-size %FontSizeValue; Basic Text %FontSizeValue; Text
font-size CDATA Basic Font CDATA Font
font-size-adjust n/a n/a %FontSizeAdjustValue; Text
font-stretch n/a n/a (normal | wider | narrower | ultra-condensed | extra-condensed | condensed | semi-condensed | semi-expanded | expanded | extra-expanded | ultra-expanded | inherit) Text
font-stretch (normal | wider | narrower | ultra-condensed | extra-condensed | condensed | semi-condensed | semi-expanded | expanded | extra-expanded | ultra-expanded | inherit) Basic Font (normal | wider | narrower | ultra-condensed | extra-condensed | condensed | semi-condensed | semi-expanded | expanded | extra-expanded | ultra-expanded | inherit) Font
font-style (normal | italic | oblique | inherit) Basic Text (normal | italic | oblique | inherit) Text
font-style CDATA Basic Font CDATA Font
font-variant n/a n/a (normal | small-caps | inherit) Text
font-variant CDATA Basic Font CDATA Font
font-weight (normal | bold | bolder | lighter | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900 | inherit) Basic Text (normal | bold | bolder | lighter | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900 | inherit) Text
font-weight (normal | bold | bolder | lighter | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900 | inherit) Basic Font (normal | bold | bolder | lighter | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900 | inherit) Font
format n/a n/a CDATA Text
from CDATA Animation CDATA Animation
fx n/a n/a %Coordinate; Gradient
fy n/a n/a %Coordinate; Gradient
g1 CDATA Basic Font CDATA Font
g2 CDATA Basic Font CDATA Font
glyph-name CDATA Basic Font CDATA Font
glyph-orientation-horizontal n/a n/a %GlyphOrientationHorizontalValue; Text
glyph-orientation-vertical n/a n/a %GlyphOrientationVerticalValue; Text
glyphRef n/a n/a CDATA Text
gradientTransform n/a n/a %TransformList; Gradient
gradientUnits n/a n/a (userSpaceOnUse | objectBoundingBox) Gradient
hanging %Number; Basic Font %Number; Font
height %Length; Basic Structure %Length; Structure
height %Length; Shape %Length; Shape
height %Length; Image %Length; Image
height n/a n/a %Length; Pattern
height %Length; Extensibility %Length; Extensibility
height n/a n/a %Length; Mask
height n/a n/a %Length; Basic Filter
horiz-adv-x %Number; Basic Font %Number; Font
horiz-origin-x %Number; Basic Font %Number; Font
horiz-origin-y n/a n/a %Number; Font
id %Number; Core Attribute %Number; Core Attribute
ideographic %Number; Basic Font %Number; Font
image-rendering n/a n/a (auto | optimizeSpeed | optimizeQuality | inherit) Graphics Attribute
in n/a n/a CDATA Basic Filter
in2 n/a n/a CDATA Basic Filter
intercept n/a n/a %Number; Basic Filter
k %Number; Basic Font %Number; Font
k1 n/a n/a %Number; Basic Filter
k2 n/a n/a %Number; Basic Filter
k3 n/a n/a %Number; Basic Filter
k4 n/a n/a %Number; Basic Filter
kernelMatrix n/a n/a n/a n/a
kernelUnitLength n/a n/a n/a n/a
kerning n/a n/a %KerningValue; Text
keyPoints CDATA Animation CDATA Animation
keySplines CDATA Animation CDATA Animation
keyTimes CDATA Animation CDATA Animation
lang %LanguageCodes; Basic Font %LanguageCodes; Font
lengthAdjust n/a n/a (spacing|spacingAndGlyphs) Text
letter-spacing n/a n/a %SpacingValue; Text
lighting-color n/a n/a n/a n/a
limitingConeAngle n/a n/a n/a n/a
local n/a n/a CDATA Color Profile
marker n/a n/a n/a n/a
marker-end n/a n/a n/a n/a
marker-mid n/a n/a n/a n/a
marker-start n/a n/a n/a n/a
markerHeight n/a n/a n/a n/a
markerUnits n/a n/a n/a n/a
markerWidth n/a n/a n/a n/a
mask n/a n/a %MaskValue; Mask
maskContentUnits n/a n/a (userSpaceOnUse | objectBoundingBox) Mask
maskUnits n/a n/a (userSpaceOnUse | objectBoundingBox) Mask
mathematical %Number; Basic Font %Number; Font
max CDATA Animation CDATA Animation
media n/a n/a %MediaDesc; Style
method n/a n/a (align|stretch) Text
min CDATA Animation CDATA Animation
mode n/a n/a (normal | multiply | screen | darken | lighten) Basic Filter
name n/a n/a CDATA Color Profile
name CDATA Basic Font CDATA Font
numOctaves n/a n/a n/a n/a
offset n/a n/a %NumberOrPercentage; Gradient
offset n/a n/a %Number; Basic Filter
onabort n/a n/a %Script; Document Events Attribute
onactivate n/a n/a %Script; Graphical Element Events Attribute
onbegin n/a n/a %Script; Animation Events Attribute
onclick n/a n/a %Script; Graphical Element Events Attribute
onend n/a n/a %Script; Animation Events Attribute
onerror n/a n/a %Script; Document Events Attribute
onfocusin n/a n/a %Script; Graphical Element Events Attribute
onfocusout n/a n/a %Script; Graphical Element Events Attribute
onload n/a n/a %Script; Graphical Element Events Attribute
onmousedown n/a n/a %Script; Graphical Element Events Attribute
onmousemove n/a n/a %Script; Graphical Element Events Attribute
onmouseout n/a n/a %Script; Graphical Element Events Attribute
onmouseover n/a n/a %Script; Graphical Element Events Attribute
onmouseup n/a n/a %Script; Graphical Element Events Attribute
onrepeat n/a n/a %Script; Animation Events Attribute
onresize n/a n/a %Script; Document Events Attribute
onscroll n/a n/a %Script; Document Events Attribute
onunload n/a n/a %Script; Document Events Attribute
onzoom n/a n/a %Script; Document Events Attribute
opacity n/a n/a %OpacityValue; Opacity Attribute
operator n/a n/a (over | in | out | atop | xor | arithmetic) Basic Filter
order n/a n/a n/a n/a
orient n/a n/a n/a n/a
orientation n/a n/a CDATA Font
origin CDATA Animation CDATA Animation
overflow n/a n/a (visible | hidden | scroll | auto | inherit) Viewport Attribute
overline-position %Number; Basic Font %Number; Font
overline-thickness %Number; Basic Font %Number; Font
panose-1 CDATA Basic Font CDATA Font
path CDATA Animation CDATA Animation
pathLength %Number; Shape %Number; Shape
patternContentUnits n/a n/a (userSpaceOnUse | objectBoundingBox) Pattern
patternTransform n/a n/a %TransformList; Pattern
patternUnits n/a n/a (userSpaceOnUse | objectBoundingBox) Pattern
pointer-events n/a n/a ( visiblePainted | visibleFill | visibleStroke | visible | painted | fill | stroke | all | none | inherit) Graphics Attribute
points %Points; Shape %Points; Shape
pointsAtX n/a n/a n/a n/a
pointsAtY n/a n/a n/a n/a
pointsAtZ n/a n/a n/a n/a
preserveAlpha n/a n/a n/a n/a
preserveAspectRatio %PreserveAspectRatioSpec; Basic Structure %PreserveAspectRatioSpec; Structure
preserveAspectRatio %PreserveAspectRatioSpec; Image %PreserveAspectRatioSpec; Image
preserveAspectRatio n/a n/a %PreserveAspectRatioSpec; View
preserveAspectRatio n/a n/a %PreserveAspectRatioSpec; Pattern
primitiveUnits n/a n/a (userSpaceOnUse | objectBoundingBox) Basic Filter
r n/a n/a %Length; Gradient
r %Length; Shape %Length; Shape
radius n/a n/a n/a n/a
refX n/a n/a n/a n/a
refY n/a n/a n/a n/a
rendering-intent n/a n/a CDATA Color Profile
repeatCount CDATA Animation CDATA Animation
repeatDur CDATA Animation CDATA Animation
requiredExtensions %ExtensionList; Conditional Processing %ExtensionList; Conditional Processing
requiredFeatures %ExtensionList; Conditional Processing %ExtensionList; Conditional Processing
restart (always | never | whenNotActive) Animation (always | never | whenNotActive) Animation
result n/a n/a CDATA Basic Filter
rotate CDATA Animation CDATA Animation
rotate %Numbers; Basic Text %Numbers; Text
rx %Length; Shape %Length; Shape
ry %Length; Shape %Length; Shape
scale n/a n/a n/a n/a
seed n/a n/a n/a n/a
shape-rendering n/a n/a (auto | optimizeSpeed | crispEdges | geometricPrecision | inherit) Graphics Attribute
slope %Number; Basic Font %Number; Font
slope n/a n/a %Number; Basic Filter
spacing n/a n/a (auto|exact) Text
specularConstant n/a n/a n/a n/a
specularExponent n/a n/a n/a n/a
spreadMethod n/a n/a (pad | reflect | repeat) Gradient
startOffset n/a n/a %Length; Text
stdDeviation n/a n/a %NumberOptionalNumber; Basic Filter
stemh %Number; Basic Font %Number; Font
stemv %Number; Basic Font %Number; Font
stitchTiles n/a n/a n/a n/a
stop-color n/a n/a %SVGColor; Gradient
stop-opacity n/a n/a %OpacityValue; Gradient
strikethrough-position %Number; Basic Font %Number; Font
strikethrough-thickness %Number; Basic Font %Number; Font
stroke %Paint; Basic Paint Attribute %Paint; Paint Attribute
stroke-dasharray %StrokeDashArrayValue; Basic Paint Attribute %StrokeDashArrayValue; Paint Attribute
stroke-dashoffset %StrokeDashOffsetValue; Basic Paint Attribute %StrokeDashOffsetValue; Paint Attribute
stroke-linecap (butt | round | square | inherit) Basic Paint Attribute (butt | round | square | inherit) Paint Attribute
stroke-linejoin (miter | round | bevel | inherit) Basic Paint Attribute (miter | round | bevel | inherit) Paint Attribute
stroke-miterlimit %StrokeMiterLimitValue; Basic Paint Attribute %StrokeMiterLimitValue; Paint Attribute
stroke-opacity n/a n/a %OpacityValue; Opacity Attribute
stroke-width %StrokeWidthValue; Basic Paint Attribute %StrokeWidthValue; Paint Attribute
style n/a n/a %StyleSheet; Style
surfaceScale n/a n/a n/a n/a
systemLanguage %LanguageCodes; Conditional Processing %LanguageCodes; Conditional Processing
tableValues n/a n/a CDATA Basic Filter
target %LinkTarget; Hyperlinking %LinkTarget; Hyperlinking
targetX n/a n/a n/a n/a
targetY n/a n/a n/a n/a
text-anchor (start | middle | end | inherit) Basic Text (start | middle | end | inherit) Text
text-decoration n/a n/a %TextDecorationValue; Text
text-rendering n/a n/a (auto | optimizeSpeed | optimizeLegibility | geometricPrecision | inherit) Graphics Attribute
textLength n/a n/a %Length; Text
title n/a n/a %Text; Style
to CDATA Animation CDATA Animation
transform %TransformList; Basic Structure %TransformList; Structure
transform %TransformList; Hyperlinking %TransformList; Hyperlinking
transform %TransformList; Shape %TransformList; Shape
transform %TransformList; Image %TransformList; Image
transform %TransformList; Basic Text %TransformList; Text
transform %TransformList; Conditional Processing %TransformList; Conditional Processing
transform n/a n/a %TransformList; Basic Clip
type n/a n/a %ContentType; Style
type n/a n/a %ContentType; Scripting
type n/a n/a (identity | table | discrete | linear | gamma) Basic Filter
type n/a n/a (matrix | saturate | hueRotate | luminanceToAlpha) Basic Filter
type (translate | scale | rotate | skewX | skewY) Animation (translate | scale | rotate | skewX | skewY) Animation
u1 CDATA Basic Font CDATA Font
u2 CDATA Basic Font CDATA Font
underline-position %Number; Basic Font %Number; Font
underline-thickness %Number; Basic Font %Number; Font
unicode CDATA Basic Font CDATA Font
unicode-bidi n/a n/a (normal | embed | bidi-override | inherit) Text
unicode-range CDATA Basic Font CDATA Font
units-per-em %Number; Basic Font %Number; Font
v-alphabetic n/a n/a %Number; Font
v-hanging n/a n/a %Number; Font
v-ideographic n/a n/a %Number; Font
v-mathematical n/a n/a %Number; Font
values CDATA Animation CDATA Animation
values n/a n/a CDATA Basic Filter
version %Number; Basic Structure %Number; Structure
vert-adv-y n/a n/a %Number; Font
vert-origin-x n/a n/a %Number; Font
vert-origin-y n/a n/a %Number; Font
viewBox %ViewBoxSpec; Basic Structure %ViewBoxSpec; Structure
viewBox n/a n/a %ViewBoxSpec; View
viewBox n/a n/a %ViewBoxSpec; Pattern
viewTarget n/a n/a CDATA View
visibility (visible | hidden | inherit) Basic Graphics Attribute (visible | hidden | inherit) Graphics Attribute
width %Length; Basic Structure %Length; Structure
width %Length; Shape %Length; Shape
width %Length; Image %Length; Image
width n/a n/a %Length; Pattern
width %Length; Extensibility %Length; Extensibility
width n/a n/a %Length; Mask
width n/a n/a %Length; Basic Filter
widths CDATA Basic Font CDATA Font
word-spacing n/a n/a %SpacingValue; Text
writing-mode n/a n/a (lr-tb | rl-tb | tb-rl | lr | rl | tb | inherit) Text
x %Coordinate; Basic Structure %Coordinate; Structure
x %Coordinate; Shape %Coordinate; Shape
x %Coordinate; Image %Coordinate; Image
x %Coordinates; Basic Text %Coordinates; Text
x n/a n/a %Coordinate; Pattern
x n/a n/a %Coordinate; Mask
x %Coordinate; Extensibility %Coordinate; Extensibility
x n/a n/a %Coordinate; Basic Filter
x-height %Number; Basic Font %Number; Font
x1 %Coordinate; Shape %Coordinate; Shape
x1 n/a n/a %Coordinate; Gradient
x2 %Coordinate; Shape %Coordinate; Shape
x2 n/a n/a %Coordinate; Gradient
xChannelSelector n/a n/a n/a n/a
xlink:actuate (onLoad) XLink Attribute (onLoad) XLink Attribute
xlink:actuate (onRequest) Hyperlinking (onRequest) Hyperlinking
xlink:arcrole %URI; XLink Attribute %URI; XLink Attribute
xlink:href n/a n/a %URI; Basic Filter
xlink:href n/a n/a %URI; Color Profile, Font, Gradient, Pattern, Scripting, Text
xlink:href %URI; Basic Structure %URI; Structure
xlink:href %URI; Animation, Hyperlinking, Image %URI; Animation, Hyperlinking, Image
xlink:role %URI; XLink Attribute %URI; XLink Attribute
xlink:show (new|replace) XLink Attribute (new|replace) XLink Attribute
xlink:title CDATA XLink Attribute CDATA XLink Attribute
xlink:type (simple) XLink Attribute (simple) XLink Attribute
xml:base %URI; Core Attribute %URI; Core Attribute
xml:lang %LanguageCode Core Attribute %LanguageCode Core Attribute
xml:space (default|preserve) Core Attribute (default|preserve) Core Attribute, Style
y %Coordinate; Basic Structure %Coordinate; Structure
y %Coordinate; Shape %Coordinate; Shape
y %Coordinate; Image %Coordinate; Image
y %Coordinates; Basic Text %Coordinates; Text
y n/a n/a %Coordinate; Pattern
y n/a n/a %Coordinate; Mask
y %Coordinate; Extensibility %Coordinate; Extensibility
y n/a n/a %Coordinate; Basic Filter
y1 %Coordinate; Shape %Coordinate; Shape
y1 n/a n/a %Coordinate; Gradient
y2 %Coordinate; Shape %Coordinate; Shape
y2 n/a n/a %Coordinate; Gradient
yChannelSelector n/a n/a n/a n/a
z n/a n/a n/a n/a
zoomAndPan (disable | magnify) Basic Structure (disable | magnify) Structure
zoomAndPan n/a n/a (disable | magnify) View


Appendix C. Style Property Index

This appendix is normative.

Attribute SVGTiny SVG 1.1 Module SVGBasic SVG 1.1 Module
alignment-baseline n/a n/a ( baseline | top | before-edge | text-top | text-before-edge | middle | bottom | after-edge | text-bottom | text-after-edge | ideographic | lower | hanging | mathematical | inherit) Text
baseline-shift n/a n/a (baseline | sub | super | <percentage> | <length> | inherit) Text
clip n/a n/a (<shape> | auto | inherit) Viewport Attribute
clip-path n/a n/a (<uri> | none | inherit) Basic Clip
clip-rule n/a n/a (nonzero | evenodd | inherit) Basic Clip
color %Color; Basic Paint Attribute %Color; Paint Attribute
color-interpolation n/a n/a (auto | sRGB | linearRGB | inherit) Paint Attribute
color-interpolation-filters n/a n/a (auto | sRGB | linearRGB | inherit) Basic Filter
color-profile n/a n/a CDATA Color Profile
color-rendering (auto | optimizeSpeed | optimizeQuality | inherit) Basic Paint Attribute (auto | optimizeSpeed | optimizeQuality | inherit) Paint Attribute
cursor n/a n/a n/a n/a
direction n/a n/a (ltr | rtl | inherit) Text
display ( inline | block | list-item | run-in | compact | marker | table | inline-table | table-row-group | table-header-group | table-footer-group | table-row | table-column-group | table-column | table-cell | table-caption | none | inherit ) Basic Graphics Attribute ( inline | block | list-item | run-in | compact | marker | table | inline-table | table-row-group | table-header-group | table-footer-group | table-row | table-column-group | table-column | table-cell | table-caption | none | inherit ) Graphics Attribute
dominant-baseline n/a n/a (auto | autosense-script | no-change | reset | ideographic | lower | hanging | mathematical | inherit) Text
enable-background n/a n/a n/a n/a
fill %Paint; Basic Paint Attribute %Paint; Paint Attribute
fill-opacity n/a n/a %OpacityValue; Opacity Attribute
fill-rule %ClipFillRule; Basic Paint Attribute %ClipFillRule; Paint Attribute
filter n/a n/a %FilterValue; Basic Filter
flood-color n/a n/a %SVGColor; Basic Filter
flood-opacity n/a n/a %OpacityValue; Basic Filter
font-family %FontFamilyValue; Basic Text %FontFamilyValue; Text
font-size %FontSizeValue; Basic Text %FontSizeValue; Text
font-size-adjust n/a n/a %FontSizeAdjustValue; Text
font-stretch n/a n/a (normal | wider | narrower | ultra-condensed | extra-condensed | condensed | semi-condensed | semi-expanded | expanded | extra-expanded | ultra-expanded | inherit) Text
font-style (normal | italic | oblique | inherit) Basic Text (normal | italic | oblique | inherit) Text
font-variant n/a n/a (normal | small-caps | inherit) Text
font-weight (normal | bold | bolder | lighter | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900 | inherit) Basic Text (normal | bold | bolder | lighter | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900 | inherit) Text
glyph-orientation-horizontal n/a n/a %GlyphOrientationHorizontalValue; Text
glyph-orientation-vertical n/a n/a %GlyphOrientationVerticalValue; Text
image-rendering n/a n/a (auto | optimizeSpeed | optimizeQuality | inherit) Graphics Attribute
kerning n/a n/a %KerningValue; Text
letter-spacing n/a n/a %SpacingValue; Text
lighting-color n/a n/a n/a n/a
marker n/a n/a n/a n/a
marker-end n/a n/a n/a n/a
marker-mid n/a n/a n/a n/a
marker-start n/a n/a n/a n/a
mask n/a n/a %MaskValue; Mask
opacity n/a n/a %OpacityValue; Opacity Attribute
overflow n/a n/a (visible | hidden | scroll | auto | inherit) Viewport Attribute
pointer-events n/a n/a ( visiblePainted | visibleFill | visibleStroke | visible | painted | fill | stroke | all | none | inherit) Graphics Attribute
shape-rendering n/a n/a (auto | optimizeSpeed | crispEdges | geometricPrecision | inherit) Graphics Attribute
stop-color n/a n/a %SVGColor; Gradient
stop-opacity n/a n/a %OpacityValue; Gradient
stroke %Paint; Basic Paint Attribute %Paint; Paint Attribute
stroke-dasharray %StrokeDashArrayValue; Basic Paint Attribute %StrokeDashArrayValue; Paint Attribute
stroke-dashoffset %StrokeDashOffsetValue; Basic Paint Attribute %StrokeDashOffsetValue; Paint Attribute
stroke-linecap (butt | round | square | inherit) Basic Paint Attribute (butt | round | square | inherit) Paint Attribute
stroke-linejoin (miter | round | bevel | inherit) Basic Paint Attribute (miter | round | bevel | inherit) Paint Attribute
stroke-miterlimit %StrokeMiterLimitValue; Basic Paint Attribute %StrokeMiterLimitValue; Paint Attribute
stroke-opacity n/a n/a %OpacityValue; Opacity Attribute
stroke-width %StrokeWidthValue; Basic Paint Attribute %StrokeWidthValue; Paint Attribute
text-anchor (start | middle | end | inherit) Basic Text (start | middle | end | inherit) Text
text-decoration n/a n/a %TextDecorationValue; Text
text-rendering n/a n/a (auto | optimizeSpeed | optimizeLegibility | geometricPrecision | inherit) Graphics Attribute
unicode-bidi n/a n/a (normal | embed | bidi-override | inherit) Text
visibility (visible | hidden | inherit) Basic Graphics Attribute (visible | hidden | inherit) Graphics Attribute
word-spacing n/a n/a %SpacingValue; Text
writing-mode n/a n/a (lr-tb | rl-tb | tb-rl | lr | rl | tb | inherit) Text


Appendix D. SVG Tiny Document Type Definition

This appendix is normative.

D.1. SVG Tiny DTD Driver

This section contains the DTD driver for the SVG Tiny document type implementation as an XML DTD. It relies upon SVG 1.1 module implementations defined in [SVG 1.1].

<!-- ....................................................................... -->
<!-- SVG 1.1 Tiny DTD ...................................................... -->
<!-- file: svg11-tiny.dtd
-->

<!-- SVG 1.1 Tiny DTD

     This is SVG Tiny, a proper subset of SVG.

     The Scalable Vector Graphics (SVG)
     Copyright 2001, 2002 World Wide Web Consortium
        (Massachusetts Institute of Technology, Institut National de
         Recherche en Informatique et en Automatique, Keio University).
         All Rights Reserved.

     Permission to use, copy, modify and distribute the SVG DTD and its
     accompanying documentation for any purpose and without fee is hereby
     granted in perpetuity, provided that the above copyright notice and
     this paragraph appear in all copies.  The copyright holders make no
     representation about the suitability of the DTD for any purpose.

     It is provided "as is" without expressed or implied warranty.

        Author:   Jun Fujisawa <fujisawa.jun@canon.co.jp>
        Revision: $Id: index.html,v 1.20 2002/11/15 18:48:18 clilley Exp $

-->
<!-- This is the driver file for version 1.1 of the SVG Tiny DTD.

     This DTD is identified by the PUBLIC and SYSTEM identifiers:

        PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN"
        SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd"
-->
<!ENTITY % SVG.version "-//W3C//DTD SVG 1.1 Tiny//EN" >

<!-- Use this URI to identify the default namespace:

        "http://www.w3.org/2000/svg"

     See the Qualified Names module for information
     on the use of namespace prefixes in the DTD.
-->
<!ENTITY % NS.prefixed "IGNORE" >
<!ENTITY % SVG.prefix "" >

<!-- reserved for future use with document profiles -->
<!ENTITY % SVG.profile "" >

<!-- ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->

<!-- Pre-Framework Redeclaration Placeholder ..................... -->
<!ENTITY % svg-prefw-redecl.module "IGNORE" >
<![%svg-prefw-redecl.module;[
%svg-prefw-redecl.mod;]]>

<!-- Document Model Module ....................................... -->
<!ENTITY % svg-model.mod
    PUBLIC "-//W3C//ENTITIES SVG 1.1 Tiny Document Model//EN"
           "svg11-tiny-model.mod" >

<!-- Attribute Collection Module ................................. -->
<!ENTITY % svg-attribs.mod
    PUBLIC "-//W3C//ENTITIES SVG 1.1 Tiny Attribute Collection//EN"
           "svg11-tiny-attribs.mod" >

<!-- Modular Framework Module .................................... -->
<!ENTITY % svg-framework.module "INCLUDE" >
<![%svg-framework.module;[
<!ENTITY % svg-framework.mod
    PUBLIC "-//W3C//ENTITIES SVG 1.1 Modular Framework//EN"
           "svg-framework.mod" >
%svg-framework.mod;]]>

<!-- Post-Framework Redeclaration Placeholder .................... -->
<!ENTITY % svg-postfw-redecl.module "IGNORE" >
<![%svg-postfw-redecl.module;[
%svg-postfw-redecl.mod;]]>

<!-- ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->

<!-- Core Attribute Module ....................................... -->
<!ENTITY % svg-core-attrib.module "INCLUDE" >
<![%svg-core-attrib.module;[
<!ENTITY % svg-core-attrib.mod
    PUBLIC "-//W3C//ENTITIES SVG 1.1 Core Attribute//EN"
           "svg-core-attrib.mod" >
%svg-core-attrib.mod;]]>

<!-- Basic Paint Attribute Module ................................ -->
<!ENTITY % svg-paint-attrib.module "INCLUDE" >
<![%svg-paint-attrib.module;[
<!ENTITY % svg-paint-attrib.mod
    PUBLIC "-//W3C//ENTITIES SVG 1.1 Basic Paint Attribute//EN"
           "svg-basic-paint-attrib.mod" >
%svg-paint-attrib.mod;]]>

<!-- Basic Graphics Attribute Module ............................. -->
<!ENTITY % svg-graphics-attrib.module "INCLUDE" >
<![%svg-graphics-attrib.module;[
<!ENTITY % svg-graphics-attrib.mod
    PUBLIC "-//W3C//ENTITIES SVG 1.1 Basic Graphics Attribute//EN"
           "svg-basic-graphics-attrib.mod" >
%svg-graphics-attrib.mod;]]>

<!-- XLink Attribute Module ...................................... -->
<!ENTITY % svg-xlink-attrib.module "INCLUDE" >
<![%svg-xlink-attrib.module;[
<!ENTITY % svg-xlink-attrib.mod
    PUBLIC "-//W3C//ENTITIES SVG 1.1 XLink Attribute//EN"
           "svg-xlink-attrib.mod" >
%svg-xlink-attrib.mod;]]>

<!-- External Resources Attribute Module ......................... -->
<!ENTITY % svg-extresources-attrib.module "INCLUDE" >
<![%svg-extresources-attrib.module;[
<!ENTITY % svg-extresources-attrib.mod
    PUBLIC "-//W3C//ENTITIES SVG 1.1 External Resources Attribute//EN"
           "svg-extresources-attrib.mod" >
%svg-extresources-attrib.mod;]]>

<!-- ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->

<!-- Basic Structure Module ...................................... -->
<!ENTITY % svg-structure.module "INCLUDE" >
<![%svg-structure.module;[
<!ENTITY % svg-structure.mod
    PUBLIC "-//W3C//ELEMENTS SVG 1.1 Basic Structure//EN"
           "svg-basic-structure.mod" >
%svg-structure.mod;]]>

<!-- Conditional Processing Module ............................... -->
<!ENTITY % svg-conditional.module "INCLUDE" >
<![%svg-conditional.module;[
<!ENTITY % svg-conditional.mod
    PUBLIC "-//W3C//ELEMENTS SVG 1.1 Conditional Processing//EN"
           "svg-conditional.mod" >
%svg-conditional.mod;]]>

<!-- Image Module ................................................ -->
<!ENTITY % svg-image.module "INCLUDE" >
<![%svg-image.module;[
<!ENTITY % svg-image.mod
    PUBLIC "-//W3C//ELEMENTS SVG 1.1 Image//EN"
           "svg-image.mod" >
%svg-image.mod;]]>

<!-- Shape Module ................................................ -->
<!ENTITY % svg-shape.module "INCLUDE" >
<![%svg-shape.module;[
<!ENTITY % svg-shape.mod
    PUBLIC "-//W3C//ELEMENTS SVG 1.1 Shape//EN"
           "svg-shape.mod" >
%svg-shape.mod;]]>

<!-- Basic Text Module ........................................... -->
<!ENTITY % svg-text.module "INCLUDE" >
<![%svg-text.module;[
<!ENTITY % svg-text.mod
    PUBLIC "-//W3C//ELEMENTS SVG 1.1 Basic Text//EN"
           "svg-basic-text.mod" >
%svg-text.mod;]]>

<!-- Hyperlinking Module ......................................... -->
<!ENTITY % svg-hyperlink.module "INCLUDE" >
<![%svg-hyperlink.module;[
<!ENTITY % svg-hyperlink.mod
    PUBLIC "-//W3C//ELEMENTS SVG 1.1 Hyperlinking//EN"
           "svg-hyperlink.mod" >
%svg-hyperlink.mod;]]>

<!-- Animation Module ............................................ -->
<!ENTITY % svg-animation.module "INCLUDE" >
<![%svg-animation.module;[
<!ENTITY % svg-animation.mod
    PUBLIC "-//W3C//ELEMENTS SVG 1.1 Animation//EN"
           "svg-animation.mod" >
%svg-animation.mod;]]>

<!-- Basic Font Module ........................................... -->
<!ENTITY % svg-font.module "INCLUDE" >
<![%svg-font.module;[
<!ENTITY % svg-font.mod
    PUBLIC "-//W3C//ELEMENTS SVG 1.1 Basic Font//EN"
           "svg-basic-font.mod" >
%svg-font.mod;]]>

<!-- Extensibility Module ........................................ -->
<!ENTITY % svg-extensibility.module "INCLUDE" >
<![%svg-extensibility.module;[
<!ENTITY % svg-extensibility.mod
    PUBLIC "-//W3C//ELEMENTS SVG 1.1 Extensibility//EN"
           "svg-extensibility.mod" >
%svg-extensibility.mod;]]>

<!-- end of SVG 1.1 Tiny DTD ............................................... -->
<!-- ....................................................................... -->

D.2. SVG Tiny Document Model

This section contains the content model for SVG Tiny. The content model module and the SVG Tiny DTD Driver work together to customize the module implementations to the document type's specific requirements.

<!-- ....................................................................... -->
<!-- SVG 1.1 Tiny Document Model Module .................................... -->
<!-- file: svg11-tiny-model.mod

     This is SVG Tiny, a proper subset of SVG.
     Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved.
     Revision: $Id: index.html,v 1.20 2002/11/15 18:48:18 clilley Exp $

     This DTD module is identified by the PUBLIC and SYSTEM identifiers:

        PUBLIC "-//W3C//ENTITIES SVG 1.1 Tiny Document Model//EN"
        SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny-model.mod"

     ....................................................................... -->

<!-- SVG 1.1 Tiny Document Model

     This module describes the groupings of elements that make up
     common content models for SVG elements.
-->

<!-- Content Models (Default) .......................... -->

<!ENTITY % SVG.Style.class "" >
<!ENTITY % SVG.TextContent.class "" >
<!ENTITY % SVG.Marker.class "" >
<!ENTITY % SVG.Profile.class "" >
<!ENTITY % SVG.Gradient.class "" >
<!ENTITY % SVG.Pattern.class "" >
<!ENTITY % SVG.Clip.class "" >
<!ENTITY % SVG.Mask.class "" >
<!ENTITY % SVG.Filter.class "" >
<!ENTITY % SVG.FilterPrimitive.class "" >
<!ENTITY % SVG.Cursor.class "" >
<!ENTITY % SVG.View.class "" >
<!ENTITY % SVG.Script.class "" >

<!-- module: svg-basic-structure.mod ................... -->

<!ENTITY % SVG.Description.extra.class "" >
<!ENTITY % SVG.Description.class
    "%SVG.desc.qname; | %SVG.title.qname; | %SVG.metadata.qname;
     %SVG.Description.extra.class;"
>

<!ENTITY % SVG.Use.extra.class "" >
<!ENTITY % SVG.Use.class
    "| %SVG.use.qname; %SVG.Use.extra.class;"
>

<!ENTITY % SVG.Structure.extra.class "" >
<!ENTITY % SVG.Structure.class
    "| %SVG.g.qname; | %SVG.defs.qname; %SVG.Use.class;
       %SVG.Structure.extra.class;"
>

<!-- module: svg-conditional.mod ....................... -->

<!ENTITY % SVG.Conditional.extra.class "" >
<!ENTITY % SVG.Conditional.class
    "| %SVG.switch.qname; %SVG.Conditional.extra.class;"
>

<!-- module: svg-image.mod ............................. -->

<!ENTITY % SVG.Image.extra.class "" >
<!ENTITY % SVG.Image.class
    "| %SVG.image.qname; %SVG.Image.extra.class;"
>

<!-- module: svg-shape.mod ............................. -->

<!ENTITY % SVG.Shape.extra.class "" >
<!ENTITY % SVG.Shape.class
    "| %SVG.path.qname; | %SVG.rect.qname; | %SVG.circle.qname;
     | %SVG.line.qname; | %SVG.ellipse.qname; | %SVG.polyline.qname;
     | %SVG.polygon.qname; %SVG.Shape.extra.class;"
>

<!-- module: svg-basic-text.mod ........................ -->

<!ENTITY % SVG.Text.extra.class "" >
<!ENTITY % SVG.Text.class
    "| %SVG.text.qname; %SVG.Text.extra.class;"
>

<!-- module: svg-hyperlink.mod ......................... -->

<!ENTITY % SVG.Hyperlink.extra.class "" >
<!ENTITY % SVG.Hyperlink.class
    "| %SVG.a.qname; %SVG.Hyperlink.extra.class;"
>

<!-- module: svg-animation.mod ......................... -->

<!ENTITY % SVG.Animation.extra.class "" >
<!ENTITY % SVG.Animation.class
    "%SVG.animate.qname; | %SVG.set.qname; | %SVG.animateMotion.qname; |
     %SVG.animateColor.qname; | %SVG.animateTransform.qname;
     %SVG.Animation.extra.class;"
>

<!-- module: svg-basic-font.mod ........................ -->

<!ENTITY % SVG.Font.extra.class "" >
<!ENTITY % SVG.Font.class
    "| %SVG.font.qname; | %SVG.font-face.qname; %SVG.Font.extra.class;"
>

<!-- module: svg-extensibility.mod ..................... -->

<!ENTITY % SVG.Extensibility.extra.class "" >
<!ENTITY % SVG.Extensibility.class
    "| %SVG.foreignObject.qname; %SVG.Extensibility.extra.class;"
>

<!-- end of svg11-tiny-model.mod -->


Appendix E. SVG Basic Document Type Definition

This appendix is normative.

E.1. SVG Basic DTD Driver

This section contains the DTD driver for the SVG Basic document type implementation as an XML DTD. It relies upon SVG 1.1 module implementations defined in [SVG 1.1].

<!-- ....................................................................... -->
<!-- SVG 1.1 Basic DTD ..................................................... -->
<!-- file: svg11-basic.dtd
-->

<!-- SVG 1.1 Basic DTD

     This is SVG Basic, a proper subset of SVG.

     The Scalable Vector Graphics (SVG)
     Copyright 2001, 2002 World Wide Web Consortium
        (Massachusetts Institute of Technology, Institut National de
         Recherche en Informatique et en Automatique, Keio University).
         All Rights Reserved.

     Permission to use, copy, modify and distribute the SVG DTD and its
     accompanying documentation for any purpose and without fee is hereby
     granted in perpetuity, provided that the above copyright notice and
     this paragraph appear in all copies.  The copyright holders make no
     representation about the suitability of the DTD for any purpose.

     It is provided "as is" without expressed or implied warranty.

        Author:   Jun Fujisawa <fujisawa.jun@canon.co.jp>
        Revision: $Id: index.html,v 1.20 2002/11/15 18:48:18 clilley Exp $

-->
<!-- This is the driver file for version 1.1 of the SVG Basic DTD.

     This DTD is identified by the PUBLIC and SYSTEM identifiers:

        PUBLIC "-//W3C//DTD SVG 1.1 Basic//EN"
        SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-basic.dtd"
-->
<!ENTITY % SVG.version "-//W3C//DTD SVG 1.1 Basic//EN" >

<!-- Use this URI to identify the default namespace:

        "http://www.w3.org/2000/svg"

     See the Qualified Names module for information
     on the use of namespace prefixes in the DTD.
-->
<!ENTITY % NS.prefixed "IGNORE" >
<!ENTITY % SVG.prefix "" >

<!-- reserved for future use with document profiles -->
<!ENTITY % SVG.profile "" >

<!-- ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->

<!-- Pre-Framework Redeclaration Placeholder ..................... -->
<!ENTITY % svg-prefw-redecl.module "IGNORE" >
<![%svg-prefw-redecl.module;[
%svg-prefw-redecl.mod;]]>

<!-- Document Model Module ....................................... -->
<!ENTITY % svg-model.mod
    PUBLIC "-//W3C//ENTITIES SVG 1.1 Basic Document Model//EN"
           "svg11-basic-model.mod" >

<!-- Attribute Collection Module ................................. -->
<!ENTITY % svg-attribs.mod
    PUBLIC "-//W3C//ENTITIES SVG 1.1 Basic Attribute Collection//EN"
           "svg11-basic-attribs.mod" >

<!-- Modular Framework Module .................................... -->
<!ENTITY % svg-framework.module "INCLUDE" >
<![%svg-framework.module;[
<!ENTITY % svg-framework.mod
    PUBLIC "-//W3C//ENTITIES SVG 1.1 Modular Framework//EN"
           "svg-framework.mod" >
%svg-framework.mod;]]>

<!-- Post-Framework Redeclaration Placeholder .................... -->
<!ENTITY % svg-postfw-redecl.module "IGNORE" >
<![%svg-postfw-redecl.module;[
%svg-postfw-redecl.mod;]]>

<!-- ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->

<!-- Core Attribute Module ....................................... -->
<!ENTITY % svg-core-attrib.module "INCLUDE" >
<![%svg-core-attrib.module;[
<!ENTITY % svg-core-attrib.mod
    PUBLIC "-//W3C//ENTITIES SVG 1.1 Core Attribute//EN"
           "svg-core-attrib.mod" >
%svg-core-attrib.mod;]]>

<!-- Viewport Attribute Module ................................... -->
<!ENTITY % svg-viewport-attrib.module "INCLUDE" >
<![%svg-viewport-attrib.module;[
<!ENTITY % svg-viewport-attrib.mod
    PUBLIC "-//W3C//ENTITIES SVG 1.1 Viewport Attribute//EN"
           "svg-viewport-attrib.mod" >
%svg-viewport-attrib.mod;]]>

<!-- Paint Attribute Module ...................................... -->
<!ENTITY % svg-paint-attrib.module "INCLUDE" >
<![%svg-paint-attrib.module;[
<!ENTITY % svg-paint-attrib.mod
    PUBLIC "-//W3C//ENTITIES SVG 1.1 Paint Attribute//EN"
           "svg-paint-attrib.mod" >
%svg-paint-attrib.mod;]]>

<!-- Opacity Attribute Module .................................... -->
<!ENTITY % svg-opacity-attrib.module "INCLUDE" >
<![%svg-opacity-attrib.module;[
<!ENTITY % svg-opacity-attrib.mod
    PUBLIC "-//W3C//ENTITIES SVG 1.1 Paint Opacity Attribute//EN"
           "svg-opacity-attrib.mod" >
%svg-opacity-attrib.mod;]]>

<!-- Graphics Attribute Module ................................... -->
<!ENTITY % svg-graphics-attrib.module "INCLUDE" >
<![%svg-graphics-attrib.module;[
<!ENTITY % svg-graphics-attrib.mod
    PUBLIC "-//W3C//ENTITIES SVG 1.1 Graphics Attribute//EN"
           "svg-graphics-attrib.mod" >
%svg-graphics-attrib.mod;]]>

<!-- Document Events Attribute Module ............................ -->
<!ENTITY % svg-docevents-attrib.module "INCLUDE" >
<![%svg-docevents-attrib.module;[
<!ENTITY % svg-docevents-attrib.mod
    PUBLIC "-//W3C//ENTITIES SVG 1.1 Document Events Attribute//EN"
           "svg-docevents-attrib.mod" >
%svg-docevents-attrib.mod;]]>

<!-- Graphical Element Events Attribute Module ................... -->
<!ENTITY % svg-graphevents-attrib.module "INCLUDE" >
<![%svg-graphevents-attrib.module;[
<!ENTITY % svg-graphevents-attrib.mod
    PUBLIC "-//W3C//ENTITIES SVG 1.1 Graphical Element Events Attribute//EN"
           "svg-graphevents-attrib.mod" >
%svg-graphevents-attrib.mod;]]>

<!-- Animation Events Attribute Module ........................... -->
<!ENTITY % svg-animevents-attrib.module "INCLUDE" >
<![%svg-animevents-attrib.module;[
<!ENTITY % svg-animevents-attrib.mod
    PUBLIC "-//W3C//ENTITIES SVG 1.1 Animation Events Attribute//EN"
           "svg-animevents-attrib.mod" >
%svg-animevents-attrib.mod;]]>

<!-- XLink Attribute Module ...................................... -->
<!ENTITY % svg-xlink-attrib.module "INCLUDE" >
<![%svg-xlink-attrib.module;[
<!ENTITY % svg-xlink-attrib.mod
    PUBLIC "-//W3C//ENTITIES SVG 1.1 XLink Attribute//EN"
           "svg-xlink-attrib.mod" >
%svg-xlink-attrib.mod;]]>

<!-- External Resources Attribute Module ......................... -->
<!ENTITY % svg-extresources-attrib.module "INCLUDE" >
<![%svg-extresources-attrib.module;[
<!ENTITY % svg-extresources-attrib.mod
    PUBLIC "-//W3C//ENTITIES SVG 1.1 External Resources Attribute//EN"
           "svg-extresources-attrib.mod" >
%svg-extresources-attrib.mod;]]>

<!-- ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->

<!-- Structure Module ............................................ -->
<!ENTITY % svg-structure.module "INCLUDE" >
<![%svg-structure.module;[
<!ENTITY % svg-structure.mod
    PUBLIC "-//W3C//ELEMENTS SVG 1.1 Structure//EN"
           "svg-structure.mod" >
%svg-structure.mod;]]>

<!-- Conditional Processing Module ............................... -->
<!ENTITY % svg-conditional.module "INCLUDE" >
<![%svg-conditional.module;[
<!ENTITY % svg-conditional.mod
    PUBLIC "-//W3C//ELEMENTS SVG 1.1 Conditional Processing//EN"
           "svg-conditional.mod" >
%svg-conditional.mod;]]>

<!-- Image Module ................................................ -->
<!ENTITY % svg-image.module "INCLUDE" >
<![%svg-image.module;[
<!ENTITY % svg-image.mod
    PUBLIC "-//W3C//ELEMENTS SVG 1.1 Image//EN"
           "svg-image.mod" >
%svg-image.mod;]]>

<!-- Style Module ................................................ -->
<!ENTITY % svg-style.module "INCLUDE" >
<![%svg-style.module;[
<!ENTITY % svg-style.mod
    PUBLIC "-//W3C//ELEMENTS SVG 1.1 Style//EN"
           "svg-style.mod" >
%svg-style.mod;]]>

<!-- Shape Module ................................................ -->
<!ENTITY % svg-shape.module "INCLUDE" >
<![%svg-shape.module;[
<!ENTITY % svg-shape.mod
    PUBLIC "-//W3C//ELEMENTS SVG 1.1 Shape//EN"
           "svg-shape.mod" >
%svg-shape.mod;]]>

<!-- Text Module ................................................. -->
<!ENTITY % svg-text.module "INCLUDE" >
<![%svg-text.module;[
<!ENTITY % svg-text.mod
    PUBLIC "-//W3C//ELEMENTS SVG 1.1 Text//EN"
           "svg-text.mod" >
%svg-text.mod;]]>

<!-- Color Profile Module ........................................ -->
<!ENTITY % svg-profile.module "INCLUDE" >
<![%svg-profile.module;[
<!ENTITY % svg-profile.mod
    PUBLIC "-//W3C//ELEMENTS SVG 1.1 Color Profile//EN"
           "svg-profile.mod" >
%svg-profile.mod;]]>

<!-- Gradient Module ............................................. -->
<!ENTITY % svg-gradient.module "INCLUDE" >
<![%svg-gradient.module;[
<!ENTITY % svg-gradient.mod
    PUBLIC "-//W3C//ELEMENTS SVG 1.1 Gradient//EN"
           "svg-gradient.mod" >
%svg-gradient.mod;]]>

<!-- Pattern Module .............................................. -->
<!ENTITY % svg-pattern.module "INCLUDE" >
<![%svg-pattern.module;[
<!ENTITY % svg-pattern.mod
    PUBLIC "-//W3C//ELEMENTS SVG 1.1 Pattern//EN"
           "svg-pattern.mod" >
%svg-pattern.mod;]]>

<!-- Basic Clip Module ........................................... -->
<!ENTITY % svg-clip.module "INCLUDE" >
<![%svg-clip.module;[
<!ENTITY % svg-clip.mod
    PUBLIC "-//W3C//ELEMENTS SVG 1.1 Basic Clip//EN"
           "svg-basic-clip.mod" >
%svg-clip.mod;]]>

<!-- Mask Module ................................................. -->
<!ENTITY % svg-mask.module "INCLUDE" >
<![%svg-mask.module;[
<!ENTITY % svg-mask.mod
    PUBLIC "-//W3C//ELEMENTS SVG 1.1 Mask//EN"
           "svg-mask.mod" >
%svg-mask.mod;]]>

<!-- Basic Filter Module ......................................... -->
<!ENTITY % svg-filter.module "INCLUDE" >
<![%svg-filter.module;[
<!ENTITY % svg-filter.mod
    PUBLIC "-//W3C//ELEMENTS SVG 1.1 Basic Filter//EN"
           "svg-basic-filter.mod" >
%svg-filter.mod;]]>

<!-- Hyperlinking Module ......................................... -->
<!ENTITY % svg-hyperlink.module "INCLUDE" >
<![%svg-hyperlink.module;[
<!ENTITY % svg-hyperlink.mod
    PUBLIC "-//W3C//ELEMENTS SVG 1.1 Hyperlinking//EN"
           "svg-hyperlink.mod" >
%svg-hyperlink.mod;]]>

<!-- View Module ................................................. -->
<!ENTITY % svg-view.module "INCLUDE" >
<![%svg-view.module;[
<!ENTITY % svg-view.mod
    PUBLIC "-//W3C//ELEMENTS SVG 1.1 View//EN"
           "svg-view.mod" >
%svg-view.mod;]]>

<!-- Scripting Module ............................................ -->
<!ENTITY % svg-script.module "INCLUDE" >
<![%svg-script.module;[
<!ENTITY % svg-script.mod
    PUBLIC "-//W3C//ELEMENTS SVG 1.1 Scripting//EN"
           "svg-script.mod" >
%svg-script.mod;]]>

<!-- Animation Module ............................................ -->
<!ENTITY % svg-animation.module "INCLUDE" >
<![%svg-animation.module;[
<!ENTITY % svg-animation.mod
    PUBLIC "-//W3C//ELEMENTS SVG 1.1 Animation//EN"
           "svg-animation.mod" >
%svg-animation.mod;]]>

<!-- Font Module ................................................. -->
<!ENTITY % svg-font.module "INCLUDE" >
<![%svg-font.module;[
<!ENTITY % svg-font.mod
    PUBLIC "-//W3C//ELEMENTS SVG 1.1 Font//EN"
           "svg-font.mod" >
%svg-font.mod;]]>

<!-- Extensibility Module ........................................ -->
<!ENTITY % svg-extensibility.module "INCLUDE" >
<![%svg-extensibility.module;[
<!ENTITY % svg-extensibility.mod
    PUBLIC "-//W3C//ELEMENTS SVG 1.1 Extensibility//EN"
           "svg-extensibility.mod" >
%svg-extensibility.mod;]]>

<!-- end of SVG 1.1 Basic DTD .............................................. -->
<!-- ....................................................................... -->

E.2. SVG Basic Document Model

This section contains the content model for SVG Basic. The content model module and the SVG Basic DTD Driver work together to customize the module implementations to the document type's specific requirements.

<!-- ....................................................................... -->
<!-- SVG 1.1 Basic Document Model Module ................................... -->
<!-- file: svg11-basic-model.mod

     This is SVG Basic, a proper subset of SVG.
     Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved.
     Revision: $Id: index.html,v 1.20 2002/11/15 18:48:18 clilley Exp $

     This DTD module is identified by the PUBLIC and SYSTEM identifiers:

        PUBLIC "-//W3C//ENTITIES SVG 1.1 Basic Document Model//EN"
        SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-basic-model.mod"

     ....................................................................... -->

<!-- SVG 1.1 Basic Document Model

     This module describes the groupings of elements that make up
     common content models for SVG elements.
-->

<!-- Content Models (Default) .......................... -->

<!ENTITY % SVG.Marker.class "" >
<!ENTITY % SVG.Cursor.class "" >

<!-- module: svg-structure.mod ......................... -->

<!ENTITY % SVG.Description.extra.class "" >
<!ENTITY % SVG.Description.class
    "%SVG.desc.qname; | %SVG.title.qname; | %SVG.metadata.qname;
     %SVG.Description.extra.class;"
>

<!ENTITY % SVG.Use.extra.class "" >
<!ENTITY % SVG.Use.class
    "| %SVG.use.qname; %SVG.Use.extra.class;"
>

<!ENTITY % SVG.Structure.extra.class "" >
<!ENTITY % SVG.Structure.class
    "| %SVG.svg.qname; | %SVG.g.qname; | %SVG.defs.qname; | %SVG.symbol.qname;
       %SVG.Use.class; %SVG.Structure.extra.class;"
>

<!-- module: svg-conditional.mod ....................... -->

<!ENTITY % SVG.Conditional.extra.class "" >
<!ENTITY % SVG.Conditional.class
    "| %SVG.switch.qname; %SVG.Conditional.extra.class;"
>

<!-- module: svg-image.mod ............................. -->

<!ENTITY % SVG.Image.extra.class "" >
<!ENTITY % SVG.Image.class
    "| %SVG.image.qname; %SVG.Image.extra.class;"
>

<!-- module: svg-style.mod ............................. -->

<!ENTITY % SVG.Style.extra.class "" >
<!ENTITY % SVG.Style.class
    "| %SVG.style.qname; %SVG.Style.extra.class;"
>

<!-- module: svg-shape.mod ............................. -->

<!ENTITY % SVG.Shape.extra.class "" >
<!ENTITY % SVG.Shape.class
    "| %SVG.path.qname; | %SVG.rect.qname; | %SVG.circle.qname;
     | %SVG.line.qname; | %SVG.ellipse.qname; | %SVG.polyline.qname;
     | %SVG.polygon.qname; %SVG.Shape.extra.class;"
>

<!-- module: svg-text.mod .............................. -->

<!ENTITY % SVG.Text.extra.class "" >
<!ENTITY % SVG.Text.class
    "| %SVG.text.qname; | %SVG.altGlyphDef.qname; %SVG.Text.extra.class;"
>

<!ENTITY % SVG.TextContent.extra.class "" >
<!ENTITY % SVG.TextContent.class
    "| %SVG.tspan.qname; | %SVG.tref.qname; | %SVG.textPath.qname;
     | %SVG.altGlyph.qname; %SVG.TextContent.extra.class;"
>

<!-- module: svg-profile.mod ........................... -->

<!ENTITY % SVG.Profile.extra.class "" >
<!ENTITY % SVG.Profile.class
    "| %SVG.color-profile.qname; %SVG.Profile.extra.class;"
>

<!-- module: svg-gradient.mod .......................... -->

<!ENTITY % SVG.Gradient.extra.class "" >
<!ENTITY % SVG.Gradient.class
    "| %SVG.linearGradient.qname; | %SVG.radialGradient.qname;
       %SVG.Gradient.extra.class;"
>

<!-- module: svg-pattern.mod ........................... -->

<!ENTITY % SVG.Pattern.extra.class "" >
<!ENTITY % SVG.Pattern.class
    "| %SVG.pattern.qname; %SVG.Pattern.extra.class;"
>

<!-- module: svg-basic-clip.mod ........................ -->

<!ENTITY % SVG.Clip.extra.class "" >
<!ENTITY % SVG.Clip.class
    "| %SVG.clipPath.qname; %SVG.Clip.extra.class;"
>

<!-- module: svg-mask.mod .............................. -->

<!ENTITY % SVG.Mask.extra.class "" >
<!ENTITY % SVG.Mask.class
    "| %SVG.mask.qname; %SVG.Mask.extra.class;"
>

<!-- module: svg-basic-filter.mod ...................... -->

<!ENTITY % SVG.Filter.extra.class "" >
<!ENTITY % SVG.Filter.class
    "| %SVG.filter.qname; %SVG.Filter.extra.class;"
>

<!ENTITY % SVG.FilterPrimitive.extra.class "" >
<!ENTITY % SVG.FilterPrimitive.class
    "| %SVG.feBlend.qname; | %SVG.feColorMatrix.qname;
     | %SVG.feComponentTransfer.qname; | %SVG.feComposite.qname;
     | %SVG.feFlood.qname; | %SVG.feGaussianBlur.qname; | %SVG.feImage.qname;
     | %SVG.feMerge.qname; | %SVG.feOffset.qname; | %SVG.feTile.qname;
       %SVG.FilterPrimitive.extra.class;"
>

<!-- module: svg-hyperlink.mod ......................... -->

<!ENTITY % SVG.Hyperlink.extra.class "" >
<!ENTITY % SVG.Hyperlink.class
    "| %SVG.a.qname; %SVG.Hyperlink.extra.class;"
>

<!-- module: svg-view.mod .............................. -->

<!ENTITY % SVG.View.extra.class "" >
<!ENTITY % SVG.View.class
    "| %SVG.view.qname; %SVG.View.extra.class;"
>

<!-- module: svg-script.mod ............................ -->

<!ENTITY % SVG.Script.extra.class "" >
<!ENTITY % SVG.Script.class
    "| %SVG.script.qname; %SVG.Script.extra.class;"
>

<!-- module: svg-animation.mod ......................... -->

<!ENTITY % SVG.Animation.extra.class "" >
<!ENTITY % SVG.Animation.class
    "%SVG.animate.qname; | %SVG.set.qname; | %SVG.animateMotion.qname; |
     %SVG.animateColor.qname; | %SVG.animateTransform.qname;
     %SVG.Animation.extra.class;"
>

<!-- module: svg-font.mod .............................. -->

<!ENTITY % SVG.Font.extra.class "" >
<!ENTITY % SVG.Font.class
    "| %SVG.font.qname; | %SVG.font-face.qname; %SVG.Font.extra.class;"
>

<!-- module: svg-extensibility.mod ..................... -->

<!ENTITY % SVG.Extensibility.extra.class "" >
<!ENTITY % SVG.Extensibility.class
    "| %SVG.foreignObject.qname; %SVG.Extensibility.extra.class;"
>

<!-- end of svg11-basic-model.mod -->

Appendix F. Conformance Criteria

This appendix is normative.

This section describes conformance criteria for SVG Tiny and SVG Basic Document Fragments and User Agents. These criteria take SVG 1.1 conformance criteria as a base, and add or relax restrictions.

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119].

F.1. SVG Tiny Conformance Criteria

Fragment Conformance

A conforming SVG Tiny document fragment is a document fragment that requires only the facilities described as mandatory in this specification. Such a document fragment MUST meet all the following criteria:

User Agent Conformance

A conforming SVG Tiny User Agent is a User Agent that requires only the facilities described as mandatory in this specification. Such a User Agent MUST meet all the following criteria:

Dynamic SVGT User Agent Conformance

Specific criteria that apply for only Conforming Dynamic SVGT Viewers:.

SVGT User Agent Compatibility Issues

Specific criteria that apply for behavior when SVGT User Agents encounter elements and attributes that are not recognized, and other compatibility issues:

F.2. SVG Basic Conformance Criteria

Document Fragment Conformance

A conforming SVG Basic document fragment is a document fragment that requires only the facilities described as mandatory in this specification. Such a document fragment MUST meet all the following criteria:

User Agent Conformance

A conforming SVG Basic User Agent is a User Agent that requires only the facilities described as mandatory in this specification. Such a User Agent MUST meet all the following criteria:

Dynamic SVG Basic User Agent Conformance

Specific criteria that apply for only Conforming Dynamic SVGB Viewers:.

SVG Basic User Agent Compatibility Issues

Specific criteria that apply for behavior when SVGB UAs encounter elements and attributes that are not recognized, and other compatibility issues:


Appendix G. Mobile SVG DOM

This appendix is normative.

This appendix defines the SVG DOM subset used by Mobile SVG 1.1 Profiles. SVG Tiny User Agents are not required to support Mobile SVG DOM. Dynamic SVG Basic User Agents that support scripting MUST support SVG Basic Core Interfaces as defined in this appendix. Dynamic SVG Basic User Agents SHOULD support SVG Basic Extended Interfaces as defined in this appendix.

An SVG Basic DOM application can use the 'hasFeature' method of the DOMImplementation interface to verify if SVG Basic Core or SVG Basic Extended interfaces are supported. The list of available feature strings is provided in section 3 of this specification.

G.1. DOM Core

Interface: DOMImplementation

Name Type SVGB Core SVGB Extended
hasFeature method yes yes
createDocumentType method no no
createDocument method yes yes

Interface: Node

nodeName ro attribute yes yes
nodeValue attribute yes yes
nodeType ro attribute yes yes
parentNode ro attribute yes yes
childNodes ro attribute yes yes
firstChild ro attribute yes yes
lastChild ro attribute yes yes
previousSibling ro attribute yes yes
nextSibling ro attribute yes yes
attributes ro attribute no yes
ownerDocument ro attribute yes yes
insertBefore method yes yes
replaceChild method yes yes
removeChild method yes yes
appendChild method yes yes
hasChildNodes method yes yes
cloneNode method no no
normalize method yes yes
isSupported method yes yes
namespaceURI ro attribute yes yes
prefix ro attribute yes yes
localName ro attribute yes yes
hasAttributes method no yes

Interface: NodeList

item method no yes
length ro attribute no yes

Interface: NamedNodeMap

getNamedItem method no yes
setNamedItem method no yes
removeNamedItem method no yes
item method no yes
getNamedItemNS method no yes
setNamedItemNS method no yes
removeNamedItemNS method no yes

Interface: CharacterData

data attribute yes yes
length ro attribute yes yes
substringData method yes yes
appendData method yes yes
insertData method yes yes
deleteData method yes yes
replaceData method yes yes

Interface: Attr

name ro attribute no yes
specified ro attribute no yes
value attribute no yes
ownerElement ro attribute no yes

Interface: Element

tagName ro attribute yes yes
getAttribute method yes yes
setAttribute method yes yes
removeAttribute method yes yes
getAttributeNode method no yes
setAttributeNode method no yes
removeAttributeNode method no yes
getElementsByTagName method no yes
getAttributeNS method yes yes
setAttributeNS method yes yes
removeAttributeNS method yes yes
getAttributeNodeNS method no yes
setAttributeNodeNS method no yes
getElementsByTagNameNS method no yes
hasAttribute method yes yes
hasAttributeNS method yes yes

Interface: Text

splitText method yes yes

Interface: Comment

Not supported

Interface: CDATASection

Not supported

Interface: DocumentType

Not supported

Interface: Notation

Not supported

Interface: Entity

Not supported

Interface: EntityReference

Not supported

Interface: ProcessingInstruction

Not supported

Interface: DocumentFragment

Not supported

Interface: Document

doctype ro attribute yes yes
implementation ro attribute yes yes
documentElement ro attribute yes yes
createElement method yes yes
createDocumentFragment method yes yes
createTextNode method yes yes
createComment method no no
createCDATASection method yes yes
createProcessingInstruction method no no
createAttribute method no yes
createEntityReference method no no
getElementsByTagName method no yes
importNode method no no
createElementNS method yes yes
createAttributeNS method no yes
getElementsByTagNameNS method no yes
getElementById method yes yes

G.2. DOM2 Events

Interface: EventTarget

Name Type SVGB Core SVGB Extended
addEventListener method yes yes
removeEventListener method yes yes
dispatchEvent method yes yes

Interface: EventListener

handleEvent method yes yes

Interface: Event

type ro attribute yes yes
target ro attribute yes yes
currentTarget ro attribute yes yes
eventPhase ro attribute yes yes
bubbles ro attribute yes yes
cancelable ro attribute yes yes
timeStamp ro attribute yes yes
stopPropagation method yes yes
preventDefault method yes yes
initEvent method yes yes

Interface: DocumentEvent

createEvent method yes yes

Interface: UIEvent

detail ro attribute yes yes
initUIEvent method yes yes

Interface: MouseEvent

screenX ro attribute yes yes
screenY ro attribute yes yes
clientX ro attribute yes yes
clientY ro attribute yes yes
ctrlKey ro attribute yes yes
shiftKey ro attribute yes yes
altKey ro attribute yes yes
metaKey ro attribute yes yes
button ro attribute yes yes
relatedTarget ro attribute yes yes
initMouseEvent method yes yes

Interface: MutationEvent

Not supported

G.3. SMIL DOM

Interface: ElementTimeControl

Name Type SVGB Core SVGB Extended
beginElement method yes yes
beginElementAt method yes yes
endElement method yes yes
endElementAt method yes yes

Interface: TimeEvent

detail ro attribute yes yes
initTimeEvent method yes yes

Interface: beginEvent

Not supported

Interface: endEvent

Not supported

Interface: repeatEvent

Not supported

G.4. SVG DOM

Interface: SVGElement

id ro attribute yes yes
xmlbase ro attribute no no
ownerSVGElement ro attribute yes yes
viewportElement ro attribute yes yes

Interface: SVGRect

x ro attribute yes yes
y ro attribute yes yes
width ro attribute yes yes
height ro attribute yes yes

Interface: SVGLocatable

nearestViewportElement ro attribute yes yes
farthestViewportElement ro attribute yes yes
getBBox method yes yes
getCTM method no yes
getScreenCTM method no no
getTransformToElement method no no

Interface: SVGTransformable

Not supported

Interface: SVGDocument

title attribute yes yes
referrer ro attribute yes yes
domain ro attribute yes yes
URL ro attribute yes yes
rootElement ro attribute yes yes

Interface: GetSVGDocument

Not supported

Interface: SVGSVGElement

x ro attribute no no
y ro attribute no no
width ro attribute no no
height ro attribute no no
contentScriptType attribute no no
contentStyleType attribute no no
viewport ro attribute no no
pixelUnitToMillimeterX ro attribute no no
pixelUnitToMillimeterY ro attribute no no
screenPixelToMillimeterX ro attribute no no
screenPixelToMillimeterY ro attribute no no
useCurrentView no no
currentView ro attribute no no
currentScale attribute yes yes
currentTranslate ro attribute yes yes
suspendRedraw method yes yes
unsuspendRedraw method yes yes
forceRedraw method yes yes
pauseAnimations method yes yes
unpauseAnimations method yes yes
animationsPaused method yes yes
getCurrentTime method yes yes
setCurrentTime method yes yes
getIntersectionList method no yes
getEnclosureList method no yes
checkIntersection method no yes
checkEnclosure method no yes
deselectAll method no no
createSVGNumber method no no
createSVGLength method no no
createSVGAngle method no no
createSVGPoint method no yes
createSVGMatrix method no yes
createSVGRect method yes yes
createSVGTransform method no no
createSVGTransformFromMatrix method no no
getElementById method yes yes

Interface: SVGGElement

Not supported

Interface: SVGDefsElement

Not supported

Interface: SVGDescElement

Not supported

Interface: SVGTitleElement

Not supported

Interface: SVGSymbolElement

Not supported

Interface: SVGUseElement

Not supported

Interface: SVGImageElement

Not supported

Interface: SVGSwitchElement

Not supported

Interface: SVGStyleElement

Not supported

Interface: SVGPoint

x attribute no yes
y attribute no yes
matrixTransform method no yes

Interface: SVGMatrix

a attribute no yes
b attribute no yes
c attribute no yes
d attribute no yes
e attribute no yes
f attribute no yes
multiply method no yes
inverse method no yes
translate method no yes
scale method no yes
scaleNonUniform method no yes
rotate method no yes
rotateFromVector method no yes
flipX method no yes
flipY method no yes
skewX method no yes
skewY method no yes

Interface: SVGPathSeg

Not supported

Interface: SVGPathSegClosePath

Not supported

Interface: SVGPathSegMovetoAbs

Not supported

Interface: SVGPathSegMovetoRel

Not supported

Interface: SVGPathSegLinetoAbs

Not supported

Interface: SVGPathSegLinetoRel

Not supported

Interface: SVGPathSegCurvetoCubicAbs

Not supported

Interface: SVGPathSegCurvetoCubicRel

Not supported

Interface: SVGPathSegCurvetoQuadraticAbs

Not supported

Interface: SVGPathSegCurvetoQuadraticRel

Not supported

Interface: SVGPathSegArcAbs

Not supported

Interface: SVGPathSegArcRel

Not supported

Interface: SVGPathSegLinetoHorizontalAbs

Not supported

Interface: SVGPathSegLinetoHorizontalRel

Not supported

Interface: SVGPathSegLinetoVerticalAbs

Not supported

Interface: SVGPathSegLinetoVerticalRel

Not supported

Interface: SVGPathSegCurvetoCubicSmoothAbs

Not supported

Interface: SVGPathSegCurvetoCubicSmoothRel

Not supported

Interface: SVGPathSegCurvetoQuadraticSmoothAbs

Not supported

Interface: SVGPathSegCurvetoQuadraticSmoothRel

Not supported

Interface: SVGPathSegList

Not supported

Interface: SVGAnimatedPathData

Not supported

Interface: SVGPathElement

getTotalLength method no yes
getPointAtLength method no yes
getPathSegAtLength method no no
createSVGPathSegClosePath method no no
createSVGPathSegMovetoAbs method no no
createSVGPathSegMovetoRel method no no
createSVGPathSegLinetoAbs method no no
createSVGPathSegLinetoRel method no no
createSVGPathSegCurvetoCubicAbs method no no
createSVGPathSegCurvetoCubicRel method no no
createSVGPathSegCurvetoQuadraticAbs method no no
createSVGPathSegCurvetoQuadraticRel method no no
createSVGPathSegArcAbs method no no
createSVGPathSegArcRel method no no
createSVGPathSegLinetoHorizontalAbs method no no
createSVGPathSegLinetoHorizontalRel method no no
createSVGPathSegLinetoVerticalAbs method no no
createSVGPathSegLinetoVerticalRel method no no
createSVGPathSegCurvetoCubicSmoothAbs method no no
createSVGPathSegCurvetoCubicSmoothRel method no no
createSVGPathSegCurvetoQuadraticSmoothAbs method no no
createSVGPathSegCurvetoQuadraticSmoothRel method no no

Interface: SVGRectElement

Not supported

Interface: SVGCircleElement

Not supported

Interface: SVGEllipseElement

Not supported

Interface: SVGLineElement

Not supported

Interface: SVGPolylineElement

Not supported

Interface: SVGPolygonElement

Not supported

Interface: SVGTextContextElement

textLength roattribute yes yes
lengthAdjust roattribute yes yes
getNumberOfChars method yes yes
getComputedTextLength method yes yes
getSubStringLength method yes yes
getStartPositionOfChar method yes yes
getEndPositionOfChar method yes yes
getExtentOfChar method yes yes
getRotationOfChar method yes yes
getCharNumAtPosition method yes yes
selectSubString method no no

Interface: SVGZoom

Not supported

Interface: SVGResize

Not supported

Interface: SVGScroll

Not supported

Interface: SVGTextPositioningElement

Not supported

Interface: SVGTextElement

Not supported

Interface: SVGTSpanElement

Not supported

Interface: SVGTRefElement

Not supported

Interface: SVGTextPathElement

Not supported

Interface: SVGAltGlyphElement

Not supported

Interface: SVGAltGlyphDefElement

Not supported

Interface: SVGAltGlyphRefElement

Not supported

Interface: SVGColorProfileElement

Not supported

Interface: SVGGradientElement

Not supported

Interface: SVGLinearGradientElement

Not supported

Interface: SVGRadialGradientElement

Not supported

Interface: SVGStopElement

Not supported

Interface: SVGPatternElement

Not supported

Interface: SVGClipPathElement

Not supported

Interface: SVGMaskElement

Not supported

Interface: SVGFilterElement

Not supported

Interface: SVGFEDiffuseLightingElement

Not supported

Interface: SVGFEFloodElement

Not supported

Interface: SVGFEImageElement

Not supported

Interface: SVGFESpecularLightingElement

Not supported

Interface: SVGAElement

Not supported

Interface: SVGScriptElement

Not supported

Interface: SVGAnimationElement

Not supported

Interface: SVGAnimateElement

Not supported

Interface: SVGSetElement

Not supported

Interface: SVGAnimateMotionElement

Not supported

Interface: SVGAnimateColorElement

Not supported

Interface: SVGAnimateTransformElement

Not supported

Interface: SVGFontElement

Not supported

Interface: SVGGlyphElement

Not supported

Interface: SVGMissingGlyphElement

Not supported

Interface: SVGHKernElement

Not supported

Interface: SVGVKernElement

Not supported

Interface: SVGFontFaceElement

Not supported

G.5. DOM CSS

Interface: StyleSheet

type ro attribute no no
disabled attribute no no
ownerNode ro attribute no no
parentStyleSheet ro attribute no no
href ro attribute no no
title ro attribute no no
media ro attribute no no

Interface: StyleSheetList

length ro attribute no no
item attribute no no

Interface: MediaList

mediaText attribute no no
length ro attribute no no
item attribute no no
deleteMedium attribute no no
appendMedium attribute no no

Interface: LinkStyle

sheet ro attribute no no

Interface: DocumentStyle

styleSheets ro attribute no no

Interface: CSSRuleList

length ro attribute no no
item method no no

Interface: CSSRule

type ro attribute no no
cssText attribute no no
parentStyleSheet ro attribute no no
parentRule ro attribute no no

Interface: CSSStyleRule

selectorText attribute no no
style ro attribute no no

Interface: CSSMediaRule

media ro attribute no no
cssRules ro attribute no no
insertRule method no no
deleteRule method no no

Interface: CSSFontFaceRule

style ro attribute no no

Interface: CSSPageRule

selectorText attribute no no
style ro attribute no no

Interface: CSSImportRule

href ro attribute no no
media ro attribute no no
styleSheet ro attribute no no

Interface: CSSCharsetRule

encoding attribute no no

Interface: CSSUnknownRule

Interface: CSSStyleDeclaration

cssText attribute no no
getPropertyValue method no no
getPropertyCSSValue method no no
removeProperty method no no
getPropertyPriority method no no
setProperty method no no
length ro attribute no no
item method no no
parentRule ro attribute no no

Interface: CSSValue

cssText attribute no no
valueType ro attribute no no

Interface: Counter

identifier ro attribute no no
listStyle ro attribute no no
seperator ro attribute no no

Interface: ElementCSSInlineStyle

style ro attribute no no

Interface: CSSStyleSheet

ownerRule ro attribute no no
cssRules ro attribute no no
insertRule method no no
deleteRule method no no