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