Use new-style attribute definition tables for 'use'.
authorCameron McCormack <cam@mcc.id.au>
Sun, 16 Sep 2012 06:13:13 +1000
changeset 384 81f6b7c9a937
parent 383 29073b529af7
child 385 3cf6dfd42ab8
Use new-style attribute definition tables for 'use'.
master/definitions.xml
master/struct.html
master/style/default_svg.css
--- a/master/definitions.xml	Sun Sep 16 05:21:34 2012 +1000
+++ b/master/definitions.xml	Sun Sep 16 06:13:13 2012 +1000
@@ -1264,7 +1264,8 @@
   <term name='hit-testing' href='intro.html#TermHitTesting'/>
   <term name='invalid' href='intro.html#TermInvalidValue'/>
   <term name='invalid value' href='intro.html#TermInvalidValue'/>
-  <term name='Lacuna value' href='intro.html#TermLacunaValue'/>
+  <term name='lacuna value' href='intro.html#TermLacunaValue'/>
+  <term name='lacuna values' href='intro.html#TermLacunaValue'/>
   <term name='Paint' href='intro.html#TermPaint'/>
   <term name='paint' href='intro.html#TermPaint'/>
   <term name='painting' href='intro.html#TermPaint'/>
--- a/master/struct.html	Sun Sep 16 05:21:34 2012 +1000
+++ b/master/struct.html	Sun Sep 16 06:13:13 2012 +1000
@@ -1129,6 +1129,71 @@
 <p class="issue">We should define the behavior of <a>'use'</a>
 in terms of Web Components.</p>
 
+<p><em>Attribute definitions:</em></p>
+
+<dl class="attrdef-list">
+  <dt>
+    <table class="propdef attrdef">
+      <tr>
+        <th>Name</th>
+        <th>Value</th>
+        <th>Lacuna value</th>
+        <th>Animatable</th>
+      </tr>
+      <tr>
+        <td><dfn id="UseElementXAttribute">x</dfn>, <dfn id="UseElementYAttribute">y</dfn></td>
+        <td><a>&lt;coordinate&gt;</a></td>
+        <td>0</td>
+        <td>yes</td>
+      </tr>
+      <tr>
+        <td><dfn id="UseElementWidthAttribute">width</dfn>, <dfn id="UseElementHeightAttribute">height</dfn></td>
+        <td><a>&lt;length&gt;</a></td>
+        <td>(see prose)</td>
+        <td>yes</td>
+      </tr>
+    </table>
+  </dt>
+  <dd>
+    <p>The <a>'x'</a>, <a>'y'</a>, <a>'width'</a> and <a>'height'</a>
+    attributes specify the positioning of the referenced element.
+    The <a>'width'</a> and <a>'height'</a> attributes have different
+    <a>lacuna values</a> depending on the type of the referenced element:</p>
+    <dl class='switch'>
+      <dt><a>'svg'</a></dt>
+      <dd>The <a>lacuna values</a> are the <a>'svg/width'</a> and <a>'svg/height'</a>
+      values from the referenced <a>'svg'</a> element.</dd>
+      <dt>anything else</dt>
+      <dd>The <a>lacuna values</a> are <span class='attr-value'>'100%'</span>.</dd>
+    </dl>
+    <p>A negative value for <a>'width'</a> or <a>'height'</a> is an error (see
+    <a href="implnote.html#ErrorProcessing">Error processing</a>).  If
+    <a>'width'</a> or <a>'height'</a> is zero then rendering of the
+    <a>'use'</a> element is disabled.</p>
+  </dd>
+  <dt>
+    <table class="propdef attrdef">
+      <tr>
+        <th>Name</th>
+        <th>Value</th>
+        <th>Lacuna value</th>
+        <th>Animatable</th>
+      </tr>
+      <tr>
+        <td><dfn id="UseElementHrefAttribute">href</dfn></td>
+        <td><a>&lt;iri&gt;</a></td>
+        <td>(none)</td>
+        <td>yes</td>
+      </tr>
+    </table>
+  </dt>
+  <dd>
+    <p>An <a href="linking.html#IRIReference">IRI reference</a> to the
+    element/fragment within an SVG document to be cloned for
+    rendering.</p>
+  </dd>
+</dl>
+
 <p>For user agents that support <a
 href="styling.html#StylingWithCSS">Styling with CSS</a>, the
 conceptual deep cloning of the referenced element into a
@@ -1342,64 +1407,6 @@
 to create a circular dependency is an error, as described in <a
 href="#Head">References and the <span class='element-name'>'defs'</span> element</a>.</p>
 
-<div class="adef-list">
-  <p><em>Attribute definitions:</em></p>
-  <dl>
-    <dt id="UseElementXAttribute"><span
-    class="adef">x</span> = "<span class="attr-value"><a
-    href="types.html#DataTypeCoordinate">&lt;coordinate&gt;</a></span>"</dt>
-    <dd>The x-axis coordinate of one corner of the rectangular
-    region into which the referenced element is placed.<br />
-     If the attribute is not specified, the effect is as if a
-    value of "0" were specified.<br />
-     <span class="anim-target"><a
-    href="animate.html#Animatable">Animatable</a>:
-    yes.</span></dd>
-    <dt id="UseElementYAttribute"><span
-    class="adef">y</span> = "<span class="attr-value"><a
-    href="types.html#DataTypeCoordinate">&lt;coordinate&gt;</a></span>"</dt>
-    <dd>The y-axis coordinate of one corner of the rectangular
-    region into which the referenced element is placed.<br />
-     If the attribute is not specified, the effect is as if a
-    value of "0" were specified.<br />
-     <span class="anim-target"><a
-    href="animate.html#Animatable">Animatable</a>:
-    yes.</span></dd>
-    <dt id="UseElementWidthAttribute"><span
-    class="adef">width</span> = "<span class="attr-value"><a
-    href="types.html#DataTypeLength">&lt;length&gt;</a></span>"</dt>
-    <dd>The width of the rectangular region into which the
-    referenced element is placed. A negative value is an error
-    (see <a href="implnote.html#ErrorProcessing">Error
-    processing</a>). A value of zero disables rendering of this
-    element.<br />
-     <span class="anim-target"><a
-    href="animate.html#Animatable">Animatable</a>:
-    yes.</span></dd>
-    <dt id="UseElementHeightAttribute"><span
-    class="adef">height</span> = "<span class="attr-value"><a
-    href="types.html#DataTypeLength">&lt;length&gt;</a></span>"</dt>
-    <dd>The height of the rectangular region into which the
-    referenced element is placed. A negative value is an error
-    (see <a href="implnote.html#ErrorProcessing">Error
-    processing</a>). A value of zero disables rendering of this
-    element.<br />
-     <span class="anim-target"><a
-    href="animate.html#Animatable">Animatable</a>:
-    yes.</span></dd>
-    <dt id="UseElementHrefAttribute"><span
-    class="adef">xlink:href</span> = "<span
-    class="attr-value"><a
-    href="types.html#DataTypeIRI">&lt;iri&gt;</a></span>"</dt>
-    <dd>A <a href="linking.html#IRIReference">IRI
-    reference</a> to an element/fragment within an SVG
-    document.<br />
-     <span class="anim-target"><a
-    href="animate.html#Animatable">Animatable</a>:
-    yes.</span></dd>
-  </dl>
-</div>
-
 </edit:with>
 
 <h2 id="ImageElement">The <span class='element-name'>'image'</span> element</h2>
--- a/master/style/default_svg.css	Sun Sep 16 05:21:34 2012 +1000
+++ b/master/style/default_svg.css	Sun Sep 16 06:13:13 2012 +1000
@@ -352,3 +352,29 @@
 
 table.propdef.attrdef th:first-child + th + th + th,
 table.propdef.attrdef td:first-child + td + td + td { width: 6em; padding-right: 0 !important }
+
+/* HTML5-like switch statements. */
+dl.switch > dd > ol.only {
+  margin-left: 0;
+}
+dl.switch > dd > ol.algorithm {
+  margin-left: -2em;
+}
+dl.switch {
+  padding-left: 2em;
+}
+dl.switch > dt {
+  text-indent: -1.5em;
+  margin-top: 1em;
+}
+dl.switch > dt + dt {
+  margin-top: 0;
+}
+dl.switch > dt:before {
+  content: '\21AA';
+  padding: 0 0.5em 0 0;
+  display: inline-block;
+  width: 1em;
+  text-align: right;
+  line-height: 0.5em;
+}