Created
October 3, 2016 04:57
-
-
Save Arcnor/722d452066fc3f0dd46255f99469b96d to your computer and use it in GitHub Desktop.
Stencyl blocks.xml schema
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" encoding="UTF-8"?> | |
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" | |
xmlns:xs="http://www.w3.org/2001/XMLSchema"> | |
<xs:complexType name="paletteType"> | |
<xs:sequence> | |
<xs:element type="blockType" name="block" maxOccurs="unbounded" minOccurs="0"/> | |
</xs:sequence> | |
</xs:complexType> | |
<xs:element name="palette" type="paletteType"/> | |
<xs:complexType name="blockType"> | |
<xs:sequence> | |
<xs:element type="fieldsType" name="fields" minOccurs="0" maxOccurs="1"/> | |
<xs:element type="contextType" name="context" minOccurs="0" maxOccurs="1"/> | |
</xs:sequence> | |
<xs:attribute type="xs:ID" name="tag" use="required"> | |
<xs:annotation> | |
<xs:documentation>Valid values for tags are characters and the underscore symbol (_). Spaces are NOT valid.</xs:documentation> | |
</xs:annotation> | |
</xs:attribute> | |
<xs:attribute type="xs:string" name="spec" use="required"> | |
<xs:annotation> | |
<xs:documentation>Like what you see in our language files, use %0, %1, etc. to specify where the spaces go</xs:documentation> | |
</xs:annotation> | |
</xs:attribute> | |
<xs:attribute type="xs:string" name="code" use="required"> | |
<xs:annotation> | |
<xs:documentation>Output code, use <code>~</code> to specify the blanks. Must match the order in which fields are specified.</xs:documentation> | |
</xs:annotation> | |
</xs:attribute> | |
<xs:attribute type="validTypes" name="type" use="required"/> | |
<xs:attribute type="validReturnTypes" name="returns" use="required"/> | |
<xs:attribute type="validColors" name="color" use="optional"/> | |
<xs:attribute type="xs:boolean" name="hidden" use="optional"> | |
<xs:annotation> | |
<xs:documentation>If <code>true</code>, the block will not display in the palette. Used in conjunction with <code>attached-block</code></xs:documentation> | |
</xs:annotation> | |
</xs:attribute> | |
<xs:attribute type="xs:string" name="help" use="optional"> | |
<xs:annotation> | |
<xs:documentation>Displayed in the bottom bar when the mouse hovers over this block.</xs:documentation> | |
</xs:annotation> | |
</xs:attribute> | |
</xs:complexType> | |
<xs:simpleType name="tagType"> | |
<xs:restriction> | |
<xs:pattern value="[-A-Za-z]"> | |
<xs:annotation> | |
<xs:documentation>Valid values for tags are characters and the underscore symbol (_). Spaces are NOT valid.</xs:documentation> | |
</xs:annotation> | |
</xs:pattern> | |
</xs:restriction> | |
</xs:simpleType> | |
<xs:simpleType name="validTypes"> | |
<xs:restriction base="xs:string"> | |
<xs:enumeration value="normal"/> | |
<xs:enumeration value="action"/> | |
<xs:enumeration value="wrapper"/> | |
<xs:enumeration value="event"/> | |
</xs:restriction> | |
</xs:simpleType> | |
<xs:simpleType name="validReturnTypes"> | |
<xs:restriction base="xs:string"> | |
<xs:enumeration value="actor"/> | |
<xs:enumeration value="actortype"/> | |
<xs:enumeration value="animation"/> | |
<xs:enumeration value="anything"/> | |
<xs:enumeration value="boolean"/> | |
<xs:enumeration value="color"/> | |
<xs:enumeration value="control"/> | |
<xs:enumeration value="filter"/> | |
<xs:enumeration value="font"/> | |
<xs:enumeration value="group"/> | |
<xs:enumeration value="image"/> | |
<xs:enumeration value="image-instance"/> | |
<xs:enumeration value="joint"/> | |
<xs:enumeration value="list"/> | |
<xs:enumeration value="map"/> | |
<xs:enumeration value="number"/> | |
<xs:enumeration value="region"/> | |
<xs:enumeration value="scene"/> | |
<xs:enumeration value="shader"/> | |
<xs:enumeration value="sound"/> | |
<xs:enumeration value="text"/> | |
<xs:enumeration value="void"/> | |
<xs:enumeration value="dropdown"/> | |
<xs:enumeration value="code-block"/> | |
<xs:enumeration value="attached-block"/> | |
</xs:restriction> | |
</xs:simpleType> | |
<xs:simpleType name="validColors"> | |
<xs:restriction base="xs:string"> | |
<xs:enumeration value="blue"/> | |
<xs:enumeration value="cyan"/> | |
<xs:enumeration value="green"/> | |
<xs:enumeration value="lime"/> | |
<xs:enumeration value="purple"/> | |
<xs:enumeration value="red"/> | |
<xs:enumeration value="gray"/> | |
<xs:enumeration value="charcoal"/> | |
<xs:enumeration value="yellow"/> | |
</xs:restriction> | |
</xs:simpleType> | |
<xs:complexType name="fieldsType"> | |
<xs:sequence> | |
<xs:element type="baseFieldType" name="actor" minOccurs="0"/> | |
<xs:element type="baseFieldType" name="actortype" minOccurs="0"/> | |
<xs:element type="baseFieldType" name="animation" minOccurs="0"/> | |
<xs:element type="baseFieldType" name="anything" minOccurs="0"/> | |
<xs:element type="baseFieldType" name="boolean" minOccurs="0"/> | |
<xs:element type="baseFieldType" name="color" minOccurs="0"/> | |
<xs:element type="baseFieldType" name="control" minOccurs="0"/> | |
<xs:element type="baseFieldType" name="filter" minOccurs="0"/> | |
<xs:element type="baseFieldType" name="font" minOccurs="0"/> | |
<xs:element type="baseFieldType" name="group" minOccurs="0"/> | |
<xs:element type="baseFieldType" name="image" minOccurs="0"/> | |
<xs:element type="baseFieldType" name="image-instance" minOccurs="0"/> | |
<xs:element type="baseFieldType" name="joint" minOccurs="0"/> | |
<xs:element type="baseFieldType" name="list" minOccurs="0"/> | |
<xs:element type="baseFieldType" name="map" minOccurs="0"/> | |
<xs:element type="baseFieldType" name="number" minOccurs="0"/> | |
<xs:element type="baseFieldType" name="region" minOccurs="0"/> | |
<xs:element type="baseFieldType" name="scene" minOccurs="0"/> | |
<xs:element type="baseFieldType" name="shader" minOccurs="0"/> | |
<xs:element type="baseFieldType" name="sound" minOccurs="0"/> | |
<xs:element type="baseFieldType" name="text" minOccurs="0"/> | |
<xs:element type="dropdownType" name="dropdown" minOccurs="0"/> | |
<xs:element type="baseFieldType" name="code-block" minOccurs="0"/> | |
<xs:element type="attachedBlockType" name="attached-block" minOccurs="0"/> | |
</xs:sequence> | |
</xs:complexType> | |
<xs:complexType name="baseFieldType"> | |
<xs:simpleContent> | |
<xs:extension base="xs:string"> | |
<xs:attribute type="xs:nonNegativeInteger" name="order" use="optional"> | |
<xs:annotation> | |
<xs:documentation>Fields are ordered using order attribute, starting at zero and incremented by 1. Don't skip numbers.</xs:documentation> | |
</xs:annotation> | |
</xs:attribute> | |
</xs:extension> | |
</xs:simpleContent> | |
</xs:complexType> | |
<xs:complexType name="dropdownType"> | |
<xs:simpleContent> | |
<xs:extension base="baseFieldType"> | |
<xs:sequence> | |
<xs:element type="choicesType" name="choices"/> | |
</xs:sequence> | |
</xs:extension> | |
</xs:simpleContent> | |
</xs:complexType> | |
<xs:complexType name="attachedBlockType"> | |
<xs:simpleContent> | |
<xs:extension base="baseFieldType"> | |
<xs:attribute type="xs:IDREF" name="tag" use="required"/> | |
</xs:extension> | |
</xs:simpleContent> | |
</xs:complexType> | |
<xs:complexType name="choicesType"> | |
<xs:sequence> | |
<xs:element type="cType" name="c" maxOccurs="unbounded" minOccurs="0"/> | |
</xs:sequence> | |
</xs:complexType> | |
<xs:complexType name="cType"> | |
<xs:simpleContent> | |
<xs:extension base="xs:string"> | |
<xs:attribute type="xs:string" name="text" use="required"/> | |
<xs:attribute type="xs:string" name="code" use="required"/> | |
</xs:extension> | |
</xs:simpleContent> | |
</xs:complexType> | |
<!-- Contexts --> | |
<xs:complexType name="contextType"> | |
<xs:sequence> | |
<xs:element type="immediateType" name="immediate" minOccurs="0" maxOccurs="1"/> | |
<xs:element type="requiredImmediateType" name="requiredImmediate" minOccurs="0" maxOccurs="1"/> | |
<xs:element type="xs:string" name="inner" minOccurs="0" maxOccurs="1"/> | |
<xs:element type="xs:string" name="required" minOccurs="0" maxOccurs="1"/> | |
</xs:sequence> | |
</xs:complexType> | |
<xs:complexType name="requiredImmediateType"> | |
<xs:simpleContent> | |
<xs:extension base="xs:string"> | |
<xs:attribute type="validContextTypes" name="type" use="required"/> | |
<xs:attribute type="xs:string" name="value" use="required"/> | |
</xs:extension> | |
</xs:simpleContent> | |
</xs:complexType> | |
<xs:complexType name="immediateType"> | |
<xs:simpleContent> | |
<xs:extension base="xs:string"> | |
<xs:attribute type="validContextTypes" name="type" use="required"/> | |
<xs:attribute type="xs:string" name="value" use="required"/> | |
</xs:extension> | |
</xs:simpleContent> | |
</xs:complexType> | |
<xs:simpleType name="validContextTypes"> | |
<xs:restriction base="xs:string"> | |
<xs:enumeration value="keyword"> | |
<xs:annotation> | |
<xs:documentation>Arbitrary string, useful for things like "if" and "continue"</xs:documentation> | |
</xs:annotation> | |
</xs:enumeration> | |
<xs:enumeration value="class"> | |
<xs:annotation> | |
<xs:documentation>Fully qualified Java class name</xs:documentation> | |
</xs:annotation> | |
</xs:enumeration> | |
<xs:enumeration value="has"> | |
<xs:annotation> | |
<xs:documentation>g:com.stencyl.graphics.G (like a variable declaration with identifier + fully qualified class name)</xs:documentation> | |
</xs:annotation> | |
</xs:enumeration> | |
<xs:enumeration value="using"> | |
<xs:annotation> | |
<xs:documentation>Fully qualified Java class name</xs:documentation> | |
</xs:annotation> | |
</xs:enumeration> | |
<xs:enumeration value="staticimport"> | |
<xs:annotation> | |
<xs:documentation>Fully qualified Java class name</xs:documentation> | |
</xs:annotation> | |
</xs:enumeration> | |
</xs:restriction> | |
</xs:simpleType> | |
</xs:schema> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment