Add 'child' and child-selector values to paints (ACTION-3322)
authorBrian Birtles <birtles@gmail.com>
Fri, 01 Mar 2013 13:51:17 +0900
changeset 441 0b89e0741708
parent 440 2a261c858619
child 442 8964168f477f
Add 'child' and child-selector values to paints (ACTION-3322)
master/definitions.xml
master/intro.html
master/painting.html
master/types.html
--- a/master/definitions.xml	Thu Feb 07 09:26:04 2013 +1100
+++ b/master/definitions.xml	Fri Mar 01 13:51:17 2013 +0900
@@ -13,8 +13,8 @@
       name='a'
       href='linking.html#AElement'
       contentmodel='textoranyof'
-      elementcategories='animation, descriptive, shape, structural, gradient'
-      elements='a, clipPath, color-profile, cursor, filter, font, font-face, foreignObject, image, marker, mask, pattern, script, style, switch, view, text, altGlyphDef'
+      elementcategories='animation, descriptive, shape, structural, paint server'
+      elements='a, clipPath, color-profile, cursor, filter, font, font-face, foreignObject, image, marker, mask, script, style, switch, view, text, altGlyphDef'
       attributecategories='aria, conditional processing, core, graphical event, presentation, style, xlink'
       interfaces='SVGAElement'>
     <attribute name='xlink:href' href='linking.html#AElementXLinkHrefAttribute' animatable='yes'/>
@@ -105,7 +105,7 @@
       name='circle'
       href='shapes.html#CircleElement'
       contentmodel='anyof'
-      elementcategories='animation, descriptive'
+      elementcategories='animation, descriptive, paint server'
       elements='mask'
       attributecategories='aria, conditional processing, core, graphical event, presentation, style'
       interfaces='SVGCircleElement'>
@@ -118,7 +118,7 @@
       name='clipPath'
       href='masking.html#ClipPathElement'
       contentmodel='anyof'
-      elementcategories='descriptive, animation, shape'
+      elementcategories='descriptive, animation, shape, paint server'
       elements='text, use'
       attributecategories='core, presentation, style'
       interfaces='SVGClipPathElement'>
@@ -154,8 +154,8 @@
     name='defs'
     href='struct.html#DefsElement'
     contentmodel='anyof'
-    elementcategories='animation, descriptive, shape, structural, gradient'
-    elements='a, clipPath, color-profile, cursor, filter, font, font-face, foreignObject, image, marker, mask, pattern, script, style, switch, view, text, altGlyphDef'
+    elementcategories='animation, descriptive, shape, structural, paint server'
+    elements='a, clipPath, color-profile, cursor, filter, font, font-face, foreignObject, image, marker, mask, script, style, switch, view, text, altGlyphDef'
     attributecategories='core, graphical event, presentation, style'
     interfaces='SVGDefsElement'/>
   <element
@@ -180,7 +180,7 @@
       name='ellipse'
       href='shapes.html#EllipseElement'
       contentmodel='anyof'
-      elementcategories='animation, descriptive'
+      elementcategories='animation, descriptive, paint server'
       elements='mask'
       attributecategories='aria, conditional processing, core, graphical event, presentation, style' 
       interfaces='SVGEllipseElement'>
@@ -194,7 +194,7 @@
       name='font'
       href='fonts.html#FontElement'
       contentmodel='anyof'
-      elementcategories='descriptive'
+      elementcategories='descriptive, paint server'
       elements='font-face, missing-glyph, glyph, hkern, vkern'
       attributecategories='core, style, presentation'
       interfaces='SVGFontElement'>
@@ -297,8 +297,8 @@
     name='g'
     href='struct.html#GElement'
     contentmodel='anyof'
-    elementcategories='animation, descriptive, shape, structural, gradient'
-    elements='a, clipPath, color-profile, cursor, filter, font, font-face, foreignObject, image, marker, mask, pattern, script, style, switch, view, text, altGlyphDef'
+    elementcategories='animation, descriptive, shape, structural, paint server'
+    elements='a, clipPath, color-profile, cursor, filter, font, font-face, foreignObject, image, marker, mask, script, style, switch, view, text, altGlyphDef'
     attributecategories='aria, conditional processing, core, graphical event, presentation, style'
     interfaces='SVGGElement'/>
 
@@ -306,8 +306,8 @@
       name='glyph'
       href='fonts.html#GlyphElement'
       contentmodel='anyof'
-      elementcategories='animation, descriptive, shape, structural, gradient'
-      elements='a, clipPath, color-profile, cursor, filter, font, font-face, foreignObject, image, marker, mask, pattern, script, style, switch, view, text, altGlyphDef'
+      elementcategories='animation, descriptive, shape, structural, paint server'
+      elements='a, clipPath, color-profile, cursor, filter, font, font-face, foreignObject, image, marker, mask, script, style, switch, view, text, altGlyphDef'
       attributecategories='core, style, presentation'
       attributes='d, horiz-adv-x, vert-origin-x, vert-origin-y, vert-adv-y'
       interfaces='SVGGlyphElement'>
@@ -321,6 +321,7 @@
   <element
       name='glyphRef'
       href='text.html#GlyphRefElement'
+      elementcategories='paint server'
       attributecategories='core, style, presentation, xlink'
       interfaces='SVGGlyphRefElement'>
     <attribute name='x' href='text.html#GlyphRefElementXAttribute'/>
@@ -343,7 +344,7 @@
       name='image'
       href='struct.html#ImageElement'
       contentmodel='anyof'
-      elementcategories='animation, descriptive'
+      elementcategories='animation, descriptive, paint server'
       elements='mask'
       attributecategories='aria, core, conditional processing, graphical event, style, xlink, presentation'
       attributes='preserveAspectRatio'
@@ -359,7 +360,7 @@
       name='line'
       href='shapes.html#LineElement'
       contentmodel='anyof'
-      elementcategories='animation, descriptive'
+      elementcategories='animation, descriptive, paint server'
       elements='mask'
       attributecategories='aria, conditional processing, core, graphical event, presentation, style'
       interfaces='SVGLineElement'>
@@ -373,7 +374,7 @@
       name='linearGradient'
       href='pservers.html#LinearGradientElement'
       contentmodel='anyof'
-      elementcategories='descriptive'
+      elementcategories='descriptive, paint server'
       elements='animate, animateTransform, set, stop'
       attributecategories='core, presentation, style, xlink'
       interfaces='SVGLinearGradientElement'>
@@ -391,8 +392,8 @@
       name='marker'
       href='painting.html#MarkerElement'
       contentmodel='anyof'
-      elementcategories='animation, descriptive, shape, structural, gradient'
-      elements='a, clipPath, color-profile, cursor, filter, font, font-face, foreignObject, image, marker, mask, pattern, script, style, switch, view, text, altGlyphDef'
+      elementcategories='animation, descriptive, shape, structural, paint server'
+      elements='a, clipPath, color-profile, cursor, filter, font, font-face, foreignObject, image, marker, mask, script, style, switch, view, text, altGlyphDef'
       attributecategories='core, presentation, style'
       attributes='viewBox, preserveAspectRatio'
       interfaces='SVGMarkerElement'>
@@ -410,8 +411,8 @@
       name='mask'
       href='masking.html#MaskElement'
       contentmodel='anyof'
-      elementcategories='animation, descriptive, shape, structural, gradient'
-      elements='a, clipPath, color-profile, cursor, filter, font, font-face, foreignObject, image, marker, mask, pattern, script, style, switch, view, text, altGlyphDef'
+      elementcategories='animation, descriptive, shape, structural, paint server'
+      elements='a, clipPath, color-profile, cursor, filter, font, font-face, foreignObject, image, marker, mask, script, style, switch, view, text, altGlyphDef'
       attributecategories='core, presentation, style'
       interfaces='SVGMaskElement'>
     <attribute name='x' elements='mask' href='masking.html#MaskElementXAttribute' animatable='yes'/>
@@ -427,7 +428,7 @@
       name='meshGradient'
       href='pservers.html#MeshGradientElement'
       contentmodel='anyof'
-      elementcategories='descriptive'
+      elementcategories='descriptive, paint server'
       elements='animate, animateTransform, set, meshRow'
       attributecategories='core, presentation, style, xlink'
       interfaces='SVGMeshGradientElement'>
@@ -441,7 +442,7 @@
   <element
       name='meshPatch'
       href='pservers.html#MeshPatchElement'
-      elementcategories='descriptive'
+      elementcategories='descriptive, paint server'
       elements='stop'
       attributecategories='core, presentation, style'
       interfaces='SVGMeshPatchElement'>
@@ -452,7 +453,7 @@
       name='meshRow'
       href='pservers.html#MeshRowElement'
       contentmodel='anyof'
-      elementcategories='descriptive'
+      elementcategories='descriptive, paint server'
       elements='meshPatch'
       attributecategories='core, presentation, style'
       interfaces='SVGMeshRowElement'>
@@ -469,8 +470,8 @@
     name='missing-glyph'
     href='fonts.html#MissingGlyphElement'
     contentmodel='anyof'
-    elementcategories='animation, descriptive, shape, structural, gradient'
-    elements='a, clipPath, color-profile, cursor, filter, font, font-face, foreignObject, image, marker, mask, pattern, script, style, switch, view, text, altGlyphDef'
+    elementcategories='animation, descriptive, shape, structural, paint server'
+    elements='a, clipPath, color-profile, cursor, filter, font, font-face, foreignObject, image, marker, mask, script, style, switch, view, text, altGlyphDef'
     attributecategories='core, style, presentation'
     attributes='d, horiz-adv-x, vert-origin-x, vert-origin-y, vert-adv-y'
     interfaces='SVGMissingGlyphElement'/>
@@ -489,7 +490,7 @@
       name='path'
       href='paths.html#PathElement'
       contentmodel='anyof'
-      elementcategories='animation, descriptive'
+      elementcategories='animation, descriptive, paint server'
       elements='mask'
       attributecategories='aria, conditional processing, core, graphical event, presentation, style'
       interfaces='SVGPathElement'>
@@ -501,8 +502,8 @@
       name='pattern'
       href='pservers.html#PatternElement'
       contentmodel='anyof'
-      elementcategories='animation, descriptive, shape, structural, gradient'
-      elements='a, clipPath, color-profile, cursor, filter, font, font-face, foreignObject, image, marker, mask, pattern, script, style, switch, view, text, altGlyphDef'
+      elementcategories='animation, descriptive, shape, structural, paint server'
+      elements='a, clipPath, color-profile, cursor, filter, font, font-face, foreignObject, image, marker, mask, script, style, switch, view, text, altGlyphDef'
       attributecategories='core, presentation, style, xlink'
       attributes='viewBox, preserveAspectRatio'
       interfaces='SVGPatternElement'>
@@ -520,7 +521,7 @@
       name='polygon'
       href='shapes.html#PolygonElement'
       contentmodel='anyof'
-      elementcategories='animation, descriptive'
+      elementcategories='animation, descriptive, paint server'
       elements='mask'
       attributecategories='aria, conditional processing, core, graphical event, presentation, style'
       interfaces='SVGPolygonElement'>
@@ -531,7 +532,7 @@
       name='polyline'
       href='shapes.html#PolylineElement'
       contentmodel='anyof'
-      elementcategories='animation, descriptive'
+      elementcategories='animation, descriptive, paint server'
       elements='mask'
       attributecategories='aria, conditional processing, core, graphical event, presentation, style'
       interfaces='SVGPolylineElement'>
@@ -542,7 +543,7 @@
       name='radialGradient'
       href='pservers.html#RadialGradientElement'
       contentmodel='anyof'
-      elementcategories='descriptive'
+      elementcategories='descriptive, paint server'
       elements='animate, animateTransform, set, stop'
       attributecategories='core, presentation, style, xlink'
       interfaces='SVGRadialGradientElement'>
@@ -562,7 +563,7 @@
       name='rect'
       href='shapes.html#RectElement'
       contentmodel='anyof'
-      elementcategories='animation, descriptive'
+      elementcategories='animation, descriptive, paint server'
       elements='mask'
       attributecategories='aria, conditional processing, core, graphical event, presentation, style'
       interfaces='SVGRectElement'>
@@ -598,6 +599,7 @@
       name='solidColor'
       href='pservers.html#SolidColorElement'
       contentmodel='anyof'
+      elementcategories='paint server'
       elements='animate, animateColor, set'
       attributecategories='core, presentation, style'
       interfaces='SVGSolidColorElement'>
@@ -607,6 +609,7 @@
       name='stop'
       href='pservers.html#StopElement'
       contentmodel='anyof'
+      elementcategories='paint server'
       elements='animate, animateColor, set'
       attributecategories='core, presentation, style'
       interfaces='SVGStopElement'>
@@ -629,8 +632,8 @@
       name='svg'
       href='struct.html#SVGElement'
       contentmodel='anyof'
-      elementcategories='animation, descriptive, shape, structural, gradient'
-      elements='a, clipPath, color-profile, cursor, filter, font, font-face, foreignObject, image, marker, mask, pattern, script, style, switch, view, text, altGlyphDef'
+      elementcategories='animation, descriptive, shape, structural, paint server'
+      elements='a, clipPath, color-profile, cursor, filter, font, font-face, foreignObject, image, marker, mask, script, style, switch, view, text, altGlyphDef'
       attributecategories='aria, conditional processing, core, document event, graphical event, presentation, style'
       attributes='viewBox, preserveAspectRatio, zoomAndPan'
       interfaces='SVGSVGElement'>
@@ -648,7 +651,7 @@
     name='switch'
     href='struct.html#SwitchElement'
     contentmodel='anyof'
-    elementcategories='animation, descriptive, shape'
+    elementcategories='animation, descriptive, shape, paint server'
     elements='svg, g, use, text, image, a, foreignObject, switch, mask'
     attributecategories='aria, conditional processing, core, graphical event, presentation, style'
     interfaces='SVGSwitchElement'/>
@@ -657,8 +660,8 @@
     name='symbol'
     href='struct.html#SymbolElement'
     contentmodel='anyof'
-    elementcategories='animation, descriptive, shape, structural, gradient'
-    elements='a, clipPath, color-profile, cursor, filter, font, font-face, foreignObject, image, marker, mask, pattern, script, style, switch, view, text, altGlyphDef'
+    elementcategories='animation, descriptive, shape, structural, paint server'
+    elements='a, clipPath, color-profile, cursor, filter, font, font-face, foreignObject, image, marker, mask, script, style, switch, view, text, altGlyphDef'
     attributecategories='aria, core, graphical event, presentation, style'
     attributes='preserveAspectRatio, viewBox'
     interfaces='SVGSymbolElement'/>
@@ -667,7 +670,7 @@
       name='text'
       href='text.html#TextElement'
       contentmodel='textoranyof'
-      elementcategories='animation, descriptive, text content child'
+      elementcategories='animation, descriptive, text content child, paint server'
       elements='a, mask'
       attributecategories='aria, conditional processing, core, graphical event, presentation, style'
       attributes='lengthAdjust'
@@ -685,7 +688,7 @@
       name='textPath'
       href='text.html#TextPathElement'
       contentmodel='textoranyof'
-      elementcategories='descriptive'
+      elementcategories='descriptive, paint server'
       elements='animate, animateColor, a, set, tspan, tref, altGlyph'
       attributecategories='aria, conditional processing, core, graphical event, presentation, style, xlink'
       attributes='lengthAdjust, textLength'
@@ -708,7 +711,7 @@
       name='tref'
       href='text.html#TRefElement'
       contentmodel='anyof'
-      elementcategories='descriptive'
+      elementcategories='descriptive, paint server'
       elements='animate, animateColor, set'
       attributecategories='aria, conditional processing, core, graphical event, presentation, style, xlink'
       attributes='x, y, dx, dy, rotate, textLength, lengthAdjust'
@@ -720,7 +723,7 @@
     name='tspan'
     href='text.html#TSpanElement'
     contentmodel='textoranyof'
-    elementcategories='descriptive'
+    elementcategories='descriptive, paint server'
     elements='a, animate, animateColor, set, tspan, tref, altGlyph'
     attributecategories='aria, conditional processing, core, graphical event, presentation, style'
     attributes='x, y, dx, dy, rotate, textLength, lengthAdjust'
@@ -730,7 +733,7 @@
       name='use'
       href='struct.html#UseElement'
       contentmodel='anyof'
-      elementcategories='animation, descriptive'
+      elementcategories='animation, descriptive, paint server'
       elements='mask'
       attributecategories='aria, core, conditional processing, graphical event, presentation, style, xlink'
       interfaces='SVGUseElement'>
@@ -768,6 +771,7 @@
   <elementcategory name='graphics referencing' href='intro.html#TermGraphicsReferencingElement' elements='use, image'/>
   <elementcategory name='light source' href='intro.html#TermLightSourceElement' elements='feDistantLight, fePointLight, feSpotLight'/>
   <elementcategory name='markable' href='intro.html#TermMarkableElement' elements='path, line, polyline, polygon'/>
+  <elementcategory name='paint server' href='intro.html#TermPaintServerElement' elements='solidColor, linearGradient, radialGradient, meshGradient, pattern'/>
   <elementcategory name='shape' href='intro.html#TermShapeElement' elements='circle, ellipse, line, path, polygon, polyline, rect'/>
   <elementcategory name='structural' href='intro.html#TermStructuralElement' elements='defs, g, svg, symbol, use'/>
   <elementcategory name='text content' href='intro.html#TermTextContentElement' elements='text, tspan, tref, textPath, altGlyph'/>
@@ -1241,6 +1245,8 @@
   <term name='markable elements' href='intro.html#TermMarkableElement'/>
   <term name='outermost svg element' href='intro.html#TermOutermostSVGElement'/>
   <term name='outermost svg elements' href='intro.html#TermOutermostSVGElement'/>
+  <term name='paint server element' href='intro.html#TermPaintServerElement'/>
+  <term name='paint server elements' href='intro.html#TermPaintServerElement'/>
   <term name='rootmost SVG element' href='intro.html#TermRootmostSVGElement'/>
   <term name="rootmost 'svg' element" href='intro.html#TermRootmostSVGElement'>rootmost <span xmlns='http://www.w3.org/1999/xhtml' class="element-name">‘svg’</span> element</term>
   <term name='shape' href='intro.html#TermShapeElement'/>
--- a/master/intro.html	Thu Feb 07 09:26:04 2013 +1100
+++ b/master/intro.html	Fri Mar 01 13:51:17 2013 +0900
@@ -516,6 +516,10 @@
   <a href="pservers.html#Gradients">gradients</a> and
   <a href="pservers.html#Patterns">patterns</a>.</dd>
 
+  <dt id="TermPaintServerElement">paint server element</dt>
+  <dd>An element that defines a <a href="pservers.html">paint server</a>.
+  Specifically: <edit:elementcategory name='paint server'/>.</dd>
+
   <!--
   <dt id="TermPointer">pointer</dt>
   <dd>
--- a/master/painting.html	Thu Feb 07 09:26:04 2013 +1100
+++ b/master/painting.html	Fri Mar 01 13:51:17 2013 +0900
@@ -89,7 +89,7 @@
     <a>&lt;color&gt;</a> |<br/>
     [ <a>&lt;color&gt;</a>? <a>&lt;icccolor&gt;</a> ] |<br/>
     <a>&lt;gradient&gt;</a> |<br/>
-    [ <a>&lt;funciri&gt;</a> [ none | <a>&lt;color&gt;</a> | [ <a>&lt;color&gt;</a>? <a>&lt;icccolor&gt;</a> ] ]? ] |<br/>
+    [ [ <a>&lt;funciri&gt;</a> | child | <a>&lt;child-selector&gt;</a> ] [ none | <a>&lt;color&gt;</a> | [ <a>&lt;color&gt;</a>? <a>&lt;icccolor&gt;</a> ] ]? ] |<br/>
     context-fill |<br/>
     context-stroke
   </div>
@@ -135,16 +135,20 @@
   href="color.html#ColorProfileDescriptions">Color profile
   descriptions</a>.</dd>
 
-  <dt><a>&lt;funciri&gt;</a> [ none | <a>&lt;color&gt;</a> | [ <a>&lt;color&gt;</a>? <a>&lt;icccolor&gt;</a> ] ]?</dt>
-  <dd>A reference to a <a href="pservers.html">paint server</a> element with an optional
-  fallback color or <span class="prop-value">none</span>.
-  The <a>&lt;funciri&gt;</a> is used to identify a <a>'solidColor'</a> element,
-  <a>gradient element</a> or <a>'pattern'</a> element,
-  which defines the paint to use.  If the <a>IRI reference</a>
-  is not valid (e.g., it points to an element that does not exist
-  or the element is not a valid paint server), then the fallback
-  value is used, if provided; otherwise, the document is in error
-  (see <a href="implnote.html#ErrorProcessing">Error processing</a>).</dd>
+  <dt>[ <a>&lt;funciri&gt;</a> | child | <a>&lt;child-selector&gt;</a> ] [ none | <a>&lt;color&gt;</a> | [ <a>&lt;color&gt;</a>? <a>&lt;icccolor&gt;</a> ] ]?</dt>
+  <dd>A reference to a <a href="pservers.html">paint server</a> element with an
+  optional fallback color or <span class="prop-value">none</span>.
+  The <a>&lt;funciri&gt;</a>, <span class="prop-value">child</span> keyword,
+  or <a>&lt;child-selector&gt;</a> is used to identify a <a>'solidColor'</a>
+  element, <a>gradient element</a> or <a>'pattern'</a> element,
+  which defines the paint to use.
+  The <span class="prop-value">child</span> keyword in this instance matches the
+  last child <a>paint server element</a> of the element where the paint value
+  is specified.
+  If the reference is not valid (e.g., it points to an element that
+  does not exist or the element is not a valid paint server), then the fallback
+  value is used, if provided; otherwise, the document is in error (see <a
+  href="implnote.html#ErrorProcessing">Error processing</a>).</dd>
 
   <dt>context-fill</dt>
   <dt>context-stroke</dt>
--- a/master/types.html	Thu Feb 07 09:26:04 2013 +1100
+++ b/master/types.html	Fri Mar 01 13:51:17 2013 +0900
@@ -217,6 +217,18 @@
     ([<a href='refs.html#ref-XML10'>XML10</a>], section 2.2).</p>
   </dd>
 
+  <dt id='DataTypeChildSelector'>&lt;child-selector&gt;</dt>
+  <dd>
+    <p>A comma-separated list of <a>compound selectors</a>.
+       When used, the scope in which the selectors are evaluated is also
+       defined.
+       Typically only the first matching element in <a>tree order</a> (as
+       defined in [<a href="refs.html#ref-DOM4">DOM4</a>]) as a result of
+       evaluating the list of selectors is used.
+    </p>
+    <pre>child-selector ::= select(<a>compound selector</a>#)</pre>
+  </dd>
+
   <dt id='DataTypeColor'>&lt;color&gt;</dt>
   <dd>
     <p>The basic type &lt;color&gt; is a CSS 2.1 compatible specification for a
@@ -293,18 +305,6 @@
     SVG's extension to color, including the ability to specify ICC-based colors,
     are represented using DOM interface <a>SVGColor</a>.</p>
   </dd>
-
-  <dt id='DataTypeChildSelector'>&lt;child-selector&gt;</dt>
-  <dd>
-    <p>A comma-separated list of <a>compound selectors</a>.
-       When used, the scope in which the selectors are evaluated is also
-       defined.
-       Typically only the first matching element in <a>tree order</a> (as
-       defined in [<a href="refs.html#ref-DOM4">DOM4</a>]) as a result of
-       evaluating the list of selectors is used.
-    </p>
-    <pre>child-selector ::= select(<a>compound selector</a>#)</pre>
-  </dd>
   
   <dt id="DataTypeFrequency">&lt;frequency&gt;</dt>
   <dd>