1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/gfx/skia/trunk/src/animator/SkAnimateSchema.xsd Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,2787 @@ 1.4 +<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 1.5 +xmlns:Sk="urn:screenplay" targetNamespace="urn:screenplay"> 1.6 + 1.7 + <!-- /** Animate 1.8 + An ID of an element of type <animate> or <set> 1.9 + */ --> 1.10 + <xs:simpleType name="Animate"> 1.11 + <xs:restriction base="xs:string"/> 1.12 + </xs:simpleType> 1.13 + 1.14 + <!-- /** 3D_Point 1.15 + An array of three floats in ECMAScript notation: [x, y, z]. 1.16 + */ --> 1.17 + <xs:simpleType name="3D_Point"> 1.18 + <xs:restriction base="xs:string"> 1.19 + <xs:pattern value="[+-]?([0-9]*\.[0-9]+|[0-9]+\.?)( *, *[+-]?([0-9]*\.[0-9]+|[0-9]+\.?)){2}" /> 1.20 + </xs:restriction> 1.21 + </xs:simpleType> 1.22 + 1.23 + <!-- /** ARGB 1.24 + The red, green, blue, and optional alpha color components. 1.25 + */ --> 1.26 + <xs:simpleType name="ARGB"> 1.27 + <xs:restriction base="xs:string"> 1.28 + <!-- @pattern #[0-9a-fA-F]{3} #rgb contains three hexadecimal digits. #rgb is equivalent to 0xFFrrggbb. --> 1.29 + <xs:pattern value="#[0-9a-fA-F]{3}"/> 1.30 + <!-- @pattern #[0-9a-fA-F]{4} #argb contains four hexadecimal digits. #argb is equivalent to 0xaarrggbb. --> 1.31 + <xs:pattern value="#[0-9a-fA-F]{4}"/> 1.32 + <!-- @pattern #[0-9a-fA-F]{6} #rrggbb contains six hexadecimal digits. #rrggbb is equivalent to 0xFFrrggbb. --> 1.33 + <xs:pattern value="#[0-9a-fA-F]{6}"/> 1.34 + <!-- @pattern #[0-9a-fA-F]{8} #aarrggbb contains eight hexadecimal digits. #aarrggbb is equivalent to 0xaarrggbb. --> 1.35 + <xs:pattern value="#[0-9a-fA-F]{8}"/> 1.36 + <!-- @pattern 0[xX][0-9a-fA-F]{8} 0xaarrggbb describes the color as a packed hexadecimal; each pair of digits 1.37 + corresponds to alpha, red, green, and blue respectively. --> 1.38 + <xs:pattern value="0[xX][0-9a-fA-F]{8}"/> 1.39 + <!-- @pattern rgb\(\d+{1,3},\d+{1,3},\d+{1,3}\) rgb(r, g, b) describes color with three integers ranging from 0 to 255, 1.40 + corresponding to red, green, and blue respectively. --> 1.41 + <xs:pattern value="rgb\(\d+{1,3},\d+{1,3},\d+{1,3}\)"/> 1.42 + <!-- @patternList Color can be described by the following standard CSS color names. --> 1.43 + <xs:pattern value="aliceblue"/> 1.44 + <xs:pattern value="antiquewhite"/> 1.45 + <xs:pattern value="aqua"/> 1.46 + <xs:pattern value="aquamarine"/> 1.47 + <xs:pattern value="azure"/> 1.48 + <xs:pattern value="beige"/> 1.49 + <xs:pattern value="bisque"/> 1.50 + <xs:pattern value="black"/> 1.51 + <xs:pattern value="blanchedalmond"/> 1.52 + <xs:pattern value="blue"/> 1.53 + <xs:pattern value="blueviolet"/> 1.54 + <xs:pattern value="brown"/> 1.55 + <xs:pattern value="burlywood"/> 1.56 + <xs:pattern value="cadetblue"/> 1.57 + <xs:pattern value="chartreuse"/> 1.58 + <xs:pattern value="chocolate"/> 1.59 + <xs:pattern value="coral"/> 1.60 + <xs:pattern value="cornflowerblue"/> 1.61 + <xs:pattern value="cornsilk"/> 1.62 + <xs:pattern value="crimson"/> 1.63 + <xs:pattern value="cyan"/> 1.64 + <xs:pattern value="darkblue"/> 1.65 + <xs:pattern value="darkcyan"/> 1.66 + <xs:pattern value="darkgoldenrod"/> 1.67 + <xs:pattern value="darkgray"/> 1.68 + <xs:pattern value="darkgreen"/> 1.69 + <xs:pattern value="darkkhaki"/> 1.70 + <xs:pattern value="darkmagenta"/> 1.71 + <xs:pattern value="darkolivegreen"/> 1.72 + <xs:pattern value="darkorange"/> 1.73 + <xs:pattern value="darkorchid"/> 1.74 + <xs:pattern value="darkred"/> 1.75 + <xs:pattern value="darksalmon"/> 1.76 + <xs:pattern value="darkseagreen"/> 1.77 + <xs:pattern value="darkslateblue"/> 1.78 + <xs:pattern value="darkslategray"/> 1.79 + <xs:pattern value="darkturquoise"/> 1.80 + <xs:pattern value="darkviolet"/> 1.81 + <xs:pattern value="deeppink"/> 1.82 + <xs:pattern value="deepskyblue"/> 1.83 + <xs:pattern value="dimgray"/> 1.84 + <xs:pattern value="dodgerblue"/> 1.85 + <xs:pattern value="firebrick"/> 1.86 + <xs:pattern value="floralwhite"/> 1.87 + <xs:pattern value="forestgreen"/> 1.88 + <xs:pattern value="fuchsia"/> 1.89 + <xs:pattern value="gainsboro"/> 1.90 + <xs:pattern value="ghostwhite"/> 1.91 + <xs:pattern value="gold"/> 1.92 + <xs:pattern value="goldenrod"/> 1.93 + <xs:pattern value="gray"/> 1.94 + <xs:pattern value="green"/> 1.95 + <xs:pattern value="greenyellow"/> 1.96 + <xs:pattern value="honeydew"/> 1.97 + <xs:pattern value="hotpink"/> 1.98 + <xs:pattern value="indianred"/> 1.99 + <xs:pattern value="indigo"/> 1.100 + <xs:pattern value="ivory"/> 1.101 + <xs:pattern value="khaki"/> 1.102 + <xs:pattern value="lavender"/> 1.103 + <xs:pattern value="lavenderblush"/> 1.104 + <xs:pattern value="lawngreen"/> 1.105 + <xs:pattern value="lemonchiffon"/> 1.106 + <xs:pattern value="lightblue"/> 1.107 + <xs:pattern value="lightcoral"/> 1.108 + <xs:pattern value="lightcyan"/> 1.109 + <xs:pattern value="lightgoldenrodyellow"/> 1.110 + <xs:pattern value="lightgreen"/> 1.111 + <xs:pattern value="lightgrey"/> 1.112 + <xs:pattern value="lightpink"/> 1.113 + <xs:pattern value="lightsalmon"/> 1.114 + <xs:pattern value="lightseagreen"/> 1.115 + <xs:pattern value="lightskyblue"/> 1.116 + <xs:pattern value="lightslategray"/> 1.117 + <xs:pattern value="lightsteelblue"/> 1.118 + <xs:pattern value="lightyellow"/> 1.119 + <xs:pattern value="lime"/> 1.120 + <xs:pattern value="limegreen"/> 1.121 + <xs:pattern value="linen"/> 1.122 + <xs:pattern value="magenta"/> 1.123 + <xs:pattern value="maroon"/> 1.124 + <xs:pattern value="mediumaquamarine"/> 1.125 + <xs:pattern value="mediumblue"/> 1.126 + <xs:pattern value="mediumorchid"/> 1.127 + <xs:pattern value="mediumpurple"/> 1.128 + <xs:pattern value="mediumseagreen"/> 1.129 + <xs:pattern value="mediumslateblue"/> 1.130 + <xs:pattern value="mediumspringgreen"/> 1.131 + <xs:pattern value="mediumturquoise"/> 1.132 + <xs:pattern value="mediumvioletred"/> 1.133 + <xs:pattern value="midnightblue"/> 1.134 + <xs:pattern value="mintcream"/> 1.135 + <xs:pattern value="mistyrose"/> 1.136 + <xs:pattern value="moccasin"/> 1.137 + <xs:pattern value="navajowhite"/> 1.138 + <xs:pattern value="navy"/> 1.139 + <xs:pattern value="oldlace"/> 1.140 + <xs:pattern value="olive"/> 1.141 + <xs:pattern value="olivedrab"/> 1.142 + <xs:pattern value="orange"/> 1.143 + <xs:pattern value="orangered"/> 1.144 + <xs:pattern value="orchid"/> 1.145 + <xs:pattern value="palegoldenrod"/> 1.146 + <xs:pattern value="palegreen"/> 1.147 + <xs:pattern value="paleturquoise"/> 1.148 + <xs:pattern value="palevioletred"/> 1.149 + <xs:pattern value="papayawhip"/> 1.150 + <xs:pattern value="peachpuff"/> 1.151 + <xs:pattern value="peru"/> 1.152 + <xs:pattern value="pink"/> 1.153 + <xs:pattern value="plum"/> 1.154 + <xs:pattern value="powderblue"/> 1.155 + <xs:pattern value="purple"/> 1.156 + <xs:pattern value="red"/> 1.157 + <xs:pattern value="rosybrown"/> 1.158 + <xs:pattern value="royalblue"/> 1.159 + <xs:pattern value="saddlebrown"/> 1.160 + <xs:pattern value="salmon"/> 1.161 + <xs:pattern value="sandybrown"/> 1.162 + <xs:pattern value="seagreen"/> 1.163 + <xs:pattern value="seashell"/> 1.164 + <xs:pattern value="sienna"/> 1.165 + <xs:pattern value="silver"/> 1.166 + <xs:pattern value="skyblue"/> 1.167 + <xs:pattern value="slateblue"/> 1.168 + <xs:pattern value="slategray"/> 1.169 + <xs:pattern value="snow"/> 1.170 + <xs:pattern value="springgreen"/> 1.171 + <xs:pattern value="steelblue"/> 1.172 + <xs:pattern value="tan"/> 1.173 + <xs:pattern value="teal"/> 1.174 + <xs:pattern value="thistle"/> 1.175 + <xs:pattern value="tomato"/> 1.176 + <xs:pattern value="turquoise"/> 1.177 + <xs:pattern value="violet"/> 1.178 + <xs:pattern value="wheat"/> 1.179 + <xs:pattern value="white"/> 1.180 + <xs:pattern value="whitesmoke"/> 1.181 + <xs:pattern value="yellow"/> 1.182 + <!--@patternListLast --> 1.183 + <xs:pattern value="yellowgreen"/> 1.184 + </xs:restriction> 1.185 + </xs:simpleType> 1.186 + 1.187 + <!-- /** AddMode 1.188 + AddMode controls how the add element adds its referenced element to the 1.189 + display list. By default, the referenced element remains in the add element 1.190 + so that the add element's use attribute may be animated to change the 1.191 + element it refers to. Setting the mode attribute to "immediate" causes the 1.192 + add element to put the referenced element in the display list directly. 1.193 + The move and replace elements are not affected by the mode attribute; 1.194 + they always move or replace the referenced element directly. 1.195 + */ --> 1.196 + <xs:simpleType name="AddMode"> 1.197 + <xs:restriction base="xs:string"> 1.198 + <!-- @pattern immediate Puts the referenced element in the display list. --> 1.199 + <xs:pattern value="immediate"/> 1.200 + <!-- @pattern indirect Puts the containing element in the display list. --> 1.201 + <xs:pattern value="indirect"/> 1.202 + </xs:restriction> 1.203 + </xs:simpleType> 1.204 + 1.205 + <!-- /** Align 1.206 + Align places text to the left, center, or right of the text position. 1.207 + */ --> 1.208 + <xs:simpleType name="Align"> 1.209 + <xs:restriction base="xs:string"> 1.210 + <!-- @pattern left The first character in the text string is drawn at the text position. --> 1.211 + <xs:pattern value="left"/> 1.212 + <!-- @pattern center The text string is measured and centered on the text position. --> 1.213 + <xs:pattern value="center"/> 1.214 + <!-- @pattern right The last character in the text string is drawn to the left of the text position. --> 1.215 + <xs:pattern value="right"/> 1.216 + </xs:restriction> 1.217 + </xs:simpleType> 1.218 + 1.219 + <!-- /** ApplyMode 1.220 + ApplyMode affects how the apply element animates values. 1.221 + */ --> 1.222 + <xs:simpleType name="ApplyMode"> 1.223 + <xs:restriction base="xs:string"> 1.224 + <!-- @pattern immediate Iterates through all animation values immediately. --> 1.225 + <xs:pattern value="immediate"/> 1.226 + <!-- @pattern once Performs the animation at once without adding the scope to 1.227 + the display list. --> 1.228 + <xs:pattern value="once"/> 1.229 + </xs:restriction> 1.230 + </xs:simpleType> 1.231 + 1.232 + <!-- /** ApplyTransition 1.233 + ApplyTransition affects how the apply element sets the time of the animators. 1.234 + */ --> 1.235 + <xs:simpleType name="ApplyTransition"> 1.236 + <xs:restriction base="xs:string"> 1.237 + <!-- @pattern reverse Performs the animation in reverse. --> 1.238 + <xs:pattern value="reverse"/> 1.239 + </xs:restriction> 1.240 + </xs:simpleType> 1.241 + 1.242 + <!-- /** Base64 1.243 + Base64 describes 8 bit binary using 64 character values. 1.244 + See http://rfc.net/rfc2045.html for the base64 format. 1.245 + */ --> 1.246 + <xs:simpleType name="Base64"> 1.247 + <xs:restriction base="xs:string"> 1.248 + <xs:pattern value="[A-Za-z0-9+/ ]+"/> 1.249 + </xs:restriction> 1.250 + </xs:simpleType> 1.251 + 1.252 + <!-- /** BaseBitmap 1.253 + A reference to an image like a JPEG, GIF, or PNG; or a reference to a bitmap element 1.254 + that has been drawn into with a drawTo element. 1.255 + */ --> 1.256 + <xs:simpleType name="BaseBitmap"> 1.257 + <xs:restriction base="xs:string"/> 1.258 + </xs:simpleType> 1.259 + 1.260 + <!-- /** BitmapEncoding 1.261 + Used to specify the compression format for writing an image file with the snapshot element. 1.262 + */ --> 1.263 + <xs:simpleType name="BitmapEncoding"> 1.264 + <xs:restriction base="xs:string"> 1.265 + <!-- @pattern jpeg See http://www.jpeg.org/jpeg/ for more information about JPEG. --> 1.266 + <xs:pattern value="jpeg"/> 1.267 + <!-- @pattern png See http://www.libpng.org/pub/png/ for more information about PNG. --> 1.268 + <xs:pattern value="png"/> 1.269 + </xs:restriction> 1.270 + </xs:simpleType> 1.271 + 1.272 + <!-- /** BitmapFormat 1.273 + Determines the number of bits per pixel in a bitmap. 1.274 + */ --> 1.275 + <xs:simpleType name="BitmapFormat"> 1.276 + <xs:restriction base="xs:string"> 1.277 + <xs:pattern value="none"/> 1.278 + <!-- @pattern A1 1-bit per pixel, (0 is transparent, 1 is opaque). --> 1.279 + <xs:pattern value="A1"/> 1.280 + <!-- @pattern A8 8-bits per pixel, with only alpha specified (0 is transparent, 0xFF is opaque). --> 1.281 + <xs:pattern value="A8"/> 1.282 + <!-- @pattern Index8 8-bits per pixel, using a ColorTable element to specify the colors. --> 1.283 + <xs:pattern value="Index8"/> 1.284 + <!-- @pattern RGB16 16-bits per pixel, compile-time configured to be either 555 or 565. --> 1.285 + <xs:pattern value="RGB16"/> 1.286 + <!-- @pattern RGB32 32-bits per pixel, plus alpha. --> 1.287 + <xs:pattern value="RGB32"/> 1.288 + </xs:restriction> 1.289 + </xs:simpleType> 1.290 + 1.291 + <!-- /** Boolean 1.292 + Either "true" (non-zero) or "false" (zero). 1.293 + */ --> 1.294 + <xs:simpleType name="Boolean"> 1.295 + <xs:restriction base="xs:string"> 1.296 + <xs:pattern value="false"/> 1.297 + <xs:pattern value="true"/> 1.298 + </xs:restriction> 1.299 + </xs:simpleType> 1.300 + 1.301 + <!-- /** Cap 1.302 + The values for the strokeCap attribute. 1.303 + */ --> 1.304 + <xs:simpleType name="Cap"> 1.305 + <xs:restriction base="xs:string"> 1.306 + <!-- @pattern butt begin and end a contour with no extension --> 1.307 + <xs:pattern value="butt"/> 1.308 + <!-- @pattern round begin and end a contour with a semi-circle extension --> 1.309 + <xs:pattern value="round"/> 1.310 + <!-- @pattern square begin and end a contour with a half square extension --> 1.311 + <xs:pattern value="square"/> 1.312 + </xs:restriction> 1.313 + </xs:simpleType> 1.314 + 1.315 + <!-- /** Color 1.316 + A reference to a color element. 1.317 + */ --> 1.318 + <xs:simpleType name="Color"> 1.319 + <xs:restriction base="xs:string"/> 1.320 + </xs:simpleType> 1.321 + 1.322 + <!-- /** Displayable 1.323 + A reference to any element: @list(Displayable) 1.324 + */ --> 1.325 + <xs:simpleType name="Displayable"> 1.326 + <xs:restriction base="xs:string"/> 1.327 + </xs:simpleType> 1.328 + 1.329 + <!-- /** DisplayableArray 1.330 + An array of one or more element IDs. 1.331 + */ --> 1.332 + <xs:simpleType name="DisplayableArray"> 1.333 + <xs:restriction base="xs:string"/> 1.334 + </xs:simpleType> 1.335 + 1.336 + <!-- /** Drawable 1.337 + A reference to an element that can be drawn: @list(Drawable) 1.338 + */ --> 1.339 + <xs:simpleType name="Drawable"> 1.340 + <xs:restriction base="xs:string"/> 1.341 + </xs:simpleType> 1.342 + 1.343 + <!-- /** DynamicString 1.344 + Dynamic strings contain scripts that are re-evaluated each time the script is enabled. 1.345 + */ --> 1.346 + <xs:simpleType name="DynamicString"> 1.347 + <xs:restriction base="xs:string"/> 1.348 + </xs:simpleType> 1.349 + 1.350 + <!-- /** EventCode 1.351 + Key codes that can trigger events, usually corresponding to physical buttons on the device. 1.352 + */ --> 1.353 + <xs:simpleType name="EventCode"> 1.354 + <xs:restriction base="xs:string"> 1.355 + <xs:pattern value="none"/> 1.356 + <!-- @pattern up The up arrow. --> 1.357 + <xs:pattern value="up"/> 1.358 + <!-- @pattern down The down arrow. --> 1.359 + <xs:pattern value="down"/> 1.360 + <!-- @pattern left The left arrow. --> 1.361 + <xs:pattern value="left"/> 1.362 + <!-- @pattern right The right arrow. --> 1.363 + <xs:pattern value="right"/> 1.364 + <!-- @pattern back The back button (may not be present; the Backspace key on a PC). --> 1.365 + <xs:pattern value="back"/> 1.366 + <!-- @pattern end The end button (may not be present; the Esc key on a PC). --> 1.367 + <xs:pattern value="end"/> 1.368 + <!-- @pattern OK The OK button (the Enter key on a PC). --> 1.369 + <xs:pattern value="OK"/> 1.370 + </xs:restriction> 1.371 + </xs:simpleType> 1.372 + 1.373 + <!-- /** EventKind 1.374 + Specifies how an event is triggered; by a key, when an animation ends, when the 1.375 + document is loaded, or when this event is triggered by the user's C++ or XML. 1.376 + */ --> 1.377 + <xs:simpleType name="EventKind"> 1.378 + <xs:restriction base="xs:string"> 1.379 + <xs:pattern value="none"/> 1.380 + <!-- @pattern keyChar A key corresponding to a Unichar value. --> 1.381 + <xs:pattern value="keyChar"/> 1.382 + <!-- @pattern keyPress A key with a particular function, such as an arrow key or the OK button. --> 1.383 + <xs:pattern value="keyPress"/> 1.384 + <!-- @pattern mouseDown Triggered when the primary mouse button is pressed. --> 1.385 + <xs:pattern value="mouseDown"/> 1.386 + <!-- @pattern mouseDrag Triggered when the primary mouse is moved while the button is pressed. --> 1.387 + <xs:pattern value="mouseDrag"/> 1.388 + <!-- @pattern mouseMove Triggered when the primary mouse is moved. --> 1.389 + <xs:pattern value="mouseMove"/> 1.390 + <!-- @pattern mouseUp Triggered when the primary mouse button is released. --> 1.391 + <xs:pattern value="mouseUp"/> 1.392 + <!-- @pattern onEnd Triggered when an event ends. --> 1.393 + <xs:pattern value="onEnd"/> 1.394 + <!-- @pattern onLoad Triggered when the document loads. --> 1.395 + <xs:pattern value="onLoad"/> 1.396 + <!-- @pattern user Triggered when a post element or C++ event is activated. --> 1.397 + <xs:pattern value="user"/> 1.398 + </xs:restriction> 1.399 + </xs:simpleType> 1.400 + 1.401 + <!-- /** EventMode 1.402 + Specifies whether the event is delivered immediately to matching event element or deferred to 1.403 + the application-wide event handler. 1.404 + */ --> 1.405 + <xs:simpleType name="EventMode"> 1.406 + <xs:restriction base="xs:string"> 1.407 + <!-- @pattern deferred Process the event using the host's event queue. --> 1.408 + <xs:pattern value="deferred"/> 1.409 + <!-- @pattern immediate Activate the event element immediately. --> 1.410 + <xs:pattern value="immediate"/> 1.411 + </xs:restriction> 1.412 + </xs:simpleType> 1.413 + 1.414 + <!-- /** FillType 1.415 + Filled paths that self-intersect use the winding or evenOdd rule to determine whether the 1.416 + overlaps are filled or are holes. 1.417 + */ --> 1.418 + <xs:simpleType name="FillType"> 1.419 + <xs:restriction base="xs:string"> 1.420 + <!-- @pattern winding Fill if the sum of edge directions is non-zero. --> 1.421 + <xs:pattern value="winding"/> 1.422 + <!-- @pattern evenOdd Fill if the sum of edges is an odd number. --> 1.423 + <xs:pattern value="evenOdd"/> 1.424 + </xs:restriction> 1.425 + </xs:simpleType> 1.426 + 1.427 + <!-- /** FilterType 1.428 + Scaled bitmaps without a filter type set point-sample the source bitmap to determine the 1.429 + destination pixels' colors. Bilinear and bicubic compute the values of intermediate pixels 1.430 + by sampling the pixels around them. 1.431 + */ --> 1.432 + <xs:simpleType name="FilterType"> 1.433 + <xs:restriction base="xs:string"> 1.434 + <xs:pattern value="none"/> 1.435 + <!-- @pattern bilinear Compute the pixel value as the linear interpolation of adjacent pixels. --> 1.436 + <xs:pattern value="bilinear"/> 1.437 + </xs:restriction> 1.438 + </xs:simpleType> 1.439 + 1.440 + <!-- /** Float 1.441 + A signed fractional value. 1.442 + */ --> 1.443 + <xs:simpleType name="Float"> 1.444 + <xs:restriction base="xs:float"> 1.445 + <xs:pattern value="[+-]?([0-9]*\.[0-9]+|[0-9]+\.?)"/> 1.446 + </xs:restriction> 1.447 + </xs:simpleType> 1.448 + 1.449 + <!-- /** FloatArray 1.450 + An array of one or more signed fractional values. 1.451 + */ --> 1.452 + <xs:simpleType name="FloatArray"> 1.453 + <xs:restriction base="xs:float"> 1.454 + <xs:pattern value="\[[+-]?([0-9]*\.[0-9]+|[0-9]+\.?)( *, *[+-]?([0-9]*\.[0-9]+|[0-9]+\.?))*\]"/> 1.455 + </xs:restriction> 1.456 + </xs:simpleType> 1.457 + 1.458 + <!-- /** FromPathMode 1.459 + A matrix computed from an offset along a path may include the point's position, the angle 1.460 + tangent, or both. 1.461 + . 1.462 + */ --> 1.463 + <xs:simpleType name="FromPathMode"> 1.464 + <xs:restriction base="xs:string"> 1.465 + <!-- @pattern normal Compute the matrix using the path's angle and position. --> 1.466 + <xs:pattern value="normal"/> 1.467 + <!-- @pattern angle Compute the matrix using only the path's angle. --> 1.468 + <xs:pattern value="angle"/> 1.469 + <!-- @pattern position Compute the matrix using only the path's position. --> 1.470 + <xs:pattern value="position"/> 1.471 + </xs:restriction> 1.472 + </xs:simpleType> 1.473 + 1.474 + <!-- /** Int 1.475 + A signed integer. 1.476 + */ --> 1.477 + <xs:simpleType name="Int"> 1.478 + <xs:restriction base="xs:integer"/> 1.479 + </xs:simpleType> 1.480 + 1.481 + <!-- /** IntArray 1.482 + An array of one or more signed integer values. 1.483 + */ --> 1.484 + <xs:simpleType name="IntArray"> 1.485 + <xs:restriction base="xs:integer"> 1.486 + <xs:pattern value="\[[+-]?[0-9]+( *, *[+-]?[0-9]+)*\]"/> 1.487 + </xs:restriction> 1.488 + </xs:simpleType> 1.489 + 1.490 + <!-- /** Join 1.491 + The edges of thick lines in a path are joined by extending the outer edges to form a miter, 1.492 + or by adding a round circle at the intersection point, or by connecting the outer edges with a line 1.493 + to form a blunt joint. 1.494 + */ --> 1.495 + <xs:simpleType name="Join"> 1.496 + <xs:restriction base="xs:string"> 1.497 + <!-- @pattern miter Extend the outer edges to form a miter. --> 1.498 + <xs:pattern value="miter"/> 1.499 + <!-- @pattern round Join the outer edges with a circular arc. --> 1.500 + <xs:pattern value="round"/> 1.501 + <!-- @pattern blunt Connect the outer edges with a line. --> 1.502 + <xs:pattern value="blunt"/> 1.503 + </xs:restriction> 1.504 + </xs:simpleType> 1.505 + 1.506 + <!-- /** MaskFilterBlurStyle 1.507 + A blur can affect the inside or outside part of the shape, or it can affect both. The shape 1.508 + itself can be drawn solid, or can be invisible. 1.509 + */ --> 1.510 + <xs:simpleType name="MaskFilterBlurStyle"> 1.511 + <xs:restriction base="xs:string"> 1.512 + <!-- @pattern normal Blur inside and outside. --> 1.513 + <xs:pattern value="normal"/> 1.514 + <!-- @pattern solid Solid inside, blur outside. --> 1.515 + <xs:pattern value="solid"/> 1.516 + <!-- @pattern outer Invisible inside, blur outside. --> 1.517 + <xs:pattern value="outer"/> 1.518 + <!-- @pattern inner Blur inside only.. --> 1.519 + <xs:pattern value="inner"/> 1.520 + </xs:restriction> 1.521 + </xs:simpleType> 1.522 + 1.523 + <!-- /** MaskFilter 1.524 + The ID of a blur or emboss element. 1.525 + */ --> 1.526 + <xs:simpleType name="MaskFilter"> 1.527 + <xs:restriction base="xs:string"/> 1.528 + </xs:simpleType> 1.529 + 1.530 + <!-- /** Matrix 1.531 + The ID of a matrix element. 1.532 + */ --> 1.533 + <xs:simpleType name="Matrix"> 1.534 + <xs:restriction base="xs:string"/> 1.535 + </xs:simpleType> 1.536 + 1.537 + <!-- /** MSec 1.538 + A fractional second with millisecond resolution. 1.539 + */ --> 1.540 + <xs:simpleType name="MSec"> 1.541 + <xs:restriction base="xs:float"/> 1.542 + </xs:simpleType> 1.543 + 1.544 + <!-- /** Paint 1.545 + The ID of a paint element. 1.546 + */ --> 1.547 + <xs:simpleType name="Paint"> 1.548 + <xs:restriction base="xs:string"/> 1.549 + </xs:simpleType> 1.550 + 1.551 + <!-- /** Path 1.552 + The ID of a path element. 1.553 + */ --> 1.554 + <xs:simpleType name="Path"> 1.555 + <xs:restriction base="xs:string"/> 1.556 + </xs:simpleType> 1.557 + 1.558 + <!-- /** PathDirection 1.559 + PathDirection determines if the path is traveled clockwise or counterclockwise. 1.560 + */ --> 1.561 + <xs:simpleType name="PathDirection"> 1.562 + <xs:restriction base="xs:string"> 1.563 + <!-- @pattern cw The path is traveled clockwise. --> 1.564 + <xs:pattern value="cw"/> 1.565 + <!-- @pattern ccw The path is traveled counterclockwise. --> 1.566 + <xs:pattern value="ccw"/> 1.567 + </xs:restriction> 1.568 + </xs:simpleType> 1.569 + 1.570 + <!-- /** PathEffect 1.571 + The ID of a dash or discrete element. 1.572 + */ --> 1.573 + <xs:simpleType name="PathEffect"> 1.574 + <xs:restriction base="xs:string"/> 1.575 + </xs:simpleType> 1.576 + 1.577 + <!-- /** Point 1.578 + A pair of signed values representing the x and y coordinates of a point. 1.579 + */ --> 1.580 + <xs:simpleType name="Point"> 1.581 + <xs:restriction base="xs:string"> 1.582 + <xs:pattern value="\[ *[+-]?([0-9]*\.[0-9]+|[0-9]+\.?) *[ ,] *[+-]?([0-9]*\.[0-9]+|[0-9]+\.?)\]"/> 1.583 + </xs:restriction> 1.584 + </xs:simpleType> 1.585 + 1.586 + <!-- /** Rect 1.587 + The ID of a rectangle element. 1.588 + */ --> 1.589 + <xs:simpleType name="Rect"> 1.590 + <xs:restriction base="xs:string"/> 1.591 + </xs:simpleType> 1.592 + 1.593 + <!-- /** Shader 1.594 + The ID of a linear or radial gradient. 1.595 + */ --> 1.596 + <xs:simpleType name="Shader"> 1.597 + <xs:restriction base="xs:string"/> 1.598 + </xs:simpleType> 1.599 + 1.600 + <!-- /** String 1.601 + A sequence of characters. 1.602 + */ --> 1.603 + <xs:simpleType name="String"> 1.604 + <xs:restriction base="xs:string"/> 1.605 + </xs:simpleType> 1.606 + 1.607 + <!-- /** Style 1.608 + Geometry can be filled, stroked or both. 1.609 + */ --> 1.610 + <xs:simpleType name="Style"> 1.611 + <xs:restriction base="xs:string"> 1.612 + <!-- @pattern fill The interior of the geometry is filled with the paint's color. --> 1.613 + <xs:pattern value="fill"/> 1.614 + <!-- @pattern stroke The outline of the geometry is stroked with the paint's color. --> 1.615 + <xs:pattern value="stroke"/> 1.616 + <!-- @pattern strokeAndFill The interior is filled and outline is stroked with the paint's color. --> 1.617 + <xs:pattern value="strokeAndFill"/> 1.618 + </xs:restriction> 1.619 + </xs:simpleType> 1.620 + 1.621 + <!-- /** Text 1.622 + The ID of a text element. 1.623 + */ --> 1.624 + <xs:simpleType name="Text"> 1.625 + <xs:restriction base="xs:string"/> 1.626 + </xs:simpleType> 1.627 + 1.628 + <!-- /** TextBoxAlign 1.629 + Multiple lines of text may be aligned to the start of the box, the center, or the end. 1.630 + */ --> 1.631 + <xs:simpleType name="TextBoxAlign"> 1.632 + <xs:restriction base="xs:string"> 1.633 + <!-- @pattern start The text begins within the upper left of the box. --> 1.634 + <xs:pattern value="start"/> 1.635 + <!-- @pattern center The text is positioned in the center of the box. --> 1.636 + <xs:pattern value="center"/> 1.637 + <!-- @pattern end The text ends within the lower right of the box. --> 1.638 + <xs:pattern value="end"/> 1.639 + </xs:restriction> 1.640 + </xs:simpleType> 1.641 + 1.642 + <!-- /** TextBoxMode 1.643 + Fitting the text may optionally introduce line breaks. 1.644 + */ --> 1.645 + <xs:simpleType name="TextBoxMode"> 1.646 + <xs:restriction base="xs:string"> 1.647 + <!-- @pattern oneLine No additional linebreaks are added. --> 1.648 + <xs:pattern value="oneLine"/> 1.649 + <!-- @pattern lineBreak Line breaks may be added to fit the text to the box. --> 1.650 + <xs:pattern value="lineBreak"/> 1.651 + </xs:restriction> 1.652 + </xs:simpleType> 1.653 + 1.654 + <!-- /** TileMode 1.655 + A shader describes how to draw within a rectangle. 1.656 + Outside of the rectangle, the shader may be ignored, clamped on the edges, or repeated. 1.657 + The repetitions may be mirrored from the original shader. 1.658 + */ --> 1.659 + <xs:simpleType name="TileMode"> 1.660 + <xs:restriction base="xs:string"> 1.661 + <!-- @pattern clamp The edge shader color is extended. --> 1.662 + <xs:pattern value="clamp"/> 1.663 + <!-- @pattern repeat The shader is repeated horizontally and vertically. --> 1.664 + <xs:pattern value="repeat"/> 1.665 + <!-- @pattern mirror The shader is mirrored horizontally and vertically. --> 1.666 + <xs:pattern value="mirror"/> 1.667 + </xs:restriction> 1.668 + </xs:simpleType> 1.669 + 1.670 + <!-- /** Typeface 1.671 + The ID of a typeface element. 1.672 + */ --> 1.673 + <xs:simpleType name="Typeface"> 1.674 + <xs:restriction base="xs:string"/> 1.675 + </xs:simpleType> 1.676 + 1.677 + <!-- /** UnknownArray 1.678 + An array of values of any type. 1.679 + */ --> 1.680 + <xs:simpleType name="UnknownArray"> 1.681 + <xs:restriction base="xs:string"/> 1.682 + </xs:simpleType> 1.683 + 1.684 + <!-- /** Xfermode 1.685 + The operation applied when drawing a color to the destination background. 1.686 + */ --> 1.687 + <xs:simpleType name="Xfermode"> 1.688 + <xs:restriction base="xs:string"> 1.689 + <!-- @pattern clear Set the destination alpha to zero and the destination color to black. --> 1.690 + <xs:pattern value="clear"/> 1.691 + <!-- @pattern src Set the destination to the source alpha and color. --> 1.692 + <xs:pattern value="src"/> 1.693 + <!-- @pattern dst Set the destination to the destination alpha and color. --> 1.694 + <xs:pattern value="dst"/> 1.695 + <!-- @pattern srcOver The default. Set the destination to the source color blended 1.696 + with the destination by the source alpha. --> 1.697 + <xs:pattern value="srcOver"/> 1.698 + <!-- @pattern dstOver Set the destination to the destination color blended 1.699 + with the source by the destination alpha. --> 1.700 + <xs:pattern value="dstOver"/> 1.701 + <!-- @pattern srcIn Set the destination to the source color scaled by the destination 1.702 + alpha. --> 1.703 + <xs:pattern value="srcIn"/> 1.704 + <!-- @pattern dstIn Set the destination to the destination color scaled by the source 1.705 + alpha. --> 1.706 + <xs:pattern value="dstIn"/> 1.707 + <!-- @pattern srcOut Set the destination to the source color scaled by the 1.708 + inverse of the destination alpha. --> 1.709 + <xs:pattern value="srcOut"/> 1.710 + <!-- @pattern dstOut Set the destination to the destination color scaled by the 1.711 + inverse of the source alpha. --> 1.712 + <xs:pattern value="dstOut"/> 1.713 + <!-- @pattern srcATop Set the destination to the source color times the destination alpha, 1.714 + blended with the destination times the inverse of the source alpha. --> 1.715 + <xs:pattern value="srcATop"/> 1.716 + <!-- @pattern dstATop Set the destination to the destination color times the source alpha, 1.717 + blended with the source times the inverse of the destination alpha. --> 1.718 + <xs:pattern value="dstATop"/> 1.719 + <!-- @pattern xor Set the destination to the destination color times the 1.720 + inverse of the source alpha, 1.721 + blended with the source times the inverse of the destination alpha. --> 1.722 + <xs:pattern value="xor"/> 1.723 + </xs:restriction> 1.724 + </xs:simpleType> 1.725 + 1.726 + <!-- /** Math 1.727 + Math provides functions and properties in the ECMAScript library to screenplay script expressions. 1.728 + The Math element is always implicitly added at the top of every screenplay description, so 1.729 + its functions and properties are always available. 1.730 + */ --> 1.731 + <xs:element name="Math"> 1.732 + <xs:complexType> 1.733 + <!-- @attribute E The value 2.718281828. --> 1.734 + <xs:attribute name="E" type="Sk:Float"/> 1.735 + <!-- @attribute LN10 The value 2.302585093. --> 1.736 + <xs:attribute name="LN10" type="Sk:Float"/> 1.737 + <!-- @attribute LN2 The value 0.693147181. --> 1.738 + <xs:attribute name="LN2" type="Sk:Float"/> 1.739 + <!-- @attribute LOG10E The value 0.434294482. --> 1.740 + <xs:attribute name="LOG10E" type="Sk:Float"/> 1.741 + <!-- @attribute LOG2E The value 1.442695041. --> 1.742 + <xs:attribute name="LOG2E" type="Sk:Float"/> 1.743 + <!-- @attribute PI The value 3.141592654. --> 1.744 + <xs:attribute name="PI" type="Sk:Float"/> 1.745 + <!-- @attribute SQRT1_2 The value 0.707106781. --> 1.746 + <xs:attribute name="SQRT1_2" type="Sk:Float"/> 1.747 + <!-- @attribute SQRT2 The value 1.414213562. --> 1.748 + <xs:attribute name="SQRT2" type="Sk:Float"/> 1.749 + <!-- @attribute abs A function that returns the absolute value of its argument. --> 1.750 + <xs:attribute name="abs" type="Sk:Float"/> 1.751 + <!-- @attribute acos A function that returns the arc cosine of its argument. --> 1.752 + <xs:attribute name="acos" type="Sk:Float"/> 1.753 + <!-- @attribute asin A function that returns the arc sine of its argument. --> 1.754 + <xs:attribute name="asin" type="Sk:Float"/> 1.755 + <!-- @attribute atan A function that returns the arc tan of its argument. --> 1.756 + <xs:attribute name="atan" type="Sk:Float"/> 1.757 + <!-- @attribute atan2 A function that returns the arc tan of the ratio of its two arguments. --> 1.758 + <xs:attribute name="atan2" type="Sk:Float"/> 1.759 + <!-- @attribute ceil A function that returns the rounded up value of its argument. --> 1.760 + <xs:attribute name="ceil" type="Sk:Float"/> 1.761 + <!-- @attribute cos A function that returns the cosine of its argument. --> 1.762 + <xs:attribute name="cos" type="Sk:Float"/> 1.763 + <!-- @attribute exp A function that returns E raised to a power (the argument). --> 1.764 + <xs:attribute name="exp" type="Sk:Float"/> 1.765 + <!-- @attribute floor A function that returns the rounded down value of its argument. --> 1.766 + <xs:attribute name="floor" type="Sk:Float"/> 1.767 + <!-- @attribute log A function that returns the natural logarithm its argument. --> 1.768 + <xs:attribute name="log" type="Sk:Float"/> 1.769 + <!-- @attribute max A function that returns the largest of any number of arguments. --> 1.770 + <xs:attribute name="max" type="Sk:Float"/> 1.771 + <!-- @attribute min A function that returns the smallest of any number of arguments. --> 1.772 + <xs:attribute name="min" type="Sk:Float"/> 1.773 + <!-- @attribute pow A function that returns the first argument raised to the power of the second argument. --> 1.774 + <xs:attribute name="pow" type="Sk:Float"/> 1.775 + <!-- @attribute random A function that returns a random value from zero to one. 1.776 + (See also the <random> element.) --> 1.777 + <xs:attribute name="random" type="Sk:Float"/> 1.778 + <!-- @attribute round A function that returns the rounded value of its argument. --> 1.779 + <xs:attribute name="round" type="Sk:Float"/> 1.780 + <!-- @attribute sin A function that returns the sine of its argument. --> 1.781 + <xs:attribute name="sin" type="Sk:Float"/> 1.782 + <!-- @attribute sqrt A function that returns the square root of its argument. --> 1.783 + <xs:attribute name="sqrt" type="Sk:Float"/> 1.784 + <!-- @attribute tan A function that returns the tangent of its argument. --> 1.785 + <xs:attribute name="tan" type="Sk:Float"/> 1.786 + </xs:complexType> 1.787 + </xs:element> 1.788 + 1.789 + <!-- /** Number 1.790 + Number provides properties in the ECMAScript library to screenplay script expressions. 1.791 + The Number element is always implicitly added at the top of every screenplay description, so 1.792 + its properties are always available. 1.793 + */ --> 1.794 + <xs:element name="Number"> 1.795 + <xs:complexType> 1.796 + <!-- @attribute MAX_VALUE The maximum number value; approximately 32767.999985 fixed point, 1.797 + 3.4028235e+38 floating point. --> 1.798 + <xs:attribute name="MAX_VALUE" type="Sk:Float"/> 1.799 + <!-- @attribute MIN_VALUE The minimum number value; approximately 0.000015 fixed point, 1.800 + 1.1754944e-38 floating point. --> 1.801 + <xs:attribute name="MIN_VALUE" type="Sk:Float"/> 1.802 + <!-- @attribute NEGATIVE_INFINITY The most negative number value. Fixed point does not 1.803 + have a value for negative infinity, and approximates it with -32767.999985. --> 1.804 + <xs:attribute name="NEGATIVE_INFINITY" type="Sk:Float"/> 1.805 + <!-- @attribute NaN A bit pattern representing "Not a Number". Fixed point does not 1.806 + have a value for NaN, and approximates it with -32768. --> 1.807 + <xs:attribute name="NaN" type="Sk:Float"/> 1.808 + <!-- @attribute POSITIVE_INFINITY The greatest positive number value. Fixed point does not 1.809 + have a value for positive infinity, and approximates it with 32767.999985. --> 1.810 + <xs:attribute name="POSITIVE_INFINITY" type="Sk:Float"/> 1.811 + </xs:complexType> 1.812 + </xs:element> 1.813 + 1.814 + <!-- /** add 1.815 + Add references a drawable element, and adds it to the display list. 1.816 + If where and offset are omitted, the element is appended to the end of the display list. 1.817 + If where is specified, the element is inserted at the first occurance of where in the display list. 1.818 + If offset and where are specified, the element is inserted at where plus offset. 1.819 + A positive offset without where inserts the element at the start of the list plus offset. 1.820 + A negative offset without where inserts the element at the end of the list minus offset. 1.821 + */ --> 1.822 + <xs:element name="add"> 1.823 + <xs:complexType> 1.824 + <!-- @attribute mode If indirect (the default), keep the add element in the display list, 1.825 + and draw the add's use element. If immediate, put the add's use element in the display list. --> 1.826 + <xs:attribute name="mode" type="Sk:AddMode"/> 1.827 + <!-- @attribute offset The offset added to the insert index. --> 1.828 + <xs:attribute name="offset" type="Sk:Int"/> 1.829 + <!-- @attribute use The drawable element to add to the display list. --> 1.830 + <xs:attribute name="use" type="Sk:Drawable"/> 1.831 + <!-- @attribute where The drawable element marking where to insert. --> 1.832 + <xs:attribute name="where" type="Sk:Drawable"/> 1.833 + <xs:attribute name="id" type="xs:ID"/> 1.834 + </xs:complexType> 1.835 + </xs:element> 1.836 + 1.837 + <!-- /** addCircle 1.838 + AddCircle adds a closed circle to the parent path element. 1.839 + */ --> 1.840 + <xs:element name="addCircle"> 1.841 + <xs:complexType> 1.842 + <!-- @attribute direction One of @pattern. @patternDescription --> 1.843 + <xs:attribute name="direction" type="Sk:PathDirection"/> 1.844 + <!-- @attribute radius The distance from the center to the edge of the circle. --> 1.845 + <xs:attribute name="radius" type="Sk:Float"/> 1.846 + <!-- @attribute x The x coordinate of the circle's center. --> 1.847 + <xs:attribute name="x" type="Sk:Float"/> 1.848 + <!-- @attribute y The y coordinate of the circle's center.--> 1.849 + <xs:attribute name="y" type="Sk:Float"/> 1.850 + <xs:attribute name="id" type="xs:ID"/> 1.851 + </xs:complexType> 1.852 + </xs:element> 1.853 + 1.854 + <!-- /** addOval 1.855 + AddOval adds a closed oval described by its bounding box to the parent path element. 1.856 + */ --> 1.857 + <xs:element name="addOval"> 1.858 + <xs:complexType> 1.859 + <!-- @attribute direction One of @pattern. @patternDescription --> 1.860 + <xs:attribute name="direction" type="Sk:PathDirection"/> 1.861 + <!-- @attribute bottom The bottom edge of the oval's bounding box. --> 1.862 + <xs:attribute name="bottom" type="Sk:Float"/> 1.863 + <!-- @attribute left The left edge of the oval's bounding box. --> 1.864 + <xs:attribute name="left" type="Sk:Float"/> 1.865 + <!-- @attribute right The right edge of the oval's bounding box. --> 1.866 + <xs:attribute name="right" type="Sk:Float"/> 1.867 + <!-- @attribute top The top edge of the oval's bounding box. --> 1.868 + <xs:attribute name="top" type="Sk:Float"/> 1.869 + <xs:attribute name="id" type="xs:ID"/> 1.870 + </xs:complexType> 1.871 + </xs:element> 1.872 + 1.873 + <!-- /** addPath 1.874 + AddPath adds a path to the parent path element. 1.875 + An optional matrix may transform the path as it is added. 1.876 + */ --> 1.877 + <xs:element name="addPath"> 1.878 + <xs:complexType> 1.879 + <!-- @attribute matrix The matrix applied to the path as it is added. --> 1.880 + <xs:attribute name="matrix" type="Sk:Matrix"/> 1.881 + <!-- @attribute path The path to add. --> 1.882 + <xs:attribute name="path" type="Sk:Path"/> 1.883 + <xs:attribute name="id" type="xs:ID"/> 1.884 + </xs:complexType> 1.885 + </xs:element> 1.886 + 1.887 + <!-- /** addRect 1.888 + AddRect adds a closed rectangle to the parent path element. 1.889 + */ --> 1.890 + <xs:element name="addRect"> 1.891 + <xs:complexType> 1.892 + <!-- @attribute direction One of @pattern. @patternDescription --> 1.893 + <xs:attribute name="direction" type="Sk:PathDirection"/> 1.894 + <!-- @attribute bottom The bottom edge of the rectangle. --> 1.895 + <xs:attribute name="bottom" type="Sk:Float"/> 1.896 + <!-- @attribute left The left edge of the rectangle. --> 1.897 + <xs:attribute name="left" type="Sk:Float"/> 1.898 + <!-- @attribute right The right edge of the rectangle. --> 1.899 + <xs:attribute name="right" type="Sk:Float"/> 1.900 + <!-- @attribute top" The top" edge of the rectangle. --> 1.901 + <xs:attribute name="top" type="Sk:Float"/> 1.902 + <xs:attribute name="id" type="xs:ID"/> 1.903 + </xs:complexType> 1.904 + </xs:element> 1.905 + 1.906 + <!-- /** addRoundRect 1.907 + AddRoundRect adds a closed rounded rectangle to the parent path element. 1.908 + */ --> 1.909 + <xs:element name="addRoundRect"> 1.910 + <xs:complexType> 1.911 + <!-- @attribute direction One of @pattern. @patternDescription --> 1.912 + <xs:attribute name="direction" type="Sk:PathDirection"/> 1.913 + <!-- @attribute bottom The bottom edge of the rounded rectangle's bounding box. --> 1.914 + <xs:attribute name="bottom" type="Sk:Float"/> 1.915 + <!-- @attribute left The left edge of the rounded rectangle's bounding box. --> 1.916 + <xs:attribute name="left" type="Sk:Float"/> 1.917 + <!-- @attribute right The right edge of the rounded rectangle's bounding box. --> 1.918 + <xs:attribute name="right" type="Sk:Float"/> 1.919 + <!-- @attribute top The top edge of the rounded rectangle's bounding box. --> 1.920 + <xs:attribute name="top" type="Sk:Float"/> 1.921 + <!-- @attribute rx The X-radius of the oval used to round the corners. --> 1.922 + <xs:attribute name="rx" type="Sk:Float"/> 1.923 + <!-- @attribute ry The Y-radius of the oval used to round the corners. --> 1.924 + <xs:attribute name="ry" type="Sk:Float"/> 1.925 + <xs:attribute name="id" type="xs:ID"/> 1.926 + </xs:complexType> 1.927 + </xs:element> 1.928 + 1.929 + <!-- /** animate 1.930 + Animate varies the value of an element's attribute over time. 1.931 + The animation may vary starting at the 'from' attribute, and ending at the 'to' attribute, 1.932 + or may compute the value using the 'formula' attribute. 1.933 + */ --> 1.934 + <xs:element name="animate"> 1.935 + <xs:complexType> 1.936 + <!-- @attribute begin An optional offset that must elapse before the animation begins. The apply 1.937 + begin attribute is added to any animator's begin attribute. --> 1.938 + <xs:attribute name="begin" type="Sk:MSec"/> 1.939 + <!-- @attribute blend Specifies how the from and to values are blended. A value from 0.0 to 1.940 + 1.0 specifies a cubic lag/log/lag blend (slow to change at the beginning and end); the closer 1.941 + blend is to 1.0, the more linear the blend. If omitted, the blend is linear. --> 1.942 + <xs:attribute name="blend" type="Sk:FloatArray"/> 1.943 + <!-- @attribute dur The duration of the animation in milliseconds. --> 1.944 + <xs:attribute name="dur" type="Sk:MSec"/> 1.945 + <!-- @attribute dynamic If true, restart the animation if any of the simple values the 'from', 'formula', 1.946 + 'lval', or 'to' attributes reference are changed. Simple values are contained by the array, boolean, float, int, 1.947 + and string elements. --> 1.948 + <xs:attribute name="dynamic" type="Sk:Boolean" /> 1.949 + <!-- @attribute field The attribute to animate. --> 1.950 + <xs:attribute name="field" type="Sk:String"/> 1.951 + <!-- @attribute formula A script to execute over time to compute the field's value. Typically, 1.952 + the fomula is a script expression which includes a reference to the time attribute of the 1.953 + containing apply element. Requires a dur. For animations that do not stop, set dur="Number.POSITIVE_INFINITY" --> 1.954 + <xs:attribute name="formula" type="Sk:DynamicString"/> 1.955 + <!-- @attribute from The starting value (requires a 'to' attribute) --> 1.956 + <xs:attribute name="from" type="Sk:DynamicString"/> 1.957 + <!-- @attribute lval An expression evaluating to the attribute to animate. 1.958 + If present, lval overrides 'field'. The expression is typically an array element, 1.959 + e.g. lval="x[y]" . --> 1.960 + <xs:attribute name="lval" type="Sk:DynamicString"/> 1.961 + <!-- @attribute mirror If true, reverses the interpolated value during even repeat cycles. --> 1.962 + <xs:attribute name="mirror" type="Sk:Boolean"/> 1.963 + <!-- @attribute repeat Specifies the number of times to repeat the animation. 1.964 + (May be fractional.) --> 1.965 + <xs:attribute name="repeat" type="Sk:Float"/> 1.966 + <!-- @attribute reset If true, the computed value is the initial value after the 1.967 + animation is complete. If false, or by default, the computed value is the final value 1.968 + after the animation is complete. --> 1.969 + <xs:attribute name="reset" type="Sk:Boolean"/> 1.970 + <!-- @attribute step When the apply's attribute mode="immediate" or "create", the step attribute can be read by 1.971 + script to determine the current animation iteration. --> 1.972 + <xs:attribute name="step" type="Sk:Int" /> 1.973 + <!-- @attribute target The element to animate. By default, the element contained by the apply 1.974 + or referenced by the apply's scope attribute is the animate target. --> 1.975 + <xs:attribute name="target" type="Sk:DynamicString"/> 1.976 + <!-- @attribute to The ending value (requires a 'from' attribute) --> 1.977 + <xs:attribute name="to" type="Sk:DynamicString"/> 1.978 + <!-- @attribute values [Depreciated] --> 1.979 + <xs:attribute name="values" type="Sk:DynamicString"/> 1.980 + <xs:attribute name="id" type="xs:ID"/> 1.981 + </xs:complexType> 1.982 + </xs:element> 1.983 + 1.984 + <!-- /** apply 1.985 + Apply changes one or more attributes of an element. 1.986 + Apply either contains one displayable element or references the element scoping the change 1.987 + with the 'scope' attribute. Apply either contains one animator element or references it with 1.988 + the 'animator' attribute. 1.989 + In the display list, apply draws the element it scopes after evaluating the animation. 1.990 + */ --> 1.991 + <xs:element name="apply"> 1.992 + <xs:complexType> 1.993 + <xs:choice minOccurs="0" maxOccurs="1"> 1.994 + <xs:element ref="Sk:animate"/> 1.995 + <xs:element ref="Sk:set" /> 1.996 + <!-- not quite right; want to say 'one of the above, one of the below' 1.997 + </xs:choice> 1.998 + <xs:choice minOccurs="0" maxOccurs="1"> 1.999 + --> 1.1000 + <xs:element ref="Sk:add"/> 1.1001 + <xs:element ref="Sk:array"/> 1.1002 + <xs:element ref="Sk:apply"/> 1.1003 + <xs:element ref="Sk:bitmap"/> 1.1004 + <xs:element ref="Sk:boolean"/> 1.1005 + <xs:element ref="Sk:bounds"/> 1.1006 + <!-- <xs:element ref="Sk3D:camera"/> --> 1.1007 + <xs:element ref="Sk:clear"/> 1.1008 + <xs:element ref="Sk:clip"/> 1.1009 + <xs:element ref="Sk:color"/> 1.1010 + <xs:element ref="Sk:drawTo"/> 1.1011 + <xs:element ref="Sk:float"/> 1.1012 + <xs:element ref="Sk:full"/> 1.1013 + <xs:element ref="Sk:group"/> 1.1014 + <xs:element ref="Sk:image"/> 1.1015 + <xs:element ref="Sk:int"/> 1.1016 + <xs:element ref="Sk:line"/> 1.1017 + <xs:element ref="Sk:matrix"/> 1.1018 + <xs:element ref="Sk:move"/> 1.1019 + <xs:element ref="Sk:oval"/> 1.1020 + <xs:element ref="Sk:paint"/> 1.1021 + <!-- <xs:element ref="Sk:patch"/> --> 1.1022 + <xs:element ref="Sk:path"/> 1.1023 + <xs:element ref="Sk:point"/> 1.1024 + <xs:element ref="Sk:polygon"/> 1.1025 + <xs:element ref="Sk:polyline"/> 1.1026 + <xs:element ref="Sk:post"/> 1.1027 + <xs:element ref="Sk:random"/> 1.1028 + <xs:element ref="Sk:rect"/> 1.1029 + <xs:element ref="Sk:remove"/> 1.1030 + <xs:element ref="Sk:replace"/> 1.1031 + <xs:element ref="Sk:roundRect"/> 1.1032 + <xs:element ref="Sk:save"/> 1.1033 + <xs:element ref="Sk:snapshot"/> 1.1034 + <xs:element ref="Sk:string"/> 1.1035 + <xs:element ref="Sk:text"/> 1.1036 + <xs:element ref="Sk:textBox"/> 1.1037 + <xs:element ref="Sk:textOnPath"/> 1.1038 + <xs:element ref="Sk:textToPath"/> 1.1039 + </xs:choice> 1.1040 + <!-- @attribute animator The description of how the element is changed over time. --> 1.1041 + <xs:attribute name="animator" type="Sk:Animate"/> 1.1042 + <!-- @attribute begin An optional offset that must elapse before the animation begins. The apply 1.1043 + begin attribute is added to any animator's begin attribute. --> 1.1044 + <xs:attribute name="begin" type="Sk:MSec" /> 1.1045 + <!-- @attribute dontDraw Edits an element's attribute without drawing it; for instance, 1.1046 + to edit a clip's rectangle without drawing the rectangle, set dontDraw="true". --> 1.1047 + <xs:attribute name="dontDraw" type="Sk:Boolean"/> 1.1048 + <!-- @attribute dynamicScope The location in the display list where animations are stored. Use 1.1049 + dynamicScope instead of scope if a script expression with potentially different values is desired to 1.1050 + describe the scope. --> 1.1051 + <xs:attribute name="dynamicScope" type="Sk:String"/> 1.1052 + <!-- @attribute interval The optional time interval from one animation frame to the next. --> 1.1053 + <xs:attribute name="interval" type="Sk:MSec" /> 1.1054 + <!-- @attribute mode One of @pattern. @patternDescription --> 1.1055 + <xs:attribute name="mode" type="Sk:ApplyMode"/> 1.1056 + <!-- @attribute pickup Starts the animation at the current target's attribute value. Enabling 1.1057 + 'pickup' permits omitting the 'from' attribute of the animator. --> 1.1058 + <xs:attribute name="pickup" type="Sk:Boolean"/> 1.1059 + <!-- @attribute restore If true, multiple references to the same apply statement save and 1.1060 + restore the interpolated target values. --> 1.1061 + <xs:attribute name="restore" type="Sk:Boolean"/> 1.1062 + <!-- @attribute scope The location in the display list where animations are stored. --> 1.1063 + <xs:attribute name="scope" type="Sk:Drawable"/> 1.1064 + <!-- @attribute step When mode="immediate" or "create", the step attribute can be read by 1.1065 + script to determine the current animation iteration. --> 1.1066 + <xs:attribute name="step" type="Sk:Int" /> 1.1067 + <!-- @attribute steps When mode="immediate", the number of times the animation 1.1068 + is stepped. The animation iterates 'steps' times plus one. --> 1.1069 + <xs:attribute name="steps" type="Sk:Int" /> 1.1070 + <!-- @attribute time When read from script, returns the animation time. Typically used by 1.1071 + an animate element's formula attribute. --> 1.1072 + <xs:attribute name="time" type="Sk:MSec" /> 1.1073 + <!-- @attribute transition One of @pattern. @patternDescription --> 1.1074 + <xs:attribute name="transition" type="Sk:ApplyTransition"/> 1.1075 + <xs:attribute name="id" type="xs:ID"/> 1.1076 + </xs:complexType> 1.1077 + </xs:element> 1.1078 + 1.1079 + <!-- /** array 1.1080 + Array contains an array of values of the same type. The values may be 1.1081 + numbers or strings. 1.1082 + */ --> 1.1083 + <xs:element name="array"> 1.1084 + <xs:complexType> 1.1085 + <!-- @attribute length The number of elements in the array (read only). --> 1.1086 + <xs:attribute name="length" type="Sk:Int"/> 1.1087 + <!-- @attribute values The elements in the array. --> 1.1088 + <xs:attribute name="values" type="Sk:UnknownArray"/> 1.1089 + <xs:attribute name="id" type="xs:ID"/> 1.1090 + </xs:complexType> 1.1091 + </xs:element> 1.1092 + 1.1093 + <!-- /** bitmap 1.1094 + Bitmap describes a rectangle of pixels. 1.1095 + Use the <drawTo> element to draw to a bitmap. 1.1096 + Add the bitmap to the display list to draw from a bitmap. 1.1097 + */ --> 1.1098 + <xs:element name="bitmap"> 1.1099 + <xs:complexType> 1.1100 + <!-- @attribute erase The color, including the alpha, the bitmap is intially set to. --> 1.1101 + <xs:attribute name="erase" type="Sk:ARGB"/> 1.1102 + <!-- @attribute format One of @pattern. @patternDescription --> 1.1103 + <xs:attribute name="format" type="Sk:BitmapFormat"/> 1.1104 + <!-- @attribute height The height of the bitmap in pixels. --> 1.1105 + <xs:attribute name="height" type="Sk:Int"/> 1.1106 + <!-- @attribute rowBytes The number of byte describing each row of pixels (optional). --> 1.1107 + <xs:attribute name="rowBytes" type="Sk:Int"/> 1.1108 + <!-- @attribute width The height of the width in pixels. --> 1.1109 + <xs:attribute name="width" type="Sk:Int"/> 1.1110 + <!-- @attribute x The left edge of the bitmap in unit space. --> 1.1111 + <xs:attribute name="x" type="Sk:Float"/> 1.1112 + <!-- @attribute y The top edge of teh bitmap in unit space. --> 1.1113 + <xs:attribute name="y" type="Sk:Float"/> 1.1114 + <xs:attribute name="id" type="xs:ID"/> 1.1115 + </xs:complexType> 1.1116 + </xs:element> 1.1117 + 1.1118 + <!-- /** bitmapShader 1.1119 + BitmapShader sets the paint shader to draw the bitmap as a texture. 1.1120 + */ --> 1.1121 + <xs:element name="bitmapShader"> 1.1122 + <xs:complexType> 1.1123 + <xs:choice > 1.1124 + <xs:element ref="Sk:image" minOccurs="0" /> 1.1125 + <xs:element ref="Sk:matrix" minOccurs="0" /> 1.1126 + </xs:choice> 1.1127 + <!-- @attribute matrix Matrix applies a 3x3 transform to the gradient. --> 1.1128 + <xs:attribute name="matrix" type="Sk:Matrix"/> 1.1129 + <!-- @attribute tileMode One of @pattern. @patternDescription --> 1.1130 + <xs:attribute name="tileMode" type="Sk:TileMode"/> 1.1131 + <!-- @attribute filterType The bitmap filter to employ, one of @pattern. --> 1.1132 + <xs:attribute name="filterType" type="Sk:FilterType"/> 1.1133 + <!-- @attribute image The bitmap to draw. --> 1.1134 + <xs:attribute name="image" type="Sk:BaseBitmap"/> 1.1135 + <xs:attribute name="id" type="xs:ID"/> 1.1136 + </xs:complexType> 1.1137 + </xs:element> 1.1138 + 1.1139 + 1.1140 + <!-- /** blur 1.1141 + Blur describes an image filter in the paint that blurs the drawn geometry. 1.1142 + */ --> 1.1143 + <xs:element name="blur"> 1.1144 + <xs:complexType> 1.1145 + <!-- @attribute blurStyle One of @pattern. @patternDescription --> 1.1146 + <xs:attribute name="blurStyle" type="Sk:MaskFilterBlurStyle"/> 1.1147 + <!-- @attribute radius The extent of the filter effect in unit space. If the radius is less 1.1148 + than zero, the blur has no effect. --> 1.1149 + <xs:attribute name="radius" type="Sk:Float"/> 1.1150 + <xs:attribute name="id" type="xs:ID"/> 1.1151 + </xs:complexType> 1.1152 + </xs:element> 1.1153 + 1.1154 + <!-- /** boolean 1.1155 + Boolean contains an boolean. The boolean element cannot be added to a display list, but can 1.1156 + by set by animations and read by any attribute definition. An boolean element may be referenced, 1.1157 + for instance, by a group's condition attribute to make an animation conditionally execute. 1.1158 + */ --> 1.1159 + <xs:element name="boolean"> 1.1160 + <xs:complexType> 1.1161 + <!-- @attribute value The contained boolean. --> 1.1162 + <xs:attribute name="value" type="Sk:Boolean"/> 1.1163 + <xs:attribute name="id" type="xs:ID"/> 1.1164 + </xs:complexType> 1.1165 + </xs:element> 1.1166 + 1.1167 + <!-- /** bounds 1.1168 + Bounds describes a bounding box that is not drawn. Bounds is used to specify a rectangle to 1.1169 + invalidate or record whether the specified area was drawn. 1.1170 + The width and height attribute compute the rectangle's right and bottom edges when the rectangle 1.1171 + description is first seen. Animating the rectangle's left or top will not recompute the right or bottom 1.1172 + if the width or height have been specified. 1.1173 + */ --> 1.1174 + <xs:element name="bounds"> 1.1175 + <xs:complexType> 1.1176 + <!-- @attribute bottom The bottom edge of the rectangle. --> 1.1177 + <xs:attribute name="bottom" type="Sk:Float"/> 1.1178 + <!-- @attribute height The height of the rectangle. Setting height computes the 1.1179 + bottom attribute from the top attribute. --> 1.1180 + <xs:attribute name="height" type="Sk:Float"/> 1.1181 + <!-- @attribute inval If set to true, union the drawn bounds to compute an inval area. --> 1.1182 + <xs:attribute name="inval" type="Sk:Boolean"/> 1.1183 + <!-- @attribute left The left edge of the rectangle. --> 1.1184 + <xs:attribute name="left" type="Sk:Float"/> 1.1185 + <!-- @attribute needsRedraw Set to true if last draw was visible. --> 1.1186 + <xs:attribute name="needsRedraw" type="Sk:Boolean"/> 1.1187 + <!-- @attribute right The right edge of the rectangle. --> 1.1188 + <xs:attribute name="right" type="Sk:Float"/> 1.1189 + <!-- @attribute top The top edge of the rectangle. --> 1.1190 + <xs:attribute name="top" type="Sk:Float"/> 1.1191 + <!-- @attribute width The width of the rectangle. --> 1.1192 + <xs:attribute name="width" type="Sk:Float"/> 1.1193 + <xs:attribute name="id" type="xs:ID"/> 1.1194 + </xs:complexType> 1.1195 + </xs:element> 1.1196 + 1.1197 + <!-- /** clear 1.1198 + Clear removes all entries in the display list. 1.1199 + */ --> 1.1200 + <xs:element name="clear"> 1.1201 + <xs:complexType> 1.1202 + <xs:attribute name="id" type="xs:ID"/> 1.1203 + </xs:complexType> 1.1204 + </xs:element> 1.1205 + 1.1206 + <!-- /** clip 1.1207 + Clip sets the canvas to clip drawing to an element's geometry. 1.1208 + A clip element may contain an element or reference an element with the path or 1.1209 + rectangle attributes. To make the clip unrestricted, enclose a 'full' element. 1.1210 + */ --> 1.1211 + <xs:element name="clip"> 1.1212 + <xs:complexType> 1.1213 + <xs:choice minOccurs="0" maxOccurs="1"> 1.1214 + <xs:element ref="Sk:full"/> 1.1215 + <xs:element ref="Sk:rect"/> 1.1216 + <xs:element ref="Sk:path"/> 1.1217 + <xs:element ref="Sk:polygon"/> 1.1218 + <xs:element ref="Sk:polyline"/> 1.1219 + </xs:choice> 1.1220 + <!-- @attribute path A path-derived element to clip to: either an oval, 1.1221 + a path, a polygon, a polyline, or a roundRect. --> 1.1222 + <xs:attribute name="path" type="Sk:Path"/> 1.1223 + <!-- @attribute rect A rectangle element to clip to. --> 1.1224 + <xs:attribute name="rect" type="Sk:Rect"/> 1.1225 + <xs:attribute name="id" type="xs:ID"/> 1.1226 + </xs:complexType> 1.1227 + </xs:element> 1.1228 + 1.1229 + <!-- /** close 1.1230 + Close connects the last point in the path's contour to the first if the contour is not already closed. 1.1231 + */ --> 1.1232 + <xs:element name="close"> 1.1233 + <xs:complexType> 1.1234 + <xs:attribute name="id" type="xs:ID"/> 1.1235 + </xs:complexType> 1.1236 + </xs:element> 1.1237 + 1.1238 + <!-- /** color 1.1239 + Color describes a color in RGB space or HSV space, and its alpha (transparency). 1.1240 + */ --> 1.1241 + <xs:element name="color"> 1.1242 + <xs:complexType> 1.1243 + <!-- @attribute alpha The alpha component, which describes transparency. 1.1244 + Alpha ranges from 0.0 (transparent) to 1.0 (completely opaque). --> 1.1245 + <xs:attribute name="alpha" type="Sk:Float"/> 1.1246 + <!-- @attribute blue The blue component of an RGB color. Blue ranges from 0 to 255. --> 1.1247 + <xs:attribute name="blue" type="Sk:Float"/> 1.1248 + <!-- @attribute color The complete color. The color can be specified by name, 1.1249 + by hexadecimal value, or with the rgb function. --> 1.1250 + <xs:attribute name="color" type="Sk:ARGB"/> 1.1251 + <!-- @attribute green The green component of an RGB color. Green ranges from 0 to 255. --> 1.1252 + <xs:attribute name="green" type="Sk:Float"/> 1.1253 + <!-- @attribute hue The hue component of an HSV color. Hue ranges from 0 to 360. --> 1.1254 + <xs:attribute name="hue" type="Sk:Float"/> 1.1255 + <!-- @attribute red The red component of an RGB color. Red ranges from 0 to 255. --> 1.1256 + <xs:attribute name="red" type="Sk:Float"/> 1.1257 + <!-- @attribute saturation The saturation component of an HSV color. Saturation ranges from 0 to 1. --> 1.1258 + <xs:attribute name="saturation" type="Sk:Float"/> 1.1259 + <!-- @attribute value The value component of an HSV color. Value ranges from 0 to 1. --> 1.1260 + <xs:attribute name="value" type="Sk:Float"/> 1.1261 + <xs:attribute name="id" type="xs:ID"/> 1.1262 + </xs:complexType> 1.1263 + </xs:element> 1.1264 + 1.1265 + <!-- /** cubicTo 1.1266 + CubicTo adds a cubic to the path, using the last point in the path as the first point of the cubic. 1.1267 + */ --> 1.1268 + <xs:element name="cubicTo"> 1.1269 + <xs:complexType> 1.1270 + <!-- @attribute x1 The x position of the first off-curve point. --> 1.1271 + <xs:attribute name="x1" type="Sk:Float"/> 1.1272 + <!-- @attribute x2 The x position of the second off-curve point. --> 1.1273 + <xs:attribute name="x2" type="Sk:Float"/> 1.1274 + <!-- @attribute x3 The x position of the final on-curve point. --> 1.1275 + <xs:attribute name="x3" type="Sk:Float"/> 1.1276 + <!-- @attribute y1 The y position of the first off-curve point. --> 1.1277 + <xs:attribute name="y1" type="Sk:Float"/> 1.1278 + <!-- @attribute y2 The y position of the second off-curve point. --> 1.1279 + <xs:attribute name="y2" type="Sk:Float"/> 1.1280 + <!-- @attribute y3 The y position of the final on-curve point. --> 1.1281 + <xs:attribute name="y3" type="Sk:Float"/> 1.1282 + <xs:attribute name="id" type="xs:ID"/> 1.1283 + </xs:complexType> 1.1284 + </xs:element> 1.1285 + 1.1286 + <!-- /** dash 1.1287 + Dash describes an array of dashes and gaps that describe how the paint strokes lines, 1.1288 + rectangles, and paths. The intervals, phase, and dashed path are all measured in the same 1.1289 + unit space. The phase and distance between dashes is unaffected by the paint's stroke width. 1.1290 + */ --> 1.1291 + <xs:element name="dash"> 1.1292 + <xs:complexType> 1.1293 + <!-- @attribute intervals An array of floats that alternately describe the lengths of 1.1294 + dashes and gaps. Intervals must contain an even number of entries. --> 1.1295 + <xs:attribute name="intervals" type="Sk:FloatArray"/> 1.1296 + <!-- @attribute phase Phase advances the placement of the first dash. A positive phase 1.1297 + preceeds the first dash with a gap. A negative phase shortens the length of the first dash. --> 1.1298 + <xs:attribute name="phase" type="Sk:Float"/> 1.1299 + <xs:attribute name="id" type="xs:ID"/> 1.1300 + </xs:complexType> 1.1301 + </xs:element> 1.1302 + 1.1303 + <!-- /** data 1.1304 + Data provides metadata to an event. The metadata may be an integer, a float, 1.1305 + or a string. 1.1306 + */ --> 1.1307 + <xs:element name="data"> 1.1308 + <xs:complexType> 1.1309 + <!-- @attribute float The float value associated with the metadata. --> 1.1310 + <xs:attribute name="float" type="Sk:Float"/> 1.1311 + <!-- @attribute initialized A read-only value set to false (unused by data). --> 1.1312 + <xs:attribute name="initialized" type="Sk:Boolean"/> 1.1313 + <!-- @attribute int The integer value associated with the metadata. --> 1.1314 + <xs:attribute name="int" type="Sk:Int"/> 1.1315 + <!-- @attribute name The name of the metadata. This is the name of the data. --> 1.1316 + <xs:attribute name="name" type="Sk:String"/> 1.1317 + <!-- @attribute string The string value associated with the metadata. --> 1.1318 + <xs:attribute name="string" type="Sk:String"/> 1.1319 + <xs:attribute name="id" type="xs:ID"/> 1.1320 + </xs:complexType> 1.1321 + </xs:element> 1.1322 + 1.1323 + <!-- /** discrete 1.1324 + Discrete alters the edge of the stroke randomly. Discrete is a path effect, and only has an 1.1325 + effect when referenced from a paint.. A <pathEffect/> 1.1326 + element with no attributes will dissable discrete. 1.1327 + */ --> 1.1328 + <xs:element name="discrete"> 1.1329 + <xs:complexType> 1.1330 + <!-- @attribute deviation The amount of wobble in the stroke. --> 1.1331 + <xs:attribute name="deviation" type="Sk:Float"/> 1.1332 + <!-- @attribute segLength The length of wobble in the stroke. --> 1.1333 + <xs:attribute name="segLength" type="Sk:Float"/> 1.1334 + <xs:attribute name="id" type="xs:ID"/> 1.1335 + </xs:complexType> 1.1336 + </xs:element> 1.1337 + 1.1338 + <!-- /** drawTo 1.1339 + DrawTo images to a bitmap. The bitmap can be added to the display list 1.1340 + to draw the composite image. 1.1341 + DrawTo can be used as an offscreen to speed complicated animations, and 1.1342 + for bitmap effects such as pixelated zooming. 1.1343 + DrawTo can only reference a single drawable element. Use <add>, 1.1344 + <group>, or <save> to draw multiple elements with <drawTo>. 1.1345 + */ --> 1.1346 + <xs:element name="drawTo"> 1.1347 + <xs:complexType> 1.1348 + <xs:choice maxOccurs="unbounded" > 1.1349 + <xs:element ref="Sk:add"/> 1.1350 + <xs:element ref="Sk:apply"/> 1.1351 + <xs:element ref="Sk:bitmap"/> 1.1352 + <xs:element ref="Sk:bounds"/> 1.1353 + <!-- <xs:element ref="Sk3D:camera"/> --> 1.1354 + <xs:element ref="Sk:clear"/> 1.1355 + <xs:element ref="Sk:clip"/> 1.1356 + <xs:element ref="Sk:color"/> 1.1357 + <xs:element ref="Sk:full"/> 1.1358 + <xs:element ref="Sk:group"/> 1.1359 + <xs:element ref="Sk:image"/> 1.1360 + <xs:element ref="Sk:line"/> 1.1361 + <xs:element ref="Sk:matrix"/> 1.1362 + <xs:element ref="Sk:move"/> 1.1363 + <xs:element ref="Sk:oval"/> 1.1364 + <xs:element ref="Sk:paint"/> 1.1365 + <!-- <xs:element ref="Sk:patch"/> --> 1.1366 + <xs:element ref="Sk:path"/> 1.1367 + <xs:element ref="Sk:point"/> 1.1368 + <xs:element ref="Sk:polygon"/> 1.1369 + <xs:element ref="Sk:polyline"/> 1.1370 + <xs:element ref="Sk:rect"/> 1.1371 + <xs:element ref="Sk:remove"/> 1.1372 + <xs:element ref="Sk:replace"/> 1.1373 + <xs:element ref="Sk:roundRect"/> 1.1374 + <xs:element ref="Sk:save"/> 1.1375 + <xs:element ref="Sk:text"/> 1.1376 + <xs:element ref="Sk:textBox"/> 1.1377 + <xs:element ref="Sk:textOnPath"/> 1.1378 + <xs:element ref="Sk:textToPath"/> 1.1379 + </xs:choice> 1.1380 + <!-- @attribute drawOnce If set, the drawTo will only draw a single time. --> 1.1381 + <xs:attribute name="drawOnce" type="Sk:Boolean"/> 1.1382 + <!-- @attribute use The bitmap to draw into. --> 1.1383 + <xs:attribute name="use" type="Sk:bitmap"/> 1.1384 + <xs:attribute name="id" type="xs:ID"/> 1.1385 + </xs:complexType> 1.1386 + </xs:element> 1.1387 + 1.1388 + <!-- /** dump 1.1389 + Dump prints a list of the items in the display list and all items' 1.1390 + children to the debug console. Dump is only available in Debug 1.1391 + builds. */ --> 1.1392 + <xs:element name="dump"> 1.1393 + <xs:complexType> 1.1394 + <!-- @attribute displayList Dumps the current display list if true. The display list is also 1.1395 + dumped if dump has no attributes. --> 1.1396 + <xs:attribute name="displayList" type="Sk:Boolean"/> 1.1397 + <!-- @attribute eventList Dumps the list of events, both enabled and disabled. --> 1.1398 + <xs:attribute name="eventList" type="Sk:Boolean"/> 1.1399 + <!-- @attribute events Outputs each event element as it is enabled. --> 1.1400 + <xs:attribute name="events" type="Sk:Boolean"/> 1.1401 + <!-- @attribute groups Outputs each group element as its condition is evaluated. --> 1.1402 + <xs:attribute name="groups" type="Sk:Boolean"/> 1.1403 + <!-- @attribute name Outputs the values associated with a single named element. --> 1.1404 + <xs:attribute name="name" type="Sk:String"/> 1.1405 + <!-- @attribute posts Outputs each post element as it is enabled. --> 1.1406 + <xs:attribute name="posts" type="Sk:Boolean"/> 1.1407 + <!-- @attribute script Evaluates the provided script --> 1.1408 + <xs:attribute name="script" type="Sk:String"/> 1.1409 + <xs:attribute name="id" type="xs:ID"/> 1.1410 + </xs:complexType> 1.1411 + </xs:element> 1.1412 + 1.1413 + <!-- /** emboss 1.1414 + PRELIMINARY [to be replaced with SkEmbossMaskFilter.h doxyfomation 1.1415 + at some point] 1.1416 + Emboss applies a mask filter to the paint that makes bias the object's color 1.1417 + towards white or black depending on the normals of the path contour, giving 1.1418 + the shape a 3D raised or depressed effect. 1.1419 + Embossing is replaced by subsequent mask filter elements, or 1.1420 + disabled a negative radius, or by an empty <mask filter> element. 1.1421 + */ --> 1.1422 + <xs:element name="emboss"> 1.1423 + <xs:complexType> 1.1424 + <!-- @attribute ambient The amount of ambient light, from 0 to 1. --> 1.1425 + <xs:attribute name="ambient" type="Sk:Float"/> 1.1426 + <!-- @attribute direction The direction of the light source, as descibed by a 3D vector. 1.1427 + (The vector is normalized to a unit length of 1.0.) --> 1.1428 + <xs:attribute name="direction" type="Sk:FloatArray"/> 1.1429 + <!-- @attribute radius The extent of the filter effect in unit space. If the radius is less 1.1430 + than zero, the emboss has no effect. --> 1.1431 + <xs:attribute name="radius" type="Sk:Float"/> 1.1432 + <!-- @attribute specular The expotential intensity of the light, from 0 to 1. 1.1433 + Each increase of 0.0625 doubles the intensity. --> 1.1434 + <xs:attribute name="specular" type="Sk:Float"/> 1.1435 + <xs:attribute name="id" type="xs:ID"/> 1.1436 + </xs:complexType> 1.1437 + </xs:element> 1.1438 + 1.1439 + <!-- /** event 1.1440 + Event contains a series of actions performed each time the event's criteria are satisfied. 1.1441 + These actions may modify the display list, may enable animations which in turn modify 1.1442 + elements' attributes, and may post other events. 1.1443 + */ --> 1.1444 + <xs:element name="event"> 1.1445 + <xs:complexType> 1.1446 + <xs:choice maxOccurs="unbounded" > 1.1447 + <xs:element ref="Sk:add"/> 1.1448 + <xs:element ref="Sk:apply"/> 1.1449 + <xs:element ref="Sk:array"/> 1.1450 + <xs:element ref="Sk:bitmap"/> 1.1451 + <xs:element ref="Sk:boolean"/> 1.1452 + <xs:element ref="Sk:bounds"/> 1.1453 + <!-- <xs:element ref="Sk3D:camera"/> --> 1.1454 + <xs:element ref="Sk:clear"/> 1.1455 + <xs:element ref="Sk:clip"/> 1.1456 + <xs:element ref="Sk:color"/> 1.1457 + <xs:element ref="Sk:drawTo"/> 1.1458 + <xs:element ref="Sk:dump"/> 1.1459 + <xs:element ref="Sk:float"/> 1.1460 + <xs:element ref="Sk:full"/> 1.1461 + <xs:element ref="Sk:group"/> 1.1462 + <xs:element ref="Sk:hitClear"/> 1.1463 + <xs:element ref="Sk:hitTest"/> 1.1464 + <xs:element ref="Sk:image"/> 1.1465 + <xs:element ref="Sk:input"/> 1.1466 + <xs:element ref="Sk:int"/> 1.1467 + <xs:element ref="Sk:line"/> 1.1468 + <xs:element ref="Sk:matrix"/> 1.1469 + <xs:element ref="Sk:move"/> 1.1470 + <xs:element ref="Sk:movie"/> 1.1471 + <xs:element ref="Sk:oval"/> 1.1472 + <xs:element ref="Sk:paint"/> 1.1473 + <!-- <xs:element ref="Sk:patch"/> --> 1.1474 + <xs:element ref="Sk:path"/> 1.1475 + <xs:element ref="Sk:point"/> 1.1476 + <xs:element ref="Sk:polygon"/> 1.1477 + <xs:element ref="Sk:polyline"/> 1.1478 + <xs:element ref="Sk:post"/> 1.1479 + <xs:element ref="Sk:random"/> 1.1480 + <xs:element ref="Sk:rect"/> 1.1481 + <xs:element ref="Sk:remove"/> 1.1482 + <xs:element ref="Sk:replace"/> 1.1483 + <xs:element ref="Sk:roundRect"/> 1.1484 + <xs:element ref="Sk:save"/> 1.1485 + <xs:element ref="Sk:snapshot"/> 1.1486 + <xs:element ref="Sk:string"/> 1.1487 + <xs:element ref="Sk:text"/> 1.1488 + <xs:element ref="Sk:textBox"/> 1.1489 + <xs:element ref="Sk:textOnPath"/> 1.1490 + <xs:element ref="Sk:textToPath"/> 1.1491 + </xs:choice> 1.1492 + <!-- @attribute code The key code to match to a key press event, one of @pattern. 1.1493 + If the code is set to @pattern[0], the event is never activated. --> 1.1494 + <xs:attribute name="code" type="Sk:EventCode"/> 1.1495 + <!-- @attribute disable If true, the event cannot be activated. By default false.. --> 1.1496 + <xs:attribute name="disable" type="Sk:Boolean"/> 1.1497 + <!-- @attribute key The character code to match to a key down event. 1.1498 + When read, the key that activated this event. --> 1.1499 + <xs:attribute name="key" type="Sk:String"/> 1.1500 + <!-- @attribute keys A dash-separated continuous range of character codes to match 1.1501 + to a key down event. Read the key attribute to determine the key that activated this event. --> 1.1502 + <xs:attribute name="keys" type="Sk:String"/> <!-- single or range of keys --> 1.1503 + <!-- @attribute kind The event kind that activates this event, one of @pattern. 1.1504 + If kind equals keyChar, either attribute key or keys is expected. 1.1505 + If kind equals keyPress, attribute code is expected. 1.1506 + If kind equals onEnd, attribute target is expected. 1.1507 + If kind equals onLoad, the event is activated when the document containing the event 1.1508 + is loaded. The onLoad attribute cannot be activated through a post event. 1.1509 + If kind equals user, the event is activated when the posted event targets this event's ID. --> 1.1510 + <xs:attribute name="kind" type="Sk:EventKind"/> 1.1511 + <!-- @attribute target The element to listen to which activates this event. --> 1.1512 + <xs:attribute name="target" type="Sk:String" /> 1.1513 + <!-- @attribute x For click events, the x-coordinate of the click. --> 1.1514 + <xs:attribute name="x" type="Sk:Float" /> 1.1515 + <!-- @attribute y For click events, the y-coordinate of the click. --> 1.1516 + <xs:attribute name="y" type="Sk:Float" /> 1.1517 + <xs:attribute name="id" type="xs:ID"/> 1.1518 + </xs:complexType> 1.1519 + </xs:element> 1.1520 + 1.1521 + <!-- /** float 1.1522 + Float contains a signed fractional value. The float element cannot be added to a display list, 1.1523 + but can be set by animations and read by any attribute definition. 1.1524 + */ --> 1.1525 + <xs:element name="float"> 1.1526 + <xs:complexType> 1.1527 + <!-- @attribute value The contained float. --> 1.1528 + <xs:attribute name="value" type="Sk:Float"/> 1.1529 + <xs:attribute name="id" type="xs:ID"/> 1.1530 + </xs:complexType> 1.1531 + </xs:element> 1.1532 + 1.1533 + <!-- /** fromPath 1.1534 + FromPath concatenates the parent matrix with a new matrix 1.1535 + that maps a unit vector to a point on the given path. 1.1536 + A fromPath element may contain a path element, or may refer to a previously 1.1537 + defined path element with the path attribute. 1.1538 + */ --> 1.1539 + <xs:element name="fromPath"> 1.1540 + <xs:complexType> 1.1541 + <xs:choice > 1.1542 + <!-- @element path The path to evaluate. --> 1.1543 + <xs:element ref="Sk:path" minOccurs="0" /> 1.1544 + </xs:choice> 1.1545 + <!-- @attribute mode One of @pattern. 1.1546 + If mode is set to normal, the matrix maps the unit vector's angle and position. 1.1547 + If mode is set to angle, the matrix maps only the unit vector's angle. 1.1548 + If mode is set to position, the matrix maps only the unit vector's position. --> 1.1549 + <xs:attribute name="mode" type="Sk:FromPathMode"/> 1.1550 + <!-- @attribute offset The distance along the path to evaluate. --> 1.1551 + <xs:attribute name="offset" type="Sk:Float"/> 1.1552 + <!-- @attribute path The path to evaluate. --> 1.1553 + <xs:attribute name="path" type="Sk:Path"/> 1.1554 + <xs:attribute name="id" type="xs:ID"/> 1.1555 + </xs:complexType> 1.1556 + </xs:element> 1.1557 + 1.1558 + <!-- /** full 1.1559 + Full paints the entire canvas to the limit of the canvas' clip. 1.1560 + */ --> 1.1561 + <xs:element name="full"> 1.1562 + <xs:complexType> 1.1563 + <xs:attribute name="id" type="xs:ID"/> 1.1564 + </xs:complexType> 1.1565 + </xs:element> 1.1566 + 1.1567 + <!-- /** group 1.1568 + The group element collects a series of elements into a group. The group can be referenced 1.1569 + or defined within elements, like apply, which operate on any kind of element. Groups 1.1570 + may contain groups. An element in a group draws identically to an element outside a group. 1.1571 + */ --> 1.1572 + <xs:element name="group"> 1.1573 + <xs:complexType> 1.1574 + <xs:choice maxOccurs="unbounded"> 1.1575 + <xs:element ref="Sk:add"/> 1.1576 + <xs:element ref="Sk:apply"/> 1.1577 + <xs:element ref="Sk:array"/> 1.1578 + <xs:element ref="Sk:bitmap"/> 1.1579 + <xs:element ref="Sk:boolean"/> 1.1580 + <xs:element ref="Sk:bounds"/> 1.1581 + <!-- <xs:element ref="Sk3D:camera"/> --> 1.1582 + <xs:element ref="Sk:clear"/> 1.1583 + <xs:element ref="Sk:clip"/> 1.1584 + <xs:element ref="Sk:drawTo"/> 1.1585 + <xs:element ref="Sk:float"/> 1.1586 + <xs:element ref="Sk:full"/> 1.1587 + <xs:element ref="Sk:group"/> 1.1588 + <xs:element ref="Sk:hitClear"/> 1.1589 + <xs:element ref="Sk:hitTest"/> 1.1590 + <xs:element ref="Sk:image"/> 1.1591 + <xs:element ref="Sk:int"/> 1.1592 + <xs:element ref="Sk:line"/> 1.1593 + <xs:element ref="Sk:matrix"/> 1.1594 + <xs:element ref="Sk:move"/> 1.1595 + <xs:element ref="Sk:oval"/> 1.1596 + <xs:element ref="Sk:paint"/> 1.1597 + <!-- <xs:element ref="Sk:patch"/> --> 1.1598 + <xs:element ref="Sk:path"/> 1.1599 + <xs:element ref="Sk:point"/> 1.1600 + <xs:element ref="Sk:polygon"/> 1.1601 + <xs:element ref="Sk:polyline"/> 1.1602 + <xs:element ref="Sk:post"/> 1.1603 + <xs:element ref="Sk:random"/> 1.1604 + <xs:element ref="Sk:rect"/> 1.1605 + <xs:element ref="Sk:remove"/> 1.1606 + <xs:element ref="Sk:replace"/> 1.1607 + <xs:element ref="Sk:roundRect"/> 1.1608 + <xs:element ref="Sk:save"/> 1.1609 + <xs:element ref="Sk:snapshot"/> 1.1610 + <xs:element ref="Sk:string"/> 1.1611 + <xs:element ref="Sk:text"/> 1.1612 + <xs:element ref="Sk:textBox"/> 1.1613 + <xs:element ref="Sk:textOnPath"/> 1.1614 + <xs:element ref="Sk:textToPath"/> 1.1615 + </xs:choice> 1.1616 + <!-- @attribute condition If present and zero, the contained elements are ignored 1.1617 + when drawn. --> 1.1618 + <xs:attribute name="condition" type="Sk:DynamicString"/> 1.1619 + <!-- @attribute enableCondition If present and zero, the contained elements are ignored 1.1620 + when enabled. --> 1.1621 + <xs:attribute name="enableCondition" type="Sk:DynamicString"/> 1.1622 + <xs:attribute name="id" type="xs:ID"/> 1.1623 + </xs:complexType> 1.1624 + </xs:element> 1.1625 + 1.1626 + <xs:element name="hitClear" > 1.1627 + <xs:complexType> 1.1628 + <xs:choice maxOccurs="1"> 1.1629 + <xs:element ref="Sk:array"/> 1.1630 + </xs:choice> 1.1631 + <!-- @attribute targets An array of element IDs to clear their hit-tested state. --> 1.1632 + <xs:attribute name="targets" type="Sk:DisplayableArray"/> 1.1633 + <xs:attribute name="id" type="xs:ID"/> 1.1634 + </xs:complexType> 1.1635 + </xs:element> 1.1636 + 1.1637 + <xs:element name="hitTest" > 1.1638 + <xs:complexType> 1.1639 + <xs:choice maxOccurs="2"> 1.1640 + <xs:element ref="Sk:array"/> 1.1641 + </xs:choice> 1.1642 + <!-- @attribute bullets An array of element IDs to test for intersection with targets. --> 1.1643 + <xs:attribute name="bullets" type="Sk:DisplayableArray"/> 1.1644 + <!-- @attribute hits The targets the bullets hit. A read-only array of indices, one index 1.1645 + per bullet. The value of the array element is the index of the target hit, or -1 if no 1.1646 + target was hit. --> 1.1647 + <xs:attribute name="hits" type="Sk:IntArray"/> 1.1648 + <!-- @attribute targets An array of element IDs to test for intersection with bullets. --> 1.1649 + <xs:attribute name="targets" type="Sk:DisplayableArray"/> 1.1650 + <!-- @attribute value Read only; set to true if some bullet hit some target. --> 1.1651 + <xs:attribute name="value" type="Sk:Boolean"/> 1.1652 + <xs:attribute name="id" type="xs:ID"/> 1.1653 + </xs:complexType> 1.1654 + </xs:element> 1.1655 + 1.1656 + <!-- /** image 1.1657 + Image creates a reference to a JPEG, PNG or GIF. The image may be referenced 1.1658 + through the local file system, the internet, or embedded in the document in Base64 1.1659 + format. The specific image type is determined by examining the byte stream. 1.1660 + */ --> 1.1661 + <xs:element name="image"> 1.1662 + <xs:complexType> 1.1663 + <!-- @attribute base64 The image in Base64 notation. See http://rfc.net/rfc2045.html 1.1664 + for the base64 format. --> 1.1665 + <xs:attribute name="base64" type="Sk:Base64"/> 1.1666 + <!-- @attribute height The height of the image (read-only). --> 1.1667 + <xs:attribute name="height" type="Sk:Int"/> 1.1668 + <!-- @attribute src The URI reference, local to the contaiing document. --> 1.1669 + <xs:attribute name="src" type="Sk:String"/> 1.1670 + <!-- @attribute width The width of the image (read-only). --> 1.1671 + <xs:attribute name="width" type="Sk:Int"/> 1.1672 + <!-- @attribute x The position of the left edge of the image in local coordinates. --> 1.1673 + <xs:attribute name="x" type="Sk:Float"/> 1.1674 + <!-- @attribute y The position of the top edge of the image in local coordinates. --> 1.1675 + <xs:attribute name="y" type="Sk:Float"/> 1.1676 + <xs:attribute name="id" type="xs:ID"/> 1.1677 + </xs:complexType> 1.1678 + </xs:element> 1.1679 + 1.1680 + <!-- /** include 1.1681 + Include adds the referenced XML to the containing document. Unlike movie, the XML 1.1682 + directives can reference the document's IDs and can define new IDs that are referenced 1.1683 + by the remainder of the document or subsequent includes. 1.1684 + */ --> 1.1685 + <xs:element name="include"> 1.1686 + <xs:complexType> 1.1687 + <!-- @attribute src The URI reference, local to the containing document, 1.1688 + containing the include's XML. --> 1.1689 + <xs:attribute name="src" type="Sk:String"/> 1.1690 + <xs:attribute name="id" type="xs:ID"/> 1.1691 + </xs:complexType> 1.1692 + </xs:element> 1.1693 + 1.1694 + <!-- /** input 1.1695 + Input captures the metadata passed from an event. When the metadata's name or id 1.1696 + matches the metadata's name, the metadata's payload is copied to the corresponding 1.1697 + input attribute. 1.1698 + */ --> 1.1699 + <xs:element name="input"> 1.1700 + <xs:complexType> 1.1701 + <!-- @attribute float The floating point payload carried by the metadata. --> 1.1702 + <xs:attribute name="float" type="Sk:Float"/> 1.1703 + <!-- @attribute initialized A read-only value set to true if the input received a value 1.1704 + from the event. --> 1.1705 + <xs:attribute name="initialized" type="Sk:Boolean"/> 1.1706 + <!-- @attribute int The signed integer payload carried by the metadata. --> 1.1707 + <xs:attribute name="int" type="Sk:Int"/> 1.1708 + <!-- @attribute name The name of the metadata containing the payload. Note that 1.1709 + the name or id may match the payload, but that XML requires the id to be 1.1710 + uniquely defined in the document, while multiple input elements may reuse 1.1711 + the name. --> 1.1712 + <xs:attribute name="name" type="Sk:String"/> 1.1713 + <!-- @attribute string The text payload carried by the metadata. --> 1.1714 + <xs:attribute name="string" type="Sk:String"/> 1.1715 + <xs:attribute name="id" type="xs:ID"/> 1.1716 + </xs:complexType> 1.1717 + </xs:element> 1.1718 + 1.1719 + <!-- /** int 1.1720 + Int contains an integer. The int element cannot be added to a display list, but can 1.1721 + by set by animations and read by any attribute definition. An int element may be used, 1.1722 + for instance, to index through an array element. 1.1723 + */ --> 1.1724 + <xs:element name="int"> 1.1725 + <xs:complexType> 1.1726 + <!-- @attribute value The contained integer. --> 1.1727 + <xs:attribute name="value" type="Sk:Int"/> 1.1728 + <xs:attribute name="id" type="xs:ID"/> 1.1729 + </xs:complexType> 1.1730 + </xs:element> 1.1731 + 1.1732 + <!-- /** line 1.1733 + Line describes a line between two points. As noted below, the paint's stroke and 1.1734 + strokeAndFill attributes are ignored. 1.1735 + */ --> 1.1736 + <xs:element name="line"> 1.1737 + <xs:complexType> 1.1738 + <!-- @attribute x1 The start point's x value. --> 1.1739 + <xs:attribute name="x1" type="Sk:Float"/> 1.1740 + <!-- @attribute x2 The stop point's x value. --> 1.1741 + <xs:attribute name="x2" type="Sk:Float"/> 1.1742 + <!-- @attribute y1 The start point's y value. --> 1.1743 + <xs:attribute name="y1" type="Sk:Float"/> 1.1744 + <!-- @attribute y2 The stop point's y value. --> 1.1745 + <xs:attribute name="y2" type="Sk:Float"/> 1.1746 + <xs:attribute name="id" type="xs:ID"/> 1.1747 + </xs:complexType> 1.1748 + </xs:element> 1.1749 + 1.1750 + <!-- /** lineTo 1.1751 + LineTo adds a line from the last point in a path to the specified point. 1.1752 + */ --> 1.1753 + <xs:element name="lineTo"> 1.1754 + <xs:complexType> 1.1755 + <!-- @attribute x The final path x coordinate. --> 1.1756 + <xs:attribute name="x" type="Sk:Float"/> 1.1757 + <!-- @attribute y The final path y coordinate. --> 1.1758 + <xs:attribute name="y" type="Sk:Float"/> 1.1759 + <xs:attribute name="id" type="xs:ID"/> 1.1760 + </xs:complexType> 1.1761 + </xs:element> 1.1762 + 1.1763 + <!-- /** linearGradient 1.1764 + LinearGradient sets the paint shader to ramp between two or more colors. 1.1765 + */ --> 1.1766 + <xs:element name="linearGradient"> 1.1767 + <xs:complexType> 1.1768 + <xs:choice maxOccurs="unbounded"> 1.1769 + <xs:element ref="Sk:color"/> 1.1770 + <xs:element ref="Sk:matrix"/> 1.1771 + </xs:choice> 1.1772 + <!-- @attribute matrix Matrix applies a 3x3 transform to the gradient. --> 1.1773 + <xs:attribute name="matrix" type="Sk:Matrix"/> 1.1774 + <!-- @attribute tileMode One of @pattern. @patternDescription --> 1.1775 + <xs:attribute name="tileMode" type="Sk:TileMode"/> 1.1776 + <!-- @attribute offsets An optional array of values used to bias the colors. The first entry 1.1777 + in the array must be 0.0, the last must be 1.0, and intermediate values must ascend. --> 1.1778 + <xs:attribute name="offsets" type="Sk:FloatArray"/> 1.1779 + <!-- @attribute points Two points describing the start and end of the gradient. --> 1.1780 + <xs:attribute name="points" type="Sk:Point"/> <!-- not right; should be array of 2 points --> 1.1781 + <!-- @attribute unitMapper A script that returns the mapping for [0,1] for the gradient. 1.1782 + The script can use the predefined variable 'unit' to compute the mapping. For instance, 1.1783 + "unit*unit" squares the value (while still keeping it in the range of [0,1].) The computed number 1.1784 + is pinned to from 0 to 1 after the script is executed. --> 1.1785 + <xs:attribute name="unitMapper" type="Sk:String"/> 1.1786 + <xs:attribute name="id" type="xs:ID"/> 1.1787 + </xs:complexType> 1.1788 + </xs:element> 1.1789 + 1.1790 + <!-- /** maskFilter 1.1791 + MaskFilter disables any mask filter referenced by the paint. 1.1792 + */ --> 1.1793 + <xs:element name="maskFilter"> 1.1794 + <xs:complexType> 1.1795 + <xs:attribute name="id" type="xs:ID"/> 1.1796 + </xs:complexType> 1.1797 + </xs:element> 1.1798 + 1.1799 + <!-- /** matrix 1.1800 + Matrix transforms all points drawn to the canvas. The matrix may translate, scale, skew, rotate, 1.1801 + or apply perspective, or apply any combination. 1.1802 + */ --> 1.1803 + <xs:element name="matrix"> 1.1804 + <xs:complexType> 1.1805 + <xs:choice maxOccurs="unbounded"> 1.1806 + <!-- @element fromPath FromPath maps a unit vector to a position and direction on a path. --> 1.1807 + <xs:element ref="Sk:fromPath"/> 1.1808 + <!-- @element polyToPoly PolyToPoly maps a points between two polygons. --> 1.1809 + <xs:element ref="Sk:polyToPoly"/> 1.1810 + <!-- @element rectToRect RectToRect maps a points between two rectangles. --> 1.1811 + <xs:element ref="Sk:rectToRect"/> 1.1812 + <!-- @element rotate Rotate computes the matrix rotation in degrees. --> 1.1813 + <xs:element ref="Sk:rotate"/> 1.1814 + <!-- @element scale Scale stretches or shrinks horizontally, vertically, or both. --> 1.1815 + <xs:element ref="Sk:scale"/> 1.1816 + <!-- @element skew Skew slants horizontally, vertically, or both. --> 1.1817 + <xs:element ref="Sk:skew"/> 1.1818 + <!-- @element translate Translate moves horizontally, vertically, or both. --> 1.1819 + <xs:element ref="Sk:translate"/> 1.1820 + </xs:choice> 1.1821 + <!-- @attribute matrix Nine floats describing a 3x3 matrix. --> 1.1822 + <xs:attribute name="matrix" type="Sk:FloatArray"/> 1.1823 + <!-- @attribute perspectX The [0][2] element of the 3x3 matrix. --> 1.1824 + <xs:attribute name="perspectX" type="Sk:Float"/> 1.1825 + <!-- @attribute perspectY The [1][2] element of the 3x3 matrix. --> 1.1826 + <xs:attribute name="perspectY" type="Sk:Float"/> 1.1827 + <!-- @attribute rotate The angle to rotate in degrees. --> 1.1828 + <xs:attribute name="rotate" type="Sk:Float"/> 1.1829 + <!-- @attribute scale The scale to apply in both X and Y.. --> 1.1830 + <xs:attribute name="scale" type="Sk:Float"/> 1.1831 + <!-- @attribute scaleX The [0][0] element of the 3x3 matrix. --> 1.1832 + <xs:attribute name="scaleX" type="Sk:Float"/> 1.1833 + <!-- @attribute scaleY The [1][1] element of the 3x3 matrix. --> 1.1834 + <xs:attribute name="scaleY" type="Sk:Float"/> 1.1835 + <!-- @attribute skewX The [0][1] element of the 3x3 matrix. --> 1.1836 + <xs:attribute name="skewX" type="Sk:Float"/> 1.1837 + <!-- @attribute skewY The [1][0] element of the 3x3 matrix. --> 1.1838 + <xs:attribute name="skewY" type="Sk:Float"/> 1.1839 + <!-- @attribute translate A point specifying the translation in X and Y. --> 1.1840 + <xs:attribute name="translate" type="Sk:Point"/> 1.1841 + <!-- @attribute translateX The [2][0] element of the 3x3 matrix. --> 1.1842 + <xs:attribute name="translateX" type="Sk:Float"/> 1.1843 + <!-- @attribute translateY The [2][1] element of the 3x3 matrix. --> 1.1844 + <xs:attribute name="translateY" type="Sk:Float"/> 1.1845 + <xs:attribute name="id" type="xs:ID"/> 1.1846 + </xs:complexType> 1.1847 + </xs:element> 1.1848 + 1.1849 + <!-- /** move 1.1850 + Move an element in the display list in front or behind other elements. 1.1851 + If where and offset are omitted, the element is moved to the end of the display list. 1.1852 + If where is specified, the element is moved before the first occurance of where in the display list. 1.1853 + If offset and where are specified, the element is moved before where plus offset. 1.1854 + A positive offset without where moves the element to the start of the list plus offset. 1.1855 + A negative offset without where moves the element to the end of the list minus offset. 1.1856 + */ --> 1.1857 + <xs:element name="move"> 1.1858 + <xs:complexType> 1.1859 + <!-- @attribute mode Has no effect. --> 1.1860 + <xs:attribute name="mode" type="Sk:AddMode"/> 1.1861 + <!-- @attribute offset The destination position using the rules listed above. --> 1.1862 + <xs:attribute name="offset" type="Sk:Int"/> 1.1863 + <!-- @attribute use The element to move. --> 1.1864 + <xs:attribute name="use" type="Sk:Drawable"/> 1.1865 + <!-- @attribute where The ID of the first display list entry to move to. --> 1.1866 + <xs:attribute name="where" type="Sk:Drawable"/> 1.1867 + <xs:attribute name="id" type="xs:ID"/> 1.1868 + </xs:complexType> 1.1869 + </xs:element> 1.1870 + 1.1871 + <!-- /** moveTo 1.1872 + MoveTo specifies the first point in a path contour. 1.1873 + */ --> 1.1874 + <xs:element name="moveTo"> 1.1875 + <xs:complexType> 1.1876 + <!-- @attribute x The point's x coordinate. --> 1.1877 + <xs:attribute name="x" type="Sk:Float"/> 1.1878 + <!-- @attribute y The point's y coordinate. --> 1.1879 + <xs:attribute name="y" type="Sk:Float"/> 1.1880 + <xs:attribute name="id" type="xs:ID"/> 1.1881 + </xs:complexType> 1.1882 + </xs:element> 1.1883 + 1.1884 + <!-- /** movie 1.1885 + Movie describes a display list within the current canvas and paint. Movies can contain 1.1886 + movies. One movie cannot affect how another movie draws, but movies can communicate 1.1887 + with each other by posting events. 1.1888 + */ --> 1.1889 + <xs:element name="movie"> 1.1890 + <xs:complexType> 1.1891 + <!-- @attribute src The URI reference, local to the containing document, containing the movie's XML. --> 1.1892 + <xs:attribute name="src" type="Sk:String"/> 1.1893 + <xs:attribute name="id" type="xs:ID"/> 1.1894 + </xs:complexType> 1.1895 + </xs:element> 1.1896 + 1.1897 + <!-- /** oval 1.1898 + Oval describes a circle stretched to fit in a rectangle. 1.1899 + The width and height attribute compute the oval's right and bottom edges when the oval 1.1900 + description is first seen. Animating the oval's left or top will not recompute the right or bottom 1.1901 + if the width or height have been specified. 1.1902 + */ --> 1.1903 + <xs:element name="oval"> 1.1904 + <xs:complexType> 1.1905 + <!-- @attribute bottom The bottom edge of the oval. --> 1.1906 + <xs:attribute name="bottom" type="Sk:Float"/> 1.1907 + <!-- @attribute height The height of the oval. --> 1.1908 + <xs:attribute name="height" type="Sk:Float"/> 1.1909 + <!-- @attribute left The left edge of the oval. --> 1.1910 + <xs:attribute name="left" type="Sk:Float"/> 1.1911 + <!-- @attribute needsRedraw Set to true if last draw was visible. --> 1.1912 + <xs:attribute name="needsRedraw" type="Sk:Boolean"/> 1.1913 + <!-- @attribute right The right edge of the oval. --> 1.1914 + <xs:attribute name="right" type="Sk:Float"/> 1.1915 + <!-- @attribute top The top edge of the oval. --> 1.1916 + <xs:attribute name="top" type="Sk:Float"/> 1.1917 + <!-- @attribute width The width of the oval. --> 1.1918 + <xs:attribute name="width" type="Sk:Float"/> 1.1919 + <xs:attribute name="id" type="xs:ID"/> 1.1920 + </xs:complexType> 1.1921 + </xs:element> 1.1922 + 1.1923 + <!-- /** paint 1.1924 + Paint uses color, flags, path effects, mask filters, shaders, and stroke effects when drawing 1.1925 + geometries, images, and text. 1.1926 + */ --> 1.1927 + <xs:element name="paint"> 1.1928 + <xs:complexType> 1.1929 + <xs:choice maxOccurs="unbounded"> 1.1930 + <!-- @element bitmapShader Sets or cancels an image to draw as the color. --> 1.1931 + <xs:element ref="Sk:bitmapShader"/> 1.1932 + <!-- @element blur Blur radially draws the shape with varying transparency. --> 1.1933 + <xs:element ref="Sk:blur"/> 1.1934 + <!-- @element color Color specifies a solid color in RGB or HSV. --> 1.1935 + <xs:element ref="Sk:color"/> 1.1936 + <!-- @element dash Dashes alternates stroking with dashes and gaps. --> 1.1937 + <xs:element ref="Sk:dash"/> 1.1938 + <!-- @element discrete Discrete wobbles the geometry randomly. --> 1.1939 + <xs:element ref="Sk:discrete"/> 1.1940 + <!-- @element emboss Emboss simulates a 3D light to show highlights and relief. --> 1.1941 + <xs:element ref="Sk:emboss"/> 1.1942 + <!-- @element linearGradient LinearGradient linearly ramps between two or more colors. --> 1.1943 + <xs:element ref="Sk:linearGradient"/> 1.1944 + <!-- @element maskFilter MaskFilter cancels a blur or emboss. --> 1.1945 + <xs:element ref="Sk:maskFilter"/> 1.1946 + <!-- @element pathEffect PathEffect cancels a discrete or dash. --> 1.1947 + <xs:element ref="Sk:pathEffect"/> 1.1948 + <!-- @element radialGradient RadialGradient radially ramps between two or more colors. --> 1.1949 + <xs:element ref="Sk:radialGradient"/> 1.1950 + <!-- @element shader Shader cancels a linear or radial gradient. --> 1.1951 + <xs:element ref="Sk:shader"/> 1.1952 + <!-- @element typeface Typeface chooses a font out of a font family. --> 1.1953 + <xs:element ref="Sk:typeface"/> 1.1954 + <!-- @element transparentShader TransparentShader ? [not sure what this is for] --> 1.1955 + <xs:element ref="Sk:transparentShader"/> 1.1956 + </xs:choice> 1.1957 + <!-- @attribute antiAlias AntiAlias uses gray shades to increase the definition of paths. --> 1.1958 + <xs:attribute name="antiAlias" type="Sk:Boolean"/> 1.1959 + <!-- @attribute ascent Ascent returns the height above the baseline defined by the font. --> 1.1960 + <xs:attribute name="ascent" type="Sk:Float"/> 1.1961 + <!-- @attribute color Color sets the paint to the color element with this ID. --> 1.1962 + <xs:attribute name="color" type="Sk:Color"/> 1.1963 + <!-- @attribute descent Descent returns the height below the baseline defined by thte font --> 1.1964 + <xs:attribute name="descent" type="Sk:Float"/> 1.1965 + <!-- @attribute fakeBold FakeBold enables a faked bold for text. --> 1.1966 + <xs:attribute name="fakeBold" type="Sk:Boolean"/> 1.1967 + <!-- @attribute filterType FilterType --> 1.1968 + <xs:attribute name="filterType" type="Sk:FilterType"/> 1.1969 + <!-- @attribute linearText LinearText uses the ideal path metrics at all sizes to describe text. --> 1.1970 + <xs:attribute name="linearText" type="Sk:Boolean"/> 1.1971 + <!-- @attribute maskFilter MaskFilter specifies a blur or emboss with this ID. --> 1.1972 + <xs:attribute name="maskFilter" type="Sk:MaskFilter"/> 1.1973 + <!-- @attribute measureText MeasureText(String) returns the width of the string in this paint. --> 1.1974 + <xs:attribute name="measureText" type="Sk:Float"/> 1.1975 + <!-- @attribute pathEffect PathEffect specifies a discrete or dash with this ID. --> 1.1976 + <xs:attribute name="pathEffect" type="Sk:PathEffect"/> 1.1977 + <!-- @attribute shader Shader specifies a gradient with this ID. --> 1.1978 + <xs:attribute name="shader" type="Sk:Shader"/> 1.1979 + <!-- @attribute strikeThru StrikeThru adds a line through the middle of drawn text. --> 1.1980 + <xs:attribute name="strikeThru" type="Sk:Boolean"/> 1.1981 + <!-- @attribute stroke Stroke draws the outline of geometry according to the pen attributes. 1.1982 + If style is also present, its setting overrides stroke. --> 1.1983 + <xs:attribute name="stroke" type="Sk:Boolean"/> 1.1984 + <!-- @attribute strokeCap StrokeCap is one of @pattern. --> 1.1985 + <xs:attribute name="strokeCap" type="Sk:Cap"/> 1.1986 + <!-- @attribute strokeJoin StrokeJoin is one of @pattern. --> 1.1987 + <xs:attribute name="strokeJoin" type="Sk:Join"/> 1.1988 + <!-- @attribute strokeMiter StrokeMiter limits the pen's joins on narrow angles. --> 1.1989 + <xs:attribute name="strokeMiter" type="Sk:Float"/> 1.1990 + <!-- @attribute strokeWidth StrokeWidth specifies the width of the pen. --> 1.1991 + <xs:attribute name="strokeWidth" type="Sk:Float"/> 1.1992 + <!-- @attribute style Style fills, strokes, or strokes and fills the geometry with the paint's color. --> 1.1993 + <xs:attribute name="style" type="Sk:Style"/> 1.1994 + <!-- @attribute textAlign TextAlign is one of @pattern. --> 1.1995 + <xs:attribute name="textAlign" type="Sk:Align"/> 1.1996 + <!-- @attribute textScaleX TextScaleX condenses or exapnds the text. --> 1.1997 + <xs:attribute name="textScaleX" type="Sk:Float"/> 1.1998 + <!-- @attribute textSize TextSize specifies the point size of the text. --> 1.1999 + <xs:attribute name="textSize" type="Sk:Float"/> 1.2000 + <!-- @attribute textSkewX TextSkewX draws the text obliquely. --> 1.2001 + <xs:attribute name="textSkewX" type="Sk:Float"/> 1.2002 + <!-- @attribute textTracking TextTracking specifies the space between letters. --> 1.2003 + <xs:attribute name="textTracking" type="Sk:Float"/> 1.2004 + <!-- @attribute typeface Typeface specifies a typeface element with this ID. --> 1.2005 + <xs:attribute name="typeface" type="Sk:Typeface"/> 1.2006 + <!-- @attribute underline Underline draws a line under the baseline of the text. --> 1.2007 + <xs:attribute name="underline" type="Sk:Boolean"/> 1.2008 + <!-- @attribute xfermode Xfermode specifies a transfer mode, one of @pattern. --> 1.2009 + <xs:attribute name="xfermode" type="Sk:Xfermode"/> 1.2010 + <xs:attribute name="id" type="xs:ID"/> 1.2011 + </xs:complexType> 1.2012 + </xs:element> 1.2013 + 1.2014 + <!-- /** path 1.2015 + Path creates a geometry out of lines and curves. 1.2016 + */ --> 1.2017 + <xs:element name="path"> 1.2018 + <xs:complexType> 1.2019 + <xs:choice maxOccurs="unbounded"> 1.2020 + <!-- @element addCircle Adds a circle to the path. --> 1.2021 + <xs:element ref="Sk:addCircle"/> 1.2022 + <!-- @element addOval Adds an oval to the path. --> 1.2023 + <xs:element ref="Sk:addOval"/> 1.2024 + <!-- @element addPath Adds another path to the path. --> 1.2025 + <xs:element ref="Sk:addPath"/> 1.2026 + <!-- @element addRoundRect Adds a rounded-corner rectangle to the path. --> 1.2027 + <xs:element ref="Sk:addRoundRect"/> 1.2028 + <!-- @element close Connects the last point on the path to the first. --> 1.2029 + <xs:element ref="Sk:close"/> 1.2030 + <!-- @element cubicTo Extends the path with a cubic curve. --> 1.2031 + <xs:element ref="Sk:cubicTo"/> 1.2032 + <!-- @element lineTo Extends the path with a line. --> 1.2033 + <xs:element ref="Sk:lineTo"/> 1.2034 + <!-- @element moveTo Starts a new path contour. --> 1.2035 + <xs:element ref="Sk:moveTo"/> 1.2036 + <!-- @element quadTo Extends the path with a quadratic curve. --> 1.2037 + <xs:element ref="Sk:quadTo"/> 1.2038 + <!-- @element rCubicTo Extends the path with a cubic curve expressed with relative offsets. --> 1.2039 + <xs:element ref="Sk:rCubicTo"/> 1.2040 + <!-- @element rLineTo Extends the path with a line expressed with relative offsets. --> 1.2041 + <xs:element ref="Sk:rLineTo"/> 1.2042 + <!-- @element rMoveTo Starts a new path contour relative to the path's last point. --> 1.2043 + <xs:element ref="Sk:rMoveTo"/> 1.2044 + <!-- @element rQuadTo Extends the path with a quadratic curve expressed with relative offsets. --> 1.2045 + <xs:element ref="Sk:rQuadTo"/> 1.2046 + </xs:choice> 1.2047 + <!-- @attribute d Creates a path using SVG path notation. --> 1.2048 + <xs:attribute name="d" type="Sk:String"/> 1.2049 + <!-- @attribute fillType One of @pattern. --> 1.2050 + <xs:attribute name="fillType" type="Sk:FillType"/> 1.2051 + <!-- @attribute length Returns the length of the path. --> 1.2052 + <xs:attribute name="length" type="Sk:Float"/> 1.2053 + <xs:attribute name="id" type="xs:ID"/> 1.2054 + </xs:complexType> 1.2055 + </xs:element> 1.2056 + 1.2057 + <!-- /** pathEffect 1.2058 + PathEffect cancels any current path effect within the paint, such as dashing or discrete. 1.2059 + */ --> 1.2060 + <xs:element name="pathEffect"> 1.2061 + <xs:complexType> 1.2062 + <xs:attribute name="id" type="xs:ID"/> 1.2063 + </xs:complexType> 1.2064 + </xs:element> 1.2065 + 1.2066 + <!-- /** point 1.2067 + Point describes a two dimensional point in space. The point element can be added 1.2068 + to the display list and drawn. 1.2069 + */ --> 1.2070 + <xs:element name="point"> 1.2071 + <xs:complexType> 1.2072 + <!-- @attribute x The x coordinate of the point. --> 1.2073 + <xs:attribute name="x" type="Sk:Float"/> 1.2074 + <!-- @attribute y The y coordinate of the point. --> 1.2075 + <xs:attribute name="y" type="Sk:Float"/> 1.2076 + <xs:attribute name="id" type="xs:ID"/> 1.2077 + </xs:complexType> 1.2078 + </xs:element> 1.2079 + 1.2080 + <!-- /** polygon 1.2081 + Polygon creates a geometry out of lines. Polygon is a specialization of path; element that 1.2082 + refers to a path can refer to a polygon also. A polygon specified through elements behaves identically 1.2083 + to a path. A polygon specified by the points attribute contains a single contour, and the contour is 1.2084 + automatically closed. 1.2085 + */ --> 1.2086 + <xs:element name="polygon"> 1.2087 + <xs:complexType> 1.2088 + <xs:choice maxOccurs="unbounded"> 1.2089 + <!-- @element close Connects the last point on the path to the first. --> 1.2090 + <xs:element ref="Sk:close"/> 1.2091 + <!-- @element addPath Adds another path to the path. --> 1.2092 + <xs:element ref="Sk:addPath"/> 1.2093 + <!-- @element lineTo Extends the path with a line. --> 1.2094 + <xs:element ref="Sk:lineTo"/> 1.2095 + <!-- @element moveTo Starts a new path contour. --> 1.2096 + <xs:element ref="Sk:moveTo"/> 1.2097 + <!-- @element rLineTo Extends the path with a line expressed with relative offsets. --> 1.2098 + <xs:element ref="Sk:rLineTo"/> 1.2099 + <!-- @element rMoveTo Starts a new path contour relative to the path's last point. --> 1.2100 + <xs:element ref="Sk:rMoveTo"/> 1.2101 + </xs:choice> 1.2102 + <!-- @attribute points An array of values that describe a sequence of points, compatible with SVG. --> 1.2103 + <xs:attribute name="points" type="Sk:FloatArray"/> 1.2104 + <xs:attribute name="id" type="xs:ID"/> 1.2105 + </xs:complexType> 1.2106 + </xs:element> 1.2107 + 1.2108 + <!-- /** polyline 1.2109 + Polyline creates a geometry out of lines. Polygon is a specialization of path; element that 1.2110 + refers to a path can refer to a polygon also. A polygon specified through elements behaves identically 1.2111 + to a path. A polygon specified by the points attribute contains a single contour, and the contour is 1.2112 + not automatically closed. 1.2113 + */ --> 1.2114 + <xs:element name="polyline"> 1.2115 + <xs:complexType> 1.2116 + <xs:choice maxOccurs="unbounded"> 1.2117 + <!-- @element close Connects the last point on the path to the first. --> 1.2118 + <xs:element ref="Sk:close"/> 1.2119 + <!-- @element addPath Adds another path to the path. --> 1.2120 + <xs:element ref="Sk:addPath"/> 1.2121 + <!-- @element lineTo Extends the path with a line. --> 1.2122 + <xs:element ref="Sk:lineTo"/> 1.2123 + <!-- @element moveTo Starts a new path contour. --> 1.2124 + <xs:element ref="Sk:moveTo"/> 1.2125 + <!-- @element rLineTo Extends the path with a line expressed with relative offsets. --> 1.2126 + <xs:element ref="Sk:rLineTo"/> 1.2127 + <!-- @element rMoveTo Starts a new path contour relative to the path's last point. --> 1.2128 + <xs:element ref="Sk:rMoveTo"/> 1.2129 + </xs:choice> 1.2130 + <!-- @attribute points An array of values that describe a sequence of points, compatible with SVG. --> 1.2131 + <xs:attribute name="points" type="Sk:FloatArray"/> 1.2132 + <xs:attribute name="id" type="xs:ID"/> 1.2133 + </xs:complexType> 1.2134 + </xs:element> 1.2135 + 1.2136 + <!-- /** polyToPoly 1.2137 + PolyToPoly creates a matrix which maps points proportionally from one polygon to the other. 1.2138 + */ --> 1.2139 + <xs:element name="polyToPoly"> 1.2140 + <xs:complexType> 1.2141 + <xs:choice maxOccurs="2"> 1.2142 + <xs:element ref="Sk:polygon"/> 1.2143 + </xs:choice> 1.2144 + <!-- @attribute source The polygon to map from.. --> 1.2145 + <xs:attribute name="source" type="Sk:polygon"/> 1.2146 + <!-- @attribute destination The polygon to map to.. --> 1.2147 + <xs:attribute name="destination" type="Sk:polygon"/> 1.2148 + <xs:attribute name="id" type="xs:ID"/> 1.2149 + </xs:complexType> 1.2150 + </xs:element> 1.2151 + 1.2152 + <!-- /** post 1.2153 + Post activates an event. The event can trigger one or more actions, and can carry a data payload. 1.2154 + */ --> 1.2155 + <xs:element name="post"> 1.2156 + <xs:complexType> 1.2157 + <xs:choice maxOccurs="unbounded"> 1.2158 + <xs:element ref="Sk:data"/> 1.2159 + </xs:choice> 1.2160 + <!-- @attribute delay Time in seconds that must elapse before the target event is activated. --> 1.2161 + <xs:attribute name="delay" type="Sk:MSec"/> 1.2162 + <!-- @attribute mode One of @pattern. @patternDescription --> 1.2163 + <xs:attribute name="mode" type="Sk:EventMode"/> 1.2164 + <!-- @attribute sink The optional named EventSink to direct the event to. --> 1.2165 + <xs:attribute name="sink" type="Sk:String"/> 1.2166 + <!-- @attribute target The ID of the user event to trigger. --> 1.2167 + <xs:attribute name="target" type="Sk:String"/> 1.2168 + <!-- @attribute type The name of the external event to post. --> 1.2169 + <xs:attribute name="type" type="Sk:String"/> 1.2170 + <xs:attribute name="id" type="xs:ID"/> 1.2171 + </xs:complexType> 1.2172 + </xs:element> 1.2173 + 1.2174 + <!-- /** quadTo 1.2175 + QuadTo adds a quadratic curve to a path. 1.2176 + */ --> 1.2177 + <xs:element name="quadTo"> 1.2178 + <xs:complexType> 1.2179 + <!-- @attribute x1 The x position of the off-curve point. --> 1.2180 + <xs:attribute name="x1" type="Sk:Float"/> 1.2181 + <!-- @attribute x2 The x position of the final point. --> 1.2182 + <xs:attribute name="x2" type="Sk:Float"/> 1.2183 + <!-- @attribute y1 The y position of the off-curve point. --> 1.2184 + <xs:attribute name="y1" type="Sk:Float"/> 1.2185 + <!-- @attribute y2 The y position of the final point. --> 1.2186 + <xs:attribute name="y2" type="Sk:Float"/> 1.2187 + <xs:attribute name="id" type="xs:ID"/> 1.2188 + </xs:complexType> 1.2189 + </xs:element> 1.2190 + 1.2191 + <!-- /** rCubicTo 1.2192 + RCubicTo adds a cubic to the path, using the last point in the path as the first point of the cubic. THe 1.2193 + added points are offsets from the last point in the path. 1.2194 + */ --> 1.2195 + <xs:element name="rCubicTo"> 1.2196 + <xs:complexType> 1.2197 + <!-- @attribute x1 The x offset of the first off-curve point. --> 1.2198 + <xs:attribute name="x1" type="Sk:Float"/> 1.2199 + <!-- @attribute x2 The x offset of the second off-curve point. --> 1.2200 + <xs:attribute name="x2" type="Sk:Float"/> 1.2201 + <!-- @attribute x3 The x offset of the final on-curve point. --> 1.2202 + <xs:attribute name="x3" type="Sk:Float"/> 1.2203 + <!-- @attribute y1 The y offset of the first off-curve point. --> 1.2204 + <xs:attribute name="y1" type="Sk:Float"/> 1.2205 + <!-- @attribute y2 The y offset of the second off-curve point. --> 1.2206 + <xs:attribute name="y2" type="Sk:Float"/> 1.2207 + <!-- @attribute y3 The y offset of the final on-curve point. --> 1.2208 + <xs:attribute name="y3" type="Sk:Float"/> 1.2209 + <xs:attribute name="id" type="xs:ID"/> 1.2210 + </xs:complexType> 1.2211 + </xs:element> 1.2212 + 1.2213 + <!-- /** rLineTo 1.2214 + RLineTo adds a line from the last point in a path to the specified point. The specified 1.2215 + point is relative to the last point in the path. 1.2216 + */ --> 1.2217 + <xs:element name="rLineTo"> 1.2218 + <xs:complexType> 1.2219 + <!-- @attribute x The final path x coordinate. --> 1.2220 + <xs:attribute name="x" type="Sk:Float"/> 1.2221 + <!-- @attribute y The final path y coordinate. --> 1.2222 + <xs:attribute name="y" type="Sk:Float"/> 1.2223 + <xs:attribute name="id" type="xs:ID"/> 1.2224 + </xs:complexType> 1.2225 + </xs:element> 1.2226 + 1.2227 + <!-- /** rMoveTo 1.2228 + RMoveTo specifies the first point in a path contour. The specified 1.2229 + point is relative to the last point in the path. 1.2230 + */ --> 1.2231 + <xs:element name="rMoveTo"> 1.2232 + <xs:complexType> 1.2233 + <!-- @attribute x The point's x coordinate. --> 1.2234 + <xs:attribute name="x" type="Sk:Float"/> 1.2235 + <!-- @attribute y The point's y coordinate. --> 1.2236 + <xs:attribute name="y" type="Sk:Float"/> 1.2237 + <xs:attribute name="id" type="xs:ID"/> 1.2238 + </xs:complexType> 1.2239 + </xs:element> 1.2240 + 1.2241 + <!-- /** rQuadTo 1.2242 + RQuadTo adds a quadratic curve to a path. The quadratic 1.2243 + points are relative to the last point in the path. 1.2244 + */ --> 1.2245 + <xs:element name="rQuadTo"> 1.2246 + <xs:complexType> 1.2247 + <!-- @attribute x1 The x position of the off-curve point. --> 1.2248 + <xs:attribute name="x1" type="Sk:Float"/> 1.2249 + <!-- @attribute x2 The x position of the final point. --> 1.2250 + <xs:attribute name="x2" type="Sk:Float"/> 1.2251 + <!-- @attribute y1 The y position of the off-curve point. --> 1.2252 + <xs:attribute name="y1" type="Sk:Float"/> 1.2253 + <!-- @attribute y2 The y position of the final point. --> 1.2254 + <xs:attribute name="y2" type="Sk:Float"/> 1.2255 + <xs:attribute name="id" type="xs:ID"/> 1.2256 + </xs:complexType> 1.2257 + </xs:element> 1.2258 + 1.2259 + <!-- /** radialGradient 1.2260 + RadialGradient sets the paint shader to ramp between two or more colors in concentric circles. 1.2261 + */ --> 1.2262 + <xs:element name="radialGradient"> 1.2263 + <xs:complexType> 1.2264 + <xs:choice maxOccurs="unbounded"> 1.2265 + <xs:element ref="Sk:color"/> 1.2266 + <xs:element ref="Sk:matrix"/> 1.2267 + </xs:choice> 1.2268 + <!-- @attribute matrix Matrix applies a 3x3 transform to the gradient. --> 1.2269 + <xs:attribute name="matrix" type="Sk:Matrix"/> 1.2270 + <!-- @attribute tileMode One of @pattern. @patternDescription --> 1.2271 + <xs:attribute name="tileMode" type="Sk:TileMode"/> 1.2272 + <!-- @attribute center The center point of the radial gradient. --> 1.2273 + <xs:attribute name="center" type="Sk:Point"/> 1.2274 + <!-- @attribute offsets An optional array of values used to bias the colors. The first entry 1.2275 + in the array must be 0.0, the last must be 1.0, and intermediate values must ascend. --> 1.2276 + <xs:attribute name="offsets" type="Sk:FloatArray"/> 1.2277 + <!-- @attribute radius The distance from the first color to the last color. --> 1.2278 + <xs:attribute name="radius" type="Sk:Float"/> 1.2279 + <!-- @attribute unitMapper A script that returns the mapping for [0,1] for the gradient. 1.2280 + The script can use the predefined variable 'unit' to compute the mapping. For instance, 1.2281 + "unit*unit" squares the value (while still keeping it in the range of [0,1].) The computed number 1.2282 + is pinned to from 0 to 1 after the script is executed. --> 1.2283 + <xs:attribute name="unitMapper" type="Sk:String"/> 1.2284 + <xs:attribute name="id" type="xs:ID"/> 1.2285 + </xs:complexType> 1.2286 + </xs:element> 1.2287 + 1.2288 + <!-- /** random 1.2289 + Random generates a random number, from min to max. Each time the random attribute is 1.2290 + read, a new random number is generated. 1.2291 + */ --> 1.2292 + <xs:element name="random"> 1.2293 + <xs:complexType> 1.2294 + <!-- @attribute blend The random bias from 0.0 to 1.0. 1.2295 + 0.0 biias the number towards the start and end of the range. 1.2296 + 1.0 (the default) generates a linear distribution.--> 1.2297 + <xs:attribute name="blend" type="Sk:Float"/> 1.2298 + <!-- @attribute max The largest value to generate. --> 1.2299 + <xs:attribute name="max" type="Sk:Float"/> 1.2300 + <!-- @attribute min The smallest value to generate. --> 1.2301 + <xs:attribute name="min" type="Sk:Float"/> 1.2302 + <!-- @attribute random The generated value. --> 1.2303 + <xs:attribute name="random" type="Sk:Float"/> 1.2304 + <!-- @attribute seed The random seed. Identical seeds generate the same series of 1.2305 + numbers. --> 1.2306 + <xs:attribute name="seed" type="Sk:Int"/> 1.2307 + <xs:attribute name="id" type="xs:ID"/> 1.2308 + </xs:complexType> 1.2309 + </xs:element> 1.2310 + 1.2311 + <!-- /** rect 1.2312 + Rect describes a bounding box. 1.2313 + The width and height attribute compute the rectangle's right and bottom edges when the rectangle 1.2314 + description is first seen. Animating the rectangle's left or top will not recompute the right or bottom 1.2315 + if the width or height have been specified. 1.2316 + */ --> 1.2317 + <xs:element name="rect"> 1.2318 + <xs:complexType> 1.2319 + <!-- @attribute bottom The bottom edge of the rectangle. --> 1.2320 + <xs:attribute name="bottom" type="Sk:Float"/> 1.2321 + <!-- @attribute height The height of the rectangle. Setting height computes the 1.2322 + bottom attribute from the top attribute. --> 1.2323 + <xs:attribute name="height" type="Sk:Float"/> 1.2324 + <!-- @attribute left The left edge of the rectangle. --> 1.2325 + <xs:attribute name="left" type="Sk:Float"/> 1.2326 + <!-- @attribute needsRedraw Set to true if last draw was visible. --> 1.2327 + <xs:attribute name="needsRedraw" type="Sk:Boolean"/> 1.2328 + <!-- @attribute right The right edge of the rectangle. --> 1.2329 + <xs:attribute name="right" type="Sk:Float"/> 1.2330 + <!-- @attribute top The top edge of the rectangle. --> 1.2331 + <xs:attribute name="top" type="Sk:Float"/> 1.2332 + <!-- @attribute width The width of the rectangle. --> 1.2333 + <xs:attribute name="width" type="Sk:Float"/> 1.2334 + <xs:attribute name="id" type="xs:ID"/> 1.2335 + </xs:complexType> 1.2336 + </xs:element> 1.2337 + 1.2338 + <!-- /** rectToRect 1.2339 + RectToRect adds a matrix to map one rectangle's coordinates to another. 1.2340 + */ --> 1.2341 + <xs:element name="rectToRect"> 1.2342 + <xs:complexType> 1.2343 + <xs:choice maxOccurs="2"> 1.2344 + <xs:element ref="Sk:rect"/> 1.2345 + </xs:choice> 1.2346 + <!-- @attribute source The rectangle to map from. --> 1.2347 + <xs:attribute name="source" type="Sk:rect"/> 1.2348 + <!-- @attribute destination The rectangle to map to. --> 1.2349 + <xs:attribute name="destination" type="Sk:rect"/> 1.2350 + <xs:attribute name="id" type="xs:ID"/> 1.2351 + </xs:complexType> 1.2352 + </xs:element> 1.2353 + 1.2354 + <!-- /** remove 1.2355 + Remove an item from the display list. 1.2356 + If where is specified, the first occurance of where in the display list is removed. 1.2357 + If offset and where are specified, the element at where plus offset is removed. 1.2358 + A positive offset without where removes the element at the start of the list plus offset. 1.2359 + A negative offset without where removes the element at the end of the list minus offset. 1.2360 + */ --> 1.2361 + <xs:element name="remove"> 1.2362 + <xs:complexType> 1.2363 + <!-- @attribute delete If true, reverse the action of apply's attribute mode="create". 1.2364 + (Experimental.) --> 1.2365 + <xs:attribute name="delete" type="Sk:Boolean"/> 1.2366 + <!-- @attribute offset The destination position using the rules listed above. --> 1.2367 + <xs:attribute name="offset" type="Sk:Int"/> 1.2368 + <!-- @attribute where The ID of the first display list entry to remove. --> 1.2369 + <xs:attribute name="where" type="Sk:Drawable"/> 1.2370 + <xs:attribute name="id" type="xs:ID"/> 1.2371 + </xs:complexType> 1.2372 + </xs:element> 1.2373 + 1.2374 + <!-- /** replace 1.2375 + Replace an item in the display list. 1.2376 + If where is specified, the first occurance of where in the display list is replaced by use. 1.2377 + If offset and where are specified, the element at where plus offset is replaced by use. 1.2378 + A positive offset without where replaces the element at the start of the list plus offset. 1.2379 + A negative offset without where replaces the element at the end of the list minus offset. 1.2380 + */ --> 1.2381 + <xs:element name="replace"> 1.2382 + <xs:complexType> 1.2383 + <!-- @attribute mode Has no effect. --> 1.2384 + <xs:attribute name="mode" type="Sk:AddMode"/> 1.2385 + <!-- @attribute offset The destination position using the rules listed above. --> 1.2386 + <xs:attribute name="offset" type="Sk:Int"/> 1.2387 + <!-- @attribute use The element to be added to the display list.. --> 1.2388 + <xs:attribute name="use" type="Sk:Drawable"/> 1.2389 + <!-- @attribute where The ID of the first display list entry to remove. --> 1.2390 + <xs:attribute name="where" type="Sk:Drawable"/> 1.2391 + <xs:attribute name="id" type="xs:ID"/> 1.2392 + </xs:complexType> 1.2393 + </xs:element> 1.2394 + 1.2395 + <!-- /** rotate 1.2396 + Rotate creates a matrix that rotates a unit vector about a center point, and concatenated 1.2397 + with the containing matrix. 1.2398 + */ --> 1.2399 + <xs:element name="rotate"> 1.2400 + <xs:complexType> 1.2401 + <!-- @attribute center A point the rotation is centered about; by default, [0.0, 0.0]. --> 1.2402 + <xs:attribute name="center" type="Sk:Point"/> 1.2403 + <!-- @attribute degrees The rotation in degrees. --> 1.2404 + <xs:attribute name="degrees" type="Sk:Float"/> 1.2405 + <xs:attribute name="id" type="xs:ID"/> 1.2406 + </xs:complexType> 1.2407 + </xs:element> 1.2408 + 1.2409 + <!-- /** roundRect 1.2410 + RoundRect creates a rectangle with rounded corners. The rounded corners are specified by 1.2411 + two axes, which describe an quarter-section of the oval which is used in each corner. 1.2412 + The width and height attribute compute the rectangle's right and bottom edges when the rectangle 1.2413 + description is first seen. Animating the rectangle's left or top will not recompute the right or bottom 1.2414 + if the width or height have been specified. 1.2415 + */ --> 1.2416 + <xs:element name="roundRect"> 1.2417 + <xs:complexType> 1.2418 + <!-- @attribute bottom The bottom edge of the rectangle. --> 1.2419 + <xs:attribute name="bottom" type="Sk:Float"/> 1.2420 + <!-- @attribute height The height of the rectangle. Setting height computes the 1.2421 + bottom attribute from the top attribute. --> 1.2422 + <xs:attribute name="height" type="Sk:Float"/> 1.2423 + <!-- @attribute left The left edge of the rectangle. --> 1.2424 + <xs:attribute name="left" type="Sk:Float"/> 1.2425 + <!-- @attribute needsRedraw Set to true if last draw was visible. --> 1.2426 + <xs:attribute name="needsRedraw" type="Sk:Boolean"/> 1.2427 + <!-- @attribute right The right edge of the rectangle. --> 1.2428 + <xs:attribute name="right" type="Sk:Float"/> 1.2429 + <!-- @attribute top The top edge of the rectangle. --> 1.2430 + <xs:attribute name="top" type="Sk:Float"/> 1.2431 + <!-- @attribute rx The radius of the corners on the x axis. --> 1.2432 + <xs:attribute name="rx" type="Sk:Float"/> 1.2433 + <!-- @attribute ry The radius of the corners on the y axis. --> 1.2434 + <xs:attribute name="ry" type="Sk:Float"/> 1.2435 + <!-- @attribute width The width of the rectangle. Setting width computes the 1.2436 + right attribute from the left attribute. --> 1.2437 + <xs:attribute name="width" type="Sk:Float"/> 1.2438 + <xs:attribute name="id" type="xs:ID"/> 1.2439 + </xs:complexType> 1.2440 + </xs:element> 1.2441 + 1.2442 + <!-- /** save 1.2443 + The save element collects a series of elements into a group. The state of the paint and 1.2444 + canvas are saved, so that edits to the paint and canvas within the group are restored 1.2445 + to their original value at the end of the group. 1.2446 + The save element can be referenced 1.2447 + or defined within elements, like apply, which operate on any kind of element. Groups 1.2448 + may contain groups. 1.2449 + */ --> 1.2450 + <xs:element name="save"> 1.2451 + <xs:complexType> 1.2452 + <xs:choice maxOccurs="unbounded"> 1.2453 + <xs:element ref="Sk:add"/> 1.2454 + <xs:element ref="Sk:apply"/> 1.2455 + <xs:element ref="Sk:array"/> 1.2456 + <xs:element ref="Sk:bitmap"/> 1.2457 + <xs:element ref="Sk:boolean"/> 1.2458 + <xs:element ref="Sk:bounds"/> 1.2459 + <!-- <xs:element ref="Sk3D:camera"/> --> 1.2460 + <xs:element ref="Sk:clear"/> 1.2461 + <xs:element ref="Sk:clip"/> 1.2462 + <xs:element ref="Sk:color"/> 1.2463 + <xs:element ref="Sk:drawTo"/> 1.2464 + <xs:element ref="Sk:float"/> 1.2465 + <xs:element ref="Sk:full"/> 1.2466 + <xs:element ref="Sk:group"/> 1.2467 + <xs:element ref="Sk:hitClear"/> 1.2468 + <xs:element ref="Sk:hitTest"/> 1.2469 + <xs:element ref="Sk:image"/> 1.2470 + <xs:element ref="Sk:int"/> 1.2471 + <xs:element ref="Sk:line"/> 1.2472 + <xs:element ref="Sk:matrix"/> 1.2473 + <xs:element ref="Sk:move"/> 1.2474 + <xs:element ref="Sk:oval"/> 1.2475 + <xs:element ref="Sk:paint"/> 1.2476 + <!-- <xs:element ref="Sk:patch"/> --> 1.2477 + <xs:element ref="Sk:path"/> 1.2478 + <xs:element ref="Sk:point"/> 1.2479 + <xs:element ref="Sk:polygon"/> 1.2480 + <xs:element ref="Sk:polyline"/> 1.2481 + <xs:element ref="Sk:post"/> 1.2482 + <xs:element ref="Sk:random"/> 1.2483 + <xs:element ref="Sk:rect"/> 1.2484 + <xs:element ref="Sk:remove"/> 1.2485 + <xs:element ref="Sk:replace"/> 1.2486 + <xs:element ref="Sk:roundRect"/> 1.2487 + <xs:element ref="Sk:save"/> 1.2488 + <xs:element ref="Sk:set"/> 1.2489 + <xs:element ref="Sk:snapshot"/> 1.2490 + <xs:element ref="Sk:string"/> 1.2491 + <xs:element ref="Sk:text"/> 1.2492 + <xs:element ref="Sk:textBox"/> 1.2493 + <xs:element ref="Sk:textOnPath"/> 1.2494 + <xs:element ref="Sk:textToPath"/> 1.2495 + </xs:choice> 1.2496 + <!-- @attribute condition If present and zero, the contained elements are ignored. --> 1.2497 + <xs:attribute name="condition" type="Sk:DynamicString"/> 1.2498 + <!-- @attribute enableCondition If present and zero, the contained elements are ignored 1.2499 + when enabled. --> 1.2500 + <xs:attribute name="enableCondition" type="Sk:DynamicString"/> 1.2501 + <xs:attribute name="id" type="xs:ID"/> 1.2502 + </xs:complexType> 1.2503 + </xs:element> 1.2504 + 1.2505 + <!-- /** scale 1.2506 + Scale creates a matrix that scales a unit vector about a center point, and concatenated 1.2507 + with the containing matrix. 1.2508 + */ --> 1.2509 + <xs:element name="scale"> 1.2510 + <xs:complexType> 1.2511 + <!-- @attribute center A point the scale is centered about; by default, [0.0, 0.0]. --> 1.2512 + <xs:attribute name="center" type="Sk:Point"/> 1.2513 + <!-- @attribute x The factor all x values are scaled by; by default, 1.0. --> 1.2514 + <xs:attribute name="x" type="Sk:Float"/> 1.2515 + <!-- @attribute y The factor all y values are scaled by; by default, 1.0. --> 1.2516 + <xs:attribute name="y" type="Sk:Float"/> 1.2517 + <xs:attribute name="id" type="xs:ID"/> 1.2518 + </xs:complexType> 1.2519 + </xs:element> 1.2520 + 1.2521 + <!-- /** screenplay 1.2522 + Screenplay contains all events and elements referenced by the events. 1.2523 + A document may only contain a single screenplay element. 1.2524 + */ --> 1.2525 + <xs:element name="screenplay"> 1.2526 + <xs:complexType> 1.2527 + <xs:choice maxOccurs="unbounded" > 1.2528 + <xs:element ref="Sk:add"/> 1.2529 + <xs:element ref="Sk:apply"/> 1.2530 + <xs:element ref="Sk:array"/> 1.2531 + <xs:element ref="Sk:bitmap"/> 1.2532 + <xs:element ref="Sk:boolean"/> 1.2533 + <xs:element ref="Sk:bounds"/> 1.2534 + <!-- <xs:element ref="Sk3D:camera"/> --> 1.2535 + <xs:element ref="Sk:clear"/> 1.2536 + <xs:element ref="Sk:clip"/> 1.2537 + <xs:element ref="Sk:color"/> 1.2538 + <xs:element ref="Sk:drawTo"/> 1.2539 + <xs:element ref="Sk:event"/> 1.2540 + <xs:element ref="Sk:float"/> 1.2541 + <xs:element ref="Sk:full"/> 1.2542 + <xs:element ref="Sk:group"/> 1.2543 + <xs:element ref="Sk:hitClear"/> 1.2544 + <xs:element ref="Sk:hitTest"/> 1.2545 + <xs:element ref="Sk:image"/> 1.2546 + <xs:element ref="Sk:include"/> 1.2547 + <xs:element ref="Sk:int"/> 1.2548 + <xs:element ref="Sk:line"/> 1.2549 + <xs:element ref="Sk:matrix"/> 1.2550 + <xs:element ref="Sk:move"/> 1.2551 + <xs:element ref="Sk:movie"/> 1.2552 + <xs:element ref="Sk:oval"/> 1.2553 + <xs:element ref="Sk:paint"/> 1.2554 + <!-- <xs:element ref="Sk:patch"/> --> 1.2555 + <xs:element ref="Sk:path"/> 1.2556 + <xs:element ref="Sk:point"/> 1.2557 + <xs:element ref="Sk:polygon"/> 1.2558 + <xs:element ref="Sk:polyline"/> 1.2559 + <xs:element ref="Sk:post"/> 1.2560 + <xs:element ref="Sk:random"/> 1.2561 + <xs:element ref="Sk:rect"/> 1.2562 + <xs:element ref="Sk:remove"/> 1.2563 + <xs:element ref="Sk:replace"/> 1.2564 + <xs:element ref="Sk:roundRect"/> 1.2565 + <xs:element ref="Sk:save"/> 1.2566 + <xs:element ref="Sk:set"/> 1.2567 + <xs:element ref="Sk:snapshot"/> 1.2568 + <xs:element ref="Sk:string"/> 1.2569 + <xs:element ref="Sk:text"/> 1.2570 + <xs:element ref="Sk:textBox"/> 1.2571 + <xs:element ref="Sk:textOnPath"/> 1.2572 + <xs:element ref="Sk:textToPath"/> 1.2573 + </xs:choice> 1.2574 + <!-- @attribute time The time of the draw (readable from script; not part of the document XML) --> 1.2575 + <xs:attribute name="time" type="Sk:MSec"/> 1.2576 + </xs:complexType> 1.2577 + </xs:element> 1.2578 + 1.2579 + <!-- /** set 1.2580 + Set animates the target element's attribute directly to the specified value. 1.2581 + */ --> 1.2582 + <xs:element name="set"> 1.2583 + <xs:complexType> 1.2584 + <!-- @attribute begin An optional offset that must elapse before the animation begins. The apply 1.2585 + begin attribute is added to any animator's begin attribute. --> 1.2586 + <xs:attribute name="begin" type="Sk:MSec"/> 1.2587 + <!-- @attribute dur The duration of the animation in milliseconds. --> 1.2588 + <xs:attribute name="dur" type="Sk:MSec"/> 1.2589 + <!-- @attribute dynamic If true, restart the animation if any of the simple values the 1.2590 + 'lval' or 'to' attributes reference are changed. Simple values are contained by the array, boolean, float, int, 1.2591 + and string elements. --> 1.2592 + <!-- @attribute dynamic [Depreciated.] --> 1.2593 + <xs:attribute name="dynamic" type="Sk:Boolean" /> 1.2594 + <!-- @attribute field The attribute to animate. --> 1.2595 + <xs:attribute name="field" type="Sk:String"/> 1.2596 + <!-- @attribute formula A script to execute over time to compute the field's value. Typically, 1.2597 + the fomula is a script expression which includes a reference to the time attribute of the 1.2598 + containing apply element. --> 1.2599 + <xs:attribute name="formula" type="Sk:DynamicString"/> 1.2600 + <!-- @attribute lval An expression evaluating to the attribute to animate. 1.2601 + If present, lval overrides 'field'. The expression is typically an array element, 1.2602 + e.g. lval="x[y]" . --> 1.2603 + <xs:attribute name="lval" type="Sk:DynamicString"/> 1.2604 + <!-- @attribute reset If true, the computed value is the initial value after the 1.2605 + animation is complete. If false, or by default, the computed value is the final value 1.2606 + after the animation is complete. --> 1.2607 + <xs:attribute name="reset" type="Sk:Boolean"/> 1.2608 + <!-- @attribute step When apply's attribute mode="immediate" or "create", the step attribute can be read by 1.2609 + script to determine the current animation iteration. --> 1.2610 + <xs:attribute name="step" type="Sk:Int" /> 1.2611 + <!-- @attribute target The element to animate. By default, the element contained by the apply 1.2612 + or referenced by the apply's scope attribute is the animate target. --> 1.2613 + <xs:attribute name="target" type="Sk:DynamicString"/> 1.2614 + <!-- @attribute to The ending value (requires a 'from' attribute) --> 1.2615 + <xs:attribute name="to" type="Sk:DynamicString"/> 1.2616 + <xs:attribute name="id" type="xs:ID"/> 1.2617 + </xs:complexType> 1.2618 + </xs:element> 1.2619 + 1.2620 + <!-- /** skew 1.2621 + Skew creates a matrix that skews a unit vector about a center point, and concatenated 1.2622 + with the containing matrix. 1.2623 + */ --> 1.2624 + <xs:element name="skew"> 1.2625 + <xs:complexType> 1.2626 + <!-- @attribute center A point the skew is centered about; by default, [0.0, 0.0]. --> 1.2627 + <xs:attribute name="center" type="Sk:Point"/> 1.2628 + <!-- @attribute x The factor all x values are skewed by; by default, 0.0. --> 1.2629 + <xs:attribute name="x" type="Sk:Float"/> 1.2630 + <!-- @attribute y The factor all y values are skewed by; by default, 0.0. --> 1.2631 + <xs:attribute name="y" type="Sk:Float"/> 1.2632 + <xs:attribute name="id" type="xs:ID"/> 1.2633 + </xs:complexType> 1.2634 + </xs:element> 1.2635 + 1.2636 + <!-- /** snapshot 1.2637 + Snapshot creates an image file containing the display list. 1.2638 + */ --> 1.2639 + <xs:element name="snapshot"> 1.2640 + <xs:complexType> 1.2641 + <!-- @attribute filename The name of the file to generate. --> 1.2642 + <xs:attribute name="filename" type="Sk:String"/> 1.2643 + <!-- @attribute quality The quality of the image, from 0 to 100. --> 1.2644 + <xs:attribute name="quality" type="Sk:Float"/> 1.2645 + <!-- @attribute sequence Set to true to number the filenames sequentially. --> 1.2646 + <xs:attribute name="sequence" type="Sk:Boolean"/> 1.2647 + <!-- @attribute type One of @pattern. The type of encoding to use. --> 1.2648 + <xs:attribute name="type" type="Sk:BitmapEncoding"/> 1.2649 + <xs:attribute name="id" type="xs:ID"/> 1.2650 + </xs:complexType> 1.2651 + </xs:element> 1.2652 + 1.2653 + <!-- /** string 1.2654 + String contains an array of characters. 1.2655 + */ --> 1.2656 + <xs:element name="string" > 1.2657 + <xs:complexType> 1.2658 + <!-- @attribute length The number of characters in the string (read only). --> 1.2659 + <xs:attribute name="length" type="Sk:Int"/> 1.2660 + <!-- @attribute slice An ECMAScript compatible function that returns part of the string. --> 1.2661 + <xs:attribute name="slice" type="Sk:String"/> 1.2662 + <!-- @attribute value The string itself. --> 1.2663 + <xs:attribute name="value" type="Sk:String"/> 1.2664 + <xs:attribute name="id" type="xs:ID"/> 1.2665 + </xs:complexType> 1.2666 + </xs:element> 1.2667 + 1.2668 + <!-- /** text 1.2669 + A drawable string with a position. 1.2670 + */ --> 1.2671 + <xs:element name="text"> 1.2672 + <xs:complexType> 1.2673 + <!-- @attribute length The number of characters in the string (read only). --> 1.2674 + <xs:attribute name="length" type="Sk:Int"/> 1.2675 + <!-- @attribute text The string itself. --> 1.2676 + <xs:attribute name="text" type="Sk:String"/> 1.2677 + <!-- @attribute x The x coordinate of the string. --> 1.2678 + <xs:attribute name="x" type="Sk:Float"/> 1.2679 + <!-- @attribute y The y coordinate of the string. --> 1.2680 + <xs:attribute name="y" type="Sk:Float"/> 1.2681 + <xs:attribute name="id" type="xs:ID"/> 1.2682 + </xs:complexType> 1.2683 + </xs:element> 1.2684 + 1.2685 + <!-- /** textBox 1.2686 + A drawable string fit into a box. 1.2687 + */ --> 1.2688 + <xs:element name="textBox" > 1.2689 + <xs:complexType> 1.2690 + <!-- @attribute bottom The bottom of the box. --> 1.2691 + <xs:attribute name="bottom" type="Sk:Float"/> 1.2692 + <!-- @attribute height The height of the box, computed from top and bottom. --> 1.2693 + <xs:attribute name="height" type="Sk:Float"/> 1.2694 + <!-- @attribute left The left side of the box. --> 1.2695 + <xs:attribute name="left" type="Sk:Float"/> 1.2696 + <!-- @attribute mode One of @pattern. --> 1.2697 + <xs:attribute name="mode" type="Sk:TextBoxMode"/> 1.2698 + <!-- @attribute needsRedraw Set to true if last draw was visible. --> 1.2699 + <xs:attribute name="needsRedraw" type="Sk:Boolean"/> 1.2700 + <!-- @attribute right The right side of the box. --> 1.2701 + <xs:attribute name="right" type="Sk:Float"/> 1.2702 + <!-- @attribute spacingAdd The extra spacing between lines. --> 1.2703 + <xs:attribute name="spacingAdd" type="Sk:Float"/> 1.2704 + <!-- @attribute spacingAlign One of @pattern. --> 1.2705 + <xs:attribute name="spacingAlign" type="Sk:TextBoxAlign"/> 1.2706 + <!-- @attribute spacingMul The line spacing scaled by the text height. --> 1.2707 + <xs:attribute name="spacingMul" type="Sk:Float"/> 1.2708 + <!-- @attribute text The text to fit to the box. --> 1.2709 + <xs:attribute name="text" type="Sk:String"/> 1.2710 + <!-- @attribute top The top of the box. --> 1.2711 + <xs:attribute name="top" type="Sk:Float"/> 1.2712 + <!-- @attribute width The width of the box, computed from left and right. --> 1.2713 + <xs:attribute name="width" type="Sk:Float"/> 1.2714 + <xs:attribute name="id" type="xs:ID"/> 1.2715 + </xs:complexType> 1.2716 + </xs:element> 1.2717 + 1.2718 + <!-- /** textOnPath 1.2719 + TextOnPath specifies the baseline for a string of text with a path. 1.2720 + */ --> 1.2721 + <xs:element name="textOnPath"> 1.2722 + <xs:complexType> 1.2723 + <xs:choice > 1.2724 + <xs:element ref="Sk:text" minOccurs="0" /> 1.2725 + <xs:element ref="Sk:path" minOccurs="0" /> 1.2726 + </xs:choice> 1.2727 + <!-- @attribute offset The distance along the path to place the first text character. --> 1.2728 + <xs:attribute name="offset" type="Sk:Float"/> 1.2729 + <!-- @attribute path The baseline of the text. --> 1.2730 + <xs:attribute name="path" type="Sk:Path"/> 1.2731 + <!-- @attribute text The text to place along the path. --> 1.2732 + <xs:attribute name="text" type="Sk:Text"/> 1.2733 + <xs:attribute name="id" type="xs:ID"/> 1.2734 + </xs:complexType> 1.2735 + </xs:element> 1.2736 + 1.2737 + <!-- /** textToPath 1.2738 + TextToPath sets the path to the contours described by the text's glyphs, using the current paint. 1.2739 + */ --> 1.2740 + <xs:element name="textToPath"> 1.2741 + <xs:complexType> 1.2742 + <xs:choice > 1.2743 + <xs:element ref="Sk:text" minOccurs="0" /> 1.2744 + <xs:element ref="Sk:paint" minOccurs="0" /> 1.2745 + <xs:element ref="Sk:path" minOccurs="0" /> 1.2746 + </xs:choice> 1.2747 + <!-- @attribute paint The paint selects the text font, size and other text properties. --> 1.2748 + <xs:attribute name="paint" type="Sk:Paint"/> 1.2749 + <!-- @attribute path The reference to the path element where the text as path is stored. --> 1.2750 + <xs:attribute name="path" type="Sk:Path"/> 1.2751 + <!-- @attribute text The reference to the text element to turn into a path. --> 1.2752 + <xs:attribute name="text" type="Sk:Text"/> 1.2753 + <xs:attribute name="id" type="xs:ID"/> 1.2754 + </xs:complexType> 1.2755 + </xs:element> 1.2756 + 1.2757 + <!-- /** translate 1.2758 + Translate concatenates a translation-only matrix onto the current matrix. 1.2759 + */ --> 1.2760 + <xs:element name="translate"> 1.2761 + <xs:complexType> 1.2762 + <!-- @attribute x The translation in x. --> 1.2763 + <xs:attribute name="x" type="Sk:Float"/> 1.2764 + <!-- @attribute y The translation in y. --> 1.2765 + <xs:attribute name="y" type="Sk:Float"/> 1.2766 + <xs:attribute name="id" type="xs:ID"/> 1.2767 + </xs:complexType> 1.2768 + </xs:element> 1.2769 + 1.2770 + <!-- /** transparentShader 1.2771 + TransparentShader uses the background for its paint. Works well with emboss. 1.2772 + */ --> 1.2773 + <xs:element name="transparentShader"> 1.2774 + <xs:complexType> 1.2775 + <xs:attribute name="id" type="xs:ID"/> 1.2776 + </xs:complexType> 1.2777 + </xs:element> 1.2778 + 1.2779 + <!-- /** typeface 1.2780 + Typeface describes the text font. 1.2781 + */ --> 1.2782 + <xs:element name="typeface"> 1.2783 + <xs:complexType> 1.2784 + <!-- @attribute fontName The name of the font. --> 1.2785 + <xs:attribute name="fontName" type="Sk:String"/> 1.2786 + </xs:complexType> 1.2787 + </xs:element> 1.2788 + 1.2789 +</xs:schema> 1.2790 +