<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
            xmlns="org.mindmakers.bml"
            targetNamespace="org.mindmakers.bml"
            elementFormDefault="qualified" xmlns:tns="org.mindmakers.bml">
    <xsd:element name="bmlRoot">
        <xsd:complexType>
            <xsd:sequence>
                <xsd:element name="bml" type="Bml"/>
            </xsd:sequence>
        </xsd:complexType>
    </xsd:element>
    <xsd:complexType name="BehaviorBlock">
        <xsd:sequence maxOccurs="unbounded">
            <xsd:element name="gaze" type="Gaze" minOccurs="0" maxOccurs="unbounded"/>
            <xsd:element name="gesture" type="Gesture" minOccurs="0" maxOccurs="unbounded"/>
            <xsd:element name="speech" type="Speech" minOccurs="0" maxOccurs="unbounded"/>
            <xsd:element name="locomotion" type="Locomotion" minOccurs="0" maxOccurs="unbounded"/>
            <xsd:element name="head" type="Head" minOccurs="0" maxOccurs="unbounded"/>
            <xsd:element name="face" type="Face" minOccurs="0" maxOccurs="unbounded"/>
            <xsd:element name="lips" type="Lips" minOccurs="0" maxOccurs="unbounded"/>
            <xsd:element name="constraint" type="Constraint" minOccurs="0" maxOccurs="unbounded"/>
            <xsd:element name="emit" type="Emit" minOccurs="0" maxOccurs="unbounded"/>
        </xsd:sequence>
    </xsd:complexType>
    <xsd:complexType name="Bml">
        <xsd:complexContent>
            <xsd:extension base="BehaviorBlock">
                <xsd:sequence>
                    <xsd:element name="required" type="BehaviorBlock" minOccurs="0" maxOccurs="unbounded"/>
                </xsd:sequence>
                <xsd:attribute name="id" type="xsd:string" use="required"/>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>
    <xsd:complexType name="Behavior">
        <xsd:attribute name="id" type="xsd:string" use="required"/>
        <xsd:attribute name="start" type="xsd:string"/>
        <xsd:attribute name="end" type="xsd:string"/>
    </xsd:complexType>
    <xsd:simpleType name="Direction">
        <xsd:restriction base="xsd:string">
            <xsd:enumeration value="RIGHT"/>
            <xsd:enumeration value="LEFT"/>
            <xsd:enumeration value="UP"/>
            <xsd:enumeration value="DOWN"/>
            <xsd:enumeration value="UPRIGHT"/>
            <xsd:enumeration value="UPLEFT"/>
            <xsd:enumeration value="DOWNLEFT"/>
            <xsd:enumeration value="DOWNRIGHT"/>
            <xsd:enumeration value="POLAR"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="GazeModality">
        <xsd:restriction base="xsd:string">
            <xsd:enumeration value="EYES"/>
            <xsd:enumeration value="HEAD"/>
            <xsd:enumeration value="NECK"/>
            <xsd:enumeration value="TORSO"/>
            <xsd:enumeration value="LEGS"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:complexType name="Gaze">
        <xsd:complexContent>
            <xsd:extension base="Behavior">
                <xsd:sequence>
                    <xsd:element name="modality" type="GazeModality" minOccurs="0" maxOccurs="5"/>
                </xsd:sequence>
                <xsd:attribute name="target" type="xsd:string"/>
                <xsd:attribute name="offsetangle" type="xsd:float"/>
                <xsd:attribute name="offsetdirection" type="Direction"/>
                <!-- 
                The polar attribute is only looked at if the offsetdirection is set to POLAR 
                -->
                <xsd:attribute name="polarangle" type="xsd:float"/>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>
    <xsd:simpleType name="GestureType">
        <xsd:restriction base="xsd:string">
            <xsd:enumeration value="POINT"/>
            <xsd:enumeration value="BEAT"/>
            <xsd:enumeration value="CONDUIT"/>
            <xsd:enumeration value="GENERIC"/>
            <xsd:enumeration value="LEXICALIZED"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="Side">
        <xsd:restriction base="xsd:string">
            <xsd:enumeration value="LEFT"/>
            <xsd:enumeration value="RIGHT"/>
            <xsd:enumeration value="BOTH"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="HandShape">
        <xsd:restriction base="xsd:string">
            <xsd:enumeration value="INDEXFINGER"/>
            <xsd:enumeration value="THUMB"/>
            <xsd:enumeration value="OPENHAND"/>
            <xsd:enumeration value="FIST"/>
            <xsd:enumeration value="FINGER-RING"/>
            <xsd:enumeration value="CUP"/>
            <xsd:enumeration value="PURSE"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="Trajectory">
        <xsd:restriction base="xsd:string">
            <xsd:enumeration value="STRAIGHT"/>
            <xsd:enumeration value="CURVED"/>
            <xsd:enumeration value="CIRCULAR"/>
            <xsd:enumeration value="RECTANGULAR"/>
            <xsd:enumeration value="TRIANGULAR"/>
            <xsd:enumeration value="WAVE-LIKE"/>
            <xsd:enumeration value="ZIGZAG"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="TwoHanded">
        <xsd:restriction base="xsd:string">
            <xsd:enumeration value="MIRROR"/>
            <xsd:enumeration value="ALTERNATE"/>
            <xsd:enumeration value="PARALLEL"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="VerticalLocation">
        <xsd:restriction base="xsd:string">
            <xsd:enumeration value="LOW"/>
            <xsd:enumeration value="CENTER"/>
            <xsd:enumeration value="HIGH"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="HorizontalLocation">
        <xsd:restriction base="xsd:string">
            <xsd:enumeration value="LEFT"/>
            <xsd:enumeration value="CENTER"/>
            <xsd:enumeration value="RIGHT"/>
            <xsd:enumeration value="INWARD"/>
            <xsd:enumeration value="OUTWARD"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="Distance">
        <xsd:restriction base="xsd:string">
            <xsd:enumeration value="CONTACT"/>
            <xsd:enumeration value="NEAR"/>
            <xsd:enumeration value="MEDIUM"/>
            <xsd:enumeration value="FAR"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="Amplitude">
        <xsd:restriction base="xsd:string">
            <xsd:enumeration value="SMALL"/>
            <xsd:enumeration value="MEDIUM"/>
            <xsd:enumeration value="LARGE"/>
            <xsd:enumeration value="EXTRA-LARGE"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="Power">
        <xsd:restriction base="xsd:string">
            <xsd:enumeration value="WEAK"/>
            <xsd:enumeration value="NORMAL"/>
            <xsd:enumeration value="FORCEFUL"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:complexType name="Gesture">
        <xsd:complexContent>
            <xsd:extension base="Behavior">
                <xsd:sequence>
                </xsd:sequence>
                <xsd:attribute name="type" type="GestureType" use="required"/>
                <xsd:attribute name="hand" type="Side"/>
                <xsd:attribute name="repetition" type="xsd:int"/>
                <xsd:attribute name="target" type="xsd:string"/>
                <xsd:attribute name="handshape" type="HandShape"/>
                <xsd:attribute name="extendedfingerdirection" type="Direction"/>
                <xsd:attribute name="palmdirection" type="Direction"/>
                <xsd:attribute name="trajectory" type="Trajectory"/>
                <xsd:attribute name="twohanded" type="TwoHanded"/>
                <xsd:attribute name="location_vertical" type="VerticalLocation"/>
                <xsd:attribute name="location_horizontal" type="HorizontalLocation"/>
                <xsd:attribute name="location_distance" type="Distance"/>
                <xsd:attribute name="movementdirection" type="Direction"/>
                <xsd:attribute name="lexeme" type="xsd:string"/>
                <xsd:attribute name="amplitude" type="Amplitude"/>
                <xsd:attribute name="power" type="Power"/>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>
    <xsd:complexType name="Sync">
        <xsd:sequence>
        </xsd:sequence>
        <xsd:attribute name="ref" type="xsd:string"/>
    </xsd:complexType>
    <xsd:complexType name="Text" mixed="true">
        <xsd:sequence>
            <xsd:element name="sync" type="Sync"/>
        </xsd:sequence>
    </xsd:complexType>
    <xsd:complexType name="Speech">
        <xsd:complexContent>
            <xsd:extension base="Behavior">
                <xsd:sequence>
                    <xsd:element name="text" type="Text"/>
                </xsd:sequence>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>
    <xsd:simpleType name="LocomotionType">
        <xsd:restriction base="xsd:string">
            <xsd:enumeration value="VECTOR"/>
            <xsd:enumeration value="TARGET"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="LocomotionManner">
        <xsd:restriction base="xsd:string">
            <xsd:enumeration value="RUNNING"/>
            <xsd:enumeration value="SWIMMING"/>
            <xsd:enumeration value="FLYING"/>
            <xsd:enumeration value="WALKING"/>
            <xsd:enumeration value="CRAWLING"/>
            <xsd:enumeration value="CREEPING"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:complexType name="Locomotion">
        <xsd:complexContent>
            <xsd:extension base="Behavior">
                <xsd:sequence>
                </xsd:sequence>
                <xsd:attribute name="type" type="LocomotionType"/>
                <xsd:attribute name="proximity" type="xsd:float"/>
                <xsd:attribute name="facing" type="xsd:float"/>
                <xsd:attribute name="manner" type="LocomotionManner"/>
                <xsd:attribute name="dynamic" type="xsd:boolean"/>
                <xsd:attribute name="velocity" type="xsd:string"/>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>
    <xsd:simpleType name="BodyPart">
        <xsd:restriction base="xsd:string">
            <xsd:enumeration value="WHOLE"/>
            <xsd:enumeration value="UPPER"/>
            <xsd:enumeration value="LOWER"/>
            <xsd:enumeration value="LEFT"/>
            <xsd:enumeration value="RIGHT"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="Stance">
        <xsd:restriction base="xsd:string">
            <xsd:enumeration value="SITTING"/>
            <xsd:enumeration value="STANDING"/>
            <xsd:enumeration value="KNEELING"/>
            <xsd:enumeration value="SQUATTING"/>
            <xsd:enumeration value="LYING"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="Shape">
        <xsd:restriction base="xsd:string">
            <xsd:enumeration value="CROSSED"/>
            <xsd:enumeration value="OPEN"/>
            <xsd:enumeration value="STRETCHED"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:complexType name="Posture">
        <xsd:complexContent>
            <xsd:extension base="Behavior">
                <xsd:sequence>
                </xsd:sequence>
                <xsd:attribute name="part" type="BodyPart"/>
                <xsd:attribute name="stance" type="Stance"/>
                <xsd:attribute name="shape" type="Shape"/>
                <xsd:attribute name="target" type="xsd:string"/>
                <xsd:attribute name="facing" type="Direction"/>
                <xsd:attribute name="leaning" type="Direction"/>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>
    <xsd:simpleType name="HeadMovementType">
        <xsd:restriction base="xsd:string">
            <xsd:enumeration value="NOD"/>
            <xsd:enumeration value="SHAKE"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:complexType name="Head">
        <xsd:complexContent>
            <xsd:extension base="Behavior">
                <xsd:sequence>
                </xsd:sequence>
                <xsd:attribute name="type" type="HeadMovementType"/>
                <xsd:attribute name="repeats" type="xsd:int"/>
                <xsd:attribute name="amount" type="xsd:float"/>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>
    <xsd:simpleType name="FaceMovementType">
        <xsd:restriction base="xsd:string">
            <xsd:enumeration value="FACS"/>
            <xsd:enumeration value="EYEBROWS"/>
            <xsd:enumeration value="EYELIDS"/>
            <xsd:enumeration value="MOUTH"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="EyebrowShape">
        <xsd:restriction base="xsd:string">
            <xsd:enumeration value="FLAT"/>
            <xsd:enumeration value="POINTDOWN"/>
            <xsd:enumeration value="POINTUP"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="Eyelid">
        <xsd:restriction base="xsd:string">
            <xsd:enumeration value="BOTH"/>
            <xsd:enumeration value="UPPER"/>
            <xsd:enumeration value="LOWER"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="MouthShape">
        <xsd:restriction base="xsd:string">
            <xsd:enumeration value="FLAT"/>
            <xsd:enumeration value="SMILE"/>
            <xsd:enumeration value="LAUGH"/>
            <xsd:enumeration value="PUCKER"/>
            <xsd:enumeration value="FROWN"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:complexType name="Face">
        <xsd:complexContent>
            <xsd:extension base="Behavior">
                <xsd:sequence>
                </xsd:sequence>
                <xsd:attribute name="type" type="FaceMovementType" use="required"/>
                <xsd:attribute name="amount" type="xsd:float"/>
                <xsd:attribute name="side" type="Side"/>
                <xsd:attribute name="au" type="xsd:int"/>
                <xsd:attribute name="eyebrow-shape" type="EyebrowShape"/>
                <xsd:attribute name="separation" type="xsd:float"/>
                <xsd:attribute name="lid" type="Eyelid"/>
                <xsd:attribute name="mouth-shape" type="MouthShape"/>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>
    <xsd:complexType name="Lips">
        <xsd:complexContent>
            <xsd:extension base="Behavior">
                <xsd:sequence>
                </xsd:sequence>
                <xsd:attribute name="viseme" type="xsd:string" use="required"/>
                <xsd:attribute name="articulation" type="xsd:float"/>
                <xsd:attribute name="flapping" type="xsd:boolean"/>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>
    <xsd:complexType name="Wait">
        <xsd:complexContent>
            <xsd:extension base="Behavior">
                <xsd:sequence>
                </xsd:sequence>
                <xsd:attribute name="duration" type="xsd:float"/>
                <xsd:attribute name="event" type="xsd:string"/>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>
    <xsd:complexType name="Emit">
        <xsd:complexContent>
            <xsd:extension base="Behavior">
                <xsd:sequence>
                    <xsd:element name="event" type="Behavior"/>
                </xsd:sequence>
                <xsd:attribute name="source" type="xsd:string"/>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>
    <xsd:complexType name="SyncBlock">
        <xsd:sequence>
            <xsd:element name="sync" type="Sync" minOccurs="0" maxOccurs="unbounded"/>
        </xsd:sequence>
        <xsd:attribute name="ref" type="xsd:string"/>
    </xsd:complexType>
    <xsd:complexType name="Constraint">
        <xsd:complexContent>
            <xsd:extension base="Behavior">
                <xsd:sequence>
                    <xsd:element name="before" type="SyncBlock" minOccurs="0" maxOccurs="unbounded"/>
                    <xsd:element name="synchronize" type="SyncBlock" minOccurs="0" maxOccurs="unbounded"/>
                    <xsd:element name="after" type="SyncBlock" minOccurs="0" maxOccurs="unbounded"/>
                </xsd:sequence>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>
</xsd:schema>
 
 
projects/bml/draft1.0/schema.txt · Last modified: 2008/06/26 16:00 by psamtani
 
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki