gfx/skia/trunk/src/animator/SkAnimateSchema.xsd

changeset 0
6474c204b198
     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 &lt;random&gt; 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 +

mercurial