<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>

