Appendix Q: Changes
Contents
This appendix is informative, not normative.
This appendix summarizes the changes from
SVG 1.1 First Edition.
Q.1 Stylistic changes
A number of stylistic changes have been made to the specification to make
it more readable. These include the following:
- DTD fragments used in the definition of SVG elements in the main chapters
have been replaced with (light blue) element summary boxes. These boxes
indicate the exact set of attributes that may be specified on the given
element, as well as a prose description of the element's content model. A
link to the DOM interface that must be implemented for the element is also
given.
- DOM interfaces are now listed in the Table of Contents for each chapter.
- IDL fragments in chapters now have links from interface members to their
definitions below, and links from interface names used as types to the
definitions of those interfaces (both within the SVG specification and
to other specifications, such as DOM Level 2 Core [DOM2]).
- Definitions of IDL members have been reformatted to be less cluttered.
- Comments in IDL noting what exceptions are raised on setting an attribute
have been replaced with OMG IDL
setraises()
clauses. - Element, attribute and property names are now linked to their definitions
more uniformly.
- The format of entries in the References appendix
has been cleaned up to be more consistent.
- The Attribute Index appendix has been changed
from a view of the attributes defined in the DTD to a simple table of attributes
and which elements they may be specified on. The appendix also now includes
a separate list of the presentation
attributes and which elements they may be specified on.
- Styles used throughout the document have been made more consistent.
- The EBNF used for syntax has been clearly defined.
Q.2 Incorporation of errata
All of the SVG 1.1 proposed errata available at
http://www.w3.org/2003/01/REC-SVG11-20030114-errata
have been incorporated into the Second Edition. While some of these
errata have not been incorporated verbatim due to various stylistic
changes that have been made in the Second Edition, the underlying issues
that resulted in these errata have still been fixed. For example,
the "Incorrect entries in the attribute index"
erratum specifies corrections to the Attribute Index
appendix. However, the Second Edition presents the attribute index somewhat
differently from the First Edition, so while the exact erratum changes
have not been applied, the attribute index in the Second Edition is indeed free
of the errors that were addressed by the erratum.
Q.3 Substantial changes
In addition to many minor typographical corrections and the stylistic changes
mentioned above, the following substantial changes were made.
Q.3.1 Across the whole document
Q.3.2 Introduction chapter
- Added the following terms:
animation elements,
animation event attribute,
conditional processing attribute,
core attributes,
document event attribute,
event attribute,
filter primitive attributes,
filter primitive element,
gradient element,
graphical event attribute,
light source element,
structural element
text content child element and
XLink attributes.
- Removed ‘clipPath’ from the container element definition.
- Moved the discussion about modularization to the DTD appendix.
- Added a note recommending against the use of DOCTYPE declarations in SVG documents.
Q.3.3 Basic Data Types and Interfaces chapter
- The list of basic data types
is now sorted alphabetically.
- Grammars for some basic data types
were added for clarity.
- The definition for the <list-of-Ts>
type (formerly <list of xxx>) was cleaned up.
- Small color chip images used in the Recognized color keyword names
list were replaced with CSS-styled boxes.
- A description for the SVGStylable interface was added.
- SVGStringList does not remove inserted strings from previous lists.
- Made the following operations throw DOMExceptions in the case of a
read only DOM node:
- Made SVGElement::id be the empty string
if the ‘id’ attribute is not present on the element.
- Clarified outermost svg element definition.
- Clarified that getBBox must return the bounds
of the content at the time the method is called, and not return old
bounds, e.g. because "frame tree" structures have not been updated to
take DOM changes into account.
- Clarified that getBBox does not consider clipping and masking as part of the geometry.
- Clarified that the item passed into SVGNumberList's 'initialize', 'getItem', 'insertItemBefore', 'replaceItem' and 'appendItem' methods is live.
- Clarified that the item passed into SVGLengthList's 'initialize', 'getItem', 'insertItemBefore', 'replaceItem' and 'appendItem' methods is live.
- Clarified the text for <length> to point out where the <number> part can or cannot contain contain scientific notation.
- Update the attribute descriptions in Interface SVGRect to more accurately reflect their nature as properties, not attributes in the XML sense.
- Noted that the 'getScreenCTM' method would have been more aptly named 'getClientCTM', but that the name is kept for historical reasons
- Required that any animVal objects are distinct from baseVal objects.
- Deprecated the interfaces that extend CSSValue.
Q.3.4 Document Structure chapter
- Prose definition for ‘xmlns:*’ attributes
on the ‘svg’ element has been dropped.
- The prefix "xlink" for the XLink namespace is now referred to as "common"
rather than "default".
- DTD fragments for XLink attributes, text describing how the DTD default
value for some of those attributes is different on different elements,
and the definition of an ‘xmlns:*’ attribute
for the XLink namespace have been dropped from
the IRI reference attributes
section.
- Changed SVGSVGElement::useCurrentView to be read only.
-
Clarified getSVGDocument behavior. Added a note about interface
deprecation and removed raising of a DOMException from that method.
- Clarified what happens if getCurrentTime/setCurrentTime is called before the document timeline has begun.
- Corrected references of 'fitBoxToViewport' to 'viewBox'.
- Removed exception on 'unsuspendRedraw' method.
- Clarified the meaning of the 'referenceElement' argument to the getIntersectionList and getEnclosureList methods.
Q.3.5 Styling chapter
Q.3.6 Coordinate Systems, Transformations and Units chapter
- The Geographic coordinate systems
section was updated to bring it into line with the corresponding section in
SVG Tiny 1.2. In particular, the attribute to specify an additional transform
that has been applied to geographic data was renamed from ‘transform’
to ‘svg:transform’.
- Made the following operations throw DOMExceptions in the case of a
read only DOM node:
- Clarified that the item passed into SVGPointList's 'initialize', 'getItem', 'insertItemBefore', 'replaceItem' and 'appendItem' methods is live.
- Clarified that the item passed into SVGTransformList's 'initialize', 'getItem', 'insertItemBefore', 'replaceItem' and 'appendItem' methods is live.
- Clarified that the item returned by SVGTransformList's 'consolidate' methods is live.
- Clarified that SVGTransform's 'matrix' member is like.
- Clarified that the matrix passed to SVGTransformList.createSVGTransformFromMatrix, SVGSVGElement.createSVGTransformFromMatrix and SVGTransform.setMatrix is copied.
Q.3.7 Paths chapter
- Clarified that 'Z' and 'z' in the path syntax have an identical effect.
-
Clarified that for multiple pairs of coordinates in a 'moveto' command ('m'
or 'M') the first pair of coordinates are always absolute. Subsequent
coordinates will be relative if a relative moveto 'm' was specified,
otherwise subsequent coordinates will be absolute if an absolute moveto 'M'
was specified.
- Clarified that the item passed into SVGPathSegList's 'initialize', 'getItem', 'insertItemBefore', 'replaceItem' and 'appendItem' methods is live.
- The
elliptical-arc-argument
production in the path data grammar was clarified with regard to comma-whitespace separators after the arc flags.
Q.3.8 Basic Shapes chapter
- Modified EBNF for points, to allow a coordinate pair to omit comma-wsp if the second coordinate is negative. This brings the EBNF into line with that for paths, and corresponds to implementation experience.
Q.3.9 Text chapter
- Separate sections and element summaries have been added for
‘altGlyph’, ‘altGlyphDef’, ‘altGlyphItem’ and
‘glyphRef’.
- Clarified that the operations on SVGTextContentElement work on
UTF-16 code units rather than Unicode characters.
- Clarified how ‘rotate’ is applied to text and nested ‘tspan’ elements.
- Clarified the return value of getNumberOfChars.
- Removed restriction for negative values in ‘startOffset’.
- Made several clarifications to SVGTextContentElement: Allowed the last character in a text content element to be measured with getSubStringLength; Removed the INDEX_SIZE_ERR exception in selectSubString and getSubStringLength for the cases where nchars is greater than the number of characters.
- Removed restriction for ‘tref’ element on only pointing into an SVG document fragment
- Clarified syntax for font family, with reference to CSS IDENT
Q.3.10 Painting chapter
- Made the following operations throw DOMExceptions in the case of a
read only DOM node:
- Clarified the stroking of subpaths of zero length.
- Changed ‘stroke-dasharray’ to allow values separated by
a comma and/or white space.
- Clarified that linear interpolation of color means per-component linear interpolation, in case that was not obvious.
- Clarified that currentColor is the current animated value of the color property.
Q.3.11 Gradients and Patterns chapter
- Add text to the Patterns section explicitly stating that setting the
‘overflow’ property to the value visible
on a ‘pattern’ element produces undefined behaviour.
Q.3.12 Clipping, Masking and Compositing chapter
- Clarified application of the ‘clip-path’ property, and how the clipping path is generated.
- Fixed the content model of the ‘clipPath’ element in the DTD so that it does not allow an ‘altGlyphDef’ child.
- The initial value for the ‘overflow’ property is visible for the root SVG element.
Q.3.13 Filters chapter
Q.3.14 Interactivity chapter
- Remove confusing language about SVGLoad event triggering and simply say "The SVGLoad event does not bubble."
- Clarified ‘pointer-events’ and fallback values, referring to the actual value rather than the plain property value in the visiblePainted description.
- Clarified how ‘filter’, ‘mask’ and ‘clip-path’ affects ‘pointer-events’.
- Added rationale for pointing to cursor element, updated example
Q.3.15 Scripting chapter
- Changed the default value of ‘contentScriptType’ to
'application/ecmascript'.
- Added a definition of the ‘xlink:href’ attribute on
the ‘script’ element.
- Dropped the DTD fragments for the event listener attributes and
replaced them with sections defining those attributes.
- Dropped the SVGEvent interface. The SVG events that previously used the
SVGEvent interface now use the Event interface. Requirements on whether
the events bubble or are cancelable were moved to the
table of supported events in the
Interactivity chapter.
- Defined how the ‘type’ attribute affects script processing.
Q.3.16 Animation chapter
- Cleaned up the description of the ‘rotate’
attribute.
- Pointed out that whitespace around individual values in
‘values’ is ignored.
- Explicitly pointed out that to animations using
‘animateTransform’ are undefined.
- Included an example demonstrating the use of a by animation
using ‘animateTransform’ with type="scale".
- Removed the inline Java binding for the TimeEvent interface
and replaced it with a reference to the one defined in SMIL Animation.
- Brought the ElementTimeControl interface in to line with
SMIL 3.
-
Added ‘svg’ element to the list of elements which can be animated
by an ‘animateMotion’ element.
-
Clarified return value for getStartTime method.
Modified IDL to raise an exception when an animation does not have a
current interval.
- Clarify values of keySpline syntax to allow delimiters to be either commas or spaces.
Q.3.17 Fonts chapter
Q.3.18 SVG Document Object Model (DOM) appendix
- Added the Elements in the SVG DOM
section to define what interfaces a DOM node corresponding to an SVG element
must implement.
- Added definitions for the exception codes defined on SVGException.
- Corrected misspelled references to CSSValue::cssValueType.
- Added definition of access for default uninitialized values in DOM.
- Append text to the end of B1 clarifying that all SVG DOM objects that directly correspond to an attribute are live.
- Added a section clarifying what it means for a node to be read only.
- Deprecated the getPresentationAttribute method and the interfaces that extend CSSValue.
Q.3.19 IDL Definitions appendix
- Corrected the link to the IDL zip file.
Q.3.20 Java Language Binding appendix
- Corrected the EventListenerInitializer
interface to use correct Java syntax.
Q.3.21 ECMAScript Language Binding appendix
- The ECMAScript language binding is now normative.
- Substantially rewrote the language binding. Now instead of being an
automatically generated list of objects and properties, the appendix
explains how definitions in the IDL map to ECMAScript constructs.
- Updated the definition of a Conforming SVG Document Fragment to be more precise about how the DTD is to be used.
- Removed the definition of Conforming SVG Included Document Fragment.
- Added the definition of a Conforming SVG DOM Subtree.
- Clarified the text on gzip-encoding and added text on deflate-encoding.
Q.3.23 References appendix
- Added the following normative references:
[DOM2EVENTS],
[DOM2STYLE],
[DOM2VIEWS] and
[RFC4329].
- Added the following informative references:
[DOM3],
[XSLT2] and
[WINDOW].
- Updated the following references:
Old | New |
---|
[OpenGIS] | [GML] (version 3.2.1) |
[RFC2279] | [RFC3629] |
Charmod 1.0 Working Draft [CHARMOD] | Charmod 1.0 Fundamentals [CHARMOD] |
MathML 2.0 [MATHML] | MathML 2.0 (Second Edition) [MATHML] |
RDF Model and Syntax [RDF10] | RDF Primer [RDF-PRIMER] |
XHTML 1.0 [XHTML] | XHTML 1.0 (Second Edition) [XHTML] |
WCAG 1.0 [WCAG] | WCAG 2.0 [WCAG2] |
PNG 1.0 [PNG10] | PNG 1.0 (Second Edition) [PNG] |
[RFC2396] | [RFC3986] |
[RFC3066] | [BCP47] |
Unicode 3.2.0 [UNICODE] | Unicode 5.1.0 [UNICODE] |
XML 1.0 (Second Edition) [XML10] | XML 1.0 (Fifth Edition) [XML10] |
XML Base [XML-BASE] | XML Base (Second Edition) [XML-BASE] |
Namespaces in XML [XML-NS] | Namespaces in XML 1.0 (Second Edition) [XML-NS] |
XSL 1.0 [XSL] | XSL 1.1 [XSL] |
- Corrected the [RFC2045] reference to [RFC2046].
- Removed the following references: [RDFS], [RFC2141] and [WAI].
- Changed the following references from informative to normative:
[XSL].
- Changed the following references from normative to informative:
[SMIL1],
[SVG10],
[WCAG2] and
[XHTMLplusMathMLplusSVG].