#!/usr/bin/env python #coding:utf-8 # Author: mozman -- # Purpose: tiny12 data # Created: 15.10.2010 # Copyright (C) 2010, Manfred Moitzi # License: MIT License from svgwrite.data.types import SVGAttribute, SVGMultiAttribute from svgwrite.data.types import SVGElement from svgwrite.data.typechecker import Tiny12TypeChecker as TypeChecker empty_list = [] attributes = { 'about': SVGAttribute('about', anim=True, types=frozenset(['string']), const=empty_list), 'accent-height': SVGAttribute('accent-height', anim=False, types=frozenset(['number']), const=empty_list), 'accumulate': SVGAttribute('accumulate', anim=False, types=empty_list, const=frozenset(['none', 'sum'])), 'additive': SVGAttribute('additive', anim=False, types=empty_list, const=frozenset(['replace', 'sum'])), 'alphabetic': SVGAttribute('alphabetic', anim=False, types=frozenset(['number']), const=empty_list), 'arabic-form': SVGAttribute('arabic-form', anim=False, types=empty_list, const=frozenset(['terminal', 'initial', 'isolated', 'medial'])), 'ascent': SVGAttribute('ascent', anim=False, types=frozenset(['number']), const=empty_list), 'attributeName': SVGAttribute('attributeName', anim=False, types=frozenset(['name']), const=empty_list), 'attributeType': SVGAttribute('attributeType', anim=False, types=empty_list, const=frozenset(['XML', 'CSS', 'auto'])), 'audio-level': SVGAttribute('audio-level', anim=True, types=frozenset(['number']), const=frozenset(['inherit'])), 'bandwidth': SVGAttribute('bandwidth', anim=False, types=frozenset(['number']), const=frozenset(['auto'])), 'baseProfile': SVGAttribute('baseProfile', anim=False, types=empty_list, const=frozenset(['none', 'tiny', 'basic', 'full'])), 'bbox': SVGAttribute('bbox', anim=False, types=frozenset(['string']), const=empty_list), 'begin': SVGAttribute('begin', anim=False, types=frozenset(['timing-value-list']), const=frozenset(['indefinite'])), 'buffered-rendering': SVGAttribute('buffered-rendering', anim=True, types=empty_list, const=frozenset(['auto', 'dynamic', 'static', 'inherit'])), 'by': SVGAttribute('by', anim=False, types=frozenset(['string']), const=empty_list), 'calcMode': SVGAttribute('calcMode', anim=False, types=empty_list, const=frozenset(['discrete', 'linear', 'paced', 'spline'])), 'cap-height': SVGAttribute('cap-height', anim=False, types=frozenset(['number']), const=empty_list), 'class': SVGAttribute('class', anim=True, types=frozenset(['list-of-name']), const=empty_list), 'color': SVGAttribute('color', anim=True, types=frozenset(['color']), const=frozenset(['inherit'])), 'color-rendering': SVGAttribute('color-rendering', anim=True, types=empty_list, const=frozenset(['auto', 'optimizeSpeed', 'optimizeQuality', 'inherit'])), 'content': SVGAttribute('content', anim=True, types=frozenset(['string']), const=empty_list), 'contentScriptType': SVGAttribute('contentScriptType', anim=False, types=frozenset(['content-type']), const=empty_list), 'cx': SVGAttribute('cx', anim=True, types=frozenset(['coordinate']), const=empty_list), 'cy': SVGAttribute('cy', anim=True, types=frozenset(['coordinate']), const=empty_list), 'd': SVGAttribute('d', anim=True, types=frozenset(['path-data']), const=empty_list), 'datatype': SVGAttribute('datatype', anim=True, types=frozenset(['string']), const=empty_list), 'defaultAction': SVGAttribute('defaultAction', anim=False, types=empty_list, const=frozenset(['perform', 'cancel'])), 'descent': SVGAttribute('descent', anim=False, types=frozenset(['number']), const=empty_list), 'direction': SVGAttribute('direction', anim=False, types=empty_list, const=frozenset(['ltr', 'rtl', 'inherit'])), 'display': SVGAttribute('display', anim=True, types=empty_list, const=frozenset(['inline', 'block', 'list-item', 'run-in', 'compact', 'marker', 'table', 'inline-table', 'table-row-group', 'table-header-group', 'table-footer-group', 'table-row', 'table-column-group', 'table-column', 'table-cell', 'table-caption', 'none', 'inherit'])), 'display-align': SVGAttribute('display-align', anim=True, types=empty_list, const=frozenset(['auto', 'before', 'center', 'after', 'inherit'])), 'dur': SVGAttribute('dur', anim=False, types=frozenset(['time']), const=frozenset(['media', 'indefinite'])), 'editable': SVGAttribute('editable', anim=True, types=empty_list, const=frozenset(['none', 'simple'])), 'end': SVGAttribute('end', anim=False, types=frozenset(['timing-value-list']), const=frozenset(['indefinite'])), 'ev:event': SVGAttribute('ev:event', anim=False, types=frozenset(['XML-Name']), const=empty_list), 'event': SVGAttribute('event', anim=False, types=frozenset(['XML-Name']), const=empty_list), 'externalResourcesRequired': SVGAttribute('externalResourcesRequired', anim=False, types=frozenset(['boolean']), const=empty_list), 'fill': SVGMultiAttribute({ '*': SVGAttribute( 'fill', anim=True, types=frozenset(['paint']), const=frozenset(['inherit'])), 'set animateMotion animate animateColor animateTransform': SVGAttribute( 'fill', anim=False, types=empty_list, const=frozenset(['freeze', 'remove'])) }), 'fill-opacity': SVGAttribute('fill-opacity', anim=True, types=frozenset(['number']), const=frozenset(['inherit'])), 'fill-rule': SVGAttribute('fill-rule', anim=True, types=empty_list, const=frozenset(['nonzero', 'evenodd', 'inherit'])), 'focusHighlight': SVGAttribute('focusHighlight', anim=True, types=empty_list, const=frozenset(['auto', 'none'])), 'focusable': SVGAttribute('focusable', anim=True, types=frozenset(['boolean']), const=frozenset(['auto'])), 'font-family': SVGAttribute('font-family', anim=True, types=frozenset(['string']), const=frozenset(['inherit'])), 'font-size': SVGAttribute('font-size', anim=True, types=frozenset(['length']), const=frozenset(['inherit'])), 'font-stretch': SVGAttribute('font-stretch', anim=False, types=empty_list, const=frozenset(['condensed', 'normal', 'ultra-condensed', 'expanded', 'narrower', 'inherit', 'semi-condensed', 'extra-condensed', 'ultra-expanded', 'wider', 'semi-expanded', 'extra-expanded'])), 'font-style': SVGAttribute('font-style', anim=True, types=empty_list, const=frozenset(['normal', 'italic', 'oblique', 'inherit'])), 'font-variant': SVGAttribute('font-variant', anim=True, types=empty_list, const=frozenset(['normal', 'small-caps', 'inherit'])), 'font-weight': SVGAttribute('font-weight', anim=True, types=empty_list, const=frozenset(['normal', 'bold', 'bolder', 'lighter', '100', '200', '300', '400', '500', '600', '700', '800', '900', 'inherit'])), 'from': SVGAttribute('from', anim=False, types=frozenset(['string']), const=empty_list), 'g1': SVGAttribute('g1', anim=False, types=frozenset(['list-of-name']), const=empty_list), 'g2': SVGAttribute('g2', anim=False, types=frozenset(['list-of-name']), const=empty_list), 'glyph-name': SVGAttribute('glyph-name', anim=False, types=frozenset(['list-of-name']), const=empty_list), 'gradientUnits': SVGAttribute('gradientUnits', anim=True, types=empty_list, const=frozenset(['userSpaceOnUse', 'objectBoundingBox'])), 'handler': SVGAttribute('handler', anim=False, types=frozenset(['IRI']), const=empty_list), 'hanging': SVGAttribute('hanging', anim=False, types=frozenset(['number']), const=empty_list), 'height': SVGMultiAttribute({ '*': SVGAttribute( 'height', anim=True, types=frozenset(['length']), const=empty_list), 'textArea': SVGAttribute( 'height', anim=True, types=frozenset(['length']), const=frozenset(['auto'])), }), 'horiz-adv-x': SVGAttribute('horiz-adv-x', anim=False, types=frozenset(['number']), const=empty_list), 'horiz-origin-x': SVGAttribute('horiz-origin-x', anim=False, types=frozenset(['number']), const=empty_list), 'id': SVGAttribute('id', anim=False, types=frozenset(['name']), const=empty_list), 'ideographic': SVGAttribute('ideographic', anim=False, types=frozenset(['number']), const=empty_list), 'image-rendering': SVGAttribute('image-rendering', anim=True, types=empty_list, const=frozenset(['auto', 'optimizeSpeed', 'optimizeQuality', 'inherit'])), 'initialVisibility': SVGAttribute('initialVisibility', anim=False, types=empty_list, const=frozenset(['whenStarted', 'always'])), 'k': SVGAttribute('k', anim=False, types=frozenset(['number']), const=empty_list), 'keyPoints': SVGAttribute('keyPoints', anim=False, types=frozenset(['semicolon-list']), const=empty_list), 'keySplines': SVGAttribute('keySplines', anim=False, types=frozenset(['semicolon-list']), const=empty_list), 'keyTimes': SVGAttribute('keyTimes', anim=False, types=frozenset(['semicolon-list']), const=empty_list), 'lang': SVGAttribute('lang', anim=False, types=frozenset(['list-of-name']), const=empty_list), 'line-increment': SVGAttribute('line-increment', anim=True, types=frozenset(['number']), const=frozenset(['auto', 'inherit'])), 'mathematical': SVGAttribute('mathematical', anim=False, types=frozenset(['number']), const=empty_list), 'max': SVGAttribute('max', anim=False, types=frozenset(['time']), const=frozenset(['media'])), 'mediaCharacterEncoding': SVGAttribute('mediaCharacterEncoding', anim=False, types=frozenset(['string']), const=empty_list), 'mediaContentEncodings': SVGAttribute('mediaContentEncodings', anim=False, types=frozenset(['string']), const=empty_list), 'mediaSize': SVGAttribute('mediaSize', anim=False, types=frozenset(['number']), const=empty_list), 'mediaTime': SVGAttribute('mediaTime', anim=False, types=frozenset(['time']), const=empty_list), 'min': SVGAttribute('min', anim=False, types=frozenset(['time']), const=frozenset(['media'])), 'nav-down': SVGAttribute('nav-down', anim=True, types=frozenset(['focus']), const=empty_list), 'nav-down-left': SVGAttribute('nav-down-left', anim=True, types=frozenset(['focus']), const=empty_list), 'nav-down-right': SVGAttribute('nav-down-right', anim=True, types=frozenset(['focus']), const=empty_list), 'nav-left': SVGAttribute('nav-left', anim=True, types=frozenset(['focus']), const=empty_list), 'nav-next': SVGAttribute('nav-next', anim=True, types=frozenset(['focus']), const=empty_list), 'nav-prev': SVGAttribute('nav-prev', anim=True, types=frozenset(['focus']), const=empty_list), 'nav-right': SVGAttribute('nav-right', anim=True, types=frozenset(['focus']), const=empty_list), 'nav-up': SVGAttribute('nav-up', anim=True, types=frozenset(['focus']), const=empty_list), 'nav-up-left': SVGAttribute('nav-up-left', anim=True, types=frozenset(['focus']), const=empty_list), 'nav-up-right': SVGAttribute('nav-up-right', anim=True, types=frozenset(['focus']), const=empty_list), 'observer': SVGAttribute('observer', anim=False, types=frozenset(['IDREF']), const=empty_list), 'offset': SVGAttribute('offset', anim=True, types=frozenset(['number']), const=empty_list), 'opacity': SVGAttribute('opacity', anim=True, types=frozenset(['number']), const=frozenset(['inherit'])), 'origin': SVGAttribute('origin', anim=False, types=empty_list, const=frozenset(['default'])), 'overlay': SVGAttribute('overlay', anim=False, types=empty_list, const=frozenset(['none', 'top'])), 'overline-position': SVGAttribute('overline-position', anim=False, types=frozenset(['number']), const=empty_list), 'overline-thickness': SVGAttribute('overline-thickness', anim=False, types=frozenset(['number']), const=empty_list), 'panose-1': SVGAttribute('panose-1', anim=False, types=frozenset(['list-of-integer']), const=empty_list), 'path': SVGAttribute('path', anim=False, types=frozenset(['path-data']), const=empty_list), 'pathLength': SVGAttribute('pathLength', anim=True, types=frozenset(['number']), const=empty_list), 'phase': SVGAttribute('phase', anim=False, types=empty_list, const=frozenset(['default', 'capture'])), 'playbackOrder': SVGAttribute('playbackOrder', anim=False, types=empty_list, const=frozenset(['all', 'forwardOnly'])), 'pointer-events': SVGAttribute('pointer-events', anim=True, types=empty_list, const=frozenset(['visiblePainted', 'visibleFill', 'visibleStroke', 'visible', 'painted', 'fill', 'stroke', 'all', 'none', 'inherit'])), 'points': SVGAttribute('points', anim=True, types=frozenset(['list-of-number']), const=empty_list), 'preserveAspectRatio': SVGAttribute('preserveAspectRatio', anim=True, types=frozenset(['string']), const=empty_list), 'propagate': SVGAttribute('propagate', anim=False, types=empty_list, const=frozenset(['continue', 'stop'])), 'property': SVGAttribute('property', anim=True, types=frozenset(['string']), const=empty_list), 'r': SVGAttribute('r', anim=True, types=frozenset(['length']), const=empty_list), 'rel': SVGAttribute('rel', anim=True, types=frozenset(['string']), const=empty_list), 'repeatCount': SVGAttribute('repeatCount', anim=False, types=frozenset(['number']), const=frozenset(['indefinite'])), 'repeatDur': SVGAttribute('repeatDur', anim=False, types=frozenset(['time']), const=frozenset(['indefinite'])), 'requiredExtensions': SVGAttribute('requiredExtensions', anim=False, types=frozenset(['list-of-IRI']), const=empty_list), 'requiredFeatures': SVGAttribute('requiredFeatures', anim=False, types=frozenset(['list-of-IRI']), const=empty_list), 'requiredFonts': SVGAttribute('requiredFonts', anim=False, types=frozenset(['string']), const=empty_list), 'requiredFormats': SVGAttribute('requiredFormats', anim=False, types=frozenset(['anything']), const=empty_list), 'resource': SVGAttribute('resource', anim=True, types=frozenset(['string']), const=empty_list), 'restart': SVGAttribute('restart', anim=False, types=empty_list, const=frozenset(['always', 'never', 'whenNotActive'])), 'rev': SVGAttribute('rev', anim=True, types=frozenset(['string']), const=empty_list), 'role': SVGAttribute('role', anim=True, types=frozenset(['string']), const=empty_list), 'rotate': SVGAttribute('rotate', anim=True, types=frozenset(['list-of-number']), const=empty_list), 'rx': SVGAttribute('rx', anim=True, types=frozenset(['length']), const=empty_list), 'ry': SVGAttribute('ry', anim=True, types=frozenset(['length']), const=empty_list), 'shape-rendering': SVGAttribute('shape-rendering', anim=True, types=empty_list, const=frozenset(['auto', 'optimizeSpeed', 'crispEdges', 'geometricPrecision', 'inherit'])), 'slope': SVGAttribute('slope', anim=False, types=frozenset(['number']), const=empty_list), 'snapshotTime': SVGAttribute('snapshotTime', anim=False, types=frozenset(['time']), const=frozenset(['none'])), 'solid-color': SVGAttribute('solid-color', anim=True, types=frozenset(['color']), const=frozenset(['currentColor', 'inherit'])), 'solid-opacity': SVGAttribute('solid-opacity', anim=True, types=frozenset(['number']), const=frozenset(['inherit'])), 'stemh': SVGAttribute('stemh', anim=False, types=frozenset(['number']), const=empty_list), 'stemv': SVGAttribute('stemv', anim=False, types=frozenset(['number']), const=empty_list), 'stop-color': SVGAttribute('stop-color', anim=True, types=frozenset(['color']), const=frozenset(['inherit'])), 'stop-opacity': SVGAttribute('stop-opacity', anim=True, types=frozenset(['number']), const=frozenset(['inherit'])), 'strikethrough-position': SVGAttribute('strikethrough-position', anim=False, types=frozenset(['number']), const=empty_list), 'strikethrough-thickness': SVGAttribute('strikethrough-thickness', anim=False, types=frozenset(['number']), const=empty_list), 'stroke': SVGAttribute('stroke', anim=True, types=frozenset(['paint']), const=frozenset(['inherit'])), 'stroke-dasharray': SVGAttribute('stroke-dasharray', anim=True, types=frozenset(['list-of-length']), const=frozenset(['none', 'inherit'])), 'stroke-dashoffset': SVGAttribute('stroke-dashoffset', anim=True, types=frozenset(['length']), const=frozenset(['inherit'])), 'stroke-linecap': SVGAttribute('stroke-linecap', anim=True, types=empty_list, const=frozenset(['butt', 'round', 'square', 'inherit'])), 'stroke-linejoin': SVGAttribute('stroke-linejoin', anim=True, types=empty_list, const=frozenset(['miter', 'round', 'bevel', 'inherit'])), 'stroke-miterlimit': SVGAttribute('stroke-miterlimit', anim=True, types=frozenset(['number']), const=frozenset(['inherit'])), 'stroke-opacity': SVGAttribute('stroke-opacity', anim=True, types=frozenset(['number']), const=frozenset(['inherit'])), 'stroke-width': SVGAttribute('stroke-width', anim=True, types=frozenset(['length']), const=frozenset(['inherit'])), 'syncBehavior': SVGAttribute('syncBehavior', anim=False, types=empty_list, const=frozenset(['canSlip', 'locked', 'independent', 'default'])), 'syncBehaviorDefault': SVGAttribute('syncBehaviorDefault', anim=False, types=empty_list, const=frozenset(['canSlip', 'locked', 'independent', 'inherit'])), 'syncMaster': SVGAttribute('syncMaster', anim=False, types=frozenset(['boolean']), const=empty_list), 'syncTolerance': SVGAttribute('syncTolerance', anim=False, types=frozenset(['time']), const=frozenset(['default'])), 'syncToleranceDefault': SVGAttribute('syncToleranceDefault', anim=False, types=frozenset(['time']), const=frozenset(['inherit'])), 'systemLanguage': SVGAttribute('systemLanguage', anim=False, types=frozenset(['string']), const=empty_list), 'target': SVGMultiAttribute({ '* a': SVGAttribute( 'target', anim=True, types=frozenset(['XML-Name']), const=frozenset(['_replace', '_self', '_parent', '_top', '_blank'])), 'listener': SVGAttribute( 'target', anim=False, types=frozenset(['XML-Name']), const=empty_list), }), 'text-align': SVGAttribute('text-align', anim=True, types=empty_list, const=frozenset(['start', 'center', 'end', 'inherit'])), 'text-anchor': SVGAttribute('text-anchor', anim=True, types=empty_list, const=frozenset(['start', 'middle', 'end', 'inherit'])), 'text-rendering': SVGAttribute('text-rendering', anim=True, types=empty_list, const=frozenset(['auto', 'optimizeSpeed', 'optimizeLegibility', 'geometricPrecision', 'inherit'])), 'timelineBegin': SVGAttribute('timelineBegin', anim=False, types=empty_list, const=frozenset(['onLoad', 'onStart'])), 'to': SVGAttribute('to', anim=False, types=frozenset(['string']), const=empty_list), 'transform': SVGAttribute('transform', anim=True, types=frozenset(['transform-list']), const=frozenset(['none'])), 'transformBehavior': SVGAttribute('transformBehavior', anim=False, types=empty_list, const=frozenset(['geometric', 'pinned', 'pinned90', 'pinned180', 'pinned270'])), 'type': SVGMultiAttribute({ '* audio image video': SVGAttribute( 'type', anim=True, types=frozenset(['content-type']), const=empty_list), 'handler script': SVGAttribute( 'type', anim=False, types=frozenset(['content-type']), const=empty_list), 'animateTransform': SVGAttribute( 'type', anim=False, types=empty_list, const=frozenset(['translate', 'scale', 'rotate', 'skewX', 'skewY'])), }), 'typeof': SVGAttribute('typeof', anim=True, types=frozenset(['string']), const=empty_list), 'u1': SVGAttribute('u1', anim=False, types=frozenset(['string']), const=empty_list), 'u2': SVGAttribute('u2', anim=False, types=frozenset(['string']), const=empty_list), 'underline-position': SVGAttribute('underline-position', anim=False, types=frozenset(['number']), const=empty_list), 'underline-thickness': SVGAttribute('underline-thickness', anim=False, types=frozenset(['number']), const=empty_list), 'unicode': SVGAttribute('unicode', anim=False, types=frozenset(['string']), const=empty_list), 'unicode-bidi': SVGAttribute('unicode-bidi', anim=False, types=empty_list, const=frozenset(['normal', 'embed', 'bidi-override', 'inherit'])), 'unicode-range': SVGAttribute('unicode-range', anim=False, types=frozenset(['string']), const=empty_list), 'units-per-em': SVGAttribute('units-per-em', anim=False, types=frozenset(['number']), const=empty_list), 'values': SVGAttribute('values', anim=False, types=frozenset(['list-of-number']), const=empty_list), 'vector-effect': SVGAttribute('vector-effect', anim=True, types=empty_list, const=frozenset(['none', 'non-scaling-stroke', 'inherit'])), 'version': SVGAttribute('version', anim=False, types=empty_list, const=frozenset(['1.1', '1.2'])), 'viewBox': SVGAttribute('viewBox', anim=True, types=frozenset(['four-numbers']), const=empty_list), 'viewport-fill': SVGAttribute('viewport-fill', anim=True, types=frozenset(['color']), const=frozenset(['none', 'inherit'])), 'viewport-fill-opacity': SVGAttribute('viewport-fill-opacity', anim=True, types=frozenset(['number']), const=frozenset(['inherit'])), 'visibility': SVGAttribute('visibility', anim=True, types=empty_list, const=frozenset(['visible', 'hidden', 'inherit'])), 'width': SVGMultiAttribute({ '*': SVGAttribute( 'width', anim=True, types=frozenset(['length']), const=empty_list), 'textArea': SVGAttribute( 'width', anim=True, types=frozenset(['length']), const=frozenset(['auto'])), }), 'widths': SVGAttribute('widths', anim=False, types=frozenset(['string']), const=empty_list), 'x': SVGMultiAttribute({ '*': SVGAttribute( 'x', anim=True, types=frozenset(['coordinate']), const=empty_list), 'text': SVGAttribute( 'x', anim=True, types=frozenset(['list-of-coordinate']), const=empty_list), }), 'x-height': SVGAttribute('x-height', anim=False, types=frozenset(['number']), const=empty_list), 'x1': SVGAttribute('x1', anim=True, types=frozenset(['coordinate']), const=empty_list), 'x2': SVGAttribute('x2', anim=True, types=frozenset(['coordinate']), const=empty_list), 'xlink:actuate': SVGMultiAttribute({ '*': SVGAttribute( 'xlink:actuate', anim=False, types=empty_list, const=frozenset(['onLoad'])), 'a': SVGAttribute( 'xlink:actuate', anim=False, types=empty_list, const=frozenset(['onRequest'])), }), 'xlink:arcrole': SVGAttribute('xlink:arcrole', anim=False, types=frozenset(['IRI']), const=empty_list), 'xlink:href': SVGAttribute('xlink:href', anim=True, types=frozenset(['IRI']), const=empty_list), 'xlink:role': SVGAttribute('xlink:role', anim=False, types=frozenset(['IRI']), const=empty_list), 'xlink:show': SVGMultiAttribute({ '*': SVGAttribute( 'xlink:show', anim=False, types=empty_list, const=frozenset(['other'])), 'animation audio foreignObject image use video': SVGAttribute( 'xlink:show', anim=False, types=empty_list, const=frozenset(['embed'])), 'a': SVGAttribute( 'xlink:show', anim=False, types=empty_list, const=frozenset(['new', 'replace'])), }), 'xlink:title': SVGAttribute('xlink:title', anim=False, types=frozenset(['string']), const=empty_list), 'xlink:type': SVGAttribute('xlink:type', anim=True, types=empty_list, const=frozenset(['simple'])), 'xmlns': SVGAttribute('xmlns', anim=False, types=frozenset(['IRI']), const=empty_list), 'xmlns:xlink': SVGAttribute('xmlns:xlink', anim=False, types=frozenset(['IRI']), const=empty_list), 'xmlns:ev': SVGAttribute('xmlns:ev', anim=False, types=frozenset(['IRI']), const=empty_list), 'xml:base': SVGAttribute('xml:base', anim=False, types=frozenset(['IRI']), const=empty_list), 'xml:id': SVGAttribute('xml:id', anim=False, types=frozenset(['name']), const=empty_list), 'xml:lang': SVGAttribute('xml:lang', anim=False, types=frozenset(['name']), const=empty_list), 'xml:space': SVGMultiAttribute({ '*': SVGAttribute( 'xml:space', anim=False, types=empty_list, const=frozenset(['preserve', 'default'])), 'handler script': SVGAttribute( 'xml:space', anim=False, types=empty_list, const=frozenset(['preserve'])), }), 'y': SVGMultiAttribute({ '*': SVGAttribute( 'y', anim=True, types=frozenset(['coordinate']), const=empty_list), 'text': SVGAttribute( 'y', anim=True, types=frozenset(['list-of-coordinate']), const=empty_list), }), 'y1': SVGAttribute('y1', anim=True, types=frozenset(['coordinate']), const=empty_list), 'y2': SVGAttribute('y2', anim=True, types=frozenset(['coordinate']), const=empty_list), 'zoomAndPan': SVGAttribute('zoomAndPan', anim=False, types=empty_list, const=frozenset(['disable', 'magnify'])), } attribute_names = ['slope', 'keySplines', 'rx', 'accumulate', 'bandwidth', 'attributeType', 'unicode', 'nav-right', 'arabic-form', 'y2', 'horiz-origin-x', 'underline-position', 'zoomAndPan', 'cap-height', 'defaultAction', 'to', 'syncBehavior', 'alphabetic', 'g2', 'g1', 'panose-1', 'strikethrough-thickness', 'attributeName', 'bbox', 'nav-up-left', 'nav-left', 'restart', 'target', 'xlink:actuate', 'rotate', 'resource', 'd', 'syncToleranceDefault', 'initialVisibility', 'transformBehavior', 'nav-up-right', 'keyTimes', 'x', 'requiredFormats', 'nav-next', 'glyph-name', 'xml:lang', 'mathematical', 'observer', 'repeatDur', 'hanging', 'y1', 'xml:base', 'ascent', 'event', 'strikethrough-position', 'overlay', 'rev', 'ry', 'overline-thickness', 'content', 'version', 'rel', 'focusable', 'requiredFonts', 'nav-down-right', 'xml:id', 'offset', 'additive', 'underline-thickness', 'font-family', 'by', 'mediaTime', 'timelineBegin', 'about', 'horiz-adv-x', 'widths', 'k', 'requiredFeatures', 'preserveAspectRatio', 'contentScriptType', 'origin', 'xml:space', 'xlink:href', 'height', 'baseProfile', 'cy', 'cx', 'path', 'xlink:role', 'from', 'u1', 'transform', 'units-per-em', 'u2', 'width', 'handler', 'font-variant', 'x-height', 'dur', 'xlink:arcrole', 'type', 'focusHighlight', 'mediaCharacterEncoding', 'xlink:title', 'editable', 'stemv', 'systemLanguage', 'x2', 'x1', 'ideographic', 'xlink:show', 'overline-position', 'syncTolerance', 'gradientUnits', 'r', 'values', 'typeof', 'mediaContentEncodings', 'property', 'requiredExtensions', 'repeatCount', 'ev:event', 'nav-down', 'mediaSize', 'pathLength', 'syncMaster', 'font-style', 'fill', 'end', 'descent', 'calcMode', 'min', 'stemh', 'id', 'unicode-range', 'nav-up', 'font-stretch', 'role', 'font-weight', 'begin', 'xlink:type', 'syncBehaviorDefault', 'max', 'snapshotTime', 'playbackOrder', 'keyPoints', 'nav-prev', 'propagate', 'phase', 'externalResourcesRequired', 'nav-down-left', 'class', 'lang', 'datatype', 'viewBox', 'points', 'accent-height', 'y'] property_names = ['stroke-linejoin', 'font-size', 'text-rendering', 'color-rendering', 'fill-opacity', 'color', 'shape-rendering', 'solid-color', 'stroke', 'stroke-linecap', 'vector-effect', 'stroke-width', 'font-style', 'fill', 'solid-opacity', 'fill-rule', 'viewport-fill-opacity', 'display-align', 'buffered-rendering', 'stroke-miterlimit', 'font-variant', 'stop-opacity', 'font-weight', 'opacity', 'direction', 'audio-level', 'visibility', 'unicode-bidi', 'line-increment', 'image-rendering', 'font-family', 'viewport-fill', 'text-align', 'stroke-opacity', 'stroke-dashoffset', 'text-anchor', 'stop-color', 'pointer-events', 'stroke-dasharray', 'display'] media_group_names = ['audio-level', 'buffered-rendering', 'display', 'image-rendering', 'pointer-events', 'shape-rendering', 'text-rendering', 'viewport-fill', 'viewport-fill-opacity', 'visibility'] elements = { 'a': SVGElement('a', attributes=['about', 'class', 'content', 'datatype', 'externalResourcesRequired', 'focusHighlight', 'focusable', 'id', 'nav-down', 'nav-down-left', 'nav-down-right', 'nav-left', 'nav-next', 'nav-prev', 'nav-right', 'nav-up', 'nav-up-left', 'nav-up-right', 'property', 'rel', 'requiredExtensions', 'requiredFeatures', 'requiredFonts', 'requiredFormats', 'resource', 'rev', 'role', 'systemLanguage', 'target', 'transform', 'typeof', 'xlink:actuate', 'xlink:arcrole', 'xlink:href', 'xlink:role', 'xlink:show', 'xlink:title', 'xlink:type', 'xml:base', 'xml:id', 'xml:lang', 'xml:space'], properties=property_names, children=['likeparent', 'defs', 'text', 'g', 'textArea', 'svg']), 'animate': SVGElement('animate', attributes=['about', 'accumulate', 'additive', 'attributeName', 'attributeType', 'begin', 'by', 'calcMode', 'class', 'content', 'datatype', 'dur', 'end', 'fill', 'from', 'id', 'keySplines', 'keyTimes', 'max', 'min', 'property', 'rel', 'repeatCount', 'repeatDur', 'requiredExtensions', 'requiredFeatures', 'requiredFonts', 'requiredFormats', 'resource', 'restart', 'rev', 'role', 'systemLanguage', 'to', 'typeof', 'values', 'xlink:actuate', 'xlink:arcrole', 'xlink:href', 'xlink:role', 'xlink:show', 'xlink:title', 'xlink:type', 'xml:base', 'xml:id', 'xml:lang', 'xml:space'], properties=empty_list, children=['desc', 'handler', 'metadata', 'switch', 'title']), 'animateColor': SVGElement('animateColor', attributes=['about', 'accumulate', 'additive', 'attributeName', 'attributeType', 'begin', 'by', 'calcMode', 'class', 'content', 'datatype', 'dur', 'end', 'fill', 'from', 'id', 'keySplines', 'keyTimes', 'max', 'min', 'property', 'rel', 'repeatCount', 'repeatDur', 'requiredExtensions', 'requiredFeatures', 'requiredFonts', 'requiredFormats', 'resource', 'restart', 'rev', 'role', 'systemLanguage', 'to', 'typeof', 'values', 'xlink:actuate', 'xlink:arcrole', 'xlink:href', 'xlink:role', 'xlink:show', 'xlink:title', 'xlink:type', 'xml:base', 'xml:id', 'xml:lang', 'xml:space'], properties=empty_list, children=['desc', 'handler', 'metadata', 'switch', 'title']), 'animateMotion': SVGElement('animateMotion', attributes=['about', 'accumulate', 'additive', 'begin', 'by', 'calcMode', 'class', 'content', 'datatype', 'dur', 'end', 'fill', 'from', 'id', 'keyPoints', 'keySplines', 'keyTimes', 'max', 'min', 'origin', 'path', 'property', 'rel', 'repeatCount', 'repeatDur', 'requiredExtensions', 'requiredFeatures', 'requiredFonts', 'requiredFormats', 'resource', 'restart', 'rev', 'role', 'rotate', 'systemLanguage', 'to', 'typeof', 'values', 'xlink:actuate', 'xlink:arcrole', 'xlink:href', 'xlink:role', 'xlink:show', 'xlink:title', 'xlink:type', 'xml:base', 'xml:id', 'xml:lang', 'xml:space'], properties=empty_list, children=['desc', 'handler', 'metadata', 'mpath', 'switch', 'title']), 'animateTransform': SVGElement('animateTransform', attributes=['about', 'accumulate', 'additive', 'attributeName', 'attributeType', 'begin', 'by', 'calcMode', 'class', 'content', 'datatype', 'dur', 'end', 'fill', 'from', 'id', 'keySplines', 'keyTimes', 'max', 'min', 'property', 'rel', 'repeatCount', 'repeatDur', 'requiredExtensions', 'requiredFeatures', 'requiredFonts', 'requiredFormats', 'resource', 'restart', 'rev', 'role', 'systemLanguage', 'to', 'type', 'typeof', 'values', 'xlink:actuate', 'xlink:arcrole', 'xlink:href', 'xlink:role', 'xlink:show', 'xlink:title', 'xlink:type', 'xml:base', 'xml:id', 'xml:lang', 'xml:space'], properties=empty_list, children=['desc', 'handler', 'metadata', 'switch', 'title']), 'animation': SVGElement('animation', attributes=['about', 'begin', 'class', 'content', 'datatype', 'dur', 'end', 'externalResourcesRequired', 'fill', 'focusHighlight', 'focusable', 'height', 'id', 'initialVisibility', 'max', 'min', 'nav-down', 'nav-down-left', 'nav-down-right', 'nav-left', 'nav-next', 'nav-prev', 'nav-right', 'nav-up', 'nav-up-left', 'nav-up-right', 'preserveAspectRatio', 'property', 'rel', 'repeatCount', 'repeatDur', 'requiredExtensions', 'requiredFeatures', 'requiredFonts', 'requiredFormats', 'resource', 'restart', 'rev', 'role', 'syncBehavior', 'syncMaster', 'syncTolerance', 'systemLanguage', 'transform', 'typeof', 'width', 'x', 'xlink:actuate', 'xlink:arcrole', 'xlink:href', 'xlink:role', 'xlink:show', 'xlink:title', 'xlink:type', 'xml:base', 'xml:id', 'xml:lang', 'xml:space', 'y'], properties=media_group_names, children=['animate', 'animateColor', 'animateMotion', 'animateTransform', 'desc', 'discard', 'handler', 'metadata', 'set', 'switch', 'title']), 'audio': SVGElement('audio', attributes=['about', 'begin', 'class', 'content', 'datatype', 'dur', 'end', 'externalResourcesRequired', 'fill', 'id', 'max', 'min', 'property', 'rel', 'repeatCount', 'repeatDur', 'requiredExtensions', 'requiredFeatures', 'requiredFonts', 'requiredFormats', 'resource', 'restart', 'rev', 'role', 'syncBehavior', 'syncMaster', 'syncTolerance', 'systemLanguage', 'type', 'typeof', 'xlink:actuate', 'xlink:arcrole', 'xlink:href', 'xlink:role', 'xlink:show', 'xlink:title', 'xlink:type', 'xml:base', 'xml:id', 'xml:lang', 'xml:space'], properties=media_group_names, children=['animate', 'animateColor', 'animateMotion', 'animateTransform', 'desc', 'discard', 'handler', 'metadata', 'set', 'switch', 'title']), 'circle': SVGElement('circle', attributes=['about', 'class', 'content', 'cx', 'cy', 'datatype', 'focusHighlight', 'focusable', 'id', 'nav-down', 'nav-down-left', 'nav-down-right', 'nav-left', 'nav-next', 'nav-prev', 'nav-right', 'nav-up', 'nav-up-left', 'nav-up-right', 'property', 'r', 'rel', 'requiredExtensions', 'requiredFeatures', 'requiredFonts', 'requiredFormats', 'resource', 'rev', 'role', 'systemLanguage', 'transform', 'typeof', 'xml:base', 'xml:id', 'xml:lang', 'xml:space'], properties=property_names, children=['animate', 'animateColor', 'animateMotion', 'animateTransform', 'desc', 'discard', 'handler', 'metadata', 'set', 'switch', 'title']), 'defs': SVGElement('defs', attributes=['about', 'class', 'content', 'datatype', 'id', 'property', 'rel', 'resource', 'rev', 'role', 'typeof', 'xml:base', 'xml:id', 'xml:lang', 'xml:space'], properties=property_names, children=['a', 'animate', 'animateColor', 'animateMotion', 'animateTransform', 'animation', 'audio', 'circle', 'defs', 'desc', 'discard', 'ellipse', 'font', 'font-face', 'foreignObject', 'g', 'handler', 'image', 'line', 'linearGradient', 'listener', 'metadata', 'path', 'polygon', 'polyline', 'prefetch', 'radialGradient', 'rect', 'script', 'set', 'solidColor', 'switch', 'text', 'textArea', 'title', 'use', 'video']), 'desc': SVGElement('desc', attributes=['about', 'class', 'content', 'datatype', 'id', 'property', 'rel', 'requiredExtensions', 'requiredFeatures', 'requiredFonts', 'requiredFormats', 'resource', 'rev', 'role', 'systemLanguage', 'typeof', 'xml:base', 'xml:id', 'xml:lang', 'xml:space'], properties=media_group_names, children=empty_list), 'discard': SVGElement('discard', attributes=['about', 'begin', 'class', 'content', 'datatype', 'id', 'property', 'rel', 'requiredExtensions', 'requiredFeatures', 'requiredFonts', 'requiredFormats', 'resource', 'rev', 'role', 'systemLanguage', 'typeof', 'xlink:actuate', 'xlink:arcrole', 'xlink:href', 'xlink:role', 'xlink:show', 'xlink:title', 'xlink:type', 'xml:base', 'xml:id', 'xml:lang', 'xml:space'], properties=empty_list, children=['desc', 'handler', 'metadata', 'switch', 'title']), 'ellipse': SVGElement('ellipse', attributes=['about', 'class', 'content', 'cx', 'cy', 'datatype', 'focusHighlight', 'focusable', 'id', 'nav-down', 'nav-down-left', 'nav-down-right', 'nav-left', 'nav-next', 'nav-prev', 'nav-right', 'nav-up', 'nav-up-left', 'nav-up-right', 'property', 'rel', 'requiredExtensions', 'requiredFeatures', 'requiredFonts', 'requiredFormats', 'resource', 'rev', 'role', 'rx', 'ry', 'systemLanguage', 'transform', 'typeof', 'xml:base', 'xml:id', 'xml:lang', 'xml:space'], properties=property_names, children=['animate', 'animateColor', 'animateMotion', 'animateTransform', 'desc', 'discard', 'handler', 'metadata', 'set', 'switch', 'title']), 'font': SVGElement('font', attributes=['about', 'class', 'content', 'datatype', 'externalResourcesRequired', 'horiz-adv-x', 'horiz-origin-x', 'id', 'property', 'rel', 'resource', 'rev', 'role', 'typeof', 'xml:base', 'xml:id', 'xml:lang', 'xml:space'], properties=empty_list, children=['desc', 'font-face', 'glyph', 'hkern', 'metadata', 'missing-glyph', 'switch', 'title']), 'font-face': SVGElement('font-face', attributes=['about', 'accent-height', 'alphabetic', 'ascent', 'bbox', 'cap-height', 'class', 'content', 'datatype', 'descent', 'externalResourcesRequired', 'font-family', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'hanging', 'id', 'ideographic', 'mathematical', 'overline-position', 'overline-thickness', 'panose-1', 'property', 'rel', 'resource', 'rev', 'role', 'slope', 'stemh', 'stemv', 'strikethrough-position', 'strikethrough-thickness', 'typeof', 'underline-position', 'underline-thickness', 'unicode-range', 'units-per-em', 'widths', 'x-height', 'xml:base', 'xml:id', 'xml:lang', 'xml:space'], properties=empty_list, children=['desc', 'font-face-src', 'metadata', 'switch', 'title']), 'font-face-src': SVGElement('font-face-src', attributes=['about', 'class', 'content', 'datatype', 'id', 'property', 'rel', 'resource', 'rev', 'role', 'typeof', 'xml:base', 'xml:id', 'xml:lang', 'xml:space'], properties=empty_list, children=['desc', 'font-face-uri', 'metadata', 'switch', 'title']), 'font-face-uri': SVGElement('font-face-uri', attributes=['about', 'class', 'content', 'datatype', 'externalResourcesRequired', 'id', 'property', 'rel', 'resource', 'rev', 'role', 'typeof', 'xlink:actuate', 'xlink:arcrole', 'xlink:href', 'xlink:role', 'xlink:show', 'xlink:title', 'xlink:type', 'xml:base', 'xml:id', 'xml:lang', 'xml:space'], properties=empty_list, children=['desc', 'metadata', 'switch', 'title']), 'foreignObject': SVGElement('foreignObject', attributes=['about', 'class', 'content', 'datatype', 'externalResourcesRequired', 'focusHighlight', 'focusable', 'height', 'id', 'nav-down', 'nav-down-left', 'nav-down-right', 'nav-left', 'nav-next', 'nav-prev', 'nav-right', 'nav-up', 'nav-up-left', 'nav-up-right', 'property', 'rel', 'requiredExtensions', 'requiredFeatures', 'requiredFonts', 'requiredFormats', 'resource', 'rev', 'role', 'systemLanguage', 'transform', 'typeof', 'width', 'x', 'xlink:actuate', 'xlink:arcrole', 'xlink:href', 'xlink:role', 'xlink:show', 'xlink:title', 'xlink:type', 'xml:base', 'xml:id', 'xml:lang', 'xml:space', 'y'], properties=property_names, children=['desc', 'metadata', 'svg', 'switch', 'title']), 'g': SVGElement('g', attributes=['about', 'class', 'content', 'datatype', 'externalResourcesRequired', 'focusHighlight', 'focusable', 'id', 'nav-down', 'nav-down-left', 'nav-down-right', 'nav-left', 'nav-next', 'nav-prev', 'nav-right', 'nav-up', 'nav-up-left', 'nav-up-right', 'property', 'rel', 'requiredExtensions', 'requiredFeatures', 'requiredFonts', 'requiredFormats', 'resource', 'rev', 'role', 'systemLanguage', 'transform', 'typeof', 'xml:base', 'xml:id', 'xml:lang', 'xml:space'], properties=property_names, children=['a', 'animate', 'animateColor', 'animateMotion', 'animateTransform', 'animation', 'audio', 'circle', 'defs', 'desc', 'discard', 'ellipse', 'font', 'font-face', 'foreignObject', 'g', 'handler', 'image', 'line', 'linearGradient', 'listener', 'metadata', 'path', 'polygon', 'polyline', 'prefetch', 'radialGradient', 'rect', 'script', 'set', 'solidColor', 'switch', 'text', 'textArea', 'title', 'use', 'video']), 'glyph': SVGElement('glyph', attributes=['about', 'arabic-form', 'class', 'content', 'd', 'datatype', 'glyph-name', 'horiz-adv-x', 'id', 'lang', 'property', 'rel', 'resource', 'rev', 'role', 'typeof', 'unicode', 'xml:base', 'xml:id', 'xml:lang', 'xml:space'], properties=empty_list, children=['desc', 'metadata', 'switch', 'title']), 'handler': SVGElement('handler', attributes=['about', 'class', 'content', 'datatype', 'ev:event', 'externalResourcesRequired', 'id', 'property', 'rel', 'resource', 'rev', 'role', 'type', 'typeof', 'xlink:actuate', 'xlink:arcrole', 'xlink:href', 'xlink:role', 'xlink:show', 'xlink:title', 'xlink:type', 'xml:base', 'xml:id', 'xml:lang', 'xml:space'], properties=empty_list, children=['desc', 'metadata', 'switch', 'title']), 'hkern': SVGElement('hkern', attributes=['about', 'class', 'content', 'datatype', 'g1', 'g2', 'id', 'k', 'property', 'rel', 'resource', 'rev', 'role', 'typeof', 'u1', 'u2', 'xml:base', 'xml:id', 'xml:lang', 'xml:space'], properties=empty_list, children=['desc', 'metadata', 'switch', 'title']), 'image': SVGElement('image', attributes=['about', 'class', 'content', 'datatype', 'externalResourcesRequired', 'focusHighlight', 'focusable', 'height', 'id', 'nav-down', 'nav-down-left', 'nav-down-right', 'nav-left', 'nav-next', 'nav-prev', 'nav-right', 'nav-up', 'nav-up-left', 'nav-up-right', 'opacity', 'preserveAspectRatio', 'property', 'rel', 'requiredExtensions', 'requiredFeatures', 'requiredFonts', 'requiredFormats', 'resource', 'rev', 'role', 'systemLanguage', 'transform', 'type', 'typeof', 'width', 'x', 'xlink:actuate', 'xlink:arcrole', 'xlink:href', 'xlink:role', 'xlink:show', 'xlink:title', 'xlink:type', 'xml:base', 'xml:id', 'xml:lang', 'xml:space', 'y'], properties=media_group_names, children=['animate', 'animateColor', 'animateMotion', 'animateTransform', 'desc', 'discard', 'handler', 'metadata', 'set', 'switch', 'title']), 'line': SVGElement('line', attributes=['about', 'class', 'content', 'datatype', 'focusHighlight', 'focusable', 'id', 'nav-down', 'nav-down-left', 'nav-down-right', 'nav-left', 'nav-next', 'nav-prev', 'nav-right', 'nav-up', 'nav-up-left', 'nav-up-right', 'property', 'rel', 'requiredExtensions', 'requiredFeatures', 'requiredFonts', 'requiredFormats', 'resource', 'rev', 'role', 'systemLanguage', 'transform', 'typeof', 'x1', 'x2', 'xml:base', 'xml:id', 'xml:lang', 'xml:space', 'y1', 'y2'], properties=property_names, children=['animate', 'animateColor', 'animateMotion', 'animateTransform', 'desc', 'discard', 'handler', 'metadata', 'set', 'switch', 'title']), 'linearGradient': SVGElement('linearGradient', attributes=['about', 'class', 'content', 'datatype', 'gradientUnits', 'id', 'property', 'rel', 'resource', 'rev', 'role', 'typeof', 'x1', 'x2', 'xml:base', 'xml:id', 'xml:lang', 'xml:space', 'y1', 'y2'], properties=property_names, children=['animate', 'animateColor', 'animateMotion', 'animateTransform', 'desc', 'discard', 'metadata', 'set', 'stop', 'switch', 'title']), 'listener': SVGElement('listener', attributes=['about', 'class', 'content', 'datatype', 'defaultAction', 'event', 'handler', 'id', 'observer', 'phase', 'propagate', 'property', 'rel', 'resource', 'rev', 'role', 'target', 'typeof', 'xml:base', 'xml:id', 'xml:lang', 'xml:space'], properties=empty_list, children=empty_list), 'metadata': SVGElement('metadata', attributes=['about', 'class', 'content', 'datatype', 'id', 'property', 'rel', 'requiredExtensions', 'requiredFeatures', 'requiredFonts', 'requiredFormats', 'resource', 'rev', 'role', 'systemLanguage', 'typeof', 'xml:base', 'xml:id', 'xml:lang', 'xml:space'], properties=media_group_names, children=empty_list), 'missing-glyph': SVGElement('missing-glyph', attributes=['about', 'class', 'content', 'd', 'datatype', 'horiz-adv-x', 'id', 'property', 'rel', 'resource', 'rev', 'role', 'typeof', 'xml:base', 'xml:id', 'xml:lang', 'xml:space'], properties=empty_list, children=['desc', 'metadata', 'switch', 'title']), 'mpath': SVGElement('mpath', attributes=['about', 'class', 'content', 'datatype', 'id', 'property', 'rel', 'resource', 'rev', 'role', 'typeof', 'xlink:actuate', 'xlink:arcrole', 'xlink:href', 'xlink:role', 'xlink:show', 'xlink:title', 'xlink:type', 'xml:base', 'xml:id', 'xml:lang', 'xml:space'], properties=empty_list, children=['desc', 'metadata', 'switch', 'title']), 'path': SVGElement('path', attributes=['about', 'class', 'content', 'd', 'datatype', 'focusHighlight', 'focusable', 'id', 'nav-down', 'nav-down-left', 'nav-down-right', 'nav-left', 'nav-next', 'nav-prev', 'nav-right', 'nav-up', 'nav-up-left', 'nav-up-right', 'pathLength', 'property', 'rel', 'requiredExtensions', 'requiredFeatures', 'requiredFonts', 'requiredFormats', 'resource', 'rev', 'role', 'systemLanguage', 'transform', 'typeof', 'xml:base', 'xml:id', 'xml:lang', 'xml:space'], properties=property_names, children=['animate', 'animateColor', 'animateMotion', 'animateTransform', 'desc', 'discard', 'handler', 'metadata', 'set', 'switch', 'title']), 'polygon': SVGElement('polygon', attributes=['about', 'class', 'content', 'datatype', 'focusHighlight', 'focusable', 'id', 'nav-down', 'nav-down-left', 'nav-down-right', 'nav-left', 'nav-next', 'nav-prev', 'nav-right', 'nav-up', 'nav-up-left', 'nav-up-right', 'points', 'property', 'rel', 'requiredExtensions', 'requiredFeatures', 'requiredFonts', 'requiredFormats', 'resource', 'rev', 'role', 'systemLanguage', 'transform', 'typeof', 'xml:base', 'xml:id', 'xml:lang', 'xml:space'], properties=property_names, children=['animate', 'animateColor', 'animateMotion', 'animateTransform', 'desc', 'discard', 'handler', 'metadata', 'set', 'switch', 'title']), 'polyline': SVGElement('polyline', attributes=['about', 'class', 'content', 'datatype', 'focusHighlight', 'focusable', 'id', 'nav-down', 'nav-down-left', 'nav-down-right', 'nav-left', 'nav-next', 'nav-prev', 'nav-right', 'nav-up', 'nav-up-left', 'nav-up-right', 'points', 'property', 'rel', 'requiredExtensions', 'requiredFeatures', 'requiredFonts', 'requiredFormats', 'resource', 'rev', 'role', 'systemLanguage', 'transform', 'typeof', 'xml:base', 'xml:id', 'xml:lang', 'xml:space'], properties=property_names, children=['animate', 'animateColor', 'animateMotion', 'animateTransform', 'desc', 'discard', 'handler', 'metadata', 'set', 'switch', 'title']), 'prefetch': SVGElement('prefetch', attributes=['about', 'bandwidth', 'class', 'content', 'datatype', 'id', 'mediaCharacterEncoding', 'mediaContentEncodings', 'mediaSize', 'mediaTime', 'property', 'rel', 'resource', 'rev', 'role', 'typeof', 'xlink:actuate', 'xlink:arcrole', 'xlink:href', 'xlink:role', 'xlink:show', 'xlink:title', 'xlink:type', 'xml:base', 'xml:id', 'xml:lang', 'xml:space'], properties=empty_list, children=['desc', 'metadata', 'switch', 'title']), 'radialGradient': SVGElement('radialGradient', attributes=['about', 'class', 'content', 'cx', 'cy', 'datatype', 'gradientUnits', 'id', 'property', 'r', 'rel', 'resource', 'rev', 'role', 'typeof', 'xml:base', 'xml:id', 'xml:lang', 'xml:space'], properties=property_names, children=['animate', 'animateColor', 'animateMotion', 'animateTransform', 'desc', 'discard', 'metadata', 'set', 'stop', 'switch', 'title']), 'rect': SVGElement('rect', attributes=['about', 'class', 'content', 'datatype', 'focusHighlight', 'focusable', 'height', 'id', 'nav-down', 'nav-down-left', 'nav-down-right', 'nav-left', 'nav-next', 'nav-prev', 'nav-right', 'nav-up', 'nav-up-left', 'nav-up-right', 'property', 'rel', 'requiredExtensions', 'requiredFeatures', 'requiredFonts', 'requiredFormats', 'resource', 'rev', 'role', 'rx', 'ry', 'systemLanguage', 'transform', 'typeof', 'width', 'x', 'xml:base', 'xml:id', 'xml:lang', 'xml:space', 'y'], properties=property_names, children=['animate', 'animateColor', 'animateMotion', 'animateTransform', 'desc', 'discard', 'handler', 'metadata', 'set', 'switch', 'title']), 'script': SVGElement('script', attributes=['about', 'class', 'content', 'datatype', 'externalResourcesRequired', 'id', 'property', 'rel', 'resource', 'rev', 'role', 'type', 'typeof', 'xlink:actuate', 'xlink:arcrole', 'xlink:href', 'xlink:role', 'xlink:show', 'xlink:title', 'xlink:type', 'xml:base', 'xml:id', 'xml:lang', 'xml:space'], properties=empty_list, children=['desc', 'metadata', 'switch', 'title']), 'set': SVGElement('set', attributes=['about', 'attributeName', 'attributeType', 'begin', 'class', 'content', 'datatype', 'dur', 'end', 'fill', 'id', 'max', 'min', 'property', 'rel', 'repeatCount', 'repeatDur', 'requiredExtensions', 'requiredFeatures', 'requiredFonts', 'requiredFormats', 'resource', 'restart', 'rev', 'role', 'systemLanguage', 'to', 'typeof', 'xlink:actuate', 'xlink:arcrole', 'xlink:href', 'xlink:role', 'xlink:show', 'xlink:title', 'xlink:type', 'xml:base', 'xml:id', 'xml:lang', 'xml:space'], properties=empty_list, children=['desc', 'handler', 'metadata', 'switch', 'title']), 'solidColor': SVGElement('solidColor', attributes=['about', 'class', 'content', 'datatype', 'id', 'property', 'rel', 'resource', 'rev', 'role', 'typeof', 'xml:base', 'xml:id', 'xml:lang', 'xml:space'], properties=property_names, children=['animate', 'animateColor', 'animateMotion', 'animateTransform', 'desc', 'discard', 'handler', 'metadata', 'set', 'switch', 'title']), 'stop': SVGElement('stop', attributes=['about', 'class', 'content', 'datatype', 'id', 'offset', 'property', 'rel', 'resource', 'rev', 'role', 'typeof', 'xml:base', 'xml:id', 'xml:lang', 'xml:space'], properties=property_names, children=['animate', 'animateColor', 'animateMotion', 'animateTransform', 'desc', 'discard', 'metadata', 'set', 'switch', 'title']), 'svg': SVGElement('svg', attributes=['about', 'baseProfile', 'class', 'content', 'contentScriptType', 'datatype', 'externalResourcesRequired', 'focusHighlight', 'focusable', 'height', 'id', 'nav-down', 'nav-down-left', 'nav-down-right', 'nav-left', 'nav-next', 'nav-prev', 'nav-right', 'nav-up', 'nav-up-left', 'nav-up-right', 'playbackOrder', 'preserveAspectRatio', 'property', 'rel', 'resource', 'rev', 'role', 'snapshotTime', 'syncBehaviorDefault', 'syncToleranceDefault', 'timelineBegin', 'typeof', 'version', 'viewBox', 'width', 'xml:base', 'xml:id', 'xml:lang', 'xml:space', 'xmlns', 'xmlns:xlink', 'xmlns:ev', 'zoomAndPan'], properties=property_names, children=['a', 'animate', 'animateColor', 'animateMotion', 'animateTransform', 'animation', 'audio', 'circle', 'defs', 'desc', 'discard', 'ellipse', 'font', 'font-face', 'foreignObject', 'g', 'handler', 'image', 'line', 'linearGradient', 'listener', 'metadata', 'path', 'polygon', 'polyline', 'prefetch', 'radialGradient', 'rect', 'script', 'set', 'solidColor', 'switch', 'text', 'textArea', 'title', 'use', 'video']), 'switch': SVGElement('switch', attributes=['about', 'class', 'content', 'datatype', 'externalResourcesRequired', 'focusHighlight', 'focusable', 'id', 'nav-down', 'nav-down-left', 'nav-down-right', 'nav-left', 'nav-next', 'nav-prev', 'nav-right', 'nav-up', 'nav-up-left', 'nav-up-right', 'property', 'rel', 'requiredExtensions', 'requiredFeatures', 'requiredFonts', 'requiredFormats', 'resource', 'rev', 'role', 'systemLanguage', 'transform', 'typeof', 'xml:base', 'xml:id', 'xml:lang', 'xml:space'], properties=property_names, children=['likeparent', 'set', 'textArea', 'text', 'image', 'missing-glyph', 'font-face', 'video', 'path', 'animate', 'font', 'ellipse', 'glyph', 'use', 'font-face-src', 'polygon', 'script', 'handler', 'circle', 'radialGradient', 'prefetch', 'defs', 'mpath', 'stop', 'animateMotion', 'animateColor', 'discard', 'solidColor', 'hkern', 'line', 'animation', 'rect', 'g', 'svg', 'animateTransform', 'linearGradient', 'font-face-uri', 'foreignObject', 'polyline', 'audio']), 'tbreak': SVGElement('tbreak', attributes=['about', 'class', 'content', 'datatype', 'id', 'property', 'rel', 'requiredExtensions', 'requiredFeatures', 'requiredFonts', 'requiredFormats', 'resource', 'rev', 'role', 'systemLanguage', 'typeof', 'xml:base', 'xml:id', 'xml:lang', 'xml:space'], properties=empty_list, children=empty_list), 'text': SVGElement('text', attributes=['about', 'class', 'content', 'datatype', 'editable', 'focusHighlight', 'focusable', 'id', 'nav-down', 'nav-down-left', 'nav-down-right', 'nav-left', 'nav-next', 'nav-prev', 'nav-right', 'nav-up', 'nav-up-left', 'nav-up-right', 'property', 'rel', 'requiredExtensions', 'requiredFeatures', 'requiredFonts', 'requiredFormats', 'resource', 'rev', 'role', 'rotate', 'systemLanguage', 'transform', 'typeof', 'x', 'xml:base', 'xml:id', 'xml:lang', 'xml:space', 'y'], properties=property_names, children=['a', 'animate', 'animateColor', 'animateMotion', 'animateTransform', 'desc', 'discard', 'handler', 'metadata', 'set', 'switch', 'title', 'tspan']), 'textArea': SVGElement('textArea', attributes=['about', 'class', 'content', 'datatype', 'editable', 'focusHighlight', 'focusable', 'height', 'id', 'nav-down', 'nav-down-left', 'nav-down-right', 'nav-left', 'nav-next', 'nav-prev', 'nav-right', 'nav-up', 'nav-up-left', 'nav-up-right', 'property', 'rel', 'requiredExtensions', 'requiredFeatures', 'requiredFonts', 'requiredFormats', 'resource', 'rev', 'role', 'systemLanguage', 'transform', 'typeof', 'width', 'x', 'xml:base', 'xml:id', 'xml:lang', 'xml:space', 'y'], properties=property_names, children=['a', 'animate', 'animateColor', 'animateMotion', 'animateTransform', 'desc', 'discard', 'handler', 'metadata', 'set', 'switch', 'tbreak', 'title', 'tspan']), 'title': SVGElement('title', attributes=['about', 'class', 'content', 'datatype', 'id', 'property', 'rel', 'requiredExtensions', 'requiredFeatures', 'requiredFonts', 'requiredFormats', 'resource', 'rev', 'role', 'systemLanguage', 'typeof', 'xml:base', 'xml:id', 'xml:lang', 'xml:space'], properties=media_group_names, children=empty_list), 'tspan': SVGElement('tspan', attributes=['about', 'class', 'content', 'datatype', 'focusHighlight', 'focusable', 'id', 'nav-down', 'nav-down-left', 'nav-down-right', 'nav-left', 'nav-next', 'nav-prev', 'nav-right', 'nav-up', 'nav-up-left', 'nav-up-right', 'property', 'rel', 'requiredExtensions', 'requiredFeatures', 'requiredFonts', 'requiredFormats', 'resource', 'rev', 'role', 'systemLanguage', 'typeof', 'xml:base', 'xml:id', 'xml:lang', 'xml:space'], properties=property_names, children=['likeparent', 'text', 'textArea']), 'use': SVGElement('use', attributes=['about', 'class', 'content', 'datatype', 'externalResourcesRequired', 'focusHighlight', 'focusable', 'id', 'nav-down', 'nav-down-left', 'nav-down-right', 'nav-left', 'nav-next', 'nav-prev', 'nav-right', 'nav-up', 'nav-up-left', 'nav-up-right', 'property', 'rel', 'requiredExtensions', 'requiredFeatures', 'requiredFonts', 'requiredFormats', 'resource', 'rev', 'role', 'systemLanguage', 'transform', 'typeof', 'x', 'xlink:actuate', 'xlink:arcrole', 'xlink:href', 'xlink:role', 'xlink:show', 'xlink:title', 'xlink:type', 'xml:base', 'xml:id', 'xml:lang', 'xml:space', 'y'], properties=property_names, children=['animate', 'animateColor', 'animateMotion', 'animateTransform', 'desc', 'discard', 'handler', 'metadata', 'set', 'switch', 'title']), 'video': SVGElement('video', attributes=['about', 'begin', 'class', 'content', 'datatype', 'dur', 'end', 'externalResourcesRequired', 'fill', 'focusHighlight', 'focusable', 'height', 'id', 'initialVisibility', 'max', 'min', 'nav-down', 'nav-down-left', 'nav-down-right', 'nav-left', 'nav-next', 'nav-prev', 'nav-right', 'nav-up', 'nav-up-left', 'nav-up-right', 'overlay', 'preserveAspectRatio', 'property', 'rel', 'repeatCount', 'repeatDur', 'requiredExtensions', 'requiredFeatures', 'requiredFonts', 'requiredFormats', 'resource', 'restart', 'rev', 'role', 'syncBehavior', 'syncMaster', 'syncTolerance', 'systemLanguage', 'transform', 'transformBehavior', 'type', 'typeof', 'width', 'x', 'xlink:actuate', 'xlink:arcrole', 'xlink:href', 'xlink:role', 'xlink:show', 'xlink:title', 'xlink:type', 'xml:base', 'xml:id', 'xml:lang', 'xml:space', 'y'], properties=media_group_names, children=['animate', 'animateColor', 'animateMotion', 'animateTransform', 'desc', 'discard', 'handler', 'metadata', 'set', 'switch', 'title']), }