Hier die aktuelle XSD:
- Code: Alles auswählen
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:element name="scene">
<xs:complexType mixed="true">
<xs:sequence maxOccurs="unbounded" minOccurs="1">
<xs:group ref="anyGroup"/>
</xs:sequence>
<xs:attribute name="room" use="optional" type="sceneName"/>
<xs:attribute name="lib" use="optional" type="xs:boolean"/>
</xs:complexType>
</xs:element>
<!-- Gruppierungen -->
<xs:group name="anyGroup">
<xs:sequence>
<xs:group ref="plotGroup"/>
<xs:group ref="textGroup"/>
</xs:sequence>
</xs:group>
<xs:group name="plotGroup">
<xs:sequence>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="action"/>
<xs:element ref="add-EP"/>
<xs:element ref="challenge"/>
<xs:element ref="chat"/>
<xs:element ref="choice"/>
<xs:element ref="countdown"/>
<xs:element ref="damage"/>
<xs:element ref="debug"/>
<xs:element ref="delay"/>
<xs:element ref="drop"/>
<xs:element ref="eval"/>
<xs:element ref="fetch"/>
<xs:element ref="fight"/>
<xs:element ref="for"/>
<xs:element ref="function"/>
<xs:element ref="get"/>
<xs:element ref="has"/>
<xs:element ref="hero"/>
<xs:element ref="if"/>
<xs:element ref="include"/>
<xs:element ref="input"/>
<xs:element ref="inventar"/>
<xs:element ref="inventory"/>
<xs:element ref="item"/>
<xs:element ref="item-select"/>
<xs:element ref="log"/>
<xs:element ref="map"/>
<xs:element ref="maze"/>
<xs:element ref="paths"/>
<xs:element ref="quest"/>
<xs:element ref="random"/>
<xs:element ref="ranged-defence"/>
<xs:element ref="replay"/>
<xs:element ref="restrict"/>
<xs:element ref="retain"/>
<xs:element ref="reverse"/>
<xs:element ref="select"/>
<xs:element ref="set"/>
<xs:element ref="steal"/>
<xs:element ref="store"/>
<xs:element ref="switch"/>
<xs:element ref="take"/>
<xs:element ref="transfer"/>
<xs:element ref="travel"/>
<xs:element ref="var-dump"/>
</xs:choice>
</xs:sequence>
</xs:group>
<xs:group name="textGroup">
<xs:sequence>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="a"/>
<xs:element ref="br"/>
<xs:element ref="cite"/>
<xs:element ref="div"/>
<xs:element ref="em"/>
<xs:element ref="img"/>
<xs:element ref="li"/>
<xs:element ref="ol"/>
<xs:element ref="p"/>
<xs:element ref="q"/>
<xs:element ref="span"/>
<xs:element ref="strong"/>
<xs:element ref="ul"/>
</xs:choice>
</xs:sequence>
</xs:group>
<!-- HTML-Elemente -->
<xs:element name="a">
<xs:complexType mixed="true">
<xs:attribute name="href" use="required" type="xs:anyURI"/>
<xs:attribute name="target" use="optional" type="sceneName"/>
</xs:complexType>
</xs:element>
<xs:element name="br">
<xs:complexType/>
</xs:element>
<xs:element name="cite">
<xs:complexType mixed="true">
<xs:sequence>
<xs:group ref="anyGroup" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="class" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="div">
<xs:complexType mixed="true">
<xs:sequence>
<xs:group ref="anyGroup" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="class" type="xs:string"/>
<xs:attribute name="style" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="em">
<xs:complexType mixed="true">
<xs:sequence>
<xs:group ref="anyGroup"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="img">
<xs:complexType>
<xs:attribute name="alt" use="optional" type="xs:string"/>
<xs:attribute name="title" use="optional" type="xs:string"/>
<xs:attribute name="src" use="required" type="xs:anyURI"/>
<xs:attribute name="style" use="optional" type="xs:string"/>
<xs:attribute name="width" use="optional" type="xs:int"/>
<xs:attribute name="height" use="optional" type="xs:int"/>
</xs:complexType>
</xs:element>
<xs:element name="li">
<xs:complexType mixed="true">
<xs:sequence minOccurs="1" maxOccurs="unbounded">
<xs:group ref="anyGroup"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="ul">
<xs:complexType>
<xs:sequence minOccurs="1" maxOccurs="unbounded">
<xs:element ref="li" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="has" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="random" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="replay" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="switch" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="ol">
<xs:complexType>
<xs:sequence minOccurs="1" maxOccurs="unbounded">
<xs:element ref="li" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="has" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="random" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="replay" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="switch" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="p">
<xs:complexType mixed="true">
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:group ref="anyGroup"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="q">
<xs:complexType mixed="true">
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:group ref="anyGroup"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="span">
<xs:complexType mixed="true">
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:group ref="anyGroup" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="class" type="xs:string"/>
<xs:attribute name="rel" type="xs:string"/>
<xs:attribute name="title" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="strong">
<xs:complexType mixed="true">
<xs:sequence>
<xs:group ref="anyGroup"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- AOQML-Tags -->
<xs:element name="action">
<xs:complexType>
<xs:attribute name="type" use="required" type="xs:string"/>
<xs:attribute name="duration" use="optional" type="xs:string"/>
<xs:attribute name="name" use="optional" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="add-EP">
<xs:complexType>
<xs:attribute name="val" use="required" type="intExpression"/>
<xs:attribute name="talent" use="optional" type="talentExpression"/>
<xs:attribute name="show" use="optional" type="showType"/>
</xs:complexType>
</xs:element>
<xs:element name="chat">
<xs:complexType mixed="true">
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element ref="say" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="lookAround" use="optional" type="boolExpression"/>
</xs:complexType>
</xs:element>
<xs:element name="damage">
<xs:complexType>
<xs:attribute name="val" use="required" type="intExpression"/>
<xs:attribute name="wounds" use="optional" type="boolExpression"/>
<xs:attribute name="RS" use="optional" type="xs:string"/>
<xs:attribute name="zone" use="optional" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="debug">
<xs:complexType mixed="true">
<xs:sequence>
<xs:group ref="anyGroup"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="say">
<xs:complexType mixed="true">
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:group ref="anyGroup"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="choice">
<xs:complexType mixed="true">
<xs:sequence>
<xs:group ref="anyGroup"/>
</xs:sequence>
<xs:attribute name="target" use="required" type="sceneExpression"/>
<xs:attribute name="confirm" use="optional" type="xs:string"/>
<xs:attribute name="enabled" use="optional" type="boolExpression"/>
<xs:attribute name="select-hero" use="optional" type="intExpression"/>
</xs:complexType>
</xs:element>
<xs:element name="countdown">
<xs:complexType mixed="true">
<xs:sequence>
<xs:group ref="anyGroup"/>
</xs:sequence>
<xs:attribute name="name" use="required" type="varExpression"/>
<xs:attribute name="nullable" use="optional" type="boolExpression"/>
<xs:attribute name="class" use="optional" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="function">
<xs:complexType>
<xs:attribute name="name" use="required" type="functionList"/>
<xs:attribute name="param1" use="optional" type="xs:string"/>
<xs:attribute name="param2" use="optional" type="xs:string"/>
<xs:attribute name="param3" use="optional" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="hero">
<xs:complexType>
<xs:attribute name="select" use="optional" type="heroSelectValues"/>
<xs:attribute name="by-challenge" use="optional" type="varExpression"/>
<xs:attribute name="by-talent" use="optional" type="talentExpression"/>
<xs:attribute name="by-attribute" use="optional" type="heroAttributesGetter"/>
<xs:attribute name="by-quality" use="optional" type="qualityValues"/>
<xs:attribute name="val" use="optional" type="xs:string"/>
<xs:attribute name="output" use="optional" type="heroOutputValues"/>
</xs:complexType>
</xs:element>
<xs:element name="select">
<xs:complexType>
<xs:attribute name="all" use="optional" type="boolExpression"/>
<xs:attribute name="role" use="optional" type="groupRoles"/>
<xs:attribute name="count" use="optional" type="intExpression"/>
<xs:attribute name="hero" use="optional" type="xs:string"/>
<xs:attribute name="by-talent" use="optional" type="xs:string"/>
<xs:attribute name="by-attribute" use="optional" type="xs:string"/>
<xs:attribute name="by-quality" use="optional" type="xs:string"/>
<xs:attribute name="by-name" use="optional" type="xs:string"/>
<xs:attribute name="by-item" use="optional" type="xs:string"/>
<xs:attribute name="val" use="optional" type="xs:string"/>
<xs:attribute name="min" use="optional" type="intExpression"/>
<xs:attribute name="max" use="optional" type="intExpression"/>
</xs:complexType>
</xs:element>
<xs:element name="paths">
<xs:complexType>
<xs:sequence>
<xs:element ref="path" minOccurs="1" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="from" use="optional" type="sceneExpression"/>
</xs:complexType>
</xs:element>
<xs:element name="path">
<xs:complexType mixed="true">
<xs:sequence>
<xs:group ref="anyGroup"/>
</xs:sequence>
<xs:attribute name="dir" use="required" type="direction"/>
<xs:attribute name="target" use="required" type="sceneExpression"/>
<xs:attribute name="enabled" use="optional" type="boolExpression"/>
<xs:attribute name="to" use="optional" type="sceneName"/>
</xs:complexType>
</xs:element>
<xs:element name="challenge">
<xs:complexType>
<xs:sequence minOccurs="1" maxOccurs="unbounded">
<xs:element ref="failure" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="success" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="talent" use="optional" type="talentExpression"/>
<xs:attribute name="quality" use="optional" type="qualityValues"/>
<xs:attribute name="name" use="optional" type="varExpression"/>
<xs:attribute name="scope" use="optional" type="scopeValues"/>
<xs:attribute name="mod" use="optional" type="intExpression"/>
<xs:attribute name="result" use="optional" type="xs:int"/>
<xs:attribute name="show" use="optional" type="showType"/>
<xs:attribute name="id" use="optional" type="xs:string"/>
<xs:attribute name="hero-quantity" use="optional" type="heroQuantityValues"/>
</xs:complexType>
</xs:element>
<xs:element name="failure">
<xs:complexType mixed="true">
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:group ref="anyGroup"/>
</xs:sequence>
<xs:attribute name="min" use="optional" type="intExpression"/>
<xs:attribute name="max" use="optional" type="intExpression"/>
<xs:attribute name="double" use="optional" type="doubleType"/>
<xs:attribute name="select-heroes" use="optional" type="boolExpression"/>
</xs:complexType>
</xs:element>
<xs:element name="success">
<xs:complexType mixed="true">
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:group ref="anyGroup"/>
</xs:sequence>
<xs:attribute name="min" use="optional" type="intExpression"/>
<xs:attribute name="max" use="optional" type="intExpression"/>
<xs:attribute name="double" use="optional" type="doubleType"/>
<xs:attribute name="select-heroes" use="optional" type="boolExpression"/>
</xs:complexType>
</xs:element>
<xs:element name="set">
<xs:complexType mixed="true">
<xs:attribute name="object" use="optional" type="objectTypes"/>
<xs:attribute name="scope" use="optional" type="scopeValues"/>
<xs:attribute name="attribute" use="optional" type="objectAttributesSetter"/>
<xs:attribute name="quality" use="optional" type="qualityValues"/>
<xs:attribute name="talent" use="optional" type="talentExpression"/>
<xs:attribute name="name" use="optional" type="varExpression"/>
<xs:attribute name="mode" use="optional" type="modeType"/>
<xs:attribute name="target" use="optional" type="xs:string"/>
<xs:attribute name="val" use="optional" type="xs:string"/>
<xs:attribute name="value" use="optional" type="xs:string"/>
<xs:attribute name="inc" use="optional" type="intExpression"/>
<xs:attribute name="dec" use="optional" type="intExpression"/>
<xs:attribute name="show" use="optional" type="showType"/>
<xs:attribute name="expire" use="optional" type="expireExpression"/>
</xs:complexType>
</xs:element>
<xs:element name="get">
<xs:complexType mixed="true">
<!-- TODO: eines der Attribute ist ein Muss -->
<xs:attribute name="attribute" use="optional" type="objectAttributesGetter"/>
<xs:attribute name="quality" use="optional" type="qualityValues"/>
<xs:attribute name="talent" use="optional" type="talentExpression"/>
<xs:attribute name="name" use="optional" type="varExpression"/>
<xs:attribute name="object" use="optional" type="objectTypes"/>
</xs:complexType>
</xs:element>
<xs:element name="has">
<xs:complexType>
<xs:sequence minOccurs="1" maxOccurs="unbounded">
<xs:element ref="failure" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="success" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<!-- TODO: exactly one of these four
is not possible!!!
http://stackoverflow.com/questions/386713/how-to-do-mutually-exclusive-attributes-in-xml-schema
-->
<xs:attribute name="item" use="optional" type="xs:string"/>
<xs:attribute name="equipped" use="optional" type="boolExpression"/>
<xs:attribute name="talent" use="optional" type="talentExpression"/>
<xs:attribute name="attribute" use="optional" type="heroAttributesGetter"/>
<xs:attribute name="quality" use="optional" type="qualityValues"/>
<xs:attribute name="name" use="optional" type="xs:string"/>
<xs:attribute name="companion-type" use="optional" type="xs:string"/>
<xs:attribute name="val" use="optional" type="xs:string"/>
<xs:attribute name="min" use="optional" type="intExpression"/>
<xs:attribute name="max" use="optional" type="intExpression"/>
<xs:attribute name="hero-quantity" use="optional" type="heroQuantityValues"/>
<xs:attribute name="companions-affected" use="optional" type="boolExpression"/>
<xs:attribute name="show" use="optional" type="showType"/>
<xs:attribute name="result" use="optional" type="xs:int"/>
</xs:complexType>
</xs:element>
<xs:element name="take">
<xs:complexType mixed="true">
<xs:sequence>
<xs:element ref="contains" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="item" use="optional" type="itemName"/>
<xs:attribute name="from" use="optional" type="varExpression"/>
<xs:attribute name="takeAllAtOnce" use="optional" type="boolExpression"/>
<xs:attribute name="allowAllItems" use="optional" type="boolExpression"/>
<xs:attribute name="immediately" use="optional" type="boolExpression"/>
<xs:attribute name="equip" use="optional" type="boolExpression"/>
<xs:attribute name="count" use="optional" type="intExpression"/>
<xs:attribute name="instance-item-id" use="optional" type="intExpression"/>
<xs:attribute name="max" use="optional" type="intExpression"/>
<xs:attribute name="quality" use="optional" type="intExpression"/>
<xs:attribute name="target" use="optional" type="sceneExpression"/>
<xs:attribute name="show" use="optional" type="showType"/>
</xs:complexType>
</xs:element>
<xs:element name="contains">
<xs:complexType mixed="true">
<xs:attribute name="item" use="required" type="itemName"/>
<xs:attribute name="count" use="optional" type="intExpression"/>
<xs:attribute name="quality" use="optional" type="intExpression"/>
</xs:complexType>
</xs:element>
<xs:element name="transfer">
<xs:complexType mixed="true">
<xs:attribute name="size" use="optional" type="intExpression"/>
<xs:attribute name="count" use="optional" type="intExpression"/>
<xs:attribute name="allowed" use="optional" type="xs:string"/>
<xs:attribute name="forbidden" use="optional" type="xs:string"/>
<xs:attribute name="whitelist" use="optional" type="xs:string"/>
<xs:attribute name="blacklist" use="optional" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="travel">
<xs:complexType mixed="true">
<xs:attribute name="destination" use="required" type="xs:string"/>
<xs:attribute name="mode" use="optional" type="xs:string"/>
<xs:attribute name="duration" use="optional" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="drop">
<xs:complexType mixed="true">
<xs:attribute name="item" use="optional" type="itemName"/>
<xs:attribute name="to" use="optional" type="varExpression"/>
<xs:attribute name="object" use="optional" type="objectTypes"/>
<xs:attribute name="except" use="optional" type="xs:string"/>
<xs:attribute name="target" use="optional" type="sceneExpression"/>
<xs:attribute name="count" use="optional" type="intExpressionOrAll"/>
<xs:attribute name="armor" use="optional" type="boolExpression"/>
<xs:attribute name="weapon" use="optional" type="boolExpression"/>
<xs:attribute name="equipped" use="optional" type="boolExpression"/>
<xs:attribute name="companions-affected" use="optional" type="boolExpression"/>
<xs:attribute name="show" use="optional" type="showType"/>
<xs:attribute name="whitelist" use="optional" type="xs:string"/>
<xs:attribute name="blacklist" use="optional" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="inventar">
<xs:complexType mixed="true">
<xs:sequence>
<xs:element ref="items" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="name" use="required" type="varExpression"/>
<xs:attribute name="scope" use="optional" type="scopeValues"/>
<xs:attribute name="reset" use="optional" type="boolExpression"/>
</xs:complexType>
</xs:element>
<xs:element name="inventory">
<xs:complexType mixed="true">
<xs:sequence>
<xs:element ref="items" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="name" use="required" type="varExpression"/>
<xs:attribute name="scope" use="optional" type="scopeValues"/>
<xs:attribute name="reset" use="optional" type="boolExpression"/>
</xs:complexType>
</xs:element>
<xs:element name="input">
<xs:complexType>
<xs:attribute name="name" use="required" type="varExpression"/>
<xs:attribute name="value" use="optional" type="varExpression"/>
<xs:attribute name="size" use="optional" type="intExpression"/>
</xs:complexType>
</xs:element>
<xs:element name="items">
<xs:complexType>
<xs:attribute name="item" use="optional" type="xs:string"/>
<xs:attribute name="tag" use="optional" type="xs:string"/>
<xs:attribute name="freq" use="optional" type="frequencyType"/>
<xs:attribute name="must" use="optional" type="itemProperties"/>
<xs:attribute name="mustnot" use="optional" type="itemProperties"/>
<xs:attribute name="cost_min" use="optional" type="intExpression"/>
<xs:attribute name="cost_max" use="optional" type="intExpression"/>
<xs:attribute name="name" use="optional" type="varExpression"/>
<xs:attribute name="count" use="optional" type="intExpression"/>
</xs:complexType>
</xs:element>
<xs:element name="item">
<xs:complexType>
<xs:attribute name="freq" use="optional" type="frequencyType"/>
<xs:attribute name="must" use="optional" type="itemProperties"/>
<xs:attribute name="mustnot" use="optional" type="itemProperties"/>
<xs:attribute name="cost_min" use="optional" type="intExpression"/>
<xs:attribute name="cost_max" use="optional" type="intExpression"/>
<xs:attribute name="name" use="optional" type="varExpression"/>
<xs:attribute name="tag" use="optional" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="item-select">
<xs:complexType>
<xs:attribute name="item" use="required" type="xs:string"/>
<xs:attribute name="target" use="required" type="sceneExpression"/>
<xs:attribute name="show" use="optional" type="itemSelectShowTypes"/>
<xs:attribute name="continue" use="optional" type="boolExpression"/>
</xs:complexType>
</xs:element>
<xs:element name="delay">
<xs:complexType>
<xs:attribute name="hours" use="required" type="intExpression"/>
</xs:complexType>
</xs:element>
<xs:element name="map">
<xs:complexType>
<xs:sequence>
<xs:element ref="go" minOccurs="1" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="src" use="required" type="xs:string"/>
<xs:attribute name="style" use="optional" type="xs:string"/>
<xs:attribute name="width" use="optional" type="intExpression"/>
<xs:attribute name="height" use="optional" type="intExpression"/>
</xs:complexType>
</xs:element>
<xs:element name="go">
<xs:complexType mixed="true">
<xs:attribute name="target" use="required" type="sceneExpression"/>
<xs:attribute name="coords" use="required" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="maze">
<xs:complexType>
<xs:attribute name="prefix" use="required" type="xs:string"/>
<xs:attribute name="postfix" use="required" type="xs:string"/>
<xs:attribute name="unknown" use="optional" type="xs:string"/>
<xs:attribute name="columns" use="required" type="xs:int"/>
<xs:attribute name="rows" use="required" type="xs:int"/>
<xs:attribute name="feed" use="optional" type="xs:int"/>
</xs:complexType>
</xs:element>
<xs:element name="if">
<xs:complexType>
<!-- exactly one of these -->
<xs:attribute name="name" use="optional" type="varExpression"/>
<xs:attribute name="attribute" use="optional" type="heroAttributesGetter"/>
<xs:attribute name="quality" use="optional" type="qualityValues"/>
<!-- exactly one of these / more to come ... -->
<xs:attribute name="equals" use="optional" type="xs:string"/>
<xs:attribute name="contains" use="optional" type="xs:string"/>
<!-- one ore more of these -->
<xs:attribute name="null" use="optional" type="xs:string"/>
<xs:attribute name="then" use="optional" type="xs:string"/>
<xs:attribute name="else" use="optional" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="switch">
<xs:complexType>
<xs:sequence minOccurs="1" maxOccurs="unbounded">
<xs:element ref="null" minOccurs="0" maxOccurs="1"/>
<xs:element ref="case" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="else" minOccurs="0" maxOccurs="1"/>
</xs:sequence>
<!-- TODO: exactly one of these -->
<xs:attribute name="attribute" use="optional" type="heroAttributesGetter"/>
<xs:attribute name="quality" type="qualityValues" use="optional"/>
<xs:attribute name="name" use="optional" type="varExpression"/>
<xs:attribute name="result" use="optional" type="xs:int"/>
</xs:complexType>
</xs:element>
<xs:element name="null">
<xs:complexType mixed="true">
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:group ref="plotGroup"/>
<xs:group ref="textGroup"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="case">
<xs:complexType mixed="true">
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:group ref="plotGroup"/>
<xs:group ref="textGroup"/>
</xs:sequence>
<xs:attribute name="name" use="optional" type="varExpression"/>
<xs:attribute name="value" use="optional" type="xs:string"/>
<xs:attribute name="val" use="optional" type="xs:string"/>
<xs:attribute name="min" use="optional" type="intExpression"/>
<xs:attribute name="max" use="optional" type="intExpression"/>
</xs:complexType>
</xs:element>
<xs:element name="else">
<xs:complexType mixed="true">
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:group ref="plotGroup"/>
<xs:group ref="textGroup"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="include">
<xs:complexType>
<xs:attribute name="target" use="required" type="sceneExpression"/>
</xs:complexType>
</xs:element>
<xs:element name="restrict">
<xs:complexType mixed="true">
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:group ref="anyGroup"/>
</xs:sequence>
<xs:attribute name="duration" use="optional" type="expireExpression"/>
<xs:attribute name="id" use="optional" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="retain">
<xs:complexType mixed="true">
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:group ref="anyGroup"/>
</xs:sequence>
<xs:attribute name="name" use="required" type="varExpression"/>
<xs:attribute name="id" use="required" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="reverse">
<xs:complexType>
</xs:complexType>
</xs:element>
<xs:element name="replay">
<xs:complexType mixed="true">
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:group ref="anyGroup"/>
</xs:sequence>
<xs:attribute name="name" use="required" type="varExpression"/>
</xs:complexType>
</xs:element>
<xs:element name="eval">
<xs:complexType mixed="true">
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:group ref="plotGroup"/>
</xs:sequence>
<xs:attribute name="name" use="optional" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="steal">
<xs:complexType>
<xs:attribute name="companions" use="required" type="intExpressionOrAll"/>
<xs:attribute name="show" use="optional" type="showType"/>
</xs:complexType>
</xs:element>
<xs:element name="store">
<xs:complexType mixed="true">
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:group ref="anyGroup"/>
</xs:sequence>
<xs:attribute name="name" use="required" type="xs:string"/>
<!-- expire -->
<xs:attribute name="expire" use="optional" type="expireExpression"/>
<xs:attribute name="inc-expire" use="optional" type="expireExpression"/>
<xs:attribute name="scope" use="optional" type="scopeValues"/>
</xs:complexType>
</xs:element>
<xs:element name="fetch">
<xs:complexType mixed="true">
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:group ref="anyGroup"/>
</xs:sequence>
<xs:attribute name="name" use="required" type="varExpression"/>
<xs:attribute name="initcaps" use="optional" type="boolExpression"/>
</xs:complexType>
</xs:element>
<xs:element name="quest">
<xs:complexType>
<xs:attribute name="status" use="required" type="questStatus"/>
<xs:attribute name="frequency" use="optional" type="frequencyType"/>
<xs:attribute name="withhold" use="optional" type="expireExpression"/>
<xs:attribute name="target" use="optional" type="sceneExpression"/>
<xs:attribute name="note" use="optional" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="random">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="2" maxOccurs="unbounded" ref="case"/>
</xs:sequence>
<xs:attribute name="count" use="optional" type="intExpression"/>
<xs:attribute name="result" use="optional" type="intExpression"/>
</xs:complexType>
</xs:element>
<xs:element name="ranged-defence">
<xs:complexType mixed="true">
<xs:sequence minOccurs="1" maxOccurs="unbounded">
<xs:element ref="npcRanger"/>
</xs:sequence>
<xs:attribute name="type" use="optional" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="npcRanger">
<xs:complexType>
<xs:attribute name="npcid" use="required" type="idType"/>
<xs:attribute name="weapon" use="required" type="itemName"/>
<xs:attribute name="bullet" use="optional" type="itemName"/>
<xs:attribute name="precision" use="required" type="intExpression"/>
<xs:attribute name="shots" use="optional" type="intExpression"/>
<xs:attribute name="distance" use="optional" type="intExpression"/>
<xs:attribute name="name" use="optional" type="xs:string"/>
<xs:attribute name="gender" use="optional" type="genderType"/>
</xs:complexType>
</xs:element>
<xs:element name="npc">
<xs:complexType>
<xs:attribute name="npcid" use="required" type="idType"/>
<xs:attribute name="npctype" use="optional" type="xs:string"/>
<xs:attribute name="name" use="optional" type="xs:string"/>
<xs:attribute name="gender" use="optional" type="genderType"/>
<xs:attribute name="weapon" use="optional" type="itemName"/>
<xs:attribute name="lefthand" use="optional" type="itemName"/>
<xs:attribute name="enabled" use="optional" type="boolExpression"/>
<xs:attribute name="escape" use="optional" type="boolExpression"/>
<xs:attribute name="brawl" use="optional" type="boolExpression"/>
<xs:attribute name="surrender-below" use="optional" type="intExpression"/>
<xs:attribute name="wounds" use="optional" type="intExpression"/>
<xs:attribute name="LEP" use="optional" type="intExpression"/>
<xs:attribute name="AUP" use="optional" type="intExpression"/>
<xs:attribute name="BE" use="optional" type="intExpression"/>
<xs:attribute name="RS" use="optional" type="intExpression"/>
<xs:attribute name="ini" use="optional" type="intExpression"/>
<xs:attribute name="id" use="optional" type="xs:string"/>
<xs:attribute name="follows" use="optional" type="xs:string"/>
<xs:attribute name="enter-in-round" use="optional" type="intExpression"/>
</xs:complexType>
</xs:element>
<xs:element name="fight">
<xs:complexType mixed="true">
<xs:sequence>
<xs:element name="friends" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="npc"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="rivals" minOccurs="1" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="unbounded" ref="npc"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="victory" minOccurs="1">
<xs:complexType mixed="true">
<xs:sequence maxOccurs="unbounded" minOccurs="1">
<xs:group ref="anyGroup"/>
</xs:sequence>
<xs:attribute name="takeDroppedWeapons" type="boolExpression" use="optional"/>
</xs:complexType>
</xs:element>
<xs:element name="escape" minOccurs="1">
<xs:complexType mixed="true">
<xs:sequence maxOccurs="unbounded" minOccurs="1">
<xs:group ref="anyGroup"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="defeat" minOccurs="1">
<xs:complexType mixed="true">
<xs:sequence maxOccurs="unbounded" minOccurs="1">
<xs:group ref="anyGroup"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="escape" use="optional" type="boolExpression"/>
<xs:attribute name="brawl" use="optional" type="boolExpression"/>
</xs:complexType>
</xs:element>
<xs:element name="var-dump">
<xs:complexType>
<xs:attribute name="scene" use="optional" type="boolExpression"/>
<xs:attribute name="quest" use="optional" type="boolExpression"/>
<xs:attribute name="hero" use="optional" type="boolExpression"/>
<xs:attribute name="global" use="optional" type="boolExpression"/>
</xs:complexType>
</xs:element>
<xs:element name="log">
<xs:complexType mixed="true">
<xs:sequence>
<xs:group ref="anyGroup"/>
</xs:sequence>
<xs:attribute name="file" use="optional" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="for">
<xs:complexType mixed="true">
<xs:sequence>
<xs:group ref="anyGroup"/>
</xs:sequence>
<xs:attribute name="all" use="required" type="xs:string"/>
<xs:attribute name="name" use="required" type="xs:string"/>
</xs:complexType>
</xs:element>
<!-- Wertebereiche/Typen -->
<xs:simpleType name="heroAttributesSetter">
<xs:restriction base="xs:string">
<xs:enumeration value="site"/>
<xs:enumeration value="wounds"/>
<xs:enumeration value="EP"/>
<xs:enumeration value="LEP"/>
<xs:enumeration value="AUP"/>
<xs:enumeration value="ERP"/>
<xs:enumeration value="cash"/>
<xs:enumeration value="fame"/>
<xs:enumeration value="location"/>
<xs:enumeration value="location_id"/>
<xs:enumeration value="unterwegs"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="heroAttributesGetter">
<xs:restriction base="xs:string">
<xs:enumeration value="anzahl_begleiter"/>
<xs:enumeration value="anzahl_diebe"/>
<xs:enumeration value="anzahl_gruppenmitglieder"/>
<xs:enumeration value="anzahl_kaempfer"/>
<xs:enumeration value="anzahl_mitreisende"/>
<xs:enumeration value="arbeitet"/>
<xs:enumeration value="AUP"/>
<xs:enumeration value="AUPmax"/>
<xs:enumeration value="BE"/>
<xs:enumeration value="cash"/>
<xs:enumeration value="EP"/>
<xs:enumeration value="ERP"/>
<xs:enumeration value="ERPmax"/>
<xs:enumeration value="fame"/>
<xs:enumeration value="gender"/>
<xs:enumeration value="gesinnung"/>
<xs:enumeration value="gottheit"/>
<xs:enumeration value="height"/>
<xs:enumeration value="held_id"/>
<xs:enumeration value="humorig"/>
<xs:enumeration value="ini_basis"/>
<xs:enumeration value="kampf"/>
<xs:enumeration value="kampfstatus"/>
<xs:enumeration value="KS"/>
<xs:enumeration value="kultur"/>
<xs:enumeration value="kultur_id"/>
<xs:enumeration value="LEP"/>
<xs:enumeration value="LEPmax"/>
<xs:enumeration value="location"/>
<xs:enumeration value="location_id"/>
<xs:enumeration value="monat"/>
<xs:enumeration value="moral"/>
<xs:enumeration value="name"/>
<xs:enumeration value="nick"/>
<xs:enumeration value="pantheon"/>
<xs:enumeration value="profession"/>
<xs:enumeration value="profession_id"/>
<xs:enumeration value="race"/>
<xs:enumeration value="rasse_id"/>
<xs:enumeration value="reiseart"/>
<xs:enumeration value="reisetag"/>
<xs:enumeration value="room"/>
<xs:enumeration value="RS_Bauch"/>
<xs:enumeration value="RS_Brust"/>
<xs:enumeration value="RS_Kopf"/>
<xs:enumeration value="RS_linkerArm"/>
<xs:enumeration value="RS_linkesBein"/>
<xs:enumeration value="RS_Rücken"/>
<xs:enumeration value="RS_rechterArm"/>
<xs:enumeration value="RS_rechtesBein"/>
<xs:enumeration value="scene"/>
<xs:enumeration value="tag"/>
<xs:enumeration value="tragkraft"/>
<xs:enumeration value="traglast"/>
<xs:enumeration value="unterwegs"/>
<xs:enumeration value="urgott"/>
<xs:enumeration value="volk"/>
<xs:enumeration value="volk_id"/>
<xs:enumeration value="vorgehen"/>
<xs:enumeration value="waffe"/>
<xs:enumeration value="waffe_id"/>
<xs:enumeration value="weight"/>
<xs:enumeration value="welpenschutz"/>
<xs:enumeration value="wounds"/>
<xs:enumeration value="ort_ziel"/>
<xs:enumeration value="ort_start"/>
<xs:enumeration value="weg_ankunft"/>
<xs:enumeration value="weg_restzeit"/>
<xs:enumeration value="weg_art"/>
<xs:enumeration value="weg_art_id"/>
<xs:enumeration value="weg_klasse"/>
<xs:enumeration value="weg_klasse_id"/>
<xs:enumeration value="weg_vegetation"/>
<xs:enumeration value="weg_vegetation_id"/>
<xs:enumeration value="weg_handelszone"/>
<xs:enumeration value="weg_handelszone_kuerzel"/>
<xs:enumeration value="weg_handelszone_id"/>
<xs:enumeration value="weg_von"/>
<xs:enumeration value="weg_von_einwohner"/>
<xs:enumeration value="weg_von_markt"/>
<xs:enumeration value="weg_von_belebt"/>
<xs:enumeration value="weg_von_hafen"/>
<xs:enumeration value="weg_von_staat"/>
<xs:enumeration value="weg_von_staat_id"/>
<xs:enumeration value="weg_von_staatenbund"/>
<xs:enumeration value="weg_von_staatenbund_id"/>
<xs:enumeration value="weg_von_vegetation"/>
<xs:enumeration value="weg_von_vegetation_id"/>
<xs:enumeration value="weg_von_handelszone"/>
<xs:enumeration value="weg_von_handelszone_id"/>
<xs:enumeration value="weg_von_handelszone_kuerzel"/>
<xs:enumeration value="weg_nach"/>
<xs:enumeration value="weg_nach_einwohner"/>
<xs:enumeration value="weg_nach_markt"/>
<xs:enumeration value="weg_nach_belebt"/>
<xs:enumeration value="weg_nach_hafen"/>
<xs:enumeration value="weg_nach_staat"/>
<xs:enumeration value="weg_nach_staat_id"/>
<xs:enumeration value="weg_nach_staatenbund"/>
<xs:enumeration value="weg_nach_staatenbund_id"/>
<xs:enumeration value="weg_nach_vegetation"/>
<xs:enumeration value="weg_nach_vegetation_id"/>
<xs:enumeration value="weg_nach_handelszone"/>
<xs:enumeration value="weg_nach_handelszone_id"/>
<xs:enumeration value="weg_nach_handelszone_kuerzel"/>
<xs:enumeration value="site"/>
<xs:enumeration value="site_einwohner"/>
<xs:enumeration value="site_markt"/>
<xs:enumeration value="site_belebt"/>
<xs:enumeration value="site_hafen"/>
<xs:enumeration value="site_staat"/>
<xs:enumeration value="site_staat_id"/>
<xs:enumeration value="site_staatenbund"/>
<xs:enumeration value="site_staatenbund_id"/>
<xs:enumeration value="site_vegetation"/>
<xs:enumeration value="site_vegetation_id"/>
<xs:enumeration value="site_handelszone"/>
<xs:enumeration value="site_handelszone_id"/>
<xs:enumeration value="site_handelszone_kuerzel"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="talentValues">
<xs:restriction base="xs:string">
<!-- Fernwaffen -->
<xs:enumeration value="Armbrüste"/>
<xs:enumeration value="Blasrohre"/>
<xs:enumeration value="Bögen"/>
<xs:enumeration value="Chakrams"/>
<xs:enumeration value="Schleudern"/>
<xs:enumeration value="Wurfbeile"/>
<xs:enumeration value="Wurfspeere"/>
<xs:enumeration value="Schusswaffen"/>
<xs:enumeration value="Schiffsgeschütze"/>
<xs:enumeration value="Wurfmesser"/>
<xs:enumeration value="Katapulte/Ballisten"/>
<!-- Gesellschaft -->
<xs:enumeration value="Seelenheilung"/>
<xs:enumeration value="Menschenkenntnis"/>
<xs:enumeration value="Überreden"/>
<xs:enumeration value="Einschüchtern"/>
<xs:enumeration value="Schauspielerei"/>
<xs:enumeration value="Schriftstellerei"/>
<xs:enumeration value="Verführen"/>
<xs:enumeration value="Etikette"/>
<xs:enumeration value="Gassenwissen"/>
<xs:enumeration value="Lehren"/>
<xs:enumeration value="Verkleiden"/>
<xs:enumeration value="Überzeugen"/>
<xs:enumeration value="Falschspiel"/>
<xs:enumeration value="Diplomatie"/>
<xs:enumeration value="Lippen lesen"/>
<xs:enumeration value="Feilschen"/>
<xs:enumeration value="Rhetorik"/>
<xs:enumeration value="Galanterie"/>
<xs:enumeration value="Dichtkunst"/>
<xs:enumeration value="Verbergen"/>
<xs:enumeration value="Verhören"/>
<!-- Handwerk/Berufsfertigkeiten -->
<xs:enumeration value="Bäcker"/>
<xs:enumeration value="Schusswaffenbau"/>
<xs:enumeration value="Fälschen"/>
<xs:enumeration value="Armbruster"/>
<xs:enumeration value="Fallen entschärfen"/>
<xs:enumeration value="Erste Hilfe"/>
<xs:enumeration value="Stehlen"/>
<xs:enumeration value="Wundenheilung"/>
<xs:enumeration value="Holzbearbeitung"/>
<xs:enumeration value="Kochen"/>
<xs:enumeration value="Lederarbeiten"/>
<xs:enumeration value="Zeichnen"/>
<xs:enumeration value="Schneidern"/>
<xs:enumeration value="Landwirtschaft"/>
<xs:enumeration value="Alchimie"/>
<xs:enumeration value="Bergbau"/>
<xs:enumeration value="Bogenbau"/>
<xs:enumeration value="Brauen"/>
<xs:enumeration value="Drucker"/>
<xs:enumeration value="Feinmechanik"/>
<xs:enumeration value="Fleischer"/>
<xs:enumeration value="Gerben/Kürschnern"/>
<xs:enumeration value="Glaskunst"/>
<xs:enumeration value="Handel"/>
<xs:enumeration value="Hauswirtschaft"/>
<xs:enumeration value="Instrumentenbau"/>
<xs:enumeration value="Kristallzucht"/>
<xs:enumeration value="Maurer"/>
<xs:enumeration value="Metallguss"/>
<xs:enumeration value="Alkohol brennen"/>
<xs:enumeration value="Seefahrt"/>
<xs:enumeration value="Seiler"/>
<xs:enumeration value="Steinmetz"/>
<xs:enumeration value="Steinschneider"/>
<xs:enumeration value="Stellmacher"/>
<xs:enumeration value="Viehzucht"/>
<xs:enumeration value="Winzer"/>
<xs:enumeration value="Zimmermann"/>
<xs:enumeration value="Boote fahren"/>
<xs:enumeration value="Stoffe Färben"/>
<xs:enumeration value="Fahrzeug lenken"/>
<xs:enumeration value="Feuersteinbearbeitung"/>
<xs:enumeration value="Schmiedekunst"/>
<xs:enumeration value="Giftheilung"/>
<xs:enumeration value="Krankheitsheilung"/>
<xs:enumeration value="Kartografie"/>
<xs:enumeration value="Musik"/>
<xs:enumeration value="Schlösser öffnen"/>
<xs:enumeration value="Tätowieren"/>
<xs:enumeration value="Töpfern"/>
<xs:enumeration value="Webkunst"/>
<xs:enumeration value="Bootsbau/Schiffbau"/>
<!-- Nahkampfwaffen -->
<xs:enumeration value="Dolche"/>
<xs:enumeration value="Wuchtwaffen"/>
<xs:enumeration value="Raufen"/>
<xs:enumeration value="Ringen"/>
<xs:enumeration value="Säbel"/>
<xs:enumeration value="Anderthalbhänder"/>
<xs:enumeration value="Fechtwaffen"/>
<xs:enumeration value="Stangenwaffen"/>
<xs:enumeration value="Kettenstäbe"/>
<xs:enumeration value="Kettenwaffen"/>
<xs:enumeration value="Schwerter"/>
<xs:enumeration value="Speere"/>
<xs:enumeration value="Stäbe"/>
<xs:enumeration value="Zweihandflegel"/>
<xs:enumeration value="Zweihandwuchtwaffen"/>
<xs:enumeration value="Zweihandklingen"/>
<xs:enumeration value="Pykmei"/>
<xs:enumeration value="Etarak"/>
<!-- Körperlich -->
<xs:enumeration value="Wache halten"/>
<xs:enumeration value="Geländelauf"/>
<xs:enumeration value="Springen"/>
<xs:enumeration value="Tauchen"/>
<xs:enumeration value="Athletik"/>
<xs:enumeration value="Klettern"/>
<xs:enumeration value="Körperbeherrschung"/>
<xs:enumeration value="Reiten"/>
<xs:enumeration value="Schleichen"/>
<xs:enumeration value="Schwimmen"/>
<xs:enumeration value="Selbstbeherrschung"/>
<xs:enumeration value="Verstecken"/>
<xs:enumeration value="Singen"/>
<xs:enumeration value="Sinnenschärfe"/>
<xs:enumeration value="Tanzen"/>
<xs:enumeration value="Zechen"/>
<xs:enumeration value="Akrobatik"/>
<xs:enumeration value="Fliegen"/>
<xs:enumeration value="Gaukeleien"/>
<xs:enumeration value="Skifahren"/>
<xs:enumeration value="Stimmen Imitieren"/>
<xs:enumeration value="Werfen"/>
<!-- Natur -->
<xs:enumeration value="Umgang mit Tieren"/>
<xs:enumeration value="Spurenlesen"/>
<xs:enumeration value="Wildnisleben"/>
<xs:enumeration value="Orientierung"/>
<xs:enumeration value="Ansitzjagd"/>
<xs:enumeration value="Kräuter suchen"/>
<xs:enumeration value="Nahrung sammeln"/>
<xs:enumeration value="Pirschjagd"/>
<xs:enumeration value="Fallenstellen"/>
<xs:enumeration value="Fesseln/Entfesseln"/>
<xs:enumeration value="Fischen"/>
<xs:enumeration value="Wettervorhersage"/>
<xs:enumeration value="Tierheilkunde"/>
<!--Schriften -->
<xs:enumeration value="Altnordske Runen"/>
<xs:enumeration value="Arcano"/>
<xs:enumeration value="Altelfische Zeichen"/>
<xs:enumeration value="Irrza"/>
<xs:enumeration value="Sadhische Runen"/>
<xs:enumeration value="Hiro-echuru"/>
<xs:enumeration value="Nordahejmrunen"/>
<xs:enumeration value="Auretin"/>
<xs:enumeration value="Elfische Zeichen"/>
<xs:enumeration value="Imperiale Zeichen"/>
<xs:enumeration value="Glypho"/>
<xs:enumeration value="Zwergenrunen"/>
<xs:enumeration value="Inoda-echuru"/>
<xs:enumeration value="Anbayjad"/>
<xs:enumeration value="Bayjad"/>
<xs:enumeration value="Teiko-echuru"/>
<xs:enumeration value="Thalassa B"/>
<xs:enumeration value="Magiraglyph"/>
<xs:enumeration value="Naàhn Hieroglyphen"/>
<xs:enumeration value="Xeanhatl Hieroglyphen"/>
<xs:enumeration value="Thalsche Zeichen"/>
<xs:enumeration value="Drak"/>
<xs:enumeration value="Tekka-echuru"/>
<xs:enumeration value="Thalassa A"/>
<!-- Sprachen -->
<xs:enumeration value="Altes Zwergisch"/>
<xs:enumeration value="Elbisch"/>
<xs:enumeration value="Signalo"/>
<xs:enumeration value="Aurentum"/>
<xs:enumeration value="Aurento"/>
<xs:enumeration value="Drachisch"/>
<xs:enumeration value="Charukom"/>
<xs:enumeration value="Wolsch"/>
<xs:enumeration value="Imperial"/>
<xs:enumeration value="Goblinisch"/>
<xs:enumeration value="Thalsch"/>
<xs:enumeration value="Elfisch"/>
<xs:enumeration value="Koboldisch"/>
<xs:enumeration value="Mahud"/>
<xs:enumeration value="Avarun"/>
<xs:enumeration value="Orkisch"/>
<xs:enumeration value="Hochorkisch"/>
<xs:enumeration value="Jotisch"/>
<xs:enumeration value="Zwergisch"/>
<xs:enumeration value="ZheeZ"/>
<xs:enumeration value="Tekka"/>
<xs:enumeration value="Altnordsk"/>
<xs:enumeration value="Nordahejmisch"/>
<xs:enumeration value="Trollsch"/>
<xs:enumeration value="Bajidai"/>
<xs:enumeration value="Altes Bajida"/>
<xs:enumeration value="Eskalron"/>
<xs:enumeration value="Magira"/>
<xs:enumeration value="Tryl"/>
<xs:enumeration value="Gûi"/>
<xs:enumeration value="Naàhn"/>
<xs:enumeration value="Hiro"/>
<xs:enumeration value="Altra"/>
<xs:enumeration value="Teiko"/>
<xs:enumeration value="Oda"/>
<xs:enumeration value="Xeanhatl"/>
<xs:enumeration value="Urelfisch"/>
<xs:enumeration value="Hochelfen"/>
<xs:enumeration value="Darkanisch"/>
<xs:enumeration value="Sadhisch"/>
<!-- Wissen -->
<xs:enumeration value="Theologie"/>
<xs:enumeration value="Mathematik"/>
<xs:enumeration value="Legenden"/>
<xs:enumeration value="Anatomie"/>
<xs:enumeration value="Architektur"/>
<xs:enumeration value="Hüttenkunde"/>
<xs:enumeration value="Spiele"/>
<xs:enumeration value="Geografie"/>
<xs:enumeration value="Historie"/>
<xs:enumeration value="Gesteinskunde"/>
<xs:enumeration value="Heraldik"/>
<xs:enumeration value="Kriegskunst"/>
<xs:enumeration value="Kryptographie"/>
<xs:enumeration value="Magietheorie"/>
<xs:enumeration value="Mechanik"/>
<xs:enumeration value="Pflanzenkunde"/>
<xs:enumeration value="Philosophie"/>
<xs:enumeration value="Rechtskunde"/>
<xs:enumeration value="Wert schätzen"/>
<xs:enumeration value="Sprachenkunde"/>
<xs:enumeration value="Politik"/>
<xs:enumeration value="Astronomie"/>
<xs:enumeration value="Tierkunde"/>
<xs:enumeration value="Navigation"/>
<xs:enumeration value="Okkultismus"/>
<xs:enumeration value="Bibliothekskunde"/>
<xs:enumeration value="Archäologie"/>
<xs:enumeration value="Völkerkunde"/>
<xs:enumeration value="Bürokratie"/>
<xs:enumeration value="Giftkunde"/>
<!-- reine AT-Kampftechniken -->
<xs:enumeration value="Lanzenreiten"/>
<xs:enumeration value="Peitsche"/>
<!-- Gaben -->
<xs:enumeration value="Magiegespür"/>
<xs:enumeration value="Empathie"/>
<xs:enumeration value="Geräuschhexerei"/>
<xs:enumeration value="Kräfteschub"/>
<xs:enumeration value="Talentschub"/>
<xs:enumeration value="Tierempathie"/>
<xs:enumeration value="Gefahreninstinkt"/>
<xs:enumeration value="Zwergennase"/>
<xs:enumeration value="Prophezeien"/>
<!-- Meta -->
<xs:enumeration value="Kampf"/>
<xs:enumeration value="Fernkampf"/>
<xs:enumeration value="Medizin"/>
<xs:enumeration value="Lesen/Schreiben"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="qualityValues">
<xs:restriction base="xs:string">
<xs:enumeration value="MU"/>
<xs:enumeration value="IQ"/>
<xs:enumeration value="WI"/>
<xs:enumeration value="IN"/>
<xs:enumeration value="CH"/>
<xs:enumeration value="GE"/>
<xs:enumeration value="FF"/>
<xs:enumeration value="ST"/>
<xs:enumeration value="KO"/>
<xs:enumeration value="AUSWEICHEN"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="questStatus">
<xs:restriction base="xs:string">
<xs:enumeration value="continue"/>
<xs:enumeration value="rejected"/>
<xs:enumeration value="running"/>
<xs:enumeration value="pending"/>
<xs:enumeration value="ended"/>
</xs:restriction>
</xs:simpleType>
<!-- numerical variances, implemented as random values -->
<xs:simpleType name="asterix">
<xs:restriction base="xs:string">
<xs:pattern value="\*"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="randomarea">
<xs:restriction base="xs:string">
<xs:pattern value="(\-)?\d+\.\.\.\d+"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="dice">
<xs:restriction base="xs:string">
<xs:pattern value="$\[\d+W\d+([\+\-]\d+)?\]"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="db">
<xs:restriction base="xs:string">
<xs:pattern value="$\(.+\)"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="varName">
<xs:restriction base="xs:string">
<xs:pattern value="[A-z0-9_\-/:#]+"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="itemName">
<xs:restriction base="xs:string">
<!-- das erste Zeichen darf keine Zahl sein! -->
<xs:pattern value="[A-z#$%\*](.*)"/>
<xs:minLength value="1"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="variable">
<xs:restriction base="xs:string">
<xs:pattern value="$\{[A-z0-9_\-/:#]+\}"/>
<xs:minLength value="2"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="boolExpression">
<!-- <xs:restriction base="xs:boolean"/> but only after evaluating ... and $... -->
<xs:union memberTypes="xs:boolean variable"/>
</xs:simpleType>
<xs:simpleType name="varExpression">
<!-- <xs:restriction base="xs:boolean"/> but only after evaluating ... and $... -->
<xs:union memberTypes="varName variable"/>
</xs:simpleType>
<xs:simpleType name="intExpression">
<!-- <xs:restriction base="xs:int"/> but only after evaluating ... and $... -->
<xs:union memberTypes="xs:int randomarea dice db variable"/>
</xs:simpleType>
<xs:simpleType name="intExpressionOrAll">
<!-- <xs:restriction base="xs:int"/> but only after evaluating *, ... and $... -->
<xs:union memberTypes="xs:int asterix randomarea dice db variable"/>
</xs:simpleType>
<xs:simpleType name="talentExpression">
<!-- <xs:restriction base="talentValue"/> but only after $... evaluation -->
<xs:union memberTypes="talentValues variable"/>
</xs:simpleType>
<xs:simpleType name="doubleType">
<xs:restriction base="xs:string">
<xs:enumeration value="double"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="showType">
<xs:restriction base="xs:string">
<xs:enumeration value="none"/>
<xs:enumeration value="result"/>
<xs:enumeration value="challenge"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="genderType">
<xs:union memberTypes="genderValues variable"/>
</xs:simpleType>
<xs:simpleType name="genderValues">
<xs:restriction base="xs:string">
<xs:enumeration value="male"/>
<xs:enumeration value="female"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="idType">
<xs:union memberTypes="idTypeValues variable"/>
</xs:simpleType>
<xs:simpleType name="idTypeValues">
<xs:restriction base="xs:string">
<!-- it should support numbers and the combination with | (or) -->
<xs:pattern value="(\d+)(( )?\|( )?\d+)*"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="sceneName">
<xs:restriction base="xs:string">
<xs:pattern value="[a-zA-Z0-9\._\-/]+"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="sceneExpression">
<!-- <xs:restriction base="sceneName"/> but only after $... evaluation -->
<xs:union memberTypes="sceneName variable"/>
</xs:simpleType>
<xs:simpleType name="direction">
<xs:restriction base="xs:string">
<xs:enumeration value="north"/>
<xs:enumeration value="northeast"/>
<xs:enumeration value="east"/>
<xs:enumeration value="southeast"/>
<xs:enumeration value="south"/>
<xs:enumeration value="southwest"/>
<xs:enumeration value="west"/>
<xs:enumeration value="northwest"/>
<xs:enumeration value="N"/>
<xs:enumeration value="NE"/>
<xs:enumeration value="E"/>
<xs:enumeration value="SE"/>
<xs:enumeration value="S"/>
<xs:enumeration value="SW"/>
<xs:enumeration value="W"/>
<xs:enumeration value="NW"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="expireExpression">
<xs:union memberTypes="expireValue expireValue2 expireVariable"/>
</xs:simpleType>
<xs:simpleType name="expireValue">
<xs:restriction base="xs:string">
<xs:pattern value="[0-9]+[dDhH]"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="expireValue2">
<xs:restriction base="xs:string">
<xs:pattern value="[0-9]+( )?((day)|(days)|(hour)|(hours))"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="expireVariable">
<xs:restriction base="xs:string">
<xs:pattern value="$\{[A-z0-9#_\-/:]+\}[dhDH]"/>
<xs:minLength value="2"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="frequencyType">
<xs:restriction base="xs:string">
<xs:enumeration value="oft"/>
<xs:enumeration value="selten"/>
<xs:enumeration value="rar"/>
<xs:enumeration value="nie"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="modeType">
<xs:restriction base="xs:string">
<xs:enumeration value="temporary"/>
<xs:enumeration value="permanent"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="itemProperties">
<xs:restriction base="xs:string">
<xs:pattern value="((magisch)|(geweiht)|(daemon)|(transportmittel)|(exotisch)|(wertgegenstand)|(lebendig)|(kunst)|(werkzeug)|(handwerk)|(spielbar)|(lesbar)|(natur)|(medizinisch)|(tragbar)|(meeresbezogen)|(pulver))(( )?\|( )?((magisch)|(geweiht)|(daemon)|(transportmittel)|(exotisch)|(wertgegenstand)|(lebendig)|(kunst)|(werkzeug)|(handwerk)|(spielbar)|(lesbar)|(natur)|(medizinisch)|(tragbar)|(meeresbezogen)|(pulver)))*"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="scopeValues">
<xs:restriction base="xs:string">
<xs:enumeration value="scene"/>
<xs:enumeration value="quest"/>
<xs:enumeration value="dungeon"/>
<xs:enumeration value="hero"/>
<xs:enumeration value="global"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="groupRoles">
<xs:restriction base="xs:string">
<xs:enumeration value="*"/>
<xs:enumeration value="all"/>
<xs:enumeration value="Anführer"/>
<xs:enumeration value="Kämpfer"/>
<xs:enumeration value="Dieb"/>
<xs:enumeration value="Mitreisender"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="heroQuantityValues">
<xs:restriction base="xs:string">
<xs:enumeration value="1"/>
<xs:enumeration value="2"/>
<xs:enumeration value="3"/>
<xs:enumeration value="4"/>
<xs:enumeration value="all"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="heroSelectValues">
<xs:restriction base="xs:string">
<xs:enumeration value="worst"/>
<xs:enumeration value="best"/>
<xs:enumeration value="random"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="heroOutputValues">
<xs:restriction base="xs:string">
<xs:enumeration value="name"/>
<xs:enumeration value="id"/>
</xs:restriction>
</xs:simpleType>
<!-- abfragbare Attribute der Taverne -->
<xs:simpleType name="taverneAttributesGetter">
<xs:restriction base="xs:string">
<xs:enumeration value="quality"/>
<xs:enumeration value="preis"/>
<xs:enumeration value="schlafplaetze"/>
<xs:enumeration value="name"/>
<xs:enumeration value="beschreibung"/>
</xs:restriction>
</xs:simpleType>
<!-- änderbare Attribute der Taverne -->
<xs:simpleType name="taverneAttributesSetter">
<xs:restriction base="xs:string">
<!-- bisher nichts implementiert -->
</xs:restriction>
</xs:simpleType>
<!-- abfragbare Attribute eines Items -->
<xs:simpleType name="itemAttributesGetter">
<xs:restriction base="xs:string">
<xs:enumeration value="quality"/>
<xs:enumeration value="name"/>
<xs:enumeration value="instance_id"/>
</xs:restriction>
</xs:simpleType>
<!-- änderbare Attribute eines Items -->
<xs:simpleType name="itemAttributesSetter">
<xs:restriction base="xs:string">
<xs:enumeration value="quality"/>
</xs:restriction>
</xs:simpleType>
<!-- abfragbare Attribute eines Ordenshauses -->
<xs:simpleType name="ordenshausAttributesGetter">
<xs:restriction base="xs:string">
<xs:enumeration value="anwesende_helden"/>
<xs:enumeration value="flaeche_bebaut"/>
<xs:enumeration value="flaeche_gesamt"/>
<xs:enumeration value="flaeche_verfuegbar"/>
<xs:enumeration value="grund_id"/>
<xs:enumeration value="schatz"/>
<xs:enumeration value="schatz_max"/>
</xs:restriction>
</xs:simpleType>
<!-- änderbare Attribute eines Ordenshauses -->
<xs:simpleType name="ordenshausAttributesSetter">
<xs:restriction base="xs:string">
<xs:enumeration value="schatz"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="objectTypes">
<xs:restriction base="xs:string">
<xs:enumeration value="hero"/>
<xs:enumeration value="selected-item"/>
<xs:enumeration value="taverne"/>
<xs:enumeration value="ordenshaus"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="objectAttributesGetter">
<xs:union memberTypes="heroAttributesGetter taverneAttributesGetter itemAttributesGetter ordenshausAttributesGetter"/>
</xs:simpleType>
<xs:simpleType name="objectAttributesSetter">
<xs:union memberTypes="heroAttributesSetter itemAttributesSetter ordenshausAttributesSetter"/>
</xs:simpleType>
<xs:simpleType name="itemSelectShowTypes">
<xs:restriction base="xs:string">
<xs:enumeration value="quality"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="functionList">
<xs:restriction base="xs:string">
<xs:enumeration value="ermittle-item-anzahl"/>
<xs:enumeration value="get-anzahl-gebundene-items"/>
<xs:enumeration value="get-ware-from-inventory"/>
<xs:enumeration value="ist-segelschiff"/>
<xs:enumeration value="ist-urgott-in-pantheon"/>
<xs:enumeration value="mach-gegenstand-unklaubar"/>
<xs:enumeration value="mach-gegenstand-wieder-klaubar"/>
<xs:enumeration value="waren-wiederfinden"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>