ACTION-3561: allow <script> in the content model everywhere
authorErik Dahlstrom <ed@opera.com>
Mon, 10 Feb 2014 15:13:46 +0100
changeset 630 3e87fbe2cacf
parent 629 4b9a9deb0a55
child 631 42ec880c9cbd
ACTION-3561: allow <script> in the content model everywhere
master/changes.html
master/definitions-filters.xml
master/definitions-masking.xml
master/definitions.xml
--- a/master/changes.html	Mon Feb 10 19:27:01 2014 +1100
+++ b/master/changes.html	Mon Feb 10 15:13:46 2014 +0100
@@ -54,6 +54,8 @@
   <li>Remove definition of <a>&lt;angle&gt;</a> type and reference CSS3-values.</li>
 
   <li>Change all coordinate types to <a>&lt;length&gt;</a> in preparation for referencing css3-values..</li>
+  
+  <li class='added-since-last-wd'>Add the <a>'script'</a> element to the content model of all elements.</li>  
 </ul>
 
 <h3 id="rendering">Rendering Model chapter</h3>
--- a/master/definitions-filters.xml	Mon Feb 10 19:27:01 2014 +1100
+++ b/master/definitions-filters.xml	Mon Feb 10 15:13:46 2014 +0100
@@ -10,7 +10,7 @@
       name='feBlend'
       href='#feBlendElement'
       contentmodel='anyof'
-      elements='animate, set'
+      elements='animate, script, set'
       attributecategories='core, style, presentation, filter primitive'
       attributes='in'
       interfaces='SVGFEBlendElement'>
@@ -22,7 +22,7 @@
       name='feCustom'
       href='#feCustomElement'
       contentmodel='anyof'
-      elements='animate, set'
+      elements='animate, script, set'
       attributecategories='core, style, presentation, filter primitive'
       interfaces='SVGFECustomElement'>
     <attribute name='vertexShader' href='#feCustomVertexShaderAttribute' animatable='yes'/>
@@ -35,7 +35,7 @@
       name='feColorMatrix'
       href='#feColorMatrixElement'
       contentmodel='anyof'
-      elements='animate, set'
+      elements='animate, script, set'
       attributecategories='core, style, presentation, filter primitive'
       attributes='in'
       interfaces='SVGFEColorMatrixElement'>
@@ -47,7 +47,7 @@
     name='feComponentTransfer'
     href='#feComponentTransferElement'
     contentmodel='anyof'
-    elements='feFuncR, feFuncG, feFuncB, feFuncA'
+    elements='feFuncR, feFuncG, feFuncB, feFuncA, script'
     attributecategories='core, style, presentation, filter primitive'
     attributes='in'
     interfaces='SVGFEComponentTransferElement'/>
@@ -56,7 +56,7 @@
       name='feComposite'
       href='#feCompositeElement'
       contentmodel='anyof'
-      elements='animate, set'
+      elements='animate, script, set'
       attributecategories='core, style, presentation, filter primitive'
       attributes='in'
       interfaces='SVGFECompositeElement'>
@@ -72,7 +72,7 @@
       name='feConvolveMatrix'
       href='#feConvolveMatrixElement'
       contentmodel='anyof'
-      elements='animate, set'
+      elements='animate, script, set'
       attributecategories='core, style, presentation, filter primitive'
       attributes='in'
       interfaces='SVGFEConvolveMatrixElement'>
@@ -93,7 +93,7 @@
       attributecategories='core, style, presentation, filter primitive'
       attributes='in'
       interfaces='SVGFEDiffuseLightingElement'>
-    <x:contentmodel xmlns='http://www.w3.org/1999/xhtml'>Any number of <a>descriptive elements</a>
+    <x:contentmodel xmlns='http://www.w3.org/1999/xhtml'>Any number of <a>descriptive elements</a>, <a>'script'</a>
     and exactly one <a>light source element</a>, in any order.</x:contentmodel>
     <attribute name='surfaceScale' href='#feDiffuseLightingSurfaceScaleAttribute' animatable='yes'/>
     <attribute name='diffuseConstant' href='#feDiffuseLightingDiffuseConstantAttribute' animatable='yes'/>
@@ -104,7 +104,7 @@
       name='feDisplacementMap'
       href='#feDisplacementMapElement'
       contentmodel='anyof'
-      elements='animate, set'
+      elements='animate, script, set'
       attributecategories='core, style, presentation, filter primitive'
       attributes='in'
       interfaces='SVGFEDisplacementMapElement'>
@@ -118,7 +118,7 @@
       name='feDistantLight'
       href='#feDistantLightElement'
       contentmodel='anyof'
-      elements='animate, set'
+      elements='animate, script, set'
       attributecategories='core'
       interfaces='SVGFEDistantLightElement'>
     <attribute name='azimuth' href='#feDistantLightAzimuthAttribute' animatable='yes'/>
@@ -129,7 +129,7 @@
       name='feDropShadow'
       href='#feDropShadowElement'
       contentmodel='anyof'
-      elements='animate, set'
+      elements='animate, script, set'
       attributecategories='core, style, presentation, filter primitive'
       attributes='in'
       interfaces='SVGFEDropShadowElement'>
@@ -142,7 +142,7 @@
     name='feFlood'
     href='#feFloodElement'
     contentmodel='anyof'
-    elements='animate, set'
+    elements='animate, script, set'
     attributecategories='core, style, presentation, filter primitive'
     interfaces='SVGFEFloodElement'/>
 
@@ -150,7 +150,7 @@
     name='feFuncR'
     href='#feFuncRElement'
     contentmodel='anyof'
-    elements='animate, set'
+    elements='animate, script, set'
     attributecategories='core, transfer function element'
     interfaces='SVGFEFuncRElement'/>
 
@@ -158,7 +158,7 @@
     name='feFuncG'
     href='#feFuncGElement'
     contentmodel='anyof'
-    elements='animate, set'
+    elements='animate, script, set'
     attributecategories='core, transfer function element'
     interfaces='SVGFEFuncGElement'/>
 
@@ -166,7 +166,7 @@
     name='feFuncB'
     href='#feFuncBElement'
     contentmodel='anyof'
-    elements='animate, set'
+    elements='animate, script, set'
     attributecategories='core, transfer function element'
     interfaces='SVGFEFuncBElement'/>
 
@@ -174,7 +174,7 @@
     name='feFuncA'
     href='#feFuncAElement'
     contentmodel='anyof'
-    elements='animate, set'
+    elements='animate, script, set'
     attributecategories='core, transfer function element'
     interfaces='SVGFEFuncAElement'/>
 
@@ -182,7 +182,7 @@
       name='feGaussianBlur'
       href='#feGaussianBlurElement'
       contentmodel='anyof'
-      elements='animate, set'
+      elements='animate, script, set'
       attributecategories='core, style, presentation, filter primitive'
       attributes='in'
       interfaces='SVGFEGaussianBlurElement'>
@@ -193,7 +193,7 @@
       name='feImage'
       href='#feImageElement'
       contentmodel='anyof'
-      elements='animate, set, animateTransform'
+      elements='animate, animateTransform, script, set'
       attributecategories='core, style, presentation, filter primitive, xlink'
       attributes='externalResourcesRequired, preserveAspectRatio'
       interfaces='SVGFEImageElement'>
@@ -204,7 +204,7 @@
     name='feMerge'
     href='#feMergeElement'
     contentmodel='anyof'
-    elements='feMergeNode'
+    elements='feMergeNode, script'
     attributecategories='core, style, presentation, filter primitive'
     interfaces='SVGFEMergeElement'/>
 
@@ -212,7 +212,7 @@
       name='feMergeNode'
       href='#feMergeNodeElement'
       contentmodel='anyof'
-      elements='animate, set'
+      elements='animate, script, set'
       attributecategories='core'
       attributes='in'
       interfaces='SVGFEMergeNodeElement'/>
@@ -221,7 +221,7 @@
       name='feMorphology'
       href='#feMorphologyElement'
       contentmodel='anyof'
-      elements='animate, set'
+      elements='animate, script, set'
       attributecategories='core, style, presentation, filter primitive'
       attributes='in'
       interfaces='SVGFEMorphologyElement'>
@@ -233,7 +233,7 @@
       name='feOffset'
       href='#feOffsetElement'
       contentmodel='anyof'
-      elements='animate, set'
+      elements='animate, script, set'
       attributecategories='core, style, presentation, filter primitive'
       attributes='in'
       interfaces='SVGFEOffsetElement'>
@@ -245,7 +245,7 @@
       name='fePointLight'
       href='#fePointLightElement'
       contentmodel='anyof'
-      elements='animate, set'
+      elements='animate, script, set'
       attributecategories='core'
       interfaces='SVGFEPointLightElement'>
     <attribute name='x' href='#fePointLightXAttribute' animatable='yes'/>
@@ -259,7 +259,7 @@
       attributecategories='core, style, presentation, filter primitive'
       attributes='in'
       interfaces='SVGFESpecularLightingElement'>
-    <x:contentmodel xmlns='http://www.w3.org/1999/xhtml'>Any number of <a>descriptive elements</a>
+    <x:contentmodel xmlns='http://www.w3.org/1999/xhtml'>Any number of <a>descriptive elements</a>, <a>'script'</a>
     and exactly one <a>light source element</a>, in any order.</x:contentmodel>
     <attribute name='surfaceScale' href='#feSpecularLightingSurfaceScaleAttribute' animatable='yes'/>
     <attribute name='specularConstant' href='#feSpecularLightingSpecularConstantAttribute' animatable='yes'/>
@@ -271,7 +271,7 @@
       name='feSpotLight'
       href='#feSpotLightElement'
       contentmodel='anyof'
-      elements='animate, set'
+      elements='animate, script, set'
       attributecategories='core'
       interfaces='SVGFESpotLightElement'>
     <attribute name='x' href='#feSpotLightXAttribute' animatable='yes'/>
@@ -288,7 +288,7 @@
     name='feTile'
     href='#feTileElement'
     contentmodel='anyof'
-    elements='animate, set'
+    elements='animate, script, set'
     attributecategories='core, style, presentation, filter primitive'
     attributes='in'
     interfaces='SVGFETileElement'/>
@@ -297,7 +297,7 @@
       name='feTurbulence'
       href='#feTurbulenceElement'
       contentmodel='anyof'
-      elements='animate, set'
+      elements='animate, script, set'
       attributecategories='core, style, presentation, filter primitive'
       interfaces='SVGFETurbulenceElement'>
     <attribute name='baseFrequency' href='#feTurbulenceBaseFrequencyAttribute' animatable='yes'/>
@@ -312,7 +312,7 @@
       href='#FilterElement'
       contentmodel='anyof'
       elementcategories='descriptive, filter primitive'
-      elements='animate, set'
+      elements='animate, script, set'
       attributecategories='core, style, presentation, xlink'
       attributes='externalResourcesRequired'
       interfaces='SVGFilterElement'>
--- a/master/definitions-masking.xml	Mon Feb 10 19:27:01 2014 +1100
+++ b/master/definitions-masking.xml	Mon Feb 10 15:13:46 2014 +0100
@@ -27,7 +27,7 @@
       href='#ClipPathElement'
       contentmodel='anyof'
       elementcategories='descriptive, animation, shape'
-      elements='text, use'
+      elements='script, text, use'
       attributecategories='conditional processing, core, presentation, style'
       attributes='externalResourcesRequired, transform'
       interfaces='SVGClipPathElement'>
--- a/master/definitions.xml	Mon Feb 10 19:27:01 2014 +1100
+++ b/master/definitions.xml	Mon Feb 10 15:13:46 2014 +0100
@@ -45,7 +45,7 @@
       attributecategories='core'
       interfaces='SVGAltGlyphDefElement'>
     <x:contentmodel xmlns='http://www.w3.org/1999/xhtml'>
-      Either:
+      Any number of <a>'script'</a> elements, and either:
       <ul>
         <li>one or more <a>'glyphRef'</a> elements, or</li>
         <li>one or more <a>'altGlyphItem'</a> elements.</li>
@@ -59,7 +59,7 @@
       attributecategories='aria, navigation, core'
       interfaces='SVGAltGlyphItemElement'>
     <x:contentmodel xmlns='http://www.w3.org/1999/xhtml'>
-      One or more <a>'glyphRef'</a> elements.
+      Any number of <a>'script'</a> elements, and one or more <a>'glyphRef'</a> elements.
     </x:contentmodel>
   </element>
 
@@ -68,6 +68,7 @@
     href='animate.html#AnimateElement'
     contentmodel='anyof'
     elementcategories='descriptive'
+    elements='script'
     attributecategories='conditional processing, core, animation event, xlink, animation attribute target, animation timing, animation value, animation addition, presentation'
     interfaces='SVGAnimateElement'/>
   <element
@@ -75,7 +76,7 @@
       href='animate.html#AnimateMotionElement'
       attributecategories='conditional processing, core, animation event, xlink, animation timing, animation value, animation addition'
       interfaces='SVGAnimateMotionElement'>
-    <x:contentmodel xmlns='http://www.w3.org/1999/xhtml'>Any number of <a>descriptive elements</a> and at most one <a>'mpath'</a> element, in any order.</x:contentmodel>
+    <x:contentmodel xmlns='http://www.w3.org/1999/xhtml'>Any number of <a>descriptive elements</a>, <a>'script'</a> and at most one <a>'mpath'</a> element, in any order.</x:contentmodel>
     <!--
     <attribute name='calcMode' href='animate.html#AnimateMotionElementCalcModeAttribute'/>
     -->
@@ -89,6 +90,7 @@
       href='animate.html#AnimateTransformElement'
       contentmodel='anyof'
       elementcategories='descriptive'
+      elements='script'
       attributecategories='conditional processing, core, animation event, xlink, animation attribute target, animation timing, animation value, animation addition'
       interfaces='SVGAnimateTransformElement'>
     <attribute name='type' href='animate.html#AnimateTransformElementTypeAttribute'/>
@@ -99,7 +101,7 @@
       href='embedded.html#AudioElement'
       contentmodel='anyof'
       elementcategories='animation, descriptive, paint server, structurally external'
-      elements='mask, clipPath, marker, track, source'
+      elements='clipPath, marker, mask, script, source, track'
       attributecategories='aria, navigation, core, conditional processing, graphical event, style, presentation, embedding placement'
       attributes=''
       interfaces='SVGAudioElement'>
@@ -119,7 +121,7 @@
       href='embedded.html#CanvasElement'
       contentmodel='anyof'
       elementcategories='animation, descriptive, paint server'
-      elements='mask, clipPath, marker'
+      elements='clipPath, marker, mask, script'
       attributecategories='aria, navigation, core, conditional processing, graphical event, style, presentation, embedding placement, embedding size'
       attributes='preserveAspectRatio'
       interfaces='SVGCanvasElement'>
@@ -134,7 +136,7 @@
       href='shapes.html#CircleElement'
       contentmodel='anyof'
       elementcategories='animation, descriptive, paint server'
-      elements='mask, clipPath, marker'
+      elements='clipPath, marker, mask, script'
       attributecategories='aria, navigation, conditional processing, core, graphical event, presentation, style'
       interfaces='SVGCircleElement'>
     <attribute name='cx' href='shapes.html#CircleElementCXAttribute' animatable='yes'/>
@@ -147,6 +149,7 @@
       href='interact.html#CursorElement'
       contentmodel='anyof'
       elementcategories='descriptive'
+      elements='script'
       attributecategories='aria, navigation, core, xlink'
       interfaces='SVGCursorElement'>
     <attribute name='x' href='interact.html#CursorElementXAttribute' animatable='yes'/>
@@ -174,6 +177,7 @@
     href='struct.html#DiscardElement'
     contentmodel='anyof'
     elementcategories='descriptive'
+    elements='script'
     attributecategories='conditional processing, core, aria, navigation'>
     <attribute name='begin' href='struct.html#DiscardElementBeginAttribute' animatable='no'/>
     <attribute name='href' href='struct.html#DiscardElementHrefAttribute' animatable='no'/>
@@ -184,7 +188,7 @@
       href='shapes.html#EllipseElement'
       contentmodel='anyof'
       elementcategories='animation, descriptive, paint server'
-      elements='mask, clipPath, marker'
+      elements='clipPath, marker, mask, script'
       attributecategories='aria, navigation, conditional processing, core, graphical event, presentation, style' 
       interfaces='SVGEllipseElement'>
     <attribute name='cx' href='shapes.html#EllipseElementCXAttribute' animatable='yes'/>
@@ -198,7 +202,7 @@
       href='fonts.html#FontElement'
       contentmodel='anyof'
       elementcategories='descriptive, paint server'
-      elements='font-face, missing-glyph, glyph, hkern, vkern, mask, clipPath, marker'
+      elements='clipPath, font-face, glyph, hkern, mask, marker, missing-glyph, script, vkern'
       attributecategories='core, style, presentation'
       interfaces='SVGFontElement'>
     <attribute name='horiz-origin-x' href='fonts.html#FontElementHorizOriginXAttribute'/>
@@ -212,9 +216,11 @@
   <element
       name='font-face'
       href='fonts.html#FontFaceElement'
+      contentmodel='anyof'
+      elements='script'
       attributecategories='core'
       interfaces='SVGFontFaceElement'>
-    <x:contentmodel xmlns='http://www.w3.org/1999/xhtml'>Any number of <a>descriptive elements</a> and at most one <a>'font-face-src'</a> element, in any order.</x:contentmodel>
+    <x:contentmodel xmlns='http://www.w3.org/1999/xhtml'>Any number of <a>descriptive elements</a>, <a>'script'</a> and at most one <a>'font-face-src'</a> element, in any order.</x:contentmodel>
     <attribute name='font-family' href='fonts.html#FontFaceElementFontFamilyAttribute'/>
     <attribute name='font-style' href='fonts.html#FontFaceElementFontStyleAttribute'/>
     <attribute name='font-variant' href='fonts.html#FontFaceElementFontVariantAttribute'/>
@@ -253,6 +259,8 @@
   <element
       name='font-face-format'
       href='fonts.html#FontFaceFormatElement'
+      contentmodel='anyof'
+      elements='script'
       attributecategories='core'
       interfaces='SVGFontFaceFormatElement'>
     <attribute name='string' href='fonts.html#FontFaceFormatElementStringAttribute'/>
@@ -261,6 +269,8 @@
   <element
       name='font-face-name'
       href='fonts.html#FontFaceNameElement'
+      contentmodel='anyof'
+      elements='script'
       attributecategories='core'
       interfaces='SVGFontFaceNameElement'>
     <attribute name='name' href='fonts.html#FontFaceNameElementNameAttribute'/>
@@ -270,7 +280,7 @@
     name='font-face-src'
     href='fonts.html#FontFaceSrcElement'
     contentmodel='oneormoreof'
-    elements='font-face-uri, font-face-name'
+    elements='font-face-uri, font-face-name, script'
     attributecategories='core'
     interfaces='SVGFontFaceSrcElement'/>
 
@@ -278,7 +288,7 @@
     name='font-face-uri'
     href='fonts.html#FontFaceURIElement'
     contentmodel='anyof'
-    elements='font-face-format'
+    elements='font-face-format, script'
     attributecategories='core, xlink'
     interfaces='SVGFontFaceUriElement'>
     <attribute name='xlink:href' href='fonts.html#FontFaceUriElementHrefAttribute'/>
@@ -301,7 +311,7 @@
     href='struct.html#GElement'
     contentmodel='anyof'
     elementcategories='animation, descriptive, shape, structural, paint server'
-    elements='a, clipPath, cursor, filter, font, font-face, foreignObject, image, marker, mask, script, style, switch, view, text, altGlyphDef'
+    elements='a, altGlyphDef, clipPath, cursor, filter, font, font-face, foreignObject, image, marker, mask, script, style, switch, text, view'
     attributecategories='aria, navigation, conditional processing, core, graphical event, presentation, style'
     interfaces='SVGGElement'/>
 
@@ -310,7 +320,7 @@
       href='fonts.html#GlyphElement'
       contentmodel='anyof'
       elementcategories='animation, descriptive, shape, structural, paint server'
-      elements='a, clipPath, cursor, filter, font, font-face, foreignObject, image, marker, mask, script, style, switch, view, text, altGlyphDef'
+      elements='a, altGlyphDef, clipPath, cursor, filter, font, font-face, foreignObject, image, marker, mask, script, style, switch, text, view'
       attributecategories='core, style, presentation'
       attributes='d, horiz-adv-x, vert-origin-x, vert-origin-y, vert-adv-y'
       interfaces='SVGGlyphElement'>
@@ -325,7 +335,8 @@
       name='glyphRef'
       href='text.html#GlyphRefElement'
       elementcategories='paint server'
-      elements='mask, clipPath, marker'
+      contentmodel='anyof'
+      elements='clipPath, marker, mask, script'
       attributecategories='core, style, presentation, xlink'
       interfaces='SVGGlyphRefElement'>
     <attribute name='x' href='text.html#GlyphRefElementXAttribute'/>
@@ -342,7 +353,7 @@
       href='pservers.html#HatchElement'
       contentmodel='anyof'
       elementcategories='animation, descriptive'
-      elements='hatchPath'
+      elements='hatchPath, script'
       attributecategories='core, presentation, style, xlink'
       interfaces='SVGHatchElement'>
     <attribute name='x' href='pservers.html#HatchElementXAttribute' animatable='yes'/>
@@ -360,6 +371,7 @@
       href='pservers.html#HatchPathElement'
       contentmodel='anyof'
       elementcategories='animation, descriptive'
+      elements='script'
       attributecategories='core, presentation, style'
       interfaces='SVGHatchPathElement'>
     <attribute name='d' href='paths.html#DAttribute' animatable='yes'/>
@@ -369,6 +381,8 @@
   <element
     name='hkern'
     href='fonts.html#HKernElement'
+    contentmodel='anyof'
+    elements='script'
     attributecategories='aria, navigation, core'
     attributes='u1, g1, u2, g2, k'
     interfaces='SVGHKernElement'/>
@@ -378,7 +392,7 @@
       href='embedded.html#IframeElement'
       contentmodel='anyof'
       elementcategories='animation, descriptive, paint server, structurally external'
-      elements='mask, clipPath, marker'
+      elements='clipPath, marker, mask, script'
       attributecategories='aria, navigation, core, conditional processing, graphical event, style, presentation, embedding placement, embedding size'
       attributes='preserveAspectRatio'
       interfaces='SVGIframeElement'>
@@ -399,7 +413,7 @@
       href='embedded.html#ImageElement'
       contentmodel='anyof'
       elementcategories='animation, descriptive, paint server, structurally external'
-      elements='mask, clipPath, marker'
+      elements='clipPath, marker, mask, script'
       attributecategories='aria, navigation, core, conditional processing, graphical event, style, xlink, presentation, embedding placement, embedding size'
       attributes='preserveAspectRatio'
       interfaces='SVGImageElement'>
@@ -411,7 +425,7 @@
       href='shapes.html#LineElement'
       contentmodel='anyof'
       elementcategories='animation, descriptive, paint server'
-      elements='mask, clipPath, marker'
+      elements='clipPath, marker, mask, script'
       attributecategories='aria, navigation, conditional processing, core, graphical event, presentation, style'
       interfaces='SVGLineElement'>
     <attribute name='x1' href='shapes.html#LineElementX1Attribute' animatable='yes'/>
@@ -425,7 +439,7 @@
       href='pservers.html#LinearGradientElement'
       contentmodel='anyof'
       elementcategories='descriptive, paint server'
-      elements='animate, animateTransform, set, stop'
+      elements='animate, animateTransform, script, set, stop'
       attributecategories='core, presentation, style, xlink'
       interfaces='SVGLinearGradientElement'>
     <attribute name='x1' href='pservers.html#LinearGradientElementX1Attribute' animatable='yes'/>
@@ -462,7 +476,7 @@
       href='pservers.html#MeshGradientElement'
       contentmodel='anyof'
       elementcategories='descriptive, paint server'
-      elements='animate, animateTransform, set, meshRow'
+      elements='animate, animateTransform, script, set, meshRow'
       attributecategories='core, presentation, style, xlink'
       interfaces='SVGMeshGradientElement'>
     <attribute name='x' href='pservers.html#MeshGradientElementXAttribute' animatable='yes'/>
@@ -476,10 +490,10 @@
       name='meshPatch'
       href='pservers.html#MeshPatchElement'
       elementcategories='descriptive, paint server'
-      elements='stop'
+      elements='script, stop'
       attributecategories='core, presentation, style'
       interfaces='SVGMeshPatchElement'>
-    <x:contentmodel xmlns='http://www.w3.org/1999/xhtml'>Any number of <a>descriptive elements</a> and from one to four <a>'stop'</a> elements, in any order.</x:contentmodel>
+    <x:contentmodel xmlns='http://www.w3.org/1999/xhtml'>Any number of <a>descriptive elements</a>, <a>'script'</a> and from one to four <a>'stop'</a> elements, in any order.</x:contentmodel>
   </element>
 
   <element
@@ -487,7 +501,7 @@
       href='pservers.html#MeshRowElement'
       contentmodel='anyof'
       elementcategories='descriptive, paint server'
-      elements='meshPatch'
+      elements='meshPatch, script'
       attributecategories='core, presentation, style'
       interfaces='SVGMeshRowElement'>
   </element>
@@ -504,7 +518,7 @@
     href='fonts.html#MissingGlyphElement'
     contentmodel='anyof'
     elementcategories='animation, descriptive, shape, structural, paint server'
-    elements='a, clipPath, cursor, filter, font, font-face, foreignObject, image, marker, mask, script, style, switch, view, text, altGlyphDef'
+    elements='a, altGlyphDef, clipPath, cursor, filter, font, font-face, foreignObject, image, marker, mask, script, style, switch, text, view'
     attributecategories='core, style, presentation'
     attributes='d, horiz-adv-x, vert-origin-x, vert-origin-y, vert-adv-y'
     interfaces='SVGMissingGlyphElement'/>
@@ -514,6 +528,7 @@
       href='animate.html#MPathElement'
       contentmodel='anyof'
       elementcategories='descriptive'
+      elements='script'
       attributecategories='core, xlink'
       interfaces='SVGMPathElement'>
     <attribute name='xlink:href' href='animate.html#MPathElementHrefAttribute'/>
@@ -524,7 +539,7 @@
       href='paths.html#PathElement'
       contentmodel='anyof'
       elementcategories='animation, descriptive, paint server'
-      elements='mask, clipPath, marker'
+      elements='clipPath, marker, mask, script'
       attributecategories='aria, navigation, conditional processing, core, graphical event, presentation, style'
       interfaces='SVGPathElement'>
     <attribute name='d' href='paths.html#DAttribute' animatable='yes'/>
@@ -536,7 +551,7 @@
       href='pservers.html#PatternElement'
       contentmodel='anyof'
       elementcategories='animation, descriptive, shape, structural, paint server'
-      elements='a, clipPath, cursor, filter, font, font-face, foreignObject, image, marker, mask, script, style, switch, view, text, altGlyphDef'
+      elements='a, altGlyphDef, clipPath, cursor, filter, font, font-face, foreignObject, image, marker, mask, script, style, switch, text, view'
       attributecategories='core, presentation, style, xlink'
       attributes='viewBox, preserveAspectRatio'
       interfaces='SVGPatternElement'>
@@ -555,7 +570,7 @@
       href='shapes.html#PolygonElement'
       contentmodel='anyof'
       elementcategories='animation, descriptive, paint server'
-      elements='mask, clipPath, marker'
+      elements='clipPath, marker, mask, script'
       attributecategories='aria, navigation, conditional processing, core, graphical event, presentation, style'
       interfaces='SVGPolygonElement'>
     <attribute name='points' href='shapes.html#PolygonElementPointsAttribute' animatable='yes'/>
@@ -566,7 +581,7 @@
       href='shapes.html#PolylineElement'
       contentmodel='anyof'
       elementcategories='animation, descriptive, paint server'
-      elements='mask, clipPath, marker'
+      elements='clipPath, marker, mask, script'
       attributecategories='aria, navigation, conditional processing, core, graphical event, presentation, style'
       interfaces='SVGPolylineElement'>
     <attribute name='points' href='shapes.html#PolylineElementPointsAttribute' animatable='yes'/>
@@ -577,7 +592,7 @@
       href='pservers.html#RadialGradientElement'
       contentmodel='anyof'
       elementcategories='descriptive, paint server'
-      elements='animate, animateTransform, set, stop'
+      elements='animate, animateTransform, set, stop, script'
       attributecategories='core, presentation, style, xlink'
       interfaces='SVGRadialGradientElement'>
     <attribute name='cx' href='pservers.html#RadialGradientElementCXAttribute' animatable='yes'/>
@@ -597,7 +612,7 @@
       href='shapes.html#RectElement'
       contentmodel='anyof'
       elementcategories='animation, descriptive, paint server'
-      elements='mask, clipPath, marker'
+      elements='mask, clipPath, marker, script'
       attributecategories='aria, navigation, conditional processing, core, graphical event, presentation, style'
       interfaces='SVGRectElement'>
     <attribute name='x' href='shapes.html#RectElementXAttribute' animatable='yes'/>
@@ -624,6 +639,7 @@
       href='animate.html#SetElement'
       contentmodel='anyof'
       elementcategories='descriptive'
+      elements='script'
       attributecategories='conditional processing, core, animation event, xlink, animation attribute target, animation timing'
       interfaces='SVGSetElement'>
     <attribute name='to' href='animate.html#SetElementToAttribute'/>
@@ -634,7 +650,7 @@
       href='pservers.html#SolidColorElement'
       contentmodel='anyof'
       elementcategories='paint server'
-      elements='animate, set'
+      elements='animate, script, set'
       attributecategories='core, presentation, style'
       interfaces='SVGSolidColorElement'>
   </element>
@@ -642,9 +658,9 @@
   <element
       name='source'
       href='embedded.html#SourceElement'
-      contentmodel=''
+      contentmodel='anyof'
       elementcategories=''
-      elements=''
+      elements='script'
       attributecategories='navigation, core, style'
       attributes=''
       interfaces='SVGSourceElement'>
@@ -661,7 +677,7 @@
       href='pservers.html#StopElement'
       contentmodel='anyof'
       elementcategories='paint server'
-      elements='animate, set'
+      elements='animate, script, set'
       attributecategories='core, presentation, style'
       interfaces='SVGStopElement'>
     <attribute name='offset' href='pservers.html#StopElementOffsetAttribute' animatable='yes'/>
@@ -684,7 +700,7 @@
       href='struct.html#SVGElement'
       contentmodel='anyof'
       elementcategories='animation, descriptive, shape, structural, paint server'
-      elements='a, clipPath, cursor, filter, font, font-face, foreignObject, image, marker, mask, script, style, switch, view, text, altGlyphDef'
+      elements='a, altGlyphDef, clipPath, cursor, filter, font, font-face, foreignObject, image, marker, mask, script, style, switch, text, view'
       attributecategories='aria, navigation, conditional processing, core, document event, graphical event, presentation, style'
       attributes='viewBox, preserveAspectRatio, zoomAndPan'
       interfaces='SVGSVGElement'>
@@ -703,7 +719,7 @@
     href='struct.html#SwitchElement'
     contentmodel='anyof'
     elementcategories='animation, descriptive, shape, paint server'
-    elements='svg, g, use, text, image, a, foreignObject, switch, mask, clipPath, marker'
+    elements='a, clipPath, foreignObject, g, image, marker, mask, script, svg, switch, text, use'
     attributecategories='aria, navigation, conditional processing, core, graphical event, presentation, style'
     interfaces='SVGSwitchElement'>
   </element>
@@ -713,7 +729,7 @@
     href='struct.html#SymbolElement'
     contentmodel='anyof'
     elementcategories='animation, descriptive, shape, structural, paint server'
-    elements='a, clipPath, cursor, filter, font, font-face, foreignObject, image, marker, mask, script, style, switch, view, text, altGlyphDef'
+    elements='a, altGlyphDef, clipPath, cursor, filter, font, font-face, foreignObject, image, marker, mask, script, style, switch, text, view'
     attributecategories='aria, navigation, core, graphical event, presentation, style'
     attributes='preserveAspectRatio, viewBox'
     interfaces='SVGSymbolElement'>
@@ -724,7 +740,7 @@
       href='text.html#TextElement'
       contentmodel='textoranyof'
       elementcategories='animation, descriptive, text content child, paint server'
-      elements='a, mask, clipPath, marker'
+      elements='a, clipPath, marker, mask, script'
       attributecategories='aria, navigation, conditional processing, core, graphical event, presentation, style'
       attributes='lengthAdjust'
       interfaces='SVGTextElement'>
@@ -743,7 +759,7 @@
       href='text.html#TextPathElement'
       contentmodel='textoranyof'
       elementcategories='descriptive, paint server'
-      elements='animate, a, set, tspan, tref, altGlyph, mask, clipPath, marker'
+      elements='a, altGlyph, animate, clipPath, marker, mask, script, set, tref, tspan'
       attributecategories='aria, navigation, conditional processing, core, graphical event, presentation, style, xlink'
       attributes='lengthAdjust, textLength'
       interfaces='SVGTextPathElement'>
@@ -765,9 +781,9 @@
   <element
       name='track'
       href='embedded.html#TrackElement'
-      contentmodel=''
+      contentmodel='anyof'
       elementcategories=''
-      elements=''
+      elements='script'
       attributecategories='navigation, core, style'
       attributes=''
       interfaces='SVGTrackElement'>
@@ -786,7 +802,7 @@
       href='text.html#TRefElement'
       contentmodel='anyof'
       elementcategories='descriptive, paint server'
-      elements='animate, set'
+      elements='animate, script, set'
       attributecategories='aria, navigation, conditional processing, core, graphical event, presentation, style, xlink'
       attributes='x, y, dx, dy, rotate, textLength, lengthAdjust'
       interfaces='SVGTRefElement'>
@@ -798,7 +814,7 @@
     href='text.html#TSpanElement'
     contentmodel='textoranyof'
     elementcategories='descriptive, paint server'
-    elements='a, animate, set, tspan, tref, altGlyph'
+    elements='a, altGlyph, animate, script, set, tref, tspan'
     attributecategories='aria, navigation, conditional processing, core, graphical event, presentation, style'
     attributes='x, y, dx, dy, rotate, textLength, lengthAdjust'
     interfaces='SVGTSpanElement'>
@@ -809,7 +825,7 @@
       href='struct.html#UseElement'
       contentmodel='anyof'
       elementcategories='animation, descriptive, paint server, structurally external'
-      elements='mask, clipPath, marker'
+      elements='clipPath, marker, mask, script'
       attributecategories='aria, navigation, core, conditional processing, graphical event, presentation, style, xlink'
       interfaces='SVGUseElement'>
     <attribute name='x' href='struct.html#UseElementXAttribute' animatable='yes'/>
@@ -824,7 +840,7 @@
       href='embedded.html#VideoElement'
       contentmodel='anyof'
       elementcategories='animation, descriptive, paint server, structurally external'
-      elements='mask, clipPath, marker, track, source'
+      elements='clipPath, marker, mask, script, source, track'
       attributecategories='aria, navigation, core, conditional processing, graphical event, style, presentation, embedding placement, embedding size'
       attributes='preserveAspectRatio'
       interfaces='SVGVideoElement'>
@@ -845,6 +861,7 @@
       href='linking.html#ViewElement'
       contentmodel='anyof'
       elementcategories='animation, descriptive'
+      elements='script'
       attributecategories='aria, navigation, core'
       attributes='viewBox, preserveAspectRatio, zoomAndPan'
       interfaces='SVGViewElement'>
@@ -853,6 +870,8 @@
   <element
     name='vkern'
     href='fonts.html#VKernElement'
+    contentmodel='anyof'
+    elements='script'
     attributecategories='core'
     attributes='u1, g1, u2, g2, k'
     interfaces='SVGVKernElement'/>