<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 
xmlns:Sk="urn:screenplay" targetNamespace="urn:screenplay">

	<!-- /** Animate
		An ID of an element of type <animate> or <set> 
	*/ -->
	<xs:simpleType name="Animate">
		<xs:restriction base="xs:string"/>
	</xs:simpleType>

	<!-- /** 3D_Point
		An array of three floats in ECMAScript notation: [x, y, z].
	*/ -->
	<xs:simpleType name="3D_Point">
		<xs:restriction base="xs:string">
			<xs:pattern value="[+-]?([0-9]*\.[0-9]+|[0-9]+\.?)( *, *[+-]?([0-9]*\.[0-9]+|[0-9]+\.?)){2}" /> 
		</xs:restriction>
	</xs:simpleType>
	
	<!-- /** ARGB
		The red, green, blue, and optional alpha color components.
	*/ -->
	<xs:simpleType name="ARGB">
		<xs:restriction base="xs:string">
		<!-- @pattern #[0-9a-fA-F]{3} #rgb contains three hexadecimal digits. #rgb is equivalent to 0xFFrrggbb. -->
			<xs:pattern value="#[0-9a-fA-F]{3}"/>
		<!-- @pattern #[0-9a-fA-F]{4} #argb contains four hexadecimal digits. #argb is equivalent to 0xaarrggbb. -->
			<xs:pattern value="#[0-9a-fA-F]{4}"/>
		<!-- @pattern #[0-9a-fA-F]{6} #rrggbb contains six hexadecimal digits. #rrggbb is equivalent to 0xFFrrggbb. -->
			<xs:pattern value="#[0-9a-fA-F]{6}"/>
		<!-- @pattern #[0-9a-fA-F]{8} #aarrggbb contains eight hexadecimal digits. #aarrggbb is equivalent to 0xaarrggbb. -->
			<xs:pattern value="#[0-9a-fA-F]{8}"/>
		<!-- @pattern 0[xX][0-9a-fA-F]{8} 0xaarrggbb describes the color as a packed hexadecimal; each pair of digits 
			corresponds to alpha, red, green, and blue respectively. -->
			<xs:pattern value="0[xX][0-9a-fA-F]{8}"/>
		<!-- @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, 
			corresponding to red, green, and blue respectively. -->
			<xs:pattern value="rgb\(\d+{1,3},\d+{1,3},\d+{1,3}\)"/>
		<!-- @patternList Color can be described by the following standard CSS color names. -->
			<xs:pattern value="aliceblue"/>
			<xs:pattern value="antiquewhite"/>
			<xs:pattern value="aqua"/>
			<xs:pattern value="aquamarine"/>
			<xs:pattern value="azure"/>
			<xs:pattern value="beige"/>
			<xs:pattern value="bisque"/>
			<xs:pattern value="black"/>
			<xs:pattern value="blanchedalmond"/>
			<xs:pattern value="blue"/>
			<xs:pattern value="blueviolet"/>
			<xs:pattern value="brown"/>
			<xs:pattern value="burlywood"/>
			<xs:pattern value="cadetblue"/>
			<xs:pattern value="chartreuse"/>
			<xs:pattern value="chocolate"/>
			<xs:pattern value="coral"/>
			<xs:pattern value="cornflowerblue"/>
			<xs:pattern value="cornsilk"/>
			<xs:pattern value="crimson"/>
			<xs:pattern value="cyan"/>
			<xs:pattern value="darkblue"/>
			<xs:pattern value="darkcyan"/>
			<xs:pattern value="darkgoldenrod"/>
			<xs:pattern value="darkgray"/>
			<xs:pattern value="darkgreen"/>
			<xs:pattern value="darkkhaki"/>
			<xs:pattern value="darkmagenta"/>
			<xs:pattern value="darkolivegreen"/>
			<xs:pattern value="darkorange"/>
			<xs:pattern value="darkorchid"/>
			<xs:pattern value="darkred"/>
			<xs:pattern value="darksalmon"/>
			<xs:pattern value="darkseagreen"/>
			<xs:pattern value="darkslateblue"/>
			<xs:pattern value="darkslategray"/>
			<xs:pattern value="darkturquoise"/>
			<xs:pattern value="darkviolet"/>
			<xs:pattern value="deeppink"/>
			<xs:pattern value="deepskyblue"/>
			<xs:pattern value="dimgray"/>
			<xs:pattern value="dodgerblue"/>
			<xs:pattern value="firebrick"/>
			<xs:pattern value="floralwhite"/>
			<xs:pattern value="forestgreen"/>
			<xs:pattern value="fuchsia"/>
			<xs:pattern value="gainsboro"/>
			<xs:pattern value="ghostwhite"/>
			<xs:pattern value="gold"/>
			<xs:pattern value="goldenrod"/>
			<xs:pattern value="gray"/>
			<xs:pattern value="green"/>
			<xs:pattern value="greenyellow"/>
			<xs:pattern value="honeydew"/>
			<xs:pattern value="hotpink"/>
			<xs:pattern value="indianred"/>
			<xs:pattern value="indigo"/>
			<xs:pattern value="ivory"/>
			<xs:pattern value="khaki"/>
			<xs:pattern value="lavender"/>
			<xs:pattern value="lavenderblush"/>
			<xs:pattern value="lawngreen"/>
			<xs:pattern value="lemonchiffon"/>
			<xs:pattern value="lightblue"/>
			<xs:pattern value="lightcoral"/>
			<xs:pattern value="lightcyan"/>
			<xs:pattern value="lightgoldenrodyellow"/>
			<xs:pattern value="lightgreen"/>
			<xs:pattern value="lightgrey"/>
			<xs:pattern value="lightpink"/>
			<xs:pattern value="lightsalmon"/>
			<xs:pattern value="lightseagreen"/>
			<xs:pattern value="lightskyblue"/>
			<xs:pattern value="lightslategray"/>
			<xs:pattern value="lightsteelblue"/>
			<xs:pattern value="lightyellow"/>
			<xs:pattern value="lime"/>
			<xs:pattern value="limegreen"/>
			<xs:pattern value="linen"/>
			<xs:pattern value="magenta"/>
			<xs:pattern value="maroon"/>
			<xs:pattern value="mediumaquamarine"/>
			<xs:pattern value="mediumblue"/>
			<xs:pattern value="mediumorchid"/>
			<xs:pattern value="mediumpurple"/>
			<xs:pattern value="mediumseagreen"/>
			<xs:pattern value="mediumslateblue"/>
			<xs:pattern value="mediumspringgreen"/>
			<xs:pattern value="mediumturquoise"/>
			<xs:pattern value="mediumvioletred"/>
			<xs:pattern value="midnightblue"/>
			<xs:pattern value="mintcream"/>
			<xs:pattern value="mistyrose"/>
			<xs:pattern value="moccasin"/>
			<xs:pattern value="navajowhite"/>
			<xs:pattern value="navy"/>
			<xs:pattern value="oldlace"/>
			<xs:pattern value="olive"/>
			<xs:pattern value="olivedrab"/>
			<xs:pattern value="orange"/>
			<xs:pattern value="orangered"/>
			<xs:pattern value="orchid"/>
			<xs:pattern value="palegoldenrod"/>
			<xs:pattern value="palegreen"/>
			<xs:pattern value="paleturquoise"/>
			<xs:pattern value="palevioletred"/>
			<xs:pattern value="papayawhip"/>
			<xs:pattern value="peachpuff"/>
			<xs:pattern value="peru"/>
			<xs:pattern value="pink"/>
			<xs:pattern value="plum"/>
			<xs:pattern value="powderblue"/>
			<xs:pattern value="purple"/>
			<xs:pattern value="red"/>
			<xs:pattern value="rosybrown"/>
			<xs:pattern value="royalblue"/>
			<xs:pattern value="saddlebrown"/>
			<xs:pattern value="salmon"/>
			<xs:pattern value="sandybrown"/>
			<xs:pattern value="seagreen"/>
			<xs:pattern value="seashell"/>
			<xs:pattern value="sienna"/>
			<xs:pattern value="silver"/>
			<xs:pattern value="skyblue"/>
			<xs:pattern value="slateblue"/>
			<xs:pattern value="slategray"/>
			<xs:pattern value="snow"/>
			<xs:pattern value="springgreen"/>
			<xs:pattern value="steelblue"/>
			<xs:pattern value="tan"/>
			<xs:pattern value="teal"/>
			<xs:pattern value="thistle"/>
			<xs:pattern value="tomato"/>
			<xs:pattern value="turquoise"/>
			<xs:pattern value="violet"/>
			<xs:pattern value="wheat"/>
			<xs:pattern value="white"/>
			<xs:pattern value="whitesmoke"/>
			<xs:pattern value="yellow"/>
		<!--@patternListLast -->
			<xs:pattern value="yellowgreen"/>
		</xs:restriction>
	</xs:simpleType>
	
	<!-- /** AddMode
		AddMode controls how the add element adds its referenced element to the 
		display list. By default, the referenced element remains in the add element
		so that the add element's use attribute may be animated to change the 
		element it refers to. Setting the mode attribute to "immediate" causes the 
		add element to put the referenced element in the display list directly. 
		The move and replace elements are not affected by the mode attribute;
		they always move or replace the referenced element directly.
	*/ -->
	<xs:simpleType name="AddMode">
		<xs:restriction base="xs:string">
			<!-- @pattern immediate Puts the referenced element in the display list. -->
			<xs:pattern value="immediate"/>
			<!-- @pattern indirect Puts the containing element in the display list. -->
			<xs:pattern value="indirect"/>
		</xs:restriction>
	</xs:simpleType>
	
	<!-- /** Align
		Align places text to the left, center, or right of the text position.
	*/ -->
	<xs:simpleType name="Align">
		<xs:restriction base="xs:string">
			<!-- @pattern left The first character in the text string is drawn at the text position. -->
			<xs:pattern value="left"/>
			<!-- @pattern center The  text string is measured and centered on the text position. -->
			<xs:pattern value="center"/>
			<!-- @pattern right The last character in the text string is drawn to the left of the text position. -->
			<xs:pattern value="right"/>
		</xs:restriction>
	</xs:simpleType>
	
	<!-- /** ApplyMode
		ApplyMode affects how the apply element animates values.
	*/ -->
	<xs:simpleType name="ApplyMode">
		<xs:restriction base="xs:string">
			<!-- @pattern immediate Iterates through all animation values immediately. -->
			<xs:pattern value="immediate"/>
			<!-- @pattern once Performs the animation at once without adding the scope to
				the display list. -->
			<xs:pattern value="once"/>
		</xs:restriction>
	</xs:simpleType>
	
	<!-- /** ApplyTransition
		ApplyTransition affects how the apply element sets the time of the animators.
	*/ -->
	<xs:simpleType name="ApplyTransition">
		<xs:restriction base="xs:string">
			<!-- @pattern reverse Performs the animation in reverse. -->
			<xs:pattern value="reverse"/>
		</xs:restriction>
	</xs:simpleType>
	
	<!-- /** Base64
		Base64 describes 8 bit binary using 64 character values. 
		See http://rfc.net/rfc2045.html for the base64 format.
	*/ -->
	<xs:simpleType name="Base64">
		<xs:restriction base="xs:string">
			<xs:pattern value="[A-Za-z0-9+/ ]+"/>
		</xs:restriction>
	</xs:simpleType>
	
	<!-- /** BaseBitmap
		A reference to an image like a JPEG, GIF, or PNG; or a reference to a bitmap element
		that has been drawn into with a drawTo element.
	*/ -->
	<xs:simpleType name="BaseBitmap">
		<xs:restriction base="xs:string"/>
	</xs:simpleType>
	
	<!-- /** BitmapEncoding
		Used to specify the compression format for writing an image file with the snapshot element.
	*/ -->
	<xs:simpleType name="BitmapEncoding">
		<xs:restriction base="xs:string">
			<!-- @pattern jpeg See http://www.jpeg.org/jpeg/ for more information about JPEG. -->
			<xs:pattern value="jpeg"/>
			<!-- @pattern png See http://www.libpng.org/pub/png/ for more information about PNG. -->
			<xs:pattern value="png"/>
		</xs:restriction>
	</xs:simpleType>

	<!-- /** BitmapFormat
		Determines the number of bits per pixel in a bitmap.
	*/ -->
	<xs:simpleType name="BitmapFormat">
		<xs:restriction base="xs:string">
			<xs:pattern value="none"/>
			<!-- @pattern A1 1-bit per pixel, (0 is transparent, 1 is opaque). -->
			<xs:pattern value="A1"/>
			<!-- @pattern A8 8-bits per pixel, with only alpha specified (0 is transparent, 0xFF is opaque). -->
			<xs:pattern value="A8"/>
			<!-- @pattern Index8 8-bits per pixel, using a ColorTable element to specify the colors. -->
			<xs:pattern value="Index8"/>
			<!-- @pattern RGB16 16-bits per pixel, compile-time configured to be either 555 or 565. -->
			<xs:pattern value="RGB16"/>
			<!-- @pattern RGB32 32-bits per pixel, plus alpha. -->
			<xs:pattern value="RGB32"/>
		</xs:restriction>
	</xs:simpleType>
	
	<!-- /** Boolean
		Either "true" (non-zero) or "false" (zero). 
	*/ -->
	<xs:simpleType name="Boolean">
		<xs:restriction base="xs:string">
			<xs:pattern value="false"/>
			<xs:pattern value="true"/>
		</xs:restriction>
	</xs:simpleType>
	
	<!-- /** Cap
		The values for the strokeCap attribute. 
	*/ -->
	<xs:simpleType name="Cap">
		<xs:restriction base="xs:string">
			<!-- @pattern butt begin and end a contour with no extension -->
			<xs:pattern value="butt"/>
			<!-- @pattern round begin and end a contour with a semi-circle extension -->
			<xs:pattern value="round"/>
			<!-- @pattern  square begin and end a contour with a half square extension -->
			<xs:pattern value="square"/>
		</xs:restriction>
	</xs:simpleType>
	
	<!-- /** Color
		A reference to a color element. 
	*/ -->
	<xs:simpleType name="Color">
		<xs:restriction base="xs:string"/>
	</xs:simpleType>
	
	<!-- /** Displayable
		A reference to any element: @list(Displayable)
	*/ -->
	<xs:simpleType name="Displayable">
		<xs:restriction base="xs:string"/>
	</xs:simpleType>

	<!-- /** DisplayableArray
		An array of one or more element IDs.
	*/ -->
	<xs:simpleType name="DisplayableArray">
		<xs:restriction base="xs:string"/>
	</xs:simpleType>

	<!-- /** Drawable
		A reference to an element that can be drawn: @list(Drawable)
	*/ -->
	<xs:simpleType name="Drawable">
		<xs:restriction base="xs:string"/>
	</xs:simpleType>

	<!-- /** DynamicString
		Dynamic strings contain scripts that are re-evaluated each time the script is enabled.
	*/ -->
	<xs:simpleType name="DynamicString">
		<xs:restriction base="xs:string"/>
	</xs:simpleType>
	
	<!-- /** EventCode
		Key codes that can trigger events, usually corresponding to physical buttons on the device.
	*/ -->
	<xs:simpleType name="EventCode">
		<xs:restriction base="xs:string">
			<xs:pattern value="none"/>
			<!-- @pattern up The up arrow. -->
			<xs:pattern value="up"/>
			<!-- @pattern down The down arrow. -->
			<xs:pattern value="down"/>
			<!-- @pattern left The left arrow. -->
			<xs:pattern value="left"/>
			<!-- @pattern right The right arrow. -->
			<xs:pattern value="right"/>
			<!-- @pattern back The back button (may not be present; the Backspace key on a PC). -->
			<xs:pattern value="back"/>
			<!-- @pattern end The end button (may not be present; the Esc key on a PC). -->
			<xs:pattern value="end"/>
			<!-- @pattern OK The OK button (the Enter key on a PC). -->
			<xs:pattern value="OK"/>
		</xs:restriction>
	</xs:simpleType>
	
	<!-- /** EventKind
		Specifies how an event is triggered; by a key, when an animation ends, when the 
		document is loaded, or when this event is triggered by the user's C++ or XML.
	*/ -->
	<xs:simpleType name="EventKind">
		<xs:restriction base="xs:string">
			<xs:pattern value="none"/>
			<!-- @pattern keyChar A key corresponding to a Unichar value. -->
			<xs:pattern value="keyChar"/>
			<!-- @pattern keyPress A key with a particular function, such as an arrow key or the OK button. -->
			<xs:pattern value="keyPress"/>
			<!-- @pattern mouseDown Triggered when the primary mouse button is pressed. -->
			<xs:pattern value="mouseDown"/>
			<!-- @pattern mouseDrag Triggered when the primary mouse is moved while the button is pressed. -->
			<xs:pattern value="mouseDrag"/>
			<!-- @pattern mouseMove Triggered when the primary mouse is moved. -->
			<xs:pattern value="mouseMove"/>
			<!-- @pattern mouseUp Triggered when the primary mouse button is released. -->
			<xs:pattern value="mouseUp"/>
			<!-- @pattern onEnd Triggered when an event ends. -->
			<xs:pattern value="onEnd"/>
			<!-- @pattern onLoad Triggered when the document loads. -->
			<xs:pattern value="onLoad"/>
			<!-- @pattern user Triggered when a post element or C++ event is activated. -->
			<xs:pattern value="user"/>
		</xs:restriction>
	</xs:simpleType>
	
	<!-- /** EventMode
		Specifies whether the event is delivered immediately to matching event element or deferred to 
		the application-wide event handler.
	*/ -->
	<xs:simpleType name="EventMode">
		<xs:restriction base="xs:string">
			<!-- @pattern deferred Process the event using the host's event queue. -->
			<xs:pattern value="deferred"/>
			<!-- @pattern immediate Activate the event element immediately. -->
			<xs:pattern value="immediate"/>
		</xs:restriction>
	</xs:simpleType>

	<!-- /** FillType
		Filled paths that self-intersect use the winding or evenOdd rule to determine whether the 
		overlaps are filled or are holes.
	*/ -->
	<xs:simpleType name="FillType">
		<xs:restriction base="xs:string">
			<!-- @pattern winding Fill if the sum of edge directions is non-zero. -->
			<xs:pattern value="winding"/>
			<!-- @pattern evenOdd Fill if the sum of edges is an odd number. -->
			<xs:pattern value="evenOdd"/>
		</xs:restriction>
	</xs:simpleType>
	
	<!-- /** FilterType
		Scaled bitmaps without a filter type set point-sample the source bitmap to determine the
		destination pixels' colors. Bilinear and bicubic compute the values of intermediate pixels
		by sampling the pixels around them.
	*/ -->
	<xs:simpleType name="FilterType">
		<xs:restriction base="xs:string">
			<xs:pattern value="none"/>
			<!-- @pattern bilinear Compute the pixel value as the linear interpolation of adjacent pixels. -->
			<xs:pattern value="bilinear"/>
		</xs:restriction>
	</xs:simpleType>
	
	<!-- /** Float
		A signed fractional value.
	*/ -->
	<xs:simpleType name="Float">
		<xs:restriction base="xs:float">
			<xs:pattern value="[+-]?([0-9]*\.[0-9]+|[0-9]+\.?)"/>
		</xs:restriction>
	</xs:simpleType>
	
	<!-- /** FloatArray
		An array of one or more signed fractional values.
	*/ -->
	<xs:simpleType name="FloatArray">
		<xs:restriction base="xs:float">
			<xs:pattern value="\[[+-]?([0-9]*\.[0-9]+|[0-9]+\.?)( *, *[+-]?([0-9]*\.[0-9]+|[0-9]+\.?))*\]"/>
		</xs:restriction>
	</xs:simpleType>
	
	<!-- /** FromPathMode
		A matrix computed from an offset along a path may include the point's position, the angle 
		tangent, or both. 
		.
	*/ -->
	<xs:simpleType name="FromPathMode">
		<xs:restriction base="xs:string">
			<!-- @pattern normal Compute the matrix using the path's angle and position. -->
			<xs:pattern value="normal"/>
			<!-- @pattern angle Compute the matrix using only the path's angle. -->
			<xs:pattern value="angle"/>
			<!-- @pattern position Compute the matrix using only the path's position. -->
			<xs:pattern value="position"/>
		</xs:restriction>
	</xs:simpleType>

	<!-- /** Int
		A signed integer.
	*/ -->
	<xs:simpleType name="Int">
		<xs:restriction base="xs:integer"/>
	</xs:simpleType>
	
	<!-- /** IntArray
		An array of one or more signed integer values.
	*/ -->
	<xs:simpleType name="IntArray">
		<xs:restriction base="xs:integer">
			<xs:pattern value="\[[+-]?[0-9]+( *, *[+-]?[0-9]+)*\]"/>
		</xs:restriction>
	</xs:simpleType>
	
	<!-- /** Join
		The edges of thick lines in a path are joined by extending the outer edges to form a miter, 
		or by adding a round circle at the intersection point, or by connecting the outer edges with a line 
		to form a blunt joint.
	*/ -->
	<xs:simpleType name="Join">
		<xs:restriction base="xs:string">
			<!-- @pattern miter Extend the outer edges to form a miter. -->
			<xs:pattern value="miter"/>
			<!-- @pattern round Join the outer edges with a circular arc. -->
			<xs:pattern value="round"/>
			<!-- @pattern blunt Connect the outer edges with a line. -->
			<xs:pattern value="blunt"/>
		</xs:restriction>
	</xs:simpleType>
	
	<!-- /** MaskFilterBlurStyle
		A blur can affect the inside or outside part of the shape, or it can affect both. The shape
		itself can be drawn solid, or can be invisible.
	*/ -->
	<xs:simpleType name="MaskFilterBlurStyle">
		<xs:restriction base="xs:string">
			<!-- @pattern normal Blur inside and outside. -->
			<xs:pattern value="normal"/>
			<!-- @pattern solid Solid inside, blur outside. -->
			<xs:pattern value="solid"/>
			<!-- @pattern outer Invisible inside, blur outside. -->
			<xs:pattern value="outer"/>
			<!-- @pattern inner Blur inside only.. -->
			<xs:pattern value="inner"/>
		</xs:restriction>
	</xs:simpleType>
	
	<!-- /** MaskFilter
		The ID of a blur or emboss element.
	*/ -->
	<xs:simpleType name="MaskFilter">
		<xs:restriction base="xs:string"/>
	</xs:simpleType>
	
	<!-- /** Matrix
		The ID of a matrix element.
	*/ -->
	<xs:simpleType name="Matrix">
		<xs:restriction base="xs:string"/>
	</xs:simpleType>
	
	<!-- /** MSec
		A fractional second with millisecond resolution.
	*/ -->
	<xs:simpleType name="MSec">
		<xs:restriction base="xs:float"/>
	</xs:simpleType>
	
	<!-- /** Paint
		The ID of a paint element.
	*/ -->
	<xs:simpleType name="Paint">
		<xs:restriction base="xs:string"/>
	</xs:simpleType>

	<!-- /** Path
		The ID of a path element.
	*/ -->
	<xs:simpleType name="Path">
		<xs:restriction base="xs:string"/>
	</xs:simpleType>
	
	<!-- /** PathDirection
		PathDirection determines if the path is traveled clockwise or counterclockwise.
	*/ -->
	<xs:simpleType name="PathDirection">
		<xs:restriction base="xs:string">
		<!-- @pattern cw The path is traveled clockwise. -->
			<xs:pattern value="cw"/>
		<!-- @pattern ccw The path is traveled counterclockwise. -->
			<xs:pattern value="ccw"/>
		</xs:restriction>
	</xs:simpleType>
	
	<!-- /** PathEffect
		The ID of a dash or discrete element.
	*/ -->
	<xs:simpleType name="PathEffect">
		<xs:restriction base="xs:string"/>
	</xs:simpleType>
	
	<!-- /** Point
		A pair of signed values representing the x and y coordinates of a point.
	*/ -->
	<xs:simpleType name="Point">
		<xs:restriction base="xs:string">
			<xs:pattern value="\[ *[+-]?([0-9]*\.[0-9]+|[0-9]+\.?) *[ ,] *[+-]?([0-9]*\.[0-9]+|[0-9]+\.?)\]"/>
		</xs:restriction>
	</xs:simpleType>
	
	<!-- /** Rect
		The ID of a rectangle element.
	*/ -->
	<xs:simpleType name="Rect">
		<xs:restriction base="xs:string"/>
	</xs:simpleType>
	
	<!-- /** Shader
		The ID of a linear or radial gradient.
	*/ -->
	<xs:simpleType name="Shader">
		<xs:restriction base="xs:string"/>
	</xs:simpleType>
	
	<!-- /** String
		A sequence of characters.
	*/ -->
	<xs:simpleType name="String">
		<xs:restriction base="xs:string"/>
	</xs:simpleType>
	
	<!-- /** Style
		Geometry can be filled, stroked or both.
	*/ -->
	<xs:simpleType name="Style">
		<xs:restriction base="xs:string">
		<!-- @pattern fill The interior of the geometry is filled with the paint's color. -->
			<xs:pattern value="fill"/>
		<!-- @pattern stroke The outline of the geometry is stroked with the paint's color. -->
			<xs:pattern value="stroke"/>
		<!-- @pattern strokeAndFill The interior is filled and outline is stroked with the paint's color. -->
			<xs:pattern value="strokeAndFill"/>
		</xs:restriction>
	</xs:simpleType>
	
	<!-- /** Text
		The ID of a text element.
	*/ -->
	<xs:simpleType name="Text">
		<xs:restriction base="xs:string"/>
	</xs:simpleType>
	
	<!-- /** TextBoxAlign
		Multiple lines of text may be aligned to the start of the box, the center, or the end.
	*/ -->
	<xs:simpleType name="TextBoxAlign">
		<xs:restriction base="xs:string">
		<!-- @pattern start The text begins within the upper left of the box. -->
			<xs:pattern value="start"/>
		<!-- @pattern center The text is positioned in the center of the box. -->
			<xs:pattern value="center"/>
		<!-- @pattern end The text ends within the lower right of the box. -->
			<xs:pattern value="end"/>
		</xs:restriction>
	</xs:simpleType>

	<!-- /** TextBoxMode
		Fitting the text may optionally introduce line breaks.
	*/ -->
	<xs:simpleType name="TextBoxMode">
		<xs:restriction base="xs:string">
		<!-- @pattern oneLine No additional linebreaks are added. -->
			<xs:pattern value="oneLine"/>
		<!-- @pattern lineBreak Line breaks may be added to fit the text to the box. -->
			<xs:pattern value="lineBreak"/>
		</xs:restriction>
	</xs:simpleType>
	
	<!-- /** TileMode
		A shader describes how to draw within a rectangle. 
		Outside of the rectangle, the shader may be ignored, clamped on the edges, or repeated.
		The repetitions may be mirrored from the original shader.
	*/ -->
	<xs:simpleType name="TileMode">
		<xs:restriction base="xs:string">
		<!-- @pattern clamp The edge shader color is extended. -->
			<xs:pattern value="clamp"/>
		<!-- @pattern repeat The shader is repeated horizontally and vertically. -->
			<xs:pattern value="repeat"/>
		<!-- @pattern mirror The shader is mirrored horizontally and vertically. -->
			<xs:pattern value="mirror"/>
		</xs:restriction>
	</xs:simpleType>
	
	<!-- /** Typeface
		The ID of a typeface element.
	*/ -->
	<xs:simpleType name="Typeface">
		<xs:restriction base="xs:string"/>
	</xs:simpleType>
	
	<!-- /** UnknownArray
		An array of values of any type.
	*/ -->
	<xs:simpleType name="UnknownArray">
		<xs:restriction base="xs:string"/>
	</xs:simpleType>

	<!-- /** Xfermode
		The operation applied when drawing a color to the destination background.
	*/ -->
	<xs:simpleType name="Xfermode">
		<xs:restriction base="xs:string">
		<!-- @pattern clear Set the destination alpha to zero and the destination color to black. -->
			<xs:pattern value="clear"/>
		<!-- @pattern src Set the destination to the source alpha and color. -->
			<xs:pattern value="src"/>
		<!-- @pattern dst Set the destination to the destination alpha and color. -->
			<xs:pattern value="dst"/>
		<!-- @pattern srcOver The default. Set the destination to the source color blended
			with the destination by the source alpha. -->
			<xs:pattern value="srcOver"/>
		<!-- @pattern dstOver Set the destination to the destination color blended
			with the source by the destination alpha. -->
			<xs:pattern value="dstOver"/>
		<!-- @pattern srcIn Set the destination to the source color scaled by the destination
			alpha. -->
			<xs:pattern value="srcIn"/>
		<!-- @pattern dstIn Set the destination to the destination color scaled by the source
			alpha. -->
			<xs:pattern value="dstIn"/>
		<!-- @pattern srcOut Set the destination to the source color scaled by the 
			inverse of the destination alpha. -->
			<xs:pattern value="srcOut"/>
		<!-- @pattern dstOut Set the destination to the destination color scaled by the 
			inverse of the source alpha. -->
			<xs:pattern value="dstOut"/>
		<!-- @pattern srcATop Set the destination to the source color times the destination alpha, 
			blended	with the destination times the inverse of the source alpha. -->
			<xs:pattern value="srcATop"/>
		<!-- @pattern dstATop Set the destination to the destination color times the source alpha, 
			blended	with the source times the inverse of the destination alpha. -->
			<xs:pattern value="dstATop"/>
		<!-- @pattern xor Set the destination to the destination color times the 
			inverse of the source alpha, 
			blended	with the source times the inverse of the destination alpha. -->
			<xs:pattern value="xor"/>
		</xs:restriction>
	</xs:simpleType>

	<!-- /** Math
		Math provides functions and properties in the ECMAScript library to screenplay script expressions.
		The Math element is always implicitly added at the top of every screenplay description, so
		its functions and properties are always available.
	*/ -->
	<xs:element name="Math">
		<xs:complexType>
			<!-- @attribute E The value 2.718281828. -->
			<xs:attribute name="E" type="Sk:Float"/>
			<!-- @attribute LN10 The value 2.302585093. -->
			<xs:attribute name="LN10" type="Sk:Float"/>
			<!-- @attribute LN2 The value 0.693147181. -->
			<xs:attribute name="LN2" type="Sk:Float"/>
			<!-- @attribute LOG10E The value 0.434294482. -->
			<xs:attribute name="LOG10E" type="Sk:Float"/>
			<!-- @attribute LOG2E The value 1.442695041. -->
			<xs:attribute name="LOG2E" type="Sk:Float"/>
			<!-- @attribute PI The value 3.141592654. -->
			<xs:attribute name="PI" type="Sk:Float"/>
			<!-- @attribute SQRT1_2 The value 0.707106781. -->
			<xs:attribute name="SQRT1_2" type="Sk:Float"/>
			<!-- @attribute SQRT2 The value 1.414213562. -->
			<xs:attribute name="SQRT2" type="Sk:Float"/>
			<!-- @attribute abs A function that returns the absolute value of its argument. -->
			<xs:attribute name="abs" type="Sk:Float"/>
			<!-- @attribute acos A function that returns the arc cosine of its argument. -->
			<xs:attribute name="acos" type="Sk:Float"/>
			<!-- @attribute asin A function that returns the arc sine of its argument. -->
			<xs:attribute name="asin" type="Sk:Float"/>
			<!-- @attribute atan A function that returns the arc tan of its argument. -->
			<xs:attribute name="atan" type="Sk:Float"/>
			<!-- @attribute atan2 A function that returns the arc tan of the ratio of its two arguments. -->
			<xs:attribute name="atan2" type="Sk:Float"/>
			<!-- @attribute ceil A function that returns the rounded up value of its argument. -->
			<xs:attribute name="ceil" type="Sk:Float"/>
			<!-- @attribute cos A function that returns the cosine of its argument. -->
			<xs:attribute name="cos" type="Sk:Float"/>
			<!-- @attribute exp A function that returns E raised to a power (the argument). -->
			<xs:attribute name="exp" type="Sk:Float"/>
			<!-- @attribute floor A function that returns the rounded down value of its argument. -->
			<xs:attribute name="floor" type="Sk:Float"/>
			<!-- @attribute log A function that returns the natural logarithm its argument. -->
			<xs:attribute name="log" type="Sk:Float"/>
			<!-- @attribute max A function that returns the largest of any number of arguments. -->
			<xs:attribute name="max" type="Sk:Float"/>
			<!-- @attribute min A function that returns the smallest of any number of arguments. -->
			<xs:attribute name="min" type="Sk:Float"/>
			<!-- @attribute pow A function that returns the first argument raised to the power of the second argument. -->
			<xs:attribute name="pow" type="Sk:Float"/>
			<!-- @attribute random A function that returns a random value from zero to one.
				(See also the &lt;random&gt; element.) -->
			<xs:attribute name="random" type="Sk:Float"/>
			<!-- @attribute round A function that returns the rounded value of its argument. -->
			<xs:attribute name="round" type="Sk:Float"/>
			<!-- @attribute sin A function that returns the sine of its argument. -->
			<xs:attribute name="sin" type="Sk:Float"/>
			<!-- @attribute sqrt A function that returns the square root of its argument. -->
			<xs:attribute name="sqrt" type="Sk:Float"/>
			<!-- @attribute tan A function that returns the tangent of its argument. -->
			<xs:attribute name="tan" type="Sk:Float"/>	
		</xs:complexType>
	</xs:element>
	
	<!-- /** Number
		Number provides properties in the ECMAScript library to screenplay script expressions.
		The Number element is always implicitly added at the top of every screenplay description, so
		its properties are always available.
	*/ -->
	<xs:element name="Number">
		<xs:complexType>
			<!-- @attribute MAX_VALUE The maximum number value; approximately 32767.999985 fixed point, 
				3.4028235e+38 floating point. -->
			<xs:attribute name="MAX_VALUE" type="Sk:Float"/>
			<!-- @attribute MIN_VALUE The minimum number value; approximately 0.000015 fixed point, 
				1.1754944e-38 floating point. -->
			<xs:attribute name="MIN_VALUE" type="Sk:Float"/>
			<!-- @attribute NEGATIVE_INFINITY The most negative number value. Fixed point does not
				have a value for negative infinity, and approximates it with -32767.999985. -->
			<xs:attribute name="NEGATIVE_INFINITY" type="Sk:Float"/>
			<!-- @attribute NaN A bit pattern representing "Not a Number". Fixed point does not
				have a value for NaN, and approximates it with -32768. -->
			<xs:attribute name="NaN" type="Sk:Float"/>
			<!-- @attribute POSITIVE_INFINITY The greatest positive number value. Fixed point does not
				have a value for positive infinity, and approximates it with 32767.999985. -->
			<xs:attribute name="POSITIVE_INFINITY" type="Sk:Float"/>
		</xs:complexType>
	</xs:element>

	<!-- /** add
		Add references a drawable element, and adds it to the display list. 
		If where and offset are omitted, the element is appended to the end of the display list.
		If where is specified, the element is inserted at the first occurance of where in the display list.
		If offset and where are specified, the element is inserted at where plus offset.
		A positive offset without where inserts the element at the start of the list plus offset.
		A negative offset without where inserts the element at the end of the list minus offset.
	*/ -->
	<xs:element name="add">
		<xs:complexType>
			<!-- @attribute mode If indirect (the default), keep the add element in the display list,
				and draw the add's use element. If immediate, put the add's use element in the display list. -->
			<xs:attribute name="mode" type="Sk:AddMode"/>
			<!-- @attribute offset The offset added to the insert index. -->
			<xs:attribute name="offset" type="Sk:Int"/>
			<!-- @attribute use The drawable element to add to the display list. -->
			<xs:attribute name="use" type="Sk:Drawable"/>
			<!-- @attribute where The drawable element marking where to insert. -->
			<xs:attribute name="where" type="Sk:Drawable"/>
			<xs:attribute name="id" type="xs:ID"/>
		</xs:complexType>
	</xs:element>
	
	<!-- /** addCircle
		AddCircle adds a closed circle to the parent path element. 
	*/ -->
	<xs:element name="addCircle">
		<xs:complexType>
			<!-- @attribute direction One of @pattern. @patternDescription -->
			<xs:attribute name="direction" type="Sk:PathDirection"/>
			<!-- @attribute radius The distance from the center to the edge of the circle. -->
			<xs:attribute name="radius" type="Sk:Float"/>
			<!-- @attribute x The x coordinate of the circle's center. -->
			<xs:attribute name="x" type="Sk:Float"/>
			<!-- @attribute y The y coordinate of the circle's center.-->
			<xs:attribute name="y" type="Sk:Float"/>
			<xs:attribute name="id" type="xs:ID"/>
		</xs:complexType>
	</xs:element>
	
	<!-- /** addOval
		AddOval adds a closed oval described by its bounding box to the parent path element. 
	*/ -->
	<xs:element name="addOval">
		<xs:complexType>
			<!-- @attribute direction One of @pattern. @patternDescription -->
			<xs:attribute name="direction" type="Sk:PathDirection"/>
			<!-- @attribute bottom The bottom edge of the oval's bounding box. -->
			<xs:attribute name="bottom" type="Sk:Float"/>
			<!-- @attribute left The left edge of the oval's bounding box. -->
			<xs:attribute name="left" type="Sk:Float"/>
			<!-- @attribute right The right edge of the oval's bounding box. -->
			<xs:attribute name="right" type="Sk:Float"/>
			<!-- @attribute top The top edge of the oval's bounding box. -->
			<xs:attribute name="top" type="Sk:Float"/>
			<xs:attribute name="id" type="xs:ID"/>
		</xs:complexType>
	</xs:element>
	
	<!-- /** addPath
		AddPath adds a path to the parent path element. 
		An optional matrix may transform the path as it is added.
	*/ -->
	<xs:element name="addPath">
		<xs:complexType>
			<!-- @attribute matrix The matrix applied to the path as it is added.  -->
			<xs:attribute name="matrix" type="Sk:Matrix"/>
			<!-- @attribute path The path to add.  -->
			<xs:attribute name="path" type="Sk:Path"/>
			<xs:attribute name="id" type="xs:ID"/>
		</xs:complexType>
	</xs:element>
	
	<!-- /** addRect
		AddRect adds a closed rectangle to the parent path element. 
	*/ -->
	<xs:element name="addRect">
		<xs:complexType>
			<!-- @attribute direction One of @pattern. @patternDescription -->
			<xs:attribute name="direction" type="Sk:PathDirection"/>
			<!-- @attribute bottom The bottom edge of the rectangle. -->
			<xs:attribute name="bottom" type="Sk:Float"/>
			<!-- @attribute left The left edge of the rectangle. -->
			<xs:attribute name="left" type="Sk:Float"/>
			<!-- @attribute right The right edge of the rectangle. -->
			<xs:attribute name="right" type="Sk:Float"/>
			<!-- @attribute top" The top" edge of the rectangle. -->
			<xs:attribute name="top" type="Sk:Float"/>
			<xs:attribute name="id" type="xs:ID"/>
		</xs:complexType>
	</xs:element>
	
	<!-- /** addRoundRect
		AddRoundRect adds a closed rounded rectangle to the parent path element. 
	*/ -->
	<xs:element name="addRoundRect">
		<xs:complexType>
			<!-- @attribute direction One of @pattern. @patternDescription -->
			<xs:attribute name="direction" type="Sk:PathDirection"/>
			<!-- @attribute bottom The bottom edge of the rounded rectangle's bounding box. -->
			<xs:attribute name="bottom" type="Sk:Float"/>
			<!-- @attribute left The left edge of the rounded rectangle's bounding box. -->
			<xs:attribute name="left" type="Sk:Float"/>
			<!-- @attribute right The right edge of the rounded rectangle's bounding box. -->
			<xs:attribute name="right" type="Sk:Float"/>
			<!-- @attribute top The top edge of the rounded rectangle's bounding box. -->
			<xs:attribute name="top" type="Sk:Float"/>
			<!-- @attribute rx The X-radius of the oval used to round the corners. -->
			<xs:attribute name="rx" type="Sk:Float"/>
			<!-- @attribute ry The Y-radius of the oval used to round the corners. -->
			<xs:attribute name="ry" type="Sk:Float"/>
			<xs:attribute name="id" type="xs:ID"/>
		</xs:complexType>
	</xs:element>
		
	<!-- /** animate
		Animate varies the value of an element's attribute over time.
		The animation may vary starting at the 'from' attribute, and ending at the 'to' attribute,
		or may compute the value using the 'formula' attribute.
	*/ -->
	<xs:element name="animate">
		<xs:complexType>
			<!-- @attribute begin An optional offset that must elapse before the animation begins. The apply
				begin attribute is added to any animator's begin attribute. -->
			<xs:attribute name="begin" type="Sk:MSec"/>
			<!-- @attribute blend Specifies how the from and to values are blended. A value from 0.0 to
				1.0 specifies a cubic lag/log/lag blend (slow to change at the beginning and end); the closer
				blend is to 1.0, the more linear the blend. If omitted, the blend is linear. -->
			<xs:attribute name="blend" type="Sk:FloatArray"/>
			<!-- @attribute dur The duration of the animation in milliseconds. -->
			<xs:attribute name="dur" type="Sk:MSec"/>
			<!-- @attribute dynamic If true, restart the animation if any of the simple values the 'from', 'formula',
			 'lval', or 'to' attributes reference are changed. Simple values are contained by the array, boolean, float, int, 
			 and string elements. -->
			<xs:attribute name="dynamic" type="Sk:Boolean" />
			<!-- @attribute field The attribute to animate. -->
			<xs:attribute name="field" type="Sk:String"/>
			<!-- @attribute formula A script to execute over time to compute the field's value. Typically,
				the fomula is a script expression which includes a reference to the time attribute of the 
				containing apply	element.  Requires a dur.  For animations that do not stop, set dur="Number.POSITIVE_INFINITY" -->
			<xs:attribute name="formula" type="Sk:DynamicString"/>
			<!-- @attribute from The starting value (requires a 'to' attribute) -->
			<xs:attribute name="from" type="Sk:DynamicString"/>
			<!-- @attribute lval An expression evaluating to the attribute to animate.
				If present, lval overrides 'field'. The expression is typically an array element,
				e.g. lval="x[y]" . -->
			<xs:attribute name="lval" type="Sk:DynamicString"/>
			<!-- @attribute mirror If true, reverses the interpolated value during even repeat cycles. -->
			<xs:attribute name="mirror" type="Sk:Boolean"/>
			<!-- @attribute repeat Specifies the number of times to repeat the animation. 
				(May be fractional.)  -->
			<xs:attribute name="repeat" type="Sk:Float"/>
			<!-- @attribute reset  If true, the computed value is the initial value after the 
				animation is complete. If false, or by default, the computed value is the final value 
				after the animation is complete. -->
			<xs:attribute name="reset" type="Sk:Boolean"/>
			<!-- @attribute step When the apply's attribute mode="immediate" or "create", the step attribute can be read by 
				script to determine the current animation iteration.  -->
			<xs:attribute name="step" type="Sk:Int" />
			<!-- @attribute target The element to animate. By default, the element contained by the apply
				or referenced by the apply's scope attribute is the animate target. -->
			<xs:attribute name="target" type="Sk:DynamicString"/>
			<!-- @attribute to The ending value (requires a 'from' attribute) -->
			<xs:attribute name="to" type="Sk:DynamicString"/>
			<!-- @attribute values [Depreciated]  -->
			<xs:attribute name="values" type="Sk:DynamicString"/>
			<xs:attribute name="id" type="xs:ID"/>
		</xs:complexType>
	</xs:element>
		
	<!-- /** apply
		Apply changes one or more attributes of an element.
		Apply either contains one displayable element or references the element scoping the change
		with the 'scope' attribute. Apply either contains one animator element or references it with 
		the 'animator' attribute.
		In the display list, apply draws the element it scopes after evaluating the animation.
	*/ -->
	<xs:element name="apply">
		<xs:complexType>
			<xs:choice minOccurs="0" maxOccurs="1">
				<xs:element ref="Sk:animate"/>
				<xs:element ref="Sk:set" />
		<!-- not quite right; want to say 'one of the above, one of the below'
			</xs:choice>
			<xs:choice minOccurs="0" maxOccurs="1">
		-->
				<xs:element ref="Sk:add"/>
				<xs:element ref="Sk:array"/>
				<xs:element ref="Sk:apply"/>
				<xs:element ref="Sk:bitmap"/>
				<xs:element ref="Sk:boolean"/>
				<xs:element ref="Sk:bounds"/>
		<!--		<xs:element ref="Sk3D:camera"/>    -->
				<xs:element ref="Sk:clear"/>
				<xs:element ref="Sk:clip"/>
				<xs:element ref="Sk:color"/>
				<xs:element ref="Sk:drawTo"/>
				<xs:element ref="Sk:float"/>
				<xs:element ref="Sk:full"/>
				<xs:element ref="Sk:group"/>
				<xs:element ref="Sk:image"/>
				<xs:element ref="Sk:int"/>
				<xs:element ref="Sk:line"/>
				<xs:element ref="Sk:matrix"/>
				<xs:element ref="Sk:move"/>
				<xs:element ref="Sk:oval"/>
				<xs:element ref="Sk:paint"/>
			<!--	<xs:element ref="Sk:patch"/>   -->
				<xs:element ref="Sk:path"/>
				<xs:element ref="Sk:point"/>
				<xs:element ref="Sk:polygon"/>
				<xs:element ref="Sk:polyline"/>
				<xs:element ref="Sk:post"/>
				<xs:element ref="Sk:random"/>
				<xs:element ref="Sk:rect"/>
				<xs:element ref="Sk:remove"/>
				<xs:element ref="Sk:replace"/>
				<xs:element ref="Sk:roundRect"/>
				<xs:element ref="Sk:save"/>
				<xs:element ref="Sk:snapshot"/>
				<xs:element ref="Sk:string"/>
				<xs:element ref="Sk:text"/>
				<xs:element ref="Sk:textBox"/>
				<xs:element ref="Sk:textOnPath"/>
				<xs:element ref="Sk:textToPath"/>
			</xs:choice>
			<!-- @attribute animator The description of how the element is changed over time. -->
			<xs:attribute name="animator" type="Sk:Animate"/>
			<!-- @attribute begin An optional offset that must elapse before the animation begins. The apply
				begin attribute is added to any animator's begin attribute. -->
			<xs:attribute name="begin" type="Sk:MSec" />
			<!-- @attribute dontDraw Edits an element's attribute without drawing it; for instance,
				to edit a clip's rectangle without drawing the rectangle, set dontDraw="true".  -->
			<xs:attribute name="dontDraw" type="Sk:Boolean"/>
			<!-- @attribute dynamicScope The location in the display list where animations are stored. Use 
			dynamicScope instead of scope if a script expression with potentially different values is desired to 
			describe the scope. -->
			<xs:attribute name="dynamicScope" type="Sk:String"/>
			<!-- @attribute interval The optional time interval from one animation frame to the next. -->
			<xs:attribute name="interval" type="Sk:MSec" />
			<!-- @attribute mode One of @pattern. @patternDescription  -->
			<xs:attribute name="mode" type="Sk:ApplyMode"/>
			<!-- @attribute pickup Starts the animation at the current target's attribute value. Enabling
				'pickup' permits omitting the 'from' attribute of the animator.  -->
			<xs:attribute name="pickup" type="Sk:Boolean"/>
			<!-- @attribute restore If true, multiple references to the same apply statement save and
				restore the interpolated target values.  -->
			<xs:attribute name="restore" type="Sk:Boolean"/>
			<!-- @attribute scope The location in the display list where animations are stored.  -->
			<xs:attribute name="scope" type="Sk:Drawable"/>
			<!-- @attribute step When mode="immediate" or "create", the step attribute can be read by 
				script to determine the current animation iteration.  -->
			<xs:attribute name="step" type="Sk:Int" />
			<!-- @attribute steps When mode="immediate", the number of times the animation
				is stepped. The animation iterates 'steps' times plus one.  -->
			<xs:attribute name="steps" type="Sk:Int" />
			<!-- @attribute time When read from script, returns the animation time. Typically used by
				an animate element's formula attribute.  -->
			<xs:attribute name="time" type="Sk:MSec" />
			<!-- @attribute transition One of @pattern. @patternDescription  -->
			<xs:attribute name="transition" type="Sk:ApplyTransition"/>
			<xs:attribute name="id" type="xs:ID"/>
		</xs:complexType>
	</xs:element>
	
	<!-- /** array
		Array contains an array of values of the same type. The values may be
		numbers or strings.
	*/ -->
	<xs:element name="array">
		<xs:complexType>
			<!-- @attribute length The number of elements in the array (read only). -->
			<xs:attribute name="length" type="Sk:Int"/>
			<!-- @attribute values The elements in the array. -->
			<xs:attribute name="values" type="Sk:UnknownArray"/>
			<xs:attribute name="id" type="xs:ID"/>
		</xs:complexType>
	</xs:element>
	
	<!-- /** bitmap
		Bitmap describes a rectangle of pixels. 
		Use the <drawTo> element to draw to a bitmap.
		Add the bitmap to the display list to draw from a bitmap.  
	*/ -->
	<xs:element name="bitmap">
		<xs:complexType>
			<!-- @attribute erase The color, including the alpha, the bitmap is intially set to.  -->
			<xs:attribute name="erase" type="Sk:ARGB"/>
			<!-- @attribute format One of @pattern. @patternDescription  -->
			<xs:attribute name="format" type="Sk:BitmapFormat"/>
			<!-- @attribute height The height of the bitmap in pixels.  -->
			<xs:attribute name="height" type="Sk:Int"/>
			<!-- @attribute rowBytes The number of byte describing each row of pixels (optional).  -->
			<xs:attribute name="rowBytes" type="Sk:Int"/>
			<!-- @attribute  width The height of the width in pixels. -->
			<xs:attribute name="width" type="Sk:Int"/>
			<!-- @attribute x The left edge of the bitmap in unit space.  -->
			<xs:attribute name="x" type="Sk:Float"/>
			<!-- @attribute y The top edge of teh bitmap in unit space.  -->
			<xs:attribute name="y" type="Sk:Float"/>
			<xs:attribute name="id" type="xs:ID"/>
		</xs:complexType>
	</xs:element>
	
	<!-- /** bitmapShader
		BitmapShader sets the paint shader to draw the bitmap as a texture. 
	*/ -->
	<xs:element name="bitmapShader">
		<xs:complexType>
			<xs:choice >
				<xs:element ref="Sk:image" minOccurs="0" />
				<xs:element ref="Sk:matrix" minOccurs="0" />
			</xs:choice>
			<!-- @attribute matrix Matrix applies a 3x3 transform to the gradient. -->
			<xs:attribute name="matrix" type="Sk:Matrix"/>
			<!-- @attribute tileMode One of @pattern. @patternDescription -->
			<xs:attribute name="tileMode" type="Sk:TileMode"/>
			<!-- @attribute filterType The bitmap filter to employ, one of @pattern. -->
			<xs:attribute name="filterType" type="Sk:FilterType"/>
			<!-- @attribute image The bitmap to draw. -->
			<xs:attribute name="image" type="Sk:BaseBitmap"/>
			<xs:attribute name="id" type="xs:ID"/>
		</xs:complexType>
	</xs:element>
	
	
	<!-- /** blur
		Blur describes an image filter in the paint that blurs the drawn geometry.  
	*/ -->
	<xs:element name="blur">
		<xs:complexType>
			<!-- @attribute blurStyle One of @pattern. @patternDescription  -->
			<xs:attribute name="blurStyle" type="Sk:MaskFilterBlurStyle"/>
			<!-- @attribute radius The extent of the filter effect in unit space. If the radius is less 
				than zero,	the blur has no effect. -->		
			<xs:attribute name="radius" type="Sk:Float"/>
			<xs:attribute name="id" type="xs:ID"/>
		</xs:complexType>
	</xs:element>
	
	<!-- /** boolean
		Boolean contains an boolean. The boolean element cannot be added to a display list, but can
		by set by animations and read by any attribute definition. An boolean element may be referenced,
		for instance, by a group's condition attribute to make an animation conditionally execute.
	*/ -->
	<xs:element name="boolean">
		<xs:complexType>
			<!-- @attribute value The contained boolean. -->
			<xs:attribute name="value" type="Sk:Boolean"/>
			<xs:attribute name="id" type="xs:ID"/>
		</xs:complexType>
	</xs:element>

	<!-- /** bounds
		Bounds describes a bounding box that is not drawn. Bounds is used to specify a rectangle to
		invalidate or record whether the specified area was drawn.
		The width and height attribute compute the rectangle's right and bottom edges when the rectangle
		description is first seen. Animating the rectangle's left or top will not recompute the right or bottom
		if the width or height have been specified.
	*/ -->
	<xs:element name="bounds">
		<xs:complexType>
			<!-- @attribute bottom The bottom edge of the rectangle. -->
			<xs:attribute name="bottom" type="Sk:Float"/>
			<!-- @attribute height The height of the rectangle. Setting height computes the 
				bottom attribute from the top attribute. -->
			<xs:attribute name="height" type="Sk:Float"/>
			<!-- @attribute inval If set to true, union the drawn bounds to compute an inval area. -->
			<xs:attribute name="inval" type="Sk:Boolean"/>
			<!-- @attribute left The left edge of the rectangle. -->
			<xs:attribute name="left" type="Sk:Float"/>
			<!-- @attribute needsRedraw Set to true if last draw was visible. -->
			<xs:attribute name="needsRedraw" type="Sk:Boolean"/>
			<!-- @attribute right The right edge of the rectangle. -->
			<xs:attribute name="right" type="Sk:Float"/>
			<!-- @attribute top The top edge of the rectangle. -->
			<xs:attribute name="top" type="Sk:Float"/>
			<!-- @attribute width The width of the rectangle. -->
			<xs:attribute name="width" type="Sk:Float"/>
			<xs:attribute name="id" type="xs:ID"/>
		</xs:complexType>
	</xs:element>
	
	<!-- /** clear
		Clear removes all entries in the display list.  
	*/ -->
	<xs:element name="clear">
		<xs:complexType>
			<xs:attribute name="id" type="xs:ID"/>
		</xs:complexType>
	</xs:element>
	
	<!-- /** clip
		Clip sets the canvas to clip drawing to an element's geometry.  
		A clip element may contain an element or reference an element with the path or
		rectangle attributes. To make the clip unrestricted, enclose a 'full' element.
	*/ -->
	<xs:element name="clip">
		<xs:complexType>
			<xs:choice minOccurs="0" maxOccurs="1">
				<xs:element ref="Sk:full"/>
				<xs:element ref="Sk:rect"/>
				<xs:element ref="Sk:path"/>
				<xs:element ref="Sk:polygon"/>
				<xs:element ref="Sk:polyline"/>
			</xs:choice>
			<!-- @attribute path A path-derived element to clip to: either an oval,
				a path, a polygon, a polyline, or a roundRect.  -->
			<xs:attribute name="path" type="Sk:Path"/>
			<!-- @attribute rect A rectangle element to clip to.  -->
			<xs:attribute name="rect" type="Sk:Rect"/>
			<xs:attribute name="id" type="xs:ID"/>
		</xs:complexType>
	</xs:element>
	
	<!-- /** close
		Close connects the last point in the path's contour to the first if the contour is not already closed.  
	*/ -->
	<xs:element name="close">
		<xs:complexType>
			<xs:attribute name="id" type="xs:ID"/>
		</xs:complexType>
	</xs:element>
	
	<!-- /** color
		Color describes a color in RGB space or HSV space, and its alpha (transparency).  
	*/ -->
	<xs:element name="color">
		<xs:complexType>
			<!-- @attribute alpha The alpha component, which describes transparency.
			 Alpha ranges from 0.0 (transparent) to 1.0 (completely opaque). -->
			<xs:attribute name="alpha" type="Sk:Float"/>
			<!-- @attribute blue The blue component of an RGB color. Blue ranges from 0 to 255.  -->
			<xs:attribute name="blue" type="Sk:Float"/>
			<!-- @attribute color The complete color. The color can be specified by name,
				by hexadecimal value, or with the rgb function.  -->
			<xs:attribute name="color" type="Sk:ARGB"/>
			<!-- @attribute green The green component of an RGB color. Green ranges from 0 to 255.  -->
			<xs:attribute name="green" type="Sk:Float"/>
			<!-- @attribute hue The hue component of an HSV color. Hue ranges from 0 to 360. -->
			<xs:attribute name="hue" type="Sk:Float"/>
			<!-- @attribute red The red component of an RGB color. Red ranges from 0 to 255.  -->
			<xs:attribute name="red" type="Sk:Float"/>
			<!-- @attribute saturation The saturation component of an HSV color. Saturation ranges from 0 to 1. -->
			<xs:attribute name="saturation" type="Sk:Float"/>
			<!-- @attribute value The value component of an HSV color. Value ranges from 0 to 1. -->
			<xs:attribute name="value" type="Sk:Float"/>
			<xs:attribute name="id" type="xs:ID"/>
		</xs:complexType>
	</xs:element>
	
	<!-- /** cubicTo
		CubicTo adds a cubic to the path, using the last point in the path as the first point of the cubic. 
	*/ -->
	<xs:element name="cubicTo">
		<xs:complexType>
			<!-- @attribute x1 The x position of the first off-curve point. -->
			<xs:attribute name="x1" type="Sk:Float"/>
			<!-- @attribute x2 The x position of the second off-curve point. -->
			<xs:attribute name="x2" type="Sk:Float"/>
			<!-- @attribute x3 The x position of the final on-curve point. -->
			<xs:attribute name="x3" type="Sk:Float"/>
			<!-- @attribute y1 The y position of the first off-curve point. -->
			<xs:attribute name="y1" type="Sk:Float"/>
			<!-- @attribute y2 The y position of the second off-curve point. -->
			<xs:attribute name="y2" type="Sk:Float"/>
			<!-- @attribute y3 The y position of the final on-curve point. -->
			<xs:attribute name="y3" type="Sk:Float"/>
			<xs:attribute name="id" type="xs:ID"/>
		</xs:complexType>
	</xs:element>
	
	<!-- /** dash
		Dash describes an array of dashes and gaps that describe how the paint strokes lines,
		rectangles, and paths. The intervals, phase, and dashed path are all measured in the same 
		unit space. The phase and distance between dashes is unaffected by the paint's stroke width.
	*/ -->
	<xs:element name="dash">
		<xs:complexType>
			<!-- @attribute intervals An array of floats that alternately describe the lengths of 
			dashes and gaps. Intervals must contain an even number of entries. -->
			<xs:attribute name="intervals" type="Sk:FloatArray"/>
			<!-- @attribute phase Phase advances the placement of the first dash. A positive phase 
			preceeds the first dash with a gap. A negative phase shortens the length of the first dash. -->
			<xs:attribute name="phase" type="Sk:Float"/>
			<xs:attribute name="id" type="xs:ID"/>
		</xs:complexType>
	</xs:element>
	
	<!-- /** data
		Data provides metadata to an event. The metadata may be an integer, a float, 
			or a string. 
	*/ -->
	<xs:element name="data">
		<xs:complexType>
			<!-- @attribute float The float value associated with the metadata. -->
			<xs:attribute name="float" type="Sk:Float"/>
			<!-- @attribute initialized A read-only value set to false (unused by data). -->
			<xs:attribute name="initialized" type="Sk:Boolean"/>
			<!-- @attribute int The integer value associated with the metadata. -->
			<xs:attribute name="int" type="Sk:Int"/>
			<!-- @attribute name The name of the metadata. This is the name of the data. --> 
			<xs:attribute name="name" type="Sk:String"/>
			<!-- @attribute string The string value associated with the metadata. -->
			<xs:attribute name="string" type="Sk:String"/>
			<xs:attribute name="id" type="xs:ID"/>
		</xs:complexType>
	</xs:element>

	<!-- /** discrete
		Discrete alters the edge of the stroke randomly.  Discrete is a path effect, and only has an 
		effect when referenced from a paint.. A <pathEffect/>
		element with no attributes will dissable discrete. 
	*/ -->
	<xs:element name="discrete">
		<xs:complexType>
			<!-- @attribute deviation The amount of wobble in the stroke. -->
			<xs:attribute name="deviation" type="Sk:Float"/>
			<!-- @attribute segLength The length of wobble in the stroke. -->
			<xs:attribute name="segLength" type="Sk:Float"/>
			<xs:attribute name="id" type="xs:ID"/>
		</xs:complexType>
	</xs:element>
	
	<!-- /** drawTo
		DrawTo images to a bitmap. The bitmap can be added to the display list
		to draw the composite image. 
		DrawTo can be used as an offscreen to speed complicated animations, and
		for bitmap effects such as pixelated zooming.  
		DrawTo can only reference a single drawable element. Use <add>,
		<group>, or <save> to draw multiple elements with <drawTo>.
	*/ -->
	<xs:element name="drawTo">
		<xs:complexType>
			<xs:choice maxOccurs="unbounded" >
				<xs:element ref="Sk:add"/>
				<xs:element ref="Sk:apply"/>
				<xs:element ref="Sk:bitmap"/>
				<xs:element ref="Sk:bounds"/>
		<!--		<xs:element ref="Sk3D:camera"/>    -->
				<xs:element ref="Sk:clear"/>
				<xs:element ref="Sk:clip"/>
				<xs:element ref="Sk:color"/>
				<xs:element ref="Sk:full"/>
				<xs:element ref="Sk:group"/>
				<xs:element ref="Sk:image"/>
				<xs:element ref="Sk:line"/>
				<xs:element ref="Sk:matrix"/>
				<xs:element ref="Sk:move"/>
				<xs:element ref="Sk:oval"/>
				<xs:element ref="Sk:paint"/>
			<!--	<xs:element ref="Sk:patch"/>   -->
				<xs:element ref="Sk:path"/>
				<xs:element ref="Sk:point"/>
				<xs:element ref="Sk:polygon"/>
				<xs:element ref="Sk:polyline"/>
				<xs:element ref="Sk:rect"/>
				<xs:element ref="Sk:remove"/>
				<xs:element ref="Sk:replace"/>
				<xs:element ref="Sk:roundRect"/>
				<xs:element ref="Sk:save"/>
				<xs:element ref="Sk:text"/>
				<xs:element ref="Sk:textBox"/>
				<xs:element ref="Sk:textOnPath"/>
				<xs:element ref="Sk:textToPath"/>
			</xs:choice>
			<!-- @attribute drawOnce If set, the drawTo will only draw a single time. -->
			<xs:attribute name="drawOnce" type="Sk:Boolean"/>
			<!-- @attribute use The bitmap to draw into. -->
			<xs:attribute name="use" type="Sk:bitmap"/>
			<xs:attribute name="id" type="xs:ID"/>
		</xs:complexType>
	</xs:element>
	
	<!-- /** dump
		Dump prints a list of the items in the display list and all items' 
		children to the debug console. Dump is only available in Debug
		builds. */ -->
	<xs:element name="dump">	
		<xs:complexType>
			<!-- @attribute displayList Dumps the current display list if true. The display list is also
			dumped if dump has no attributes. -->
			<xs:attribute name="displayList" type="Sk:Boolean"/>
			<!-- @attribute eventList Dumps the list of events, both enabled and disabled. -->
			<xs:attribute name="eventList" type="Sk:Boolean"/>
			<!-- @attribute events Outputs each event element as it is enabled. -->
			<xs:attribute name="events" type="Sk:Boolean"/>
			<!-- @attribute groups Outputs each group element as its condition is evaluated. -->
			<xs:attribute name="groups" type="Sk:Boolean"/>
			<!-- @attribute name Outputs the values associated with a single named element. -->
			<xs:attribute name="name" type="Sk:String"/>
			<!-- @attribute posts Outputs each post element as it is enabled. -->
			<xs:attribute name="posts" type="Sk:Boolean"/>
            <!-- @attribute script Evaluates the provided script -->
            <xs:attribute name="script" type="Sk:String"/>
			<xs:attribute name="id" type="xs:ID"/>
		</xs:complexType>
	</xs:element>
	
	<!-- /** emboss
		PRELIMINARY [to be replaced with SkEmbossMaskFilter.h doxyfomation
		at some point]
		Emboss applies a mask filter to the paint that makes bias the object's color
		towards white or black depending on the normals of the path contour, giving
		the shape a 3D raised or depressed effect.
		Embossing is replaced by subsequent mask filter elements, or
		disabled a negative radius, or by an empty <mask filter> element.
	*/ -->
	<xs:element name="emboss">
		<xs:complexType>
			<!-- @attribute ambient The amount of ambient light, from 0 to 1. -->		
			<xs:attribute name="ambient" type="Sk:Float"/>
			<!--  @attribute direction The direction of the light source, as descibed by a 3D vector. 
				(The vector is normalized to a unit length of 1.0.) -->		
			<xs:attribute name="direction" type="Sk:FloatArray"/>
			<!-- @attribute radius The extent of the filter effect in unit space. If the radius is less 
				than zero,	the emboss has no effect. -->		
			<xs:attribute name="radius" type="Sk:Float"/>
			<!--  @attribute specular The expotential intensity of the light, from 0 to 1. 
				Each increase of 0.0625 doubles the intensity. -->		
			<xs:attribute name="specular" type="Sk:Float"/>
			<xs:attribute name="id" type="xs:ID"/>
		</xs:complexType>
	</xs:element>
	
	<!-- /** event
		Event contains a series of actions performed each time the event's criteria are satisfied.
		These actions may modify the display list, may enable animations which in turn modify 
		elements' attributes, and may post other events. 
	*/ -->
	<xs:element name="event">
		<xs:complexType>
			<xs:choice maxOccurs="unbounded" >
				<xs:element ref="Sk:add"/>
				<xs:element ref="Sk:apply"/>
				<xs:element ref="Sk:array"/>
				<xs:element ref="Sk:bitmap"/>
				<xs:element ref="Sk:boolean"/>
				<xs:element ref="Sk:bounds"/>
		<!--		<xs:element ref="Sk3D:camera"/>    -->
				<xs:element ref="Sk:clear"/>
				<xs:element ref="Sk:clip"/>
				<xs:element ref="Sk:color"/>
				<xs:element ref="Sk:drawTo"/>
				<xs:element ref="Sk:dump"/>
				<xs:element ref="Sk:float"/>
				<xs:element ref="Sk:full"/>
				<xs:element ref="Sk:group"/>
				<xs:element ref="Sk:hitClear"/>
				<xs:element ref="Sk:hitTest"/>
				<xs:element ref="Sk:image"/>
				<xs:element ref="Sk:input"/>
				<xs:element ref="Sk:int"/>
				<xs:element ref="Sk:line"/>
				<xs:element ref="Sk:matrix"/>
				<xs:element ref="Sk:move"/>
				<xs:element ref="Sk:movie"/>
				<xs:element ref="Sk:oval"/>
				<xs:element ref="Sk:paint"/>
			<!--	<xs:element ref="Sk:patch"/>   -->
				<xs:element ref="Sk:path"/>
				<xs:element ref="Sk:point"/>
				<xs:element ref="Sk:polygon"/>
				<xs:element ref="Sk:polyline"/>
				<xs:element ref="Sk:post"/>
				<xs:element ref="Sk:random"/>
				<xs:element ref="Sk:rect"/>
				<xs:element ref="Sk:remove"/>
				<xs:element ref="Sk:replace"/>
				<xs:element ref="Sk:roundRect"/>
				<xs:element ref="Sk:save"/>
				<xs:element ref="Sk:snapshot"/>
				<xs:element ref="Sk:string"/>
				<xs:element ref="Sk:text"/>
				<xs:element ref="Sk:textBox"/>
				<xs:element ref="Sk:textOnPath"/>
				<xs:element ref="Sk:textToPath"/>
			</xs:choice>
			<!-- @attribute code The key code to match to a key press event, one of @pattern. 
				If the code is set to @pattern[0], the event is never activated. -->		
			<xs:attribute name="code" type="Sk:EventCode"/>
			<!-- @attribute disable If true, the event cannot be activated. By default false.. -->		
			<xs:attribute name="disable" type="Sk:Boolean"/>
			<!-- @attribute key The character code to match to a key down event.
				 When read, the key that activated this event. -->		
			<xs:attribute name="key" type="Sk:String"/>
			<!-- @attribute keys A dash-separated continuous range of character codes to match 
				to a key	 down event. Read the key attribute to determine the key that activated this event. -->		
			<xs:attribute name="keys" type="Sk:String"/> <!-- single or range of keys -->
			<!-- @attribute kind The event kind that activates this event, one of @pattern. 
				If kind equals keyChar, either attribute key or keys is expected.
				If kind equals keyPress, attribute code is expected.
				If kind equals onEnd, attribute target is expected. 
				If kind equals onLoad, the event is activated when the document containing the event
				is loaded. The onLoad attribute cannot be activated through a post event.
				If kind equals user, the event is activated when the posted event targets this event's ID.  -->		
			<xs:attribute name="kind" type="Sk:EventKind"/>
			<!-- @attribute target The element to listen to which activates this event. -->
			<xs:attribute name="target" type="Sk:String" />
			<!-- @attribute x For click events, the x-coordinate of the click.  -->
			<xs:attribute name="x" type="Sk:Float" />
			<!-- @attribute y For click events, the y-coordinate of the click.  -->
			<xs:attribute name="y" type="Sk:Float" />
			<xs:attribute name="id" type="xs:ID"/>
		</xs:complexType>
	</xs:element>
	
	<!-- /** float
		Float contains a signed fractional value. The float element cannot be added to a display list, 
		but can be set by animations and read by any attribute definition.
	*/ -->
	<xs:element name="float">
		<xs:complexType>
			<!-- @attribute value The contained float. -->
			<xs:attribute name="value" type="Sk:Float"/>
			<xs:attribute name="id" type="xs:ID"/>
		</xs:complexType>
	</xs:element>

	<!-- /** fromPath
		FromPath concatenates the parent matrix with a new matrix 
		that maps a unit vector to a point on the given path. 
		A fromPath element may contain a path element, or may refer to a previously
		defined path element with the path attribute.
	*/ -->
	<xs:element name="fromPath">
		<xs:complexType>
			<xs:choice >
				<!-- @element path The path to evaluate. -->
				<xs:element ref="Sk:path" minOccurs="0" />
			</xs:choice>
			<!-- @attribute mode One of @pattern. 
			If mode is set to normal, the matrix maps the unit vector's angle and position.
			If mode is set to angle, the matrix maps only the unit vector's angle.
			If mode is set to position, the matrix maps only the unit vector's position. -->
			<xs:attribute name="mode" type="Sk:FromPathMode"/>
			<!-- @attribute offset The distance along the path to evaluate. -->
			<xs:attribute name="offset" type="Sk:Float"/>
			<!-- @attribute path The path to evaluate. -->
			<xs:attribute name="path" type="Sk:Path"/>
			<xs:attribute name="id" type="xs:ID"/>
		</xs:complexType>
	</xs:element>
	
	<!-- /** full
		Full paints the entire canvas to the limit of the canvas' clip.
	*/ -->
	<xs:element name="full">
		<xs:complexType>
			<xs:attribute name="id" type="xs:ID"/>
		</xs:complexType>
	</xs:element>
	
	<!-- /** group
		The group element collects a series of elements into a group.  The group can be referenced
		or defined within elements, like apply, which operate on any kind of element. Groups 
		may contain groups. An element in a group draws identically to an element outside a group.
	*/ -->
	<xs:element name="group">
		<xs:complexType>
			<xs:choice maxOccurs="unbounded">
				<xs:element ref="Sk:add"/>
				<xs:element ref="Sk:apply"/>
				<xs:element ref="Sk:array"/>
				<xs:element ref="Sk:bitmap"/>
				<xs:element ref="Sk:boolean"/>
				<xs:element ref="Sk:bounds"/>
		<!--		<xs:element ref="Sk3D:camera"/>    -->
				<xs:element ref="Sk:clear"/>
				<xs:element ref="Sk:clip"/>
				<xs:element ref="Sk:drawTo"/>
				<xs:element ref="Sk:float"/>
				<xs:element ref="Sk:full"/>
				<xs:element ref="Sk:group"/>
				<xs:element ref="Sk:hitClear"/>
				<xs:element ref="Sk:hitTest"/>
				<xs:element ref="Sk:image"/>
				<xs:element ref="Sk:int"/>
				<xs:element ref="Sk:line"/>
				<xs:element ref="Sk:matrix"/>
				<xs:element ref="Sk:move"/>
				<xs:element ref="Sk:oval"/>
				<xs:element ref="Sk:paint"/>
			<!--	<xs:element ref="Sk:patch"/>   -->
				<xs:element ref="Sk:path"/>
				<xs:element ref="Sk:point"/>
				<xs:element ref="Sk:polygon"/>
				<xs:element ref="Sk:polyline"/>
				<xs:element ref="Sk:post"/>
				<xs:element ref="Sk:random"/>
				<xs:element ref="Sk:rect"/>
				<xs:element ref="Sk:remove"/>
				<xs:element ref="Sk:replace"/>
				<xs:element ref="Sk:roundRect"/>
				<xs:element ref="Sk:save"/>
				<xs:element ref="Sk:snapshot"/>
				<xs:element ref="Sk:string"/>
				<xs:element ref="Sk:text"/>
				<xs:element ref="Sk:textBox"/>
				<xs:element ref="Sk:textOnPath"/>
				<xs:element ref="Sk:textToPath"/>
			</xs:choice>
			<!-- @attribute condition If present and zero, the contained elements are ignored
				when drawn. -->
			<xs:attribute name="condition" type="Sk:DynamicString"/>
			<!-- @attribute enableCondition If present and zero, the contained elements are ignored
				when enabled. -->
			<xs:attribute name="enableCondition" type="Sk:DynamicString"/>
			<xs:attribute name="id" type="xs:ID"/>
		</xs:complexType>
	</xs:element>
	
	<xs:element name="hitClear" >
		<xs:complexType>
			<xs:choice maxOccurs="1">
				<xs:element ref="Sk:array"/>
			</xs:choice>
			<!-- @attribute targets An array of element IDs to clear their hit-tested state. -->
			<xs:attribute name="targets" type="Sk:DisplayableArray"/>
			<xs:attribute name="id" type="xs:ID"/>
		</xs:complexType>
	</xs:element>
	
	<xs:element name="hitTest" >
		<xs:complexType>
			<xs:choice maxOccurs="2">
				<xs:element ref="Sk:array"/>
			</xs:choice>
			<!-- @attribute bullets An array of element IDs to test for intersection with targets. -->
			<xs:attribute name="bullets" type="Sk:DisplayableArray"/>
			<!-- @attribute hits The targets the bullets hit. A read-only array of indices, one index
				per bullet. The value of the array element is the index of the target hit, or -1 if no
				target was hit. -->
			<xs:attribute name="hits" type="Sk:IntArray"/>
			<!-- @attribute targets An array of element IDs to test for intersection with bullets. -->
			<xs:attribute name="targets" type="Sk:DisplayableArray"/>
			<!-- @attribute value Read only; set to true if some bullet hit some target. -->
			<xs:attribute name="value" type="Sk:Boolean"/>
			<xs:attribute name="id" type="xs:ID"/>
		</xs:complexType>
	</xs:element>
	
	<!-- /** image
		Image creates a reference to a JPEG, PNG or GIF. The image may be referenced
		through the local file system, the internet, or embedded in the document in Base64
		format. The specific image type is determined by examining the byte stream.  
	*/ -->
	<xs:element name="image">
		<xs:complexType>
			<!-- @attribute base64 The image in Base64 notation. See http://rfc.net/rfc2045.html 
			for the base64 format. -->
			<xs:attribute name="base64" type="Sk:Base64"/>
			<!-- @attribute height The height of the image (read-only). -->
			<xs:attribute name="height" type="Sk:Int"/>
			<!-- @attribute src The URI reference, local to the contaiing document. -->
			<xs:attribute name="src" type="Sk:String"/>
			<!-- @attribute width The width of the image (read-only). -->
			<xs:attribute name="width" type="Sk:Int"/>
			<!-- @attribute x The position of the left edge of the image in local coordinates. -->
			<xs:attribute name="x" type="Sk:Float"/>
			<!-- @attribute y The position of the top edge of the image in local coordinates. -->
			<xs:attribute name="y" type="Sk:Float"/>
			<xs:attribute name="id" type="xs:ID"/>
		</xs:complexType>
	</xs:element>
	
	<!-- /** include
		Include adds the referenced XML to the containing document. Unlike movie, the XML
		directives can reference the document's IDs and can define new IDs that are referenced
		by the remainder of the document or subsequent includes.  
	*/ -->
	<xs:element name="include">
		<xs:complexType>
			<!-- @attribute src The URI reference, local to the containing document, 
			containing the include's XML. -->
			<xs:attribute name="src" type="Sk:String"/>
			<xs:attribute name="id" type="xs:ID"/>
		</xs:complexType>
	</xs:element>
	
	<!-- /** input
		Input captures the metadata passed from an event. When the metadata's name or id 
		matches the metadata's name, the metadata's payload is copied to the corresponding
		input attribute.
	*/ -->
	<xs:element name="input">
		<xs:complexType>
			<!-- @attribute float The floating point payload carried by the metadata. -->
			<xs:attribute name="float" type="Sk:Float"/>
			<!-- @attribute initialized A read-only value set to true if the input received a value 
				from the event. -->
			<xs:attribute name="initialized" type="Sk:Boolean"/>
			<!-- @attribute int The signed integer payload carried by the metadata. -->
			<xs:attribute name="int" type="Sk:Int"/>
			<!-- @attribute name The name of the metadata containing the payload. Note that 
				the name or id may match the payload, but that XML requires the id to be
				uniquely defined in the document, while multiple input elements may reuse 
				the name. -->
			<xs:attribute name="name" type="Sk:String"/>
			<!-- @attribute string The text payload carried by the metadata. -->
			<xs:attribute name="string" type="Sk:String"/>
			<xs:attribute name="id" type="xs:ID"/>
		</xs:complexType>
	</xs:element>
	
	<!-- /** int
		Int contains an integer. The int element cannot be added to a display list, but can
		by set by animations and read by any attribute definition. An int element may be used,
		for instance, to index through an array element.
	*/ -->
	<xs:element name="int">
		<xs:complexType>
			<!-- @attribute value The contained integer. -->
			<xs:attribute name="value" type="Sk:Int"/>
			<xs:attribute name="id" type="xs:ID"/>
		</xs:complexType>
	</xs:element>

	<!-- /** line
		Line describes a line between two points. As noted below, the paint's stroke and
		strokeAndFill attributes are ignored.
	*/ -->
	<xs:element name="line">
		<xs:complexType>
			<!-- @attribute x1 The start point's x value. -->
			<xs:attribute name="x1" type="Sk:Float"/>
			<!-- @attribute x2 The stop point's x value. -->
			<xs:attribute name="x2" type="Sk:Float"/>
			<!-- @attribute y1 The start point's y value. -->
			<xs:attribute name="y1" type="Sk:Float"/>
			<!-- @attribute y2 The stop point's y value. -->
			<xs:attribute name="y2" type="Sk:Float"/>
			<xs:attribute name="id" type="xs:ID"/>
		</xs:complexType>
	</xs:element>
	
	<!-- /** lineTo
		LineTo adds a line from the last point in a path to the specified point. 
	*/ -->
	<xs:element name="lineTo">
		<xs:complexType>
			<!-- @attribute x The final path x coordinate. -->
			<xs:attribute name="x" type="Sk:Float"/>
			<!-- @attribute y The final path y coordinate. -->
			<xs:attribute name="y" type="Sk:Float"/>
			<xs:attribute name="id" type="xs:ID"/>
		</xs:complexType>
	</xs:element>
	
	<!-- /** linearGradient
		LinearGradient sets the paint shader to ramp between two or more colors. 
	*/ -->
	<xs:element name="linearGradient">
		<xs:complexType>
			<xs:choice maxOccurs="unbounded">
				<xs:element ref="Sk:color"/>
				<xs:element ref="Sk:matrix"/>
			</xs:choice>
			<!-- @attribute matrix Matrix applies a 3x3 transform to the gradient. -->
			<xs:attribute name="matrix" type="Sk:Matrix"/>
			<!-- @attribute tileMode One of @pattern. @patternDescription -->
			<xs:attribute name="tileMode" type="Sk:TileMode"/>
			<!-- @attribute offsets An optional array of values used to bias the colors. The first entry
				in the array must be 0.0, the last must be 1.0, and intermediate values must ascend. -->
			<xs:attribute name="offsets" type="Sk:FloatArray"/>
			<!-- @attribute points Two points describing the start and end of the gradient. -->
			<xs:attribute name="points" type="Sk:Point"/>	<!-- not right; should be array of 2 points -->
			<!-- @attribute unitMapper A script that returns the mapping for [0,1] for the gradient.
				The script can use the predefined variable 'unit' to compute the mapping. For instance,
				"unit*unit" squares the value (while still keeping it in the range of [0,1].) The computed number
				is pinned to from 0 to 1 after the script is executed. -->
			<xs:attribute name="unitMapper" type="Sk:String"/>
			<xs:attribute name="id" type="xs:ID"/>
		</xs:complexType>
	</xs:element>
	
	<!-- /** maskFilter
		MaskFilter disables any mask filter referenced by the paint. 
	*/ -->
	<xs:element name="maskFilter">
		<xs:complexType>
			<xs:attribute name="id" type="xs:ID"/>
		</xs:complexType>
	</xs:element>
	
	<!-- /** matrix
		Matrix transforms all points drawn to the canvas. The matrix may translate, scale, skew, rotate,
		or apply perspective, or apply any combination.  
	*/ -->
	<xs:element name="matrix">
		<xs:complexType>
			<xs:choice maxOccurs="unbounded">
			<!-- @element fromPath FromPath maps a unit vector to a position and direction on a path. -->
				<xs:element ref="Sk:fromPath"/>
			<!-- @element polyToPoly PolyToPoly maps a points between two polygons. -->
				<xs:element ref="Sk:polyToPoly"/>
			<!-- @element rectToRect RectToRect maps a points between two rectangles. -->
				<xs:element ref="Sk:rectToRect"/>
			<!-- @element rotate Rotate computes the matrix rotation in degrees. -->
				<xs:element ref="Sk:rotate"/>
			<!-- @element scale Scale stretches or shrinks horizontally, vertically, or both. -->
				<xs:element ref="Sk:scale"/>
			<!-- @element skew Skew slants horizontally, vertically, or both. -->
				<xs:element ref="Sk:skew"/>
			<!-- @element translate Translate moves horizontally, vertically, or both. -->
				<xs:element ref="Sk:translate"/>
			</xs:choice>
			<!-- @attribute matrix Nine floats describing a 3x3 matrix. -->
			<xs:attribute name="matrix" type="Sk:FloatArray"/>
			<!-- @attribute perspectX The [0][2] element of the 3x3 matrix. -->
			<xs:attribute name="perspectX" type="Sk:Float"/>
			<!-- @attribute perspectY The [1][2] element of the 3x3 matrix. -->
			<xs:attribute name="perspectY" type="Sk:Float"/>
			<!-- @attribute rotate The angle to rotate in degrees. -->
			<xs:attribute name="rotate" type="Sk:Float"/>
			<!-- @attribute scale The scale to apply in both X and Y.. -->
			<xs:attribute name="scale" type="Sk:Float"/>
			<!-- @attribute scaleX The [0][0] element of the 3x3 matrix. -->
			<xs:attribute name="scaleX" type="Sk:Float"/>
			<!-- @attribute scaleY The [1][1] element of the 3x3 matrix. -->
			<xs:attribute name="scaleY" type="Sk:Float"/>
			<!-- @attribute skewX The [0][1] element of the 3x3 matrix. -->
			<xs:attribute name="skewX" type="Sk:Float"/>
			<!-- @attribute skewY The [1][0] element of the 3x3 matrix. -->
			<xs:attribute name="skewY" type="Sk:Float"/>
			<!-- @attribute translate A point specifying the translation in X and Y. -->
			<xs:attribute name="translate" type="Sk:Point"/>
			<!-- @attribute translateX The [2][0] element of the 3x3 matrix. -->
			<xs:attribute name="translateX" type="Sk:Float"/>
			<!-- @attribute translateY The [2][1] element of the 3x3 matrix. -->
			<xs:attribute name="translateY" type="Sk:Float"/>
			<xs:attribute name="id" type="xs:ID"/>
		</xs:complexType>
	</xs:element>
	
	<!-- /** move
		Move an element in the display list in front or behind other elements.  
		If where and offset are omitted, the element is moved to the end of the display list.
		If where is specified, the element is moved before the first occurance of where in the display list.
		If offset and where are specified, the element is moved before where plus offset.
		A positive offset without where moves the element to the start of the list plus offset.
		A negative offset without where moves the element to the end of the list minus offset.
	*/ -->
	<xs:element name="move">
		<xs:complexType>
			<!-- @attribute mode Has no effect. -->
			<xs:attribute name="mode" type="Sk:AddMode"/>
			<!-- @attribute offset The destination position using the rules listed above. -->
			<xs:attribute name="offset" type="Sk:Int"/>
			<!-- @attribute use The element to move. -->
			<xs:attribute name="use" type="Sk:Drawable"/>
			<!-- @attribute where The ID of the first display list entry to move to. -->
			<xs:attribute name="where" type="Sk:Drawable"/>
			<xs:attribute name="id" type="xs:ID"/>
		</xs:complexType>
	</xs:element>
	
	<!-- /** moveTo
		MoveTo specifies the first point in a path contour.
	*/ -->
	<xs:element name="moveTo">
		<xs:complexType>
			<!-- @attribute x The point's x coordinate. -->
			<xs:attribute name="x" type="Sk:Float"/>
			<!-- @attribute y The point's y coordinate. -->
			<xs:attribute name="y" type="Sk:Float"/>
			<xs:attribute name="id" type="xs:ID"/>
		</xs:complexType>
	</xs:element>
	
	<!-- /** movie
		Movie describes a display list within the current canvas and paint. Movies can contain 
		movies. One movie cannot affect how another movie draws, but movies can communicate
		with each other by posting events.
	*/ -->
	<xs:element name="movie">
		<xs:complexType>
			<!-- @attribute src The URI reference, local to the containing document, containing the movie's XML. -->
			<xs:attribute name="src" type="Sk:String"/>
			<xs:attribute name="id" type="xs:ID"/>
		</xs:complexType>
	</xs:element>
	
	<!-- /** oval
		Oval describes a circle stretched to fit in a rectangle.
		The width and height attribute compute the oval's right and bottom edges when the oval
		description is first seen. Animating the oval's left or top will not recompute the right or bottom
		if the width or height have been specified.
	*/ -->
	<xs:element name="oval">
		<xs:complexType>
			<!-- @attribute bottom The bottom edge of the oval. -->
			<xs:attribute name="bottom" type="Sk:Float"/>
			<!-- @attribute height The height of the oval. -->
			<xs:attribute name="height" type="Sk:Float"/>
			<!-- @attribute left The left edge of the oval. -->
			<xs:attribute name="left" type="Sk:Float"/>
			<!-- @attribute needsRedraw Set to true if last draw was visible. -->
			<xs:attribute name="needsRedraw" type="Sk:Boolean"/>
			<!-- @attribute right The right edge of the oval. -->
			<xs:attribute name="right" type="Sk:Float"/>
			<!-- @attribute top The top edge of the oval. -->
			<xs:attribute name="top" type="Sk:Float"/>
			<!-- @attribute width The width of the oval. -->
			<xs:attribute name="width" type="Sk:Float"/>
			<xs:attribute name="id" type="xs:ID"/>
		</xs:complexType>
	</xs:element>
	
	<!-- /** paint
		Paint uses color, flags, path effects, mask filters, shaders, and stroke effects when drawing 
		geometries, images, and text.
	*/ -->
	<xs:element name="paint">
		<xs:complexType>
			<xs:choice maxOccurs="unbounded">
			<!-- @element bitmapShader Sets or cancels an image to draw as the color. -->
				<xs:element ref="Sk:bitmapShader"/>
			<!-- @element blur Blur radially draws the shape with varying transparency. -->
				<xs:element ref="Sk:blur"/>
			<!-- @element color Color specifies a solid color in RGB or HSV. -->
				<xs:element ref="Sk:color"/>
			<!-- @element dash Dashes alternates stroking with dashes and gaps. -->
				<xs:element ref="Sk:dash"/>
			<!-- @element discrete Discrete wobbles the geometry randomly. -->
				<xs:element ref="Sk:discrete"/>
			<!-- @element emboss Emboss simulates a 3D light to show highlights and relief. -->
				<xs:element ref="Sk:emboss"/>
			<!-- @element linearGradient LinearGradient linearly ramps between two or more colors. -->
				<xs:element ref="Sk:linearGradient"/>
			<!-- @element maskFilter MaskFilter cancels a blur or emboss. -->
				<xs:element ref="Sk:maskFilter"/>
			<!-- @element  pathEffect PathEffect cancels a discrete or dash. -->
				<xs:element ref="Sk:pathEffect"/>
			<!-- @element radialGradient RadialGradient radially ramps between two or more colors. -->
				<xs:element ref="Sk:radialGradient"/>
			<!-- @element shader Shader cancels a linear or radial gradient. -->
				<xs:element ref="Sk:shader"/>
			<!-- @element typeface Typeface chooses a font out of a font family. -->
				<xs:element ref="Sk:typeface"/>
			<!-- @element transparentShader  TransparentShader ? [not sure what this is for] -->
				<xs:element ref="Sk:transparentShader"/>
			</xs:choice>
			<!-- @attribute antiAlias AntiAlias uses gray shades to increase the definition of paths. -->
			<xs:attribute name="antiAlias" type="Sk:Boolean"/>
			<!-- @attribute ascent Ascent returns the height above the baseline defined by the font. -->
			<xs:attribute name="ascent" type="Sk:Float"/>
			<!-- @attribute color Color sets the paint to the color element with this ID. -->
			<xs:attribute name="color" type="Sk:Color"/>
			<!-- @attribute descent Descent returns the height below the baseline defined by thte font -->
			<xs:attribute name="descent" type="Sk:Float"/>
			<!-- @attribute fakeBold FakeBold enables a faked bold for text. -->
			<xs:attribute name="fakeBold" type="Sk:Boolean"/>
			<!-- @attribute filterType FilterType -->
			<xs:attribute name="filterType" type="Sk:FilterType"/>
			<!-- @attribute linearText LinearText uses the ideal path metrics at all sizes to describe text. -->
			<xs:attribute name="linearText" type="Sk:Boolean"/>
			<!-- @attribute maskFilter MaskFilter specifies a blur or emboss with this ID. -->
			<xs:attribute name="maskFilter" type="Sk:MaskFilter"/>
			<!-- @attribute measureText MeasureText(String) returns the width of the string in this paint. -->
			<xs:attribute name="measureText" type="Sk:Float"/>
			<!-- @attribute pathEffect PathEffect specifies a discrete or dash with this ID. -->
			<xs:attribute name="pathEffect" type="Sk:PathEffect"/>
			<!-- @attribute shader Shader specifies a gradient with this ID. -->
			<xs:attribute name="shader" type="Sk:Shader"/>
			<!-- @attribute strikeThru StrikeThru adds a line through the middle of drawn text. -->
			<xs:attribute name="strikeThru" type="Sk:Boolean"/>
			<!-- @attribute stroke Stroke draws the outline of geometry according to the pen attributes. 
				If style is also present, its setting overrides stroke. -->
			<xs:attribute name="stroke" type="Sk:Boolean"/>
			<!-- @attribute strokeCap StrokeCap is one of @pattern. -->
			<xs:attribute name="strokeCap" type="Sk:Cap"/>
			<!-- @attribute strokeJoin StrokeJoin is one of @pattern. -->
			<xs:attribute name="strokeJoin" type="Sk:Join"/>
			<!-- @attribute strokeMiter StrokeMiter limits the pen's joins on narrow angles. -->
			<xs:attribute name="strokeMiter" type="Sk:Float"/>
			<!-- @attribute strokeWidth StrokeWidth specifies the width of the pen. -->
			<xs:attribute name="strokeWidth" type="Sk:Float"/>
			<!-- @attribute style Style fills, strokes, or strokes and fills the geometry with the paint's color. -->
			<xs:attribute name="style" type="Sk:Style"/>
			<!-- @attribute textAlign TextAlign is one of @pattern. -->
			<xs:attribute name="textAlign" type="Sk:Align"/>
			<!-- @attribute textScaleX TextScaleX condenses or exapnds the text. -->
			<xs:attribute name="textScaleX" type="Sk:Float"/>
			<!-- @attribute textSize TextSize specifies the point size of the text. -->
			<xs:attribute name="textSize" type="Sk:Float"/>
			<!-- @attribute textSkewX TextSkewX draws the text obliquely. -->
			<xs:attribute name="textSkewX" type="Sk:Float"/>
			<!-- @attribute textTracking TextTracking specifies the space between letters. -->
			<xs:attribute name="textTracking" type="Sk:Float"/>
			<!-- @attribute typeface Typeface specifies a typeface element with this ID. -->
			<xs:attribute name="typeface" type="Sk:Typeface"/>
			<!-- @attribute underline Underline draws a line under the baseline of the text. -->
			<xs:attribute name="underline" type="Sk:Boolean"/>
			<!-- @attribute xfermode Xfermode specifies a transfer mode, one of @pattern. -->
			<xs:attribute name="xfermode" type="Sk:Xfermode"/>
			<xs:attribute name="id" type="xs:ID"/>
		</xs:complexType>
	</xs:element>
	
	<!-- /** path
		Path creates a geometry out of lines and curves.
	*/ -->
	<xs:element name="path">
		<xs:complexType>
			<xs:choice maxOccurs="unbounded">
			<!-- @element addCircle Adds a circle to the path. -->
				<xs:element ref="Sk:addCircle"/>
			<!-- @element addOval Adds an oval to the path. -->
				<xs:element ref="Sk:addOval"/>
			<!-- @element addPath Adds another path to the path. -->
				<xs:element ref="Sk:addPath"/>
			<!-- @element addRoundRect Adds a rounded-corner rectangle  to the path. -->
				<xs:element ref="Sk:addRoundRect"/>
			<!-- @element close Connects the last point on the path to the first. -->
				<xs:element ref="Sk:close"/>
			<!-- @element cubicTo Extends the path with a cubic curve. -->
				<xs:element ref="Sk:cubicTo"/>
			<!-- @element lineTo Extends the path with a line. -->
				<xs:element ref="Sk:lineTo"/>
			<!-- @element moveTo Starts a new path contour. -->
				<xs:element ref="Sk:moveTo"/>
			<!-- @element quadTo Extends the path with a quadratic curve. -->
				<xs:element ref="Sk:quadTo"/>
			<!-- @element rCubicTo Extends the path with a cubic curve expressed with relative offsets. -->
				<xs:element ref="Sk:rCubicTo"/>
			<!-- @element rLineTo Extends the path with a line expressed with relative offsets. -->
				<xs:element ref="Sk:rLineTo"/>
			<!-- @element rMoveTo Starts a new path contour relative to the path's last point. -->
				<xs:element ref="Sk:rMoveTo"/>
			<!-- @element rQuadTo Extends the path with a quadratic curve expressed with relative offsets. -->
				<xs:element ref="Sk:rQuadTo"/>
			</xs:choice>
			<!-- @attribute d Creates a path using SVG path notation. -->
			<xs:attribute name="d" type="Sk:String"/>
			<!-- @attribute fillType One of @pattern. -->
			<xs:attribute name="fillType" type="Sk:FillType"/>
			<!-- @attribute length Returns the length of the path. -->
			<xs:attribute name="length" type="Sk:Float"/>
			<xs:attribute name="id" type="xs:ID"/>
		</xs:complexType>
	</xs:element>
	
	<!-- /** pathEffect
		PathEffect cancels any current path effect within the paint, such as dashing or discrete.
	*/ -->
	<xs:element name="pathEffect">
		<xs:complexType>
			<xs:attribute name="id" type="xs:ID"/>
		</xs:complexType>
	</xs:element>
		
	<!-- /** point
		Point describes a two dimensional point in space. The point element can be added
		to the display list and drawn.
	*/ -->
	<xs:element name="point">
		<xs:complexType>
			<!-- @attribute x The x coordinate of the point. -->
			<xs:attribute name="x" type="Sk:Float"/>
			<!-- @attribute y The y coordinate of the point. -->
			<xs:attribute name="y" type="Sk:Float"/>
			<xs:attribute name="id" type="xs:ID"/>
		</xs:complexType>
	</xs:element>
	
	<!-- /** polygon
		Polygon creates a geometry out of lines. Polygon is a specialization of path; element that 
		refers to a path can refer to a polygon also. A polygon specified through elements behaves identically
		to a path. A polygon specified by the points attribute contains a single contour, and the contour is 
		automatically closed.
	*/ -->
	<xs:element name="polygon">
		<xs:complexType>
			<xs:choice maxOccurs="unbounded">
			<!-- @element close Connects the last point on the path to the first. -->
				<xs:element ref="Sk:close"/>
			<!-- @element addPath Adds another path to the path. -->
				<xs:element ref="Sk:addPath"/>
			<!-- @element lineTo Extends the path with a line. -->
				<xs:element ref="Sk:lineTo"/>
			<!-- @element moveTo Starts a new path contour. -->
				<xs:element ref="Sk:moveTo"/>
			<!-- @element rLineTo Extends the path with a line expressed with relative offsets. -->
				<xs:element ref="Sk:rLineTo"/>
			<!-- @element rMoveTo Starts a new path contour relative to the path's last point. -->
				<xs:element ref="Sk:rMoveTo"/>
			</xs:choice>
			<!-- @attribute points An array of values that describe a sequence of points, compatible with SVG. -->
			<xs:attribute name="points" type="Sk:FloatArray"/>
			<xs:attribute name="id" type="xs:ID"/>
		</xs:complexType>
	</xs:element>
	
	<!-- /** polyline
		Polyline creates a geometry out of lines. Polygon is a specialization of path; element that 
		refers to a path can refer to a polygon also. A polygon specified through elements behaves identically
		to a path. A polygon specified by the points attribute contains a single contour, and the contour is 
		not automatically closed.
	*/ -->
	<xs:element name="polyline">
		<xs:complexType>
			<xs:choice maxOccurs="unbounded">
			<!-- @element close Connects the last point on the path to the first. -->
				<xs:element ref="Sk:close"/>
			<!-- @element addPath Adds another path to the path. -->
				<xs:element ref="Sk:addPath"/>
			<!-- @element lineTo Extends the path with a line. -->
				<xs:element ref="Sk:lineTo"/>
			<!-- @element moveTo Starts a new path contour. -->
				<xs:element ref="Sk:moveTo"/>
			<!-- @element rLineTo Extends the path with a line expressed with relative offsets. -->
				<xs:element ref="Sk:rLineTo"/>
			<!-- @element rMoveTo Starts a new path contour relative to the path's last point. -->
				<xs:element ref="Sk:rMoveTo"/>
			</xs:choice>
			<!-- @attribute points An array of values that describe a sequence of points, compatible with SVG. -->
			<xs:attribute name="points" type="Sk:FloatArray"/>
			<xs:attribute name="id" type="xs:ID"/>
		</xs:complexType>
	</xs:element>
	
	<!-- /** polyToPoly
		PolyToPoly creates a matrix which maps points proportionally from one polygon to the other.
	*/ -->
	<xs:element name="polyToPoly">
		<xs:complexType>
			<xs:choice maxOccurs="2">
				<xs:element ref="Sk:polygon"/>
			</xs:choice>
			<!-- @attribute source The polygon to map from.. -->
			<xs:attribute name="source" type="Sk:polygon"/>
			<!-- @attribute destination The polygon to map to.. -->
			<xs:attribute name="destination" type="Sk:polygon"/>
			<xs:attribute name="id" type="xs:ID"/>
		</xs:complexType>
	</xs:element>
	
	<!-- /** post
		Post activates an event. The event can trigger one or more actions, and can carry a data payload.
	*/ -->
	<xs:element name="post">
		<xs:complexType>
			<xs:choice maxOccurs="unbounded">
				<xs:element ref="Sk:data"/>
			</xs:choice>
			<!-- @attribute delay Time in seconds that must elapse before the target event is activated. -->
			<xs:attribute name="delay" type="Sk:MSec"/>
			<!-- @attribute mode One of @pattern. @patternDescription -->
			<xs:attribute name="mode" type="Sk:EventMode"/>
			<!-- @attribute sink The optional named EventSink to direct the event to. -->
			<xs:attribute name="sink" type="Sk:String"/>
			<!-- @attribute target The ID of the user event to trigger. -->
			<xs:attribute name="target" type="Sk:String"/>
			<!-- @attribute type The name of the external event to post. -->
			<xs:attribute name="type" type="Sk:String"/>
			<xs:attribute name="id" type="xs:ID"/>
		</xs:complexType>
	</xs:element>

	<!-- /** quadTo
		QuadTo adds a quadratic curve to a path.
	*/ -->
	<xs:element name="quadTo">
		<xs:complexType>
			<!-- @attribute x1 The x position of the off-curve point. -->
			<xs:attribute name="x1" type="Sk:Float"/>
			<!-- @attribute x2 The x position of the final point. -->
			<xs:attribute name="x2" type="Sk:Float"/>
			<!-- @attribute y1 The y position of the off-curve point. -->
			<xs:attribute name="y1" type="Sk:Float"/>
			<!-- @attribute y2 The y position of the final point. -->
			<xs:attribute name="y2" type="Sk:Float"/>
			<xs:attribute name="id" type="xs:ID"/>
		</xs:complexType>
	</xs:element>
	
	<!-- /** rCubicTo
		RCubicTo adds a cubic to the path, using the last point in the path as the first point of the cubic.  THe
		added points are offsets from the last point in the path.
	*/ -->
	<xs:element name="rCubicTo">
		<xs:complexType>
			<!-- @attribute x1 The x offset of the first off-curve point. -->
			<xs:attribute name="x1" type="Sk:Float"/>
			<!-- @attribute x2 The x offset of the second off-curve point. -->
			<xs:attribute name="x2" type="Sk:Float"/>
			<!-- @attribute x3 The x offset of the final on-curve point. -->
			<xs:attribute name="x3" type="Sk:Float"/>
			<!-- @attribute y1 The y offset of the first off-curve point. -->
			<xs:attribute name="y1" type="Sk:Float"/>
			<!-- @attribute y2 The y offset of the second off-curve point. -->
			<xs:attribute name="y2" type="Sk:Float"/>
			<!-- @attribute y3 The y offset of the final on-curve point. -->
			<xs:attribute name="y3" type="Sk:Float"/>
			<xs:attribute name="id" type="xs:ID"/>
		</xs:complexType>
	</xs:element>
	
	<!-- /** rLineTo
		RLineTo adds a line from the last point in a path to the specified point. The specified
		point is relative to the last point in the path.
	*/ -->
	<xs:element name="rLineTo">
		<xs:complexType>
			<!-- @attribute x The final path x coordinate. -->
			<xs:attribute name="x" type="Sk:Float"/>
			<!-- @attribute y The final path y coordinate. -->
			<xs:attribute name="y" type="Sk:Float"/>
			<xs:attribute name="id" type="xs:ID"/>
		</xs:complexType>
	</xs:element>
	
	<!-- /** rMoveTo
		RMoveTo specifies the first point in a path contour. The specified
		point is relative to the last point in the path.
	*/ -->
	<xs:element name="rMoveTo">
		<xs:complexType>
			<!-- @attribute x The point's x coordinate. -->
			<xs:attribute name="x" type="Sk:Float"/>
			<!-- @attribute y The point's y coordinate. -->
			<xs:attribute name="y" type="Sk:Float"/>
			<xs:attribute name="id" type="xs:ID"/>
		</xs:complexType>
	</xs:element>
		
	<!-- /** rQuadTo
		RQuadTo adds a quadratic curve to a path. The quadratic 
		points are relative to the last point in the path.
	*/ -->
	<xs:element name="rQuadTo">
		<xs:complexType>
			<!-- @attribute x1 The x position of the off-curve point. -->
			<xs:attribute name="x1" type="Sk:Float"/>
			<!-- @attribute x2 The x position of the final point. -->
			<xs:attribute name="x2" type="Sk:Float"/>
			<!-- @attribute y1 The y position of the off-curve point. -->
			<xs:attribute name="y1" type="Sk:Float"/>
			<!-- @attribute y2 The y position of the final point. -->
			<xs:attribute name="y2" type="Sk:Float"/>
			<xs:attribute name="id" type="xs:ID"/>
		</xs:complexType>
	</xs:element>
		
	<!-- /** radialGradient
		RadialGradient sets the paint shader to ramp between two or more colors in concentric circles. 
	*/ -->
	<xs:element name="radialGradient">
		<xs:complexType>
			<xs:choice maxOccurs="unbounded">
				<xs:element ref="Sk:color"/>
				<xs:element ref="Sk:matrix"/>
			</xs:choice>
			<!-- @attribute matrix Matrix applies a 3x3 transform to the gradient. -->
			<xs:attribute name="matrix" type="Sk:Matrix"/>
			<!-- @attribute tileMode One of @pattern. @patternDescription -->
			<xs:attribute name="tileMode" type="Sk:TileMode"/>
			<!-- @attribute center The center point of the radial gradient. -->
			<xs:attribute name="center" type="Sk:Point"/>
			<!-- @attribute offsets An optional array of values used to bias the colors. The first entry
				in the array must be 0.0, the last must be 1.0, and intermediate values must ascend. -->
			<xs:attribute name="offsets" type="Sk:FloatArray"/>
			<!-- @attribute radius The distance from the first color to the last color. -->
			<xs:attribute name="radius" type="Sk:Float"/>
			<!-- @attribute unitMapper A script that returns the mapping for [0,1] for the gradient.
				The script can use the predefined variable 'unit' to compute the mapping. For instance,
				"unit*unit" squares the value (while still keeping it in the range of [0,1].) The computed number
				is pinned to from 0 to 1 after the script is executed. -->
			<xs:attribute name="unitMapper" type="Sk:String"/>
			<xs:attribute name="id" type="xs:ID"/>
		</xs:complexType>
	</xs:element>
	
	<!-- /** random
		Random generates a random number, from min to max. Each time the random attribute is
		read, a new random number is generated.
	*/ -->
	<xs:element name="random">
		<xs:complexType>
			<!-- @attribute blend The random bias from 0.0 to 1.0.
			 0.0 biias the number towards the start and end of the range.
			 1.0 (the default) generates a linear distribution.-->
			<xs:attribute name="blend" type="Sk:Float"/>
			<!-- @attribute max The largest value to generate. -->
			<xs:attribute name="max" type="Sk:Float"/>
			<!-- @attribute min The smallest value to generate. -->
			<xs:attribute name="min" type="Sk:Float"/>
			<!-- @attribute random The generated value. -->
			<xs:attribute name="random" type="Sk:Float"/>
			<!-- @attribute seed The random seed. Identical seeds generate the same series of 
			numbers. -->
			<xs:attribute name="seed" type="Sk:Int"/>
			<xs:attribute name="id" type="xs:ID"/>
		</xs:complexType>
	</xs:element>

	<!-- /** rect
		Rect describes a bounding box.
		The width and height attribute compute the rectangle's right and bottom edges when the rectangle
		description is first seen. Animating the rectangle's left or top will not recompute the right or bottom
		if the width or height have been specified.
	*/ -->
	<xs:element name="rect">
		<xs:complexType>
			<!-- @attribute bottom The bottom edge of the rectangle. -->
			<xs:attribute name="bottom" type="Sk:Float"/>
			<!-- @attribute height The height of the rectangle. Setting height computes the 
				bottom attribute from the top attribute. -->
			<xs:attribute name="height" type="Sk:Float"/>
			<!-- @attribute left The left edge of the rectangle. -->
			<xs:attribute name="left" type="Sk:Float"/>
			<!-- @attribute needsRedraw Set to true if last draw was visible. -->
			<xs:attribute name="needsRedraw" type="Sk:Boolean"/>
			<!-- @attribute right The right edge of the rectangle. -->
			<xs:attribute name="right" type="Sk:Float"/>
			<!-- @attribute top The top edge of the rectangle. -->
			<xs:attribute name="top" type="Sk:Float"/>
			<!-- @attribute width The width of the rectangle. -->
			<xs:attribute name="width" type="Sk:Float"/>
			<xs:attribute name="id" type="xs:ID"/>
		</xs:complexType>
	</xs:element>
	
	<!-- /** rectToRect
		RectToRect adds a matrix to map one rectangle's coordinates to another.
	*/ -->
	<xs:element name="rectToRect">
		<xs:complexType>
			<xs:choice maxOccurs="2">
				<xs:element ref="Sk:rect"/>
			</xs:choice>
			<!-- @attribute source The rectangle to map from. -->
			<xs:attribute name="source" type="Sk:rect"/>
			<!-- @attribute destination The rectangle to map to. -->
			<xs:attribute name="destination" type="Sk:rect"/>
			<xs:attribute name="id" type="xs:ID"/>
		</xs:complexType>
	</xs:element>
	
	<!-- /** remove
		Remove an item from the display list.
		If where is specified, the first occurance of where in the display list is removed.
		If offset and where are specified, the element at where plus offset is removed.
		A positive offset without where removes the element at the start of the list plus offset.
		A negative offset without where removes the element at the end of the list minus offset.
	*/ -->
	<xs:element name="remove">
		<xs:complexType>
			<!-- @attribute delete If true, reverse the action of apply's attribute mode="create". 
				(Experimental.) -->
			<xs:attribute name="delete" type="Sk:Boolean"/>
			<!-- @attribute offset The destination position using the rules listed above. -->
			<xs:attribute name="offset" type="Sk:Int"/>
			<!-- @attribute where The ID of the first display list entry to remove. -->
			<xs:attribute name="where" type="Sk:Drawable"/>
			<xs:attribute name="id" type="xs:ID"/>
		</xs:complexType>
	</xs:element>
	
	<!-- /** replace
		Replace an item in the display list.
		If where is specified, the first occurance of where in the display list is replaced by use.
		If offset and where are specified, the element at where plus offset is replaced by use.
		A positive offset without where replaces  the element at the start of the list plus offset.
		A negative offset without where replaces the element at the end of the list minus offset.
	*/ -->
	<xs:element name="replace">
		<xs:complexType>
			<!-- @attribute mode Has no effect. -->
			<xs:attribute name="mode" type="Sk:AddMode"/>
			<!-- @attribute offset The destination position using the rules listed above. -->
			<xs:attribute name="offset" type="Sk:Int"/>
			<!-- @attribute use The element to be added to the display list.. -->
			<xs:attribute name="use" type="Sk:Drawable"/>
			<!-- @attribute where The ID of the first display list entry to remove. -->
			<xs:attribute name="where" type="Sk:Drawable"/>
			<xs:attribute name="id" type="xs:ID"/>
		</xs:complexType>
	</xs:element>
		
	<!-- /** rotate
		Rotate creates a matrix that rotates a unit vector about a center point, and concatenated
		with the containing matrix.
	*/ -->
	<xs:element name="rotate">
		<xs:complexType>
			<!-- @attribute center A point the rotation is centered about; by default, [0.0, 0.0]. -->
			<xs:attribute name="center" type="Sk:Point"/>
			<!-- @attribute degrees The rotation in degrees. -->
			<xs:attribute name="degrees" type="Sk:Float"/>
			<xs:attribute name="id" type="xs:ID"/>
		</xs:complexType>
	</xs:element>
	
	<!-- /** roundRect
		RoundRect creates a rectangle with rounded corners. The rounded corners are specified by
		two axes, which describe an quarter-section of the oval which is used in each corner.
		The width and height attribute compute the rectangle's right and bottom edges when the rectangle
		description is first seen. Animating the rectangle's left or top will not recompute the right or bottom
		if the width or height have been specified.
	*/ -->
	<xs:element name="roundRect">
		<xs:complexType>
			<!-- @attribute bottom The bottom edge of the rectangle. -->
			<xs:attribute name="bottom" type="Sk:Float"/>
			<!-- @attribute height The height of the rectangle. Setting height computes the 
				bottom attribute from the top attribute. -->
			<xs:attribute name="height" type="Sk:Float"/>
			<!-- @attribute left The left edge of the rectangle. -->
			<xs:attribute name="left" type="Sk:Float"/>
			<!-- @attribute needsRedraw Set to true if last draw was visible. -->
			<xs:attribute name="needsRedraw" type="Sk:Boolean"/>
			<!-- @attribute right The right edge of the rectangle. -->
			<xs:attribute name="right" type="Sk:Float"/>
			<!-- @attribute top The top edge of the rectangle. -->
			<xs:attribute name="top" type="Sk:Float"/>
			<!-- @attribute rx The radius of the corners on the x axis. -->
			<xs:attribute name="rx" type="Sk:Float"/>
			<!-- @attribute ry The radius of the corners on the y axis. -->
			<xs:attribute name="ry" type="Sk:Float"/>
			<!-- @attribute width The width of the rectangle. Setting width computes the 
				right attribute from the left attribute. -->
			<xs:attribute name="width" type="Sk:Float"/>
			<xs:attribute name="id" type="xs:ID"/>
		</xs:complexType>
	</xs:element>
	
	<!-- /** save
		The save element collects a series of elements into a group. The state of the paint and
		canvas are saved, so that edits to the paint and canvas within the group are restored
		to their original value at the end of the group. 
		The save element can be referenced
		or defined within elements, like apply, which operate on any kind of element. Groups 
		may contain groups. 
	*/ -->
	<xs:element name="save">
		<xs:complexType>
			<xs:choice maxOccurs="unbounded">
				<xs:element ref="Sk:add"/>
				<xs:element ref="Sk:apply"/>
				<xs:element ref="Sk:array"/>
				<xs:element ref="Sk:bitmap"/>
				<xs:element ref="Sk:boolean"/>
				<xs:element ref="Sk:bounds"/>
		<!--		<xs:element ref="Sk3D:camera"/>    -->
				<xs:element ref="Sk:clear"/>
				<xs:element ref="Sk:clip"/>
				<xs:element ref="Sk:color"/>
				<xs:element ref="Sk:drawTo"/>
				<xs:element ref="Sk:float"/>
				<xs:element ref="Sk:full"/>
				<xs:element ref="Sk:group"/>
				<xs:element ref="Sk:hitClear"/>
				<xs:element ref="Sk:hitTest"/>
				<xs:element ref="Sk:image"/>
				<xs:element ref="Sk:int"/>
				<xs:element ref="Sk:line"/>
				<xs:element ref="Sk:matrix"/>
				<xs:element ref="Sk:move"/>
				<xs:element ref="Sk:oval"/>
				<xs:element ref="Sk:paint"/>
			<!--	<xs:element ref="Sk:patch"/>   -->
				<xs:element ref="Sk:path"/>
				<xs:element ref="Sk:point"/>
				<xs:element ref="Sk:polygon"/>
				<xs:element ref="Sk:polyline"/>
				<xs:element ref="Sk:post"/>
				<xs:element ref="Sk:random"/>
				<xs:element ref="Sk:rect"/>
				<xs:element ref="Sk:remove"/>
				<xs:element ref="Sk:replace"/>
				<xs:element ref="Sk:roundRect"/>
				<xs:element ref="Sk:save"/>
				<xs:element ref="Sk:set"/>
				<xs:element ref="Sk:snapshot"/>
				<xs:element ref="Sk:string"/>
				<xs:element ref="Sk:text"/>
				<xs:element ref="Sk:textBox"/>
				<xs:element ref="Sk:textOnPath"/>
				<xs:element ref="Sk:textToPath"/>
			</xs:choice>
			<!-- @attribute condition If present and zero, the contained elements are ignored. -->
			<xs:attribute name="condition" type="Sk:DynamicString"/>
			<!-- @attribute enableCondition If present and zero, the contained elements are ignored
				when enabled. -->
			<xs:attribute name="enableCondition" type="Sk:DynamicString"/>
			<xs:attribute name="id" type="xs:ID"/>
		</xs:complexType>
	</xs:element>
	
	<!-- /** scale
		Scale creates a matrix that scales a unit vector about a center point, and concatenated
		with the containing matrix.
	*/ -->
	<xs:element name="scale">
		<xs:complexType>
			<!-- @attribute center A point the scale is centered about; by default, [0.0, 0.0]. -->
			<xs:attribute name="center" type="Sk:Point"/>
			<!-- @attribute x The factor all x values are scaled by; by default, 1.0.  -->
			<xs:attribute name="x" type="Sk:Float"/>
			<!-- @attribute y The factor all y values are scaled by; by default, 1.0.  -->
			<xs:attribute name="y" type="Sk:Float"/>
			<xs:attribute name="id" type="xs:ID"/>
		</xs:complexType>
	</xs:element>
	
	<!-- /** screenplay
		Screenplay contains all events and elements referenced by the events.
		A document may only contain a single screenplay element.
	*/ -->
	<xs:element name="screenplay">
		<xs:complexType>
			<xs:choice maxOccurs="unbounded" >
				<xs:element ref="Sk:add"/>
				<xs:element ref="Sk:apply"/>
				<xs:element ref="Sk:array"/>
				<xs:element ref="Sk:bitmap"/>
				<xs:element ref="Sk:boolean"/>
				<xs:element ref="Sk:bounds"/>
		<!--		<xs:element ref="Sk3D:camera"/>    -->
				<xs:element ref="Sk:clear"/>
				<xs:element ref="Sk:clip"/>
				<xs:element ref="Sk:color"/>
				<xs:element ref="Sk:drawTo"/>
				<xs:element ref="Sk:event"/>
				<xs:element ref="Sk:float"/>
				<xs:element ref="Sk:full"/>
				<xs:element ref="Sk:group"/>
				<xs:element ref="Sk:hitClear"/>
				<xs:element ref="Sk:hitTest"/>
				<xs:element ref="Sk:image"/>
				<xs:element ref="Sk:include"/>
				<xs:element ref="Sk:int"/>
				<xs:element ref="Sk:line"/>
				<xs:element ref="Sk:matrix"/>
				<xs:element ref="Sk:move"/>
				<xs:element ref="Sk:movie"/>
				<xs:element ref="Sk:oval"/>
				<xs:element ref="Sk:paint"/>
			<!--	<xs:element ref="Sk:patch"/>   -->
				<xs:element ref="Sk:path"/>
				<xs:element ref="Sk:point"/>
				<xs:element ref="Sk:polygon"/>
				<xs:element ref="Sk:polyline"/>
				<xs:element ref="Sk:post"/>
				<xs:element ref="Sk:random"/>
				<xs:element ref="Sk:rect"/>
				<xs:element ref="Sk:remove"/>
				<xs:element ref="Sk:replace"/>
				<xs:element ref="Sk:roundRect"/>
				<xs:element ref="Sk:save"/>
				<xs:element ref="Sk:set"/>
				<xs:element ref="Sk:snapshot"/>
				<xs:element ref="Sk:string"/>
				<xs:element ref="Sk:text"/>
				<xs:element ref="Sk:textBox"/>
				<xs:element ref="Sk:textOnPath"/>
				<xs:element ref="Sk:textToPath"/>
			</xs:choice>
			<!-- @attribute time The time of the draw (readable from script; not part of the document XML) -->
			<xs:attribute name="time" type="Sk:MSec"/>
	</xs:complexType>
	</xs:element>
	
	<!-- /** set
		Set animates the target element's attribute directly to the specified value.
	*/ -->
	<xs:element name="set">
		<xs:complexType>
			<!-- @attribute begin An optional offset that must elapse before the animation begins. The apply
				begin attribute is added to any animator's begin attribute. -->
			<xs:attribute name="begin" type="Sk:MSec"/>
			<!-- @attribute dur The duration of the animation in milliseconds. -->
			<xs:attribute name="dur" type="Sk:MSec"/>
			<!-- @attribute dynamic If true, restart the animation if any of the simple values the 
			 'lval' or 'to' attributes reference are changed. Simple values are contained by the array, boolean, float, int, 
			 and string elements. -->
			<!-- @attribute dynamic [Depreciated.] -->
			<xs:attribute name="dynamic" type="Sk:Boolean" />
			<!-- @attribute field The attribute to animate. -->
			<xs:attribute name="field" type="Sk:String"/>
			<!-- @attribute formula A script to execute over time to compute the field's value. Typically,
				the fomula is a script expression which includes a reference to the time attribute of the 
				containing apply	element.  -->
			<xs:attribute name="formula" type="Sk:DynamicString"/>
			<!-- @attribute lval An expression evaluating to the attribute to animate.
				If present, lval overrides 'field'. The expression is typically an array element,
				e.g. lval="x[y]" . -->
			<xs:attribute name="lval" type="Sk:DynamicString"/>
			<!-- @attribute reset  If true, the computed value is the initial value after the 
				animation is complete. If false, or by default, the computed value is the final value 
				after the animation is complete. -->
			<xs:attribute name="reset" type="Sk:Boolean"/>
			<!-- @attribute step When apply's attribute mode="immediate" or "create", the step attribute can be read by 
				script to determine the current animation iteration.  -->
			<xs:attribute name="step" type="Sk:Int" />
			<!-- @attribute target The element to animate. By default, the element contained by the apply
				or referenced by the apply's scope attribute is the animate target. -->
			<xs:attribute name="target" type="Sk:DynamicString"/>
			<!-- @attribute to The ending value (requires a 'from' attribute) -->
			<xs:attribute name="to" type="Sk:DynamicString"/>
			<xs:attribute name="id" type="xs:ID"/>
		</xs:complexType>
	</xs:element>
	
	<!-- /** skew
		Skew creates a matrix that skews a unit vector about a center point, and concatenated
		with the containing matrix.
	*/ -->
	<xs:element name="skew">
		<xs:complexType>
			<!-- @attribute center A point the skew is centered about; by default, [0.0, 0.0]. -->
			<xs:attribute name="center" type="Sk:Point"/>
			<!-- @attribute x The factor all x values are skewed by; by default, 0.0.  -->
			<xs:attribute name="x" type="Sk:Float"/>
			<!-- @attribute y The factor all y values are skewed by; by default, 0.0.  -->
			<xs:attribute name="y" type="Sk:Float"/>
			<xs:attribute name="id" type="xs:ID"/>
		</xs:complexType>
	</xs:element>
	
	<!-- /** snapshot
		Snapshot creates an image file containing the display list.
	*/ -->
	<xs:element name="snapshot">
		<xs:complexType>
			<!-- @attribute filename The name of the file to generate. -->
			<xs:attribute name="filename" type="Sk:String"/>
			<!-- @attribute quality The quality of the image, from 0 to 100. -->
			<xs:attribute name="quality" type="Sk:Float"/>
			<!-- @attribute sequence Set to true to number the filenames sequentially. -->
			<xs:attribute name="sequence" type="Sk:Boolean"/>
			<!-- @attribute type One of @pattern. The type of encoding to use. -->
			<xs:attribute name="type" type="Sk:BitmapEncoding"/>
			<xs:attribute name="id" type="xs:ID"/>
		</xs:complexType>
	</xs:element>
	
	<!-- /** string
		String contains an array of characters.
	*/ -->
	<xs:element name="string" >
		<xs:complexType>
			<!-- @attribute length The number of characters in the string (read only). -->
			<xs:attribute name="length" type="Sk:Int"/>
			<!-- @attribute slice An ECMAScript compatible function that returns part of the string. -->
			<xs:attribute name="slice" type="Sk:String"/>
			<!-- @attribute value The string itself. -->
			<xs:attribute name="value" type="Sk:String"/>
			<xs:attribute name="id" type="xs:ID"/>
		</xs:complexType>
	</xs:element>
	
	<!-- /** text
		A drawable string with a position.
	*/ -->
	<xs:element name="text">
		<xs:complexType>
			<!-- @attribute length The number of characters in the string (read only). -->
			<xs:attribute name="length" type="Sk:Int"/>
			<!-- @attribute text The string itself. -->
			<xs:attribute name="text" type="Sk:String"/>
			<!-- @attribute x The x coordinate of the string. -->
			<xs:attribute name="x" type="Sk:Float"/>
			<!-- @attribute y The y coordinate of the string. -->
			<xs:attribute name="y" type="Sk:Float"/>
			<xs:attribute name="id" type="xs:ID"/>
		</xs:complexType>
	</xs:element>
	
	<!-- /** textBox
		A drawable string fit into a box.
	*/ -->
	<xs:element name="textBox" >
		<xs:complexType>
			<!-- @attribute bottom The bottom of the box. -->
			<xs:attribute name="bottom" type="Sk:Float"/>
			<!-- @attribute height The height of the box, computed from top and bottom. -->
			<xs:attribute name="height" type="Sk:Float"/>
			<!-- @attribute left The left side of the box. -->
			<xs:attribute name="left" type="Sk:Float"/>
			<!-- @attribute mode One of @pattern. -->
			<xs:attribute name="mode" type="Sk:TextBoxMode"/>
			<!-- @attribute needsRedraw Set to true if last draw was visible. -->
			<xs:attribute name="needsRedraw" type="Sk:Boolean"/>
			<!-- @attribute right The right side of the box. -->
			<xs:attribute name="right" type="Sk:Float"/>
			<!-- @attribute spacingAdd The extra spacing between lines. -->
			<xs:attribute name="spacingAdd" type="Sk:Float"/>
			<!-- @attribute spacingAlign One of @pattern. -->
			<xs:attribute name="spacingAlign" type="Sk:TextBoxAlign"/>
			<!-- @attribute spacingMul The line spacing scaled by the text height. -->
			<xs:attribute name="spacingMul" type="Sk:Float"/>
			<!-- @attribute text The text to fit to the box. -->
			<xs:attribute name="text" type="Sk:String"/>
			<!-- @attribute top The top of the box. -->
			<xs:attribute name="top" type="Sk:Float"/>
			<!-- @attribute width The width of the box, computed from left and right. -->
			<xs:attribute name="width" type="Sk:Float"/>
			<xs:attribute name="id" type="xs:ID"/>
		</xs:complexType>
	</xs:element>
	
	<!-- /** textOnPath
		TextOnPath specifies the baseline for a string of text with a path.
	*/ -->
	<xs:element name="textOnPath">
		<xs:complexType>
			<xs:choice >
				<xs:element ref="Sk:text" minOccurs="0" />
				<xs:element ref="Sk:path" minOccurs="0" />
			</xs:choice>
			<!-- @attribute offset The distance along the path to place the first text character. -->
			<xs:attribute name="offset" type="Sk:Float"/>
			<!-- @attribute path The baseline of the text. -->
			<xs:attribute name="path" type="Sk:Path"/>
			<!-- @attribute text The text to place along the path. -->
			<xs:attribute name="text" type="Sk:Text"/>
			<xs:attribute name="id" type="xs:ID"/>
		</xs:complexType>
	</xs:element>
	
	<!-- /** textToPath
		TextToPath sets the path to the contours described by the text's glyphs, using the current paint.
	*/ -->
	<xs:element name="textToPath">
		<xs:complexType>
			<xs:choice >
				<xs:element ref="Sk:text" minOccurs="0" />
				<xs:element ref="Sk:paint" minOccurs="0" />
				<xs:element ref="Sk:path" minOccurs="0" />
			</xs:choice>
			<!-- @attribute paint The paint selects the text font, size and other text properties. -->
			<xs:attribute name="paint" type="Sk:Paint"/>
			<!-- @attribute path The reference to the path element where the text as path is stored. -->
			<xs:attribute name="path" type="Sk:Path"/>
			<!-- @attribute text The reference to the text element to turn into a path. -->
			<xs:attribute name="text" type="Sk:Text"/>
			<xs:attribute name="id" type="xs:ID"/>
		</xs:complexType>
	</xs:element>
	
	<!-- /** translate
		Translate concatenates a translation-only matrix onto the current matrix.
	*/ -->
	<xs:element name="translate">
		<xs:complexType>
			<!-- @attribute x The translation in x. -->
			<xs:attribute name="x" type="Sk:Float"/>
			<!-- @attribute y The translation in y. -->
			<xs:attribute name="y" type="Sk:Float"/>
			<xs:attribute name="id" type="xs:ID"/>
		</xs:complexType>
	</xs:element>
	
	<!-- /** transparentShader
		TransparentShader uses the background for its paint.  Works well with emboss.
	*/ -->
	<xs:element name="transparentShader">
		<xs:complexType>
			<xs:attribute name="id" type="xs:ID"/>
		</xs:complexType>
	</xs:element>
	
	<!-- /** typeface
		Typeface describes the text font.
	*/ -->
	<xs:element name="typeface">
		<xs:complexType>
			<!-- @attribute fontName The name of the font. -->
			<xs:attribute name="fontName" type="Sk:String"/>
		</xs:complexType>
	</xs:element>
	
</xs:schema>

