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-argumentproduction 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].