ShockWaveFile Markup Language ( SWFML )
Introduction
ShockWaveFile Markup Language is a simple text format designed to allow composition
and realtime control of swf files which are executed within the Macromedia Flash
player. This page describes the format and includes links to other resources which
pertain to swfml.
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> <xs:element name="swfml"> <xs:complexType> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element ref="callFunction"/> <xs:element ref="clear"/> <xs:element ref="fade"/> <xs:element ref="getsoap"/> <xs:element ref="getVar"/> <xs:element ref="learn"/> <xs:element ref="loadJPG"/> <xs:element ref="loadMP3"/> <xs:element ref="loadSWF"/> <xs:element ref="move"/> <xs:element ref="popup"/> <xs:element ref="rotate"/> <xs:element ref="setVar"/> <xs:element ref="speak"/> <xs:element ref="SQL"/> <xs:element ref="text"/> <xs:element ref="unloadSWF"/> <xs:element ref="visibility"/> </xs:choice> </xs:complexType> </xs:element> <xs:element name="callFunction"> <xs:complexType> <xs:attribute name="delay" type="xs:float" use="optional" default="0"/> <xs:attribute name="time" type="xs:string" use="optional" default="NA"/> <xs:attribute name="name" type="xs:string" use="required"/> <xs:attribute name="params" use="required"/> </xs:complexType> </xs:element> <xs:element name="clear"> <xs:complexType> <xs:attribute name="delay" type="xs:float" use="optional" default="0"/> <xs:attribute name="time" type="xs:string" use="optional" default="NA"/> </xs:complexType> </xs:element> <xs:element name="fade"> <xs:complexType> <xs:attribute name="delay" type="xs:float" use="optional" default="0"/> <xs:attribute name="time" type="xs:string" use="optional" default="NA"/> <xs:attribute name="target" type="xs:string" use="required"/> <xs:attribute name="type" use="optional"> <xs:simpleType> <xs:restriction base="xs:NMTOKEN"> <xs:enumeration value="absolute"/> <xs:enumeration value="add"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="mode" use="optional"> <xs:simpleType> <xs:restriction base="xs:NMTOKEN"> <xs:enumeration value="immediate"/> <xs:enumeration value="gradual"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="value" type="xs:positiveInteger" use="required"/> <xs:attribute name="fadetime" type="xs:float" use="optional"/> </xs:complexType> </xs:element> <xs:element name="getsoap"> <xs:complexType> <xs:attribute name="endpoint" type="xs:anyURI" use="required"/> <xs:attribute name="AreaCode" type="xs:string"/> <xs:attribute name="PhoneNumber" type="xs:string"/> <xs:attribute name="symbol" type="xs:string"/> <xs:attribute name="sourceData" type="xs:string"/> <xs:attribute name="Mode" type="xs:string"/> <xs:attribute name="FromCountry" type="xs:string"/> <xs:attribute name="ToCountry" type="xs:string"/> <xs:attribute name="pattern" type="xs:string"/> <xs:attribute name="that" type="xs:string"/> <xs:attribute name="topic" type="xs:string"/> <xs:attribute name="mood" type="xs:string"/> <xs:attribute name="context" type="xs:string"/> <xs:attribute name="userid" type="xs:string"/> <xs:attribute name="referrerid" type="xs:string"/> <xs:attribute name="language" type="xs:string"/> <xs:attribute name="Relevance" type="xs:byte"/> <xs:attribute name="hops" type="xs:byte"/> </xs:complexType> </xs:element> <xs:element name="getVar"> <xs:complexType> <xs:attribute name="name" type="xs:string" use="required"/> <xs:attribute name="value" use="required"/> </xs:complexType> </xs:element> <xs:element name="learn"> <xs:complexType> <xs:attribute name="delay" type="xs:float" use="optional" default="0"/> <xs:attribute name="time" type="xs:string" use="optional" default="NA"/> <xs:attribute name="filelocation" type="xs:string" use="required"/> <xs:attribute name="topicname" type="xs:string" use="required"/> <xs:attribute name="type" type="xs:string" use="required"/> </xs:complexType> </xs:element> <xs:element name="loadJPG"> <xs:complexType> <xs:attribute name="delay" type="xs:float" use="optional" default="0"/> <xs:attribute name="time" type="xs:string" use="optional" default="NA"/> <xs:attribute name="url" type="xs:string" use="required"/> <xs:attribute name="name" type="xs:string" use="required"/> <xs:attribute name="depth" type="xs:string" use="optional"/> <xs:attribute name="xcoord" type="xs:float" use="optional"/> <xs:attribute name="ycoord" type="xs:float" use="optional"/> </xs:complexType> </xs:element> <xs:element name="loadMP3"> <xs:complexType> <xs:attribute name="delay" type="xs:float" use="optional" default="0"/> <xs:attribute name="time" type="xs:string" use="optional" default="NA"/> <xs:attribute name="url" type="xs:string" use="required"/> <xs:attribute name="name" type="xs:string" use="required"/> <xs:attribute name="depth" type="xs:string" use="optional"/> <xs:attribute name="type" use="required"> <xs:simpleType> <xs:restriction base="xs:NMTOKEN"> <xs:enumeration value="event"/> <xs:enumeration value="streaming"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="xcoord" type="xs:float" use="optional"/> <xs:attribute name="ycoord" type="xs:float" use="optional"/> <xs:attribute name="volume" type="xs:float" use="optional" default="50"/> <xs:attribute name="pan" type="xs:float" use="optional" default="0"/> </xs:complexType> </xs:element> <xs:element name="loadSWF"> <xs:complexType> <xs:attribute name="delay" type="xs:float" use="optional" default="0"/> <xs:attribute name="time" type="xs:string" use="optional" default="NA"/> <xs:attribute name="url" type="xs:string" use="required"/> <xs:attribute name="name" type="xs:string" use="required"/> <xs:attribute name="depth" type="xs:string" use="optional"/> <xs:attribute name="xcoord" type="xs:float" use="optional"/> <xs:attribute name="ycoord" type="xs:float" use="optional"/> </xs:complexType> </xs:element> <xs:element name="move"> <xs:complexType> <xs:attribute name="delay" type="xs:float" use="optional" default="0"/> <xs:attribute name="time" type="xs:string" use="optional" default="NA"/> <xs:attribute name="target" type="xs:string" use="required"/> <xs:attribute name="type" use="optional"> <xs:simpleType> <xs:restriction base="xs:NMTOKEN"> <xs:enumeration value="absolute"/> <xs:enumeration value="add"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="mode" use="optional"> <xs:simpleType> <xs:restriction base="xs:NMTOKEN"> <xs:enumeration value="immediate"/> <xs:enumeration value="gradual"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="xcoord" type="xs:float" use="required"/> <xs:attribute name="ycoord" type="xs:float" use="required"/> <xs:attribute name="movetime" type="xs:float" use="optional"/> </xs:complexType> </xs:element> <xs:element name="popup"> <xs:complexType> <xs:attribute name="delay" type="xs:float" use="optional" default="0"/> <xs:attribute name="time" type="xs:string" use="optional" default="NA"/> <xs:attribute name="url" type="xs:anyURI" use="required"/> <xs:attribute name="windowname" type="xs:string" use="required"/> <xs:attribute name="width" type="xs:float" use="optional"/> <xs:attribute name="height" type="xs:float" use="optional"/> <xs:attribute name="xCoord" type="xs:float" use="optional"/> <xs:attribute name="yCoord" type="xs:float" use="optional"/> <xs:attribute name="resizable" type="xs:boolean" use="optional"/> <xs:attribute name="scrollbars" type="xs:boolean" use="optional"/> <xs:attribute name="statusbar" type="xs:boolean" use="optional"/> <xs:attribute name="toolbar" type="xs:boolean" use="optional"/> <xs:attribute name="menubar" type="xs:boolean" use="optional"/> <xs:attribute name="location" type="xs:boolean" use="optional"/> <xs:attribute name="directories" type="xs:boolean" use="optional"/> </xs:complexType> </xs:element> <xs:element name="rotate"> <xs:complexType> <xs:attribute name="delay" type="xs:float" use="optional" default="0"/> <xs:attribute name="time" type="xs:string" use="optional" default="NA"/> <xs:attribute name="target" type="xs:string" use="required"/> <xs:attribute name="type" use="optional"> <xs:simpleType> <xs:restriction base="xs:NMTOKEN"> <xs:enumeration value="absolute"/> <xs:enumeration value="add"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="mode" use="optional"> <xs:simpleType> <xs:restriction base="xs:NMTOKEN"> <xs:enumeration value="immediate"/> <xs:enumeration value="gradual"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="value" type="xs:float" use="required"/> <xs:attribute name="rotatetime" type="xs:float" use="optional"/> </xs:complexType> </xs:element> <xs:element name="setVar"> <xs:complexType> <xs:attribute name="delay" type="xs:float" use="optional" default="0"/> <xs:attribute name="time" type="xs:string" use="optional" default="NA"/> <xs:attribute name="name" type="xs:string" use="required"/> <xs:attribute name="value" use="required"/> </xs:complexType> </xs:element> <xs:element name="speak"> <xs:complexType mixed="true"> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element ref="getsoap"/> <xs:element ref="getVar"/> </xs:choice> <xs:attribute name="delay" type="xs:float" use="optional" default="0"/> <xs:attribute name="time" type="xs:string" use="optional" default="NA"/> </xs:complexType> </xs:element> <xs:element name="SQL"> <xs:complexType mixed="true"> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element ref="getVar"/> </xs:choice> <xs:attribute name="delay" type="xs:float" use="optional" default="0"/> <xs:attribute name="time" type="xs:string" use="optional" default="NA"/> </xs:complexType> </xs:element> <xs:element name="text"> <xs:complexType> <xs:attribute name="delay" type="xs:float" use="optional" default="0"/> <xs:attribute name="time" type="xs:string" use="optional" default="NA"/> <xs:attribute name="width" type="xs:short" use="optional"/> <xs:attribute name="height" type="xs:short" use="optional"/> <xs:attribute name="xcoord" type="xs:byte" use="optional"/> <xs:attribute name="ycoord" type="xs:byte" use="optional"/> <xs:attribute name="textdepth" type="xs:short" use="optional"/> <xs:attribute name="groupdepth" type="xs:short" use="optional"/> <xs:attribute name="size" type="xs:byte" use="optional"/> <xs:attribute name="color" type="xs:byte" use="optional"/> <xs:attribute name="font" type="xs:string" use="optional"/> <xs:attribute name="bold" type="xs:string" use="optional"/> <xs:attribute name="underline" type="xs:string" use="optional"/> <xs:attribute name="textcontent" type="xs:string" use="optional"/> <xs:attribute name="textname" type="xs:string" use="optional"/> <xs:attribute name="groupname" type="xs:string" use="optional"/> </xs:complexType> </xs:element> <xs:element name="unloadSWF"> <xs:complexType> <xs:attribute name="delay" type="xs:float" use="optional" default="0"/> <xs:attribute name="time" type="xs:string" use="optional" default="NA"/> <xs:attribute name="name" type="xs:string" use="required"/> </xs:complexType> </xs:element> <xs:element name="visibility"> <xs:complexType> <xs:attribute name="delay" type="xs:float" use="optional" default="0"/> <xs:attribute name="time" type="xs:string" use="optional" default="NA"/> <xs:attribute name="target" type="xs:string" use="required"/> <xs:attribute name="value" use="required"> <xs:simpleType> <xs:restriction base="xs:NMTOKEN"> <xs:enumeration value="off"/> <xs:enumeration value="on"/> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType> </xs:element> </xs:schema>
These supposed other resources will be added to as time permits or occasion demands.
Email communication - gregb@swfml.net