W3C home > Mailing lists > Public > public-svg-wg@w3.org > January to March 2014

svg2: ACTION-3580: Remove <use> element instance tree.

From: SVG Working Group repository <cam+svgwgrepo@mcc.id.au>
Date: Fri, 07 Feb 2014 06:13:16 -0800
Message-Id: <hg.bec3575de544.1391782396.3034738116371802840@ps58493.dreamhostps.com>
To: public-svg-wg@w3.org
details:   https://svgwg.org/hg/svg2/rev/bec3575de544
branches:  
changeset: 611:bec3575de544
user:      Erik Dahlstrom <ed@opera.com>
date:      Fri Feb 07 15:09:43 2014 +0100
description:
ACTION-3580: Remove <use> element instance tree.

As part of this, add references to Shadow DOM, doing
a part of ACTION-3413. This needs further review and
changes for the style parts, but it's a start. We can
probably remove or make some parts of the spec text
about instance trees informative, and refer to
Shadow DOM instead.

diffstat:

 master/changes.html    |    6 +
 master/definitions.xml |    2 -
 master/idlindex.html   |    2 -
 master/interact.html   |    9 +-
 master/refs.html       |    8 +
 master/struct.html     |  264 ++----------------------------------------------
 6 files changed, 30 insertions(+), 261 deletions(-)

diffs (484 lines):

diff --git a/master/changes.html b/master/changes.html
--- a/master/changes.html
+++ b/master/changes.html
@@ -113,16 +113,20 @@ have been made.</p>
 
   <li>Clarified that CSS transforms on an <a>outermost svg element</a> do not affect <a href="struct.html#__svg__SVGSVGElement__currentScale">currentScale</a> or <a href="struct.html#__svg__SVGSVGElement__currentTranslate">currentTranslate</a>. Defined the returned values on <a>'svg'</a> elements that are not <a>outermost svg element</a>.</li>
 
   <li class="added-since-last-wd">Deprecated the <a href="struct.html#__svg__SVGDocument__rootElement">rootElement</a> attribute.</li>
 
   <li class="added-since-last-wd">Defined event handler content attributes and IDL attributes on the root <a>'svg'</a> element to be for events fired at the <a>Window</a>, like HTML's event handler content attributes and IDL attribute on <code>body</code>.</li>
 
   <li class="added-since-last-wd">Moved the <a>'image'</a> element to the <a href='embedded.html'>Embedded Content chapter</a>.</li>
+
+  <li class="added-since-last-wd">Removed the <code>SVGElementInstance</code> and <code>SVGElementInstanceList</code> interfaces, and the corresponding attributes on the <a>SVGUseElement</a> interface.</li>
+  
+  <li class="added-since-last-wd">Changed the <a>'use'</a> element event flow to follow the Shadow DOM spec.</li>
 </ul>
 
 <h3 id="styling">Styling chapter</h3>
 
 <ul>
   <li>Removed the <span class="attr-name">'contentStyleType'</span> attribute.</li>
 </ul>
 
@@ -354,16 +358,18 @@ have been made.</p>
 
   <li>Added normative references to CSS3 Color, CSS3 Fonts, CSS3 Line Box, CSS3 Transforms, CSS3 UI, CSS3 Values and Units, CSS4 Images, Filter Effects, WOFF, Web IDL.</li>
 
   <li>Added informative references to CSS 3 Transitions and Animations.</li>
 
   <li class='added-since-last-wd'>Updated reference from DOM Level 2 Events to DOM Level 3 Events and added a normative reference to UI Events.</li>
 
   <li class='added-since-last-wd'>Added normative reference to WAI-ARIA 1.1.</li>
+
+  <li class='added-since-last-wd'>Added normative reference to Shadow DOM.</li>
 </ul>
 
 <h3 id="idlindex">IDL Index appendix</h3>
 
 <ul>
   <li>Added this appendix.</li>
 </ul>
 
diff --git a/master/definitions.xml b/master/definitions.xml
--- a/master/definitions.xml
+++ b/master/definitions.xml
@@ -1203,18 +1203,16 @@
   <interface name='SVGElement' href='types.html#InterfaceSVGElement'/>
   <interface name='SVGDefsElement' href='struct.html#InterfaceSVGDefsElement'/>
   <interface name='SVGTitleElement' href='struct.html#InterfaceSVGTitleElement'/>
   <interface name='SVGDescElement' href='struct.html#InterfaceSVGDescElement'/>
   <interface name='SVGDiscardeElement' href='struct.html#InterfaceSVGDescElement'/>
   <interface name='SVGSymbolElement' href='struct.html#InterfaceSVGSymbolElement'/>
   <interface name='SVGUseElement' href='struct.html#InterfaceSVGUseElement'/>
   <interface name='SVGPathElement' href='paths.html#InterfaceSVGPathElement'/>
-  <interface name='SVGElementInstance' href='struct.html#InterfaceSVGElementInstance'/>
-  <interface name='SVGElementInstanceList' href='struct.html#InterfaceSVGElementInstanceList'/>
   <interface name='SVGImageElement' href='struct.html#InterfaceSVGImageElement'/>
   <interface name='SVGSwitchElement' href='struct.html#InterfaceSVGSwitchElement'/>
   <interface name='GetSVGDocument' href='struct.html#InterfaceGetSVGDocument'/>
   <interface name='SVGAnimatedInteger' href='types.html#InterfaceSVGAnimatedInteger'/>
   <interface name='SVGAnimatedNumber' href='types.html#InterfaceSVGAnimatedNumber'/>
   <interface name='SVGAnimatedLength' href='types.html#InterfaceSVGAnimatedLength'/>
   <interface name='SVGAnimatedEnumeration' href='types.html#InterfaceSVGAnimatedEnumeration'/>
   <interface name='SVGViewSpec' href='types.html#InterfaceSVGViewSpec'/>
diff --git a/master/idlindex.html b/master/idlindex.html
--- a/master/idlindex.html
+++ b/master/idlindex.html
@@ -47,18 +47,16 @@
   <li><a>SVGClipPathElement</a></li>
   <li><a>SVGColorProfileElement</a></li>
   <li><a>SVGColorProfileRule</a></li>
   <li><a>SVGCursorElement</a></li>
   <li><a>SVGDefsElement</a></li>
   <li><a>SVGDescElement</a></li>
   <li><a>SVGDocument</a></li>
   <li><a>SVGElement</a></li>
-  <li><a>SVGElementInstance</a></li>
-  <li><a>SVGElementInstanceList</a></li>
   <li><a>SVGEllipseElement</a></li>
   <li><a>SVGFitToViewBox</a></li>
   <li><a>SVGFontElement</a></li>
   <li><a>SVGFontFaceElement</a></li>
   <li><a>SVGFontFaceFormatElement</a></li>
   <li><a>SVGFontFaceNameElement</a></li>
   <li><a>SVGFontFaceSrcElement</a></li>
   <li><a>SVGFontFaceUriElement</a></li>
diff --git a/master/interact.html b/master/interact.html
--- a/master/interact.html
+++ b/master/interact.html
@@ -539,21 +539,20 @@ event.) When an element is not displayed
 or one of its ancestors has a value of <span
 class="prop-value">none</span>), that element cannot be the
 target of pointer events.</p>
 
 <p>If a target element for the pointer event exists, then
 the event is dispatched to that element according to the
 normal <a href='http://www.w3.org/TR/2013/WD-DOM-Level-3-Events-20131105/#event-flow'>event flow</a>
 ([<a href='refs.html#ref-DOM3EVENTS'>DOM3EVENTS</a>], section 1.2).
-Note, however, that if the target element is in a
-<a>'use'</a> element shadow tree, that the event flow
-will include <a>SVGElementInstance</a> objects.  See
-<a href='struct.html#UseElement'>The <span class='element-name'>'use'</span> element</a>
-for details.</p>
+For shadow trees created by the <a>'use'</a> element or via script,
+the event must follow the Shadow DOM
+<a href="http://www.w3.org/TR/2013/WD-shadow-dom-20130514/#event-dispatch">event dispatching algorithm</a> [<a href="refs.html#ref-SHADOWDOM">SHADOWDOM</a>]
+</p>
 
 <p>If a target element for the pointer event does not exist,
 then the event is ignored.</p>
 
 <h2 id="pointer-processing">Hit-testing and processing order for user interface events</h2>
 
 <p>There are two distinct aspects of pointer-device interaction with an element or area:</p>
 
diff --git a/master/refs.html b/master/refs.html
--- a/master/refs.html
+++ b/master/refs.html
@@ -396,16 +396,24 @@
     </dd>
 
   <dt id="ref-RFC4329" class="normref">[RFC4329]</dt>
   <dd>
     <cite><a href="http://www.ietf.org/rfc/rfc4329.txt">Scripting Media Types</a></cite>,
     B. Höhrmann, April 2006.
     <br/>Available at http://www.ietf.org/rfc/rfc4329.txt.
   </dd>
+  
+  <dt id="ref-SHADOWDOM" class="normref">[SHADOWDOM]</dt>
+  <dd>
+    <cite class="w3cwd"><a href="http://www.w3.org/TR/2013/WD-shadow-dom-20130514/">Shadow DOM</a></cite>,
+    D. Glazkov, eds. 14 May 2013.
+    <br/>This edition of Shadow DOM is http://www.w3.org/TR/2013/WD-shadow-dom-20130514/.
+    <br/>The <a href="http://www.w3.org/TR/shadow-dom/">latest edition of Shadow DOM</a> is available at http://www.w3.org/TR/shadow-dom/.
+  </dd>
 
   <dt id="ref-SMIL" class="normref">[SMIL]</dt>
   <dd>
     <cite class="w3crec"><a href="http://www.w3.org/TR/2008/REC-SMIL3-20081201/">Synchronized Multimedia Integration Language (SMIL 3.0)</a></cite>,
     D. Bulterman <em>et al.</em>, eds.  01 December 2008.
     <br/>This edition of SMIL is http://www.w3.org/TR/2008/REC-SMIL3-20081201/.
     <br/>The <a href="http://www.w3.org/TR/smil/">latest edition of SMIL</a> is available at http://www.w3.org/TR/smil/.
   </dd>
diff --git a/master/struct.html b/master/struct.html
--- a/master/struct.html
+++ b/master/struct.html
@@ -1170,44 +1170,43 @@ we define <a>'use'</a> to work in terms 
 element had been textually included as a deeply cloned child of
 the <a>'use'</a> element. The
 referenced element inherits properties from the <a>'use'</a> element and the <a>'use'</a> element's ancestors. An
 instance of a referenced element does not inherit properties
 from the referenced element's original parents.</p>
 
 <p>If event attributes are assigned to referenced elements,
 then the actual target for the event will be the
-<a>SVGElementInstance</a> object
-within the "instance tree" corresponding to the given
+element within the "instance tree" corresponding to the given
 referenced element.</p>
 
-<p class="issue">Once we define <a>'use'</a> in terms of 
-Web Components, will we drop instance trees?</p>
+<p class="issue">Should reference <a href="http://www.w3.org/TR/2013/WD-shadow-dom-20130514/#events">Shadow DOM</a> 
+for the event handling. Note that events will be retargeted to maintain the encapsulation, 
+ie. not to leak the original target inside a shadow tree.</p>
 
 <p>The event handling for the non-exposed tree works as if the
 referenced element had been textually included as a deeply
 cloned child of the <a>'use'</a>
-element, except that events are dispatched to the <a>SVGElementInstance</a> objects. The
-event's target and currentTarget attributes are set to the
-<a>SVGElementInstance</a> that
+element, and events are dispatched according to the shadow tree 
+<a href="http://www.w3.org/TR/2013/WD-shadow-dom-20130514/#event-dispatch">event dispatching algorithm</a> [<a href="refs.html#ref-SHADOWDOM">SHADOWDOM</a>].
+The event's target and currentTarget attributes are set to the
+instance tree element that
 corresponds to the target and current target elements in the
 referenced subtree. An event propagates through the exposed and
 non-exposed portions of the tree in the same manner as it would
 in the regular document tree: first going from the root element
 to the <a>'use'</a> element and then
 through non-exposed tree elements in the capture phase,
 followed by the target phase at the target of the event, then
 bubbling back through non-exposed tree to the use element and
 then back through regular tree to the root element in bubbling
-phase.</p>
-
-<p>An element and all its corresponding <a>SVGElementInstance</a> objects
-share an event listener list. The currentTarget attribute of
-the event can be used to determine through which object an
-event listener was invoked.</p>
+phase. In order to maintain encapsulation events must use the
+<a href="http://www.w3.org/TR/2013/WD-shadow-dom-20130514/#event-retargeting">event retargeting algorithm</a> [<a href="refs.html#ref-SHADOWDOM">SHADOWDOM</a>]
+when crossing from a non-exposed tree to the regular tree.
+</p>
 
 <p>The behavior of the <a>'visibility'</a> property conforms to
 this model of property inheritance. Thus, specifying <span
 class="prop-value">'visibility:hidden'</span> on a <a>'use'</a> element does not guarantee
 that the referenced content will not be rendered. If the <a>'use'</a> element specifies <span
 class="prop-value">'visibility:hidden'</span> and the element
 it references specifies <span
 class="prop-value">'visibility:hidden'</span> or <span
@@ -2972,18 +2971,16 @@ element.
 
 <p>The <a>SVGUseElement</a> interface corresponds to the <a>'use'</a> element.</p>
 
 <pre class="idl">interface <b>SVGUseElement</b> : <a>SVGGraphicsElement</a> {
   readonly attribute <a class="idlinterface" href="types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a> <a href="struct.html#__svg__SVGUseElement__x">x</a>;
   readonly attribute <a class="idlinterface" href="types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a> <a href="struct.html#__svg__SVGUseElement__y">y</a>;
   readonly attribute <a class="idlinterface" href="types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a> <a href="struct.html#__svg__SVGUseElement__width">width</a>;
   readonly attribute <a class="idlinterface" href="types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a> <a href="struct.html#__svg__SVGUseElement__height">height</a>;
-  readonly attribute <a class="idlinterface" href="struct.html#InterfaceSVGElementInstance">SVGElementInstance</a> <a href="struct.html#__svg__SVGUseElement__instanceRoot">instanceRoot</a>;
-  readonly attribute <a class="idlinterface" href="struct.html#InterfaceSVGElementInstance">SVGElementInstance</a> <a href="struct.html#__svg__SVGUseElement__animatedInstanceRoot">animatedInstanceRoot</a>;
 };
 
 <a>SVGUseElement</a> implements <a>SVGURIReference</a>;</pre>
 
 <dl class="interface">
 <dt class="attributes-header">Attributes:</dt>
 <dd>
 <dl class="attributes">
@@ -3017,260 +3014,23 @@ element.
 <dd class="attribute">
 <div>
 Corresponds to attribute <a>'height'</a> on the given <a>'use'</a>
 element.
 
 </div>
 </dd>
 
-<dt id="__svg__SVGUseElement__instanceRoot" class="attribute"><b>instanceRoot</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="struct.html#InterfaceSVGElementInstance">SVGElementInstance</a>)</span></dt>
-<dd class="attribute">
-<div>
-The root of the "instance tree".  See description of
-<a>SVGElementInstance</a> for a discussion on the instance tree.
-
-</div>
-</dd>
-
-<dt id="__svg__SVGUseElement__animatedInstanceRoot" class="attribute"><b>animatedInstanceRoot</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="struct.html#InterfaceSVGElementInstance">SVGElementInstance</a>)</span></dt>
-<dd class="attribute">
-<div>
-If the <a>'xlink:href'</a> attribute is being animated, contains the current
-animated root of the "instance tree".  If the <a>'xlink:href'</a> attribute
-is not currently being animated, contains the same value as
-<a>instanceRoot</a>.  See description of <a>SVGElementInstance</a>
-for a discussion on the instance tree.
-
-</div>
-</dd>
 </dl>
 </dd>
 </dl>
 
 </edit:with>
 
 
-<h3 id="InterfaceSVGElementInstance">Interface SVGElementInstance</h3>
-
-
-
-<p>For each <a>'use'</a> element, the SVG DOM maintains a shadow tree (the
-"instance tree") of objects of type <a>SVGElementInstance</a>. An
-<a>SVGElementInstance</a> represents a single node in the instance tree.
-The root object in the instance tree is pointed to by the
-<a>SVGUseElement::instanceRoot</a> attribute on the
-<a>SVGUseElement</a> object for the corresponding <a>'use'</a> element.
-</p>
-
-
-<p>If the <a>'use'</a> element references a simple graphics element such as
-a <a>'rect'</a>, then there is only a single <a>SVGElementInstance</a>
-object, and the <a>correspondingElement</a> attribute on this
-<a>SVGElementInstance</a> object is the <a>SVGRectElement</a> that
-corresponds to the referenced <a>'rect'</a> element.
-</p>
-
-
-<p>If the <a>'use'</a> element references a <a>'g'</a> which contains two
-<a>'rect'</a> elements, then the instance tree contains three
-<a>SVGElementInstance</a> objects, a root <a>SVGElementInstance</a> object
-whose <a>correspondingElement</a> is the <a>SVGGElement</a> object for the
-<a>'g'</a>, and then two child <a>SVGElementInstance</a> objects, each of
-which has its <a>correspondingElement</a> that is an <a>SVGRectElement</a>
-object.
-</p>
-
-
-<p>If the referenced object is itself a <a>'use'</a>, or if there are
-<a>'use'</a> subelements within the referenced object, the instance tree
-will contain recursive expansion of the indirect references to form a
-complete tree. For example, if a <a>'use'</a> element references a
-<a>'g'</a>, and the <a>'g'</a> itself contains a <a>'use'</a>, and that
-<a>'use'</a> references a <a>'rect'</a>, then the instance tree for the
-original (outermost) <a>'use'</a> will consist of a hierarchy of
-<a>SVGElementInstance</a> objects, as follows:
-</p>
-
-<pre>SVGElementInstance #1 (parentNode=null, firstChild=#2, correspondingElement is the 'g')
-  SVGElementInstance #2 (parentNode=#1, firstChild=#3, correspondingElement is the other 'use')
-    SVGElementInstance #3 (parentNode=#2, firstChild=null, correspondingElement is the 'rect')
-</pre>
-<pre class="idl">interface <b>SVGElementInstance</b> : <a>EventTarget</a> {
-  readonly attribute <a class="idlinterface" href="types.html#InterfaceSVGElement">SVGElement</a> <a href="struct.html#__svg__SVGElementInstance__correspondingElement">correspondingElement</a>;
-  readonly attribute <a class="idlinterface" href="struct.html#InterfaceSVGUseElement">SVGUseElement</a> <a href="struct.html#__svg__SVGElementInstance__correspondingUseElement">correspondingUseElement</a>;
-  readonly attribute <a class="idlinterface" href="struct.html#InterfaceSVGElementInstance">SVGElementInstance</a> <a href="struct.html#__svg__SVGElementInstance__parentNode">parentNode</a>;
-  readonly attribute <a class="idlinterface" href="struct.html#InterfaceSVGElementInstanceList">SVGElementInstanceList</a> <a href="struct.html#__svg__SVGElementInstance__childNodes">childNodes</a>;
-  readonly attribute <a class="idlinterface" href="struct.html#InterfaceSVGElementInstance">SVGElementInstance</a> <a href="struct.html#__svg__SVGElementInstance__firstChild">firstChild</a>;
-  readonly attribute <a class="idlinterface" href="struct.html#InterfaceSVGElementInstance">SVGElementInstance</a> <a href="struct.html#__svg__SVGElementInstance__lastChild">lastChild</a>;
-  readonly attribute <a class="idlinterface" href="struct.html#InterfaceSVGElementInstance">SVGElementInstance</a> <a href="struct.html#__svg__SVGElementInstance__previousSibling">previousSibling</a>;
-  readonly attribute <a class="idlinterface" href="struct.html#InterfaceSVGElementInstance">SVGElementInstance</a> <a href="struct.html#__svg__SVGElementInstance__nextSibling">nextSibling</a>;
-};</pre><dl class="interface">
-<dt class="attributes-header">Attributes:</dt>
-<dd>
-<dl class="attributes">
-
-<dt id="__svg__SVGElementInstance__correspondingElement"
-    class="attribute first-child"><b>correspondingElement</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="types.html#InterfaceSVGElement">SVGElement</a>)</span></dt>
-<dd class="attribute">
-<div>
-The corresponding element to which this object is an instance. For
-example, if a <a>'use'</a> element references a <a>'rect'</a> element,
-then an <a>SVGElementInstance</a> is created, with its
-<a>correspondingElement</a> being the <a>SVGRectElement</a> object
-for the <a>'rect'</a> element.
-
-</div>
-</dd>
-
-<dt id="__svg__SVGElementInstance__correspondingUseElement" class="attribute"><b>correspondingUseElement</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="struct.html#InterfaceSVGUseElement">SVGUseElement</a>)</span></dt>
-<dd class="attribute">
-<div>
-The corresponding <a>'use'</a> element to which this
-<a>SVGElementInstance</a> object belongs. When <a>'use'</a> elements are
-nested (e.g., a <a>'use'</a> references another <a>'use'</a> which
-references a graphics element such as a <a>'rect'</a>), then the
-<a>correspondingUseElement</a> is the outermost <a>'use'</a> (i.e., the
-one which indirectly references the <a>'rect'</a>, not the one with the
-direct reference).
-
-</div>
-</dd>
-
-<dt id="__svg__SVGElementInstance__parentNode" class="attribute"><b>parentNode</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="struct.html#InterfaceSVGElementInstance">SVGElementInstance</a>)</span></dt>
-<dd class="attribute">
-<div>
-The parent of this <a>SVGElementInstance</a> within the instance tree.
-All <a>SVGElementInstance</a> objects have a parent except the
-<a>SVGElementInstance</a> which corresponds to the element which was
-directly referenced by the <a>'use'</a> element, in which case
-<a>parentNode</a> is null.
-
-</div>
-</dd>
-
-<dt id="__svg__SVGElementInstance__childNodes" class="attribute"><b>childNodes</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="struct.html#InterfaceSVGElementInstanceList">SVGElementInstanceList</a>)</span></dt>
-<dd class="attribute">
-<div>
-An <a>SVGElementInstanceList</a> that contains all children of this
-<a>SVGElementInstance</a> within the instance tree. If there are no
-children, this is an <a>SVGElementInstanceList</a> containing no entries
-(i.e., an empty list).
-
-</div>
-</dd>
-
-<dt id="__svg__SVGElementInstance__firstChild" class="attribute"><b>firstChild</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="struct.html#InterfaceSVGElementInstance">SVGElementInstance</a>)</span></dt>
-<dd class="attribute">
-<div>
-The first child of this <a>SVGElementInstance</a> within the instance
-tree. If there is no such <a>SVGElementInstance</a>, this returns null.
-
-</div>
-</dd>
-
-<dt id="__svg__SVGElementInstance__lastChild" class="attribute"><b>lastChild</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="struct.html#InterfaceSVGElementInstance">SVGElementInstance</a>)</span></dt>
-<dd class="attribute">
-<div>
-The last child of this <a>SVGElementInstance</a> within the instance
-tree. If there is no such <a>SVGElementInstance</a>, this returns null.
-
-</div>
-</dd>
-
-<dt id="__svg__SVGElementInstance__previousSibling" class="attribute"><b>previousSibling</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="struct.html#InterfaceSVGElementInstance">SVGElementInstance</a>)</span></dt>
-<dd class="attribute">
-<div>
-The <a>SVGElementInstance</a> immediately preceding this
-<a>SVGElementInstance</a>. If there is no such <a>SVGElementInstance</a>,
-this returns null.
-
-</div>
-</dd>
-
-<dt id="__svg__SVGElementInstance__nextSibling" class="attribute"><b>nextSibling</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="struct.html#InterfaceSVGElementInstance">SVGElementInstance</a>)</span></dt>
-<dd class="attribute">
-<div>
-The <a>SVGElementInstance</a> immediately following this
-<a>SVGElementInstance</a>. If there is no such <a>SVGElementInstance</a>,
-this returns null.
-
-</div>
-</dd>
-</dl>
-</dd>
-</dl>
-
-
-<h3 id="InterfaceSVGElementInstanceList">Interface SVGElementInstanceList</h3>
-
-
-The <a>SVGElementInstanceList</a> interface provides the abstraction of an
-ordered collection of <a>SVGElementInstance</a> objects, without defining
-or constraining how this collection is implemented.
-<pre class="idl">interface <b>SVGElementInstanceList</b> {
-
-  readonly attribute unsigned long <a href="struct.html#__svg__SVGElementInstanceList__length">length</a>;
-
-  <a class="idlinterface" href="struct.html#InterfaceSVGElementInstance">SVGElementInstance</a> <a href="struct.html#__svg__SVGElementInstanceList__item">item</a>(unsigned long index);
-};</pre><dl class="interface">
-<dt class="attributes-header">Attributes:</dt>
-<dd>
-<dl class="attributes">
-
-<dt id="__svg__SVGElementInstanceList__length" class="attribute first-child"><b>length</b><span class="idl-type-parenthetical"> (readonly unsigned long)</span></dt>
-<dd class="attribute">
-<div>
-The number of <a>SVGElementInstance</a> objects in the list. The range
-of valid child indices is 0 to <a>length</a>-1 inclusive.
-
-</div>
-</dd>
-</dl>
-</dd>
-<dt class="operations-header">Operations:</dt>
-<dd>
-<dl class="attributes">
-
-<dt id="__svg__SVGElementInstanceList__item" class="operation first-child"><a class="idlinterface" href="struct.html#InterfaceSVGElementInstance">SVGElementInstance</a> <b>item</b>(unsigned long <var>index</var>)
-</dt>
-<dd class="operation">
-<div>
-Returns the <var>index</var>th item in the collection. If
-<var>index</var> is greater than or equal to the number of nodes in the
-list, this returns null.
-
-
-</div>
-<dl class="operation">
-<dt class="parameters-header">Parameters</dt>
-<dd>
-<ol class="parameters">
-<li class="parameter first-child">
-<div>unsigned long <var>index</var></div> 
-<div> Index into the collection.
-
-</div>
-</li>
-</ol>
-</dd>
-<dt class="returns-header">Returns</dt>
-<dd>
-<div> The <a>SVGElementInstance</a> object at the <var>index</var>th
-position in the <a>SVGElementInstanceList</a>, or null if that is not
-a valid index.
-
-</div>
-</dd>
-</dl>
-</dd>
-</dl>
-</dd>
-</dl>
-
 <h3 id="InterfaceSVGSwitchElement">Interface SVGSwitchElement</h3>
 
 
 <edit:with element='switch'>
 
 The <a>SVGSwitchElement</a> interface corresponds to the <a>'switch'</a>
 element.
 <pre class="idl">interface <b>SVGSwitchElement</b> : <a>SVGGraphicsElement</a> {
Received on Friday, 7 February 2014 14:13:41 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 17:29:55 UTC