Wünsche für AOQML

XML-Variante AOQML, ihre Möglichkeiten, Ergänzungen und Entwicklung...

Moderatoren: Kekse, A-Team

Re: Wünsche für AOQML

Beitragvon Gaddezwerch » Fr 14 Jun, 2013 18:24

proser, magst du dich vielleicht selbst drum kümmern?

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>
:meidetdasorkland: <-- Das meine ich ernst! Wirklich!
Gaddezwerch
Programmierer
Programmierer
 
Beiträge: 4848
Registriert: Fr 18 Mai, 2007 00:04
Heldenname: Alos Traken

Re: Wünsche für AOQML

Beitragvon proser » Mo 17 Jun, 2013 07:33

Hier eingefügt SimpleType "qualityExpression" und Verwendung bei "challenge -> quality":

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="qualityExpression"/>
      <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="qualityExpression">
    <xs:union memberTypes="qualityValues 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>


Bei den folgenden Tags/Attributen weiß ich nicht, ob die Engine Variablen unterstützt:
hero -> by-quality
set -> quality
get -> quality
has -> quality
if -> quality
switch -> quality
0===[:::::::::::::::::::::::::::::::::><:::::::::::::::::::::::::::::::::]===0
Benutzeravatar
proser
Marschall
Marschall
 
Beiträge: 4140
Registriert: Do 14 Dez, 2006 13:33
Wohnort: Hamburch
Heldenname: Streifer

Re: Wünsche für AOQML

Beitragvon Gaddezwerch » Mo 17 Jun, 2013 08:51

Variablen werden immer, überall unterstützt.
:meidetdasorkland: <-- Das meine ich ernst! Wirklich!
Gaddezwerch
Programmierer
Programmierer
 
Beiträge: 4848
Registriert: Fr 18 Mai, 2007 00:04
Heldenname: Alos Traken

Re: Wünsche für AOQML

Beitragvon proser » Mo 17 Jun, 2013 12:58

Dann hier "qualityExpression" auch bei den anderen Tags/Attributen:

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="qualityExpression"/>
      <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="qualityExpression"/>
      <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="qualityExpression"/>
      <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="qualityExpression"/>
      <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="qualityExpression"/>
      <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="qualityExpression"/>

      <!-- 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="qualityExpression" 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="qualityExpression">
    <xs:union memberTypes="qualityValues 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>
0===[:::::::::::::::::::::::::::::::::><:::::::::::::::::::::::::::::::::]===0
Benutzeravatar
proser
Marschall
Marschall
 
Beiträge: 4140
Registriert: Do 14 Dez, 2006 13:33
Wohnort: Hamburch
Heldenname: Streifer

Re: Wünsche für AOQML

Beitragvon Gaddezwerch » Mo 17 Jun, 2013 13:56

Danke. Ist live.
:meidetdasorkland: <-- Das meine ich ernst! Wirklich!
Gaddezwerch
Programmierer
Programmierer
 
Beiträge: 4848
Registriert: Fr 18 Mai, 2007 00:04
Heldenname: Alos Traken

Re: Wünsche für AOQML

Beitragvon proser » Di 18 Jun, 2013 06:54

Vielen Dank!
0===[:::::::::::::::::::::::::::::::::><:::::::::::::::::::::::::::::::::]===0
Benutzeravatar
proser
Marschall
Marschall
 
Beiträge: 4140
Registriert: Do 14 Dez, 2006 13:33
Wohnort: Hamburch
Heldenname: Streifer

Re: Wünsche für AOQML

Beitragvon Sandy » Sa 06 Jul, 2013 21:42

Nachdem ich auf meine Frage, wie man die Kosten einer Ware ausgeben kann, an anderer Stelle keine Antwort erhalten habe :( , nehm ich mal an das das noch nicht mit AOQML geht.

Deshalb mein Wunsch :roll: :

Code: Alles auswählen
<get item="xy" attribute="cost"/>

Soll den durchschnittlichen Wert dieser Ware aus der Datenbank ausgeben.
Benutzeravatar
Sandy
Ordenskrieger
Ordenskrieger
 
Beiträge: 273
Registriert: So 11 Mär, 2012 03:55
Heldenname: Chiara Tebaldeo
Mitglied bei: Drachenatem

Re: Wünsche für AOQML

Beitragvon Aidan » So 07 Jul, 2013 06:47

Wofür soll das denn gut sein? Die Kosten einer Ware sind nicht fest, sondern ergeben sich letztendlich aus einem Grundwert sowie der Verfügbarkeit von Händler und Region.
Gamedesigner
Verantwortlicher für Itemerstellung, Waren-/Handelssystem und NPC-Verwaltung
Systemintegration neuer Reiche und Gebiete

Bild
Benutzeravatar
Aidan
Game Designer
Game Designer
 
Beiträge: 6616
Registriert: Mo 11 Feb, 2008 17:40
Wohnort: Hansestadt Wismar
Heldenname: Jupp
Mitglied bei: mir selbst

Re: Wünsche für AOQML

Beitragvon Sandy » Mo 08 Jul, 2013 16:00

Ich bin gerade dabei die "Grosse Marthalle" in Eisenfels zu programieren. In dieser ortsfesten Queste kann der Held z.B. ueber verschiedene Plaetze schlendern. Wenn es der Zufall so will, kann er dann auch auf einem dieser Plaetze einer Versteigerung beiwohnen und mitbieten.

Hierfuer moechte ich mittels item-tag eine beliebige seltene Ware mit einem Wert von ueber 50 Gulden generieren. Danach muss ich aber deren genaueren Wert kennen damit ich den Startpreis der Auktion entsprechend anpassen kann. Wir wollen ja nicht das die Helden zu billig davon kommen :wink: .

Ueber wieviele runden die Auktion geht (um wieviel sich der Preis der Ware ueber den Grundwert hinaus steigert) wird wiederum zufaellig bestimmt.
Benutzeravatar
Sandy
Ordenskrieger
Ordenskrieger
 
Beiträge: 273
Registriert: So 11 Mär, 2012 03:55
Heldenname: Chiara Tebaldeo
Mitglied bei: Drachenatem

Re: Wünsche für AOQML

Beitragvon Xondorax » Fr 16 Aug, 2013 14:57

Edit: Beitrag war im falschen Thread. (Xondorax)
Zuletzt geändert von Xondorax am Fr 16 Aug, 2013 15:14, insgesamt 1-mal geändert.
Benutzeravatar
Xondorax
Heiliger
Heiliger
 
Beiträge: 6520
Registriert: Fr 11 Apr, 2008 21:19
Heldenname: Lawister, der Windwolf

Re: Wünsche für AOQML

Beitragvon Gaddezwerch » Fr 16 Aug, 2013 15:07

Das ist Editor-spezifisch, schreib das bitte in den anderen thread damit enno es sieht.

@Sandy: ich schreibe es mir als todo auf. Gib Bescheid wenn die Markthalle ansonsten fertig ist.
:meidetdasorkland: <-- Das meine ich ernst! Wirklich!
Gaddezwerch
Programmierer
Programmierer
 
Beiträge: 4848
Registriert: Fr 18 Mai, 2007 00:04
Heldenname: Alos Traken

Re: Wünsche für AOQML

Beitragvon cvk » So 22 Dez, 2013 01:36

Code: Alles auswählen
<challenge talent="Völkerkunde" mod="3" show="none">
  <success hero-quantity="all">War euch doch allen klar</success>
  <success hero-quantity="1">Text</success>
  <failure>Text</failure>
</challenge>


Könnte man sowas ermöglichen? Also nicht zwingend in dieser Form, aber den Gedanken. Sprich: Verschiedene Success/Failure-Bäume abhängig von der Anzahl der erfolgreichen Helden. Im Augenblick geht ja nur entweder-oder, wenn ich mich nicht irre. So könnte man das alte dann raushauen und hat einfach mehr Optionen und muss nicht immer so hölzerne Entscheidungen treffen.

Oder gibt's da nen anderen Weg zu evaluieren ob bei einer Probe, die nur einer bestehen muss um weiterzukommen, vielleicht doch alle bestanden haben?

Ich würd's auch direkt benutzen: Provokateur_Gruppe_1 ;)
"[T]he Land of Antamar, where freedom reigns for all."
Beatty, Susi; Gunter, Kery: Angie the Ant and the Bumblebee Tree. O.O., o.V., 2005.
Benutzeravatar
cvk
Oberst
Oberst
 
Beiträge: 3088
Registriert: Fr 13 Jul, 2012 16:10
Heldenname: Lunarias Mondenweh

Re: Wünsche für AOQML

Beitragvon Pergor » So 22 Dez, 2013 02:02

Als "Workaround" für deine ZB: Du kannst ja via select heroes="true" alle Helden selektieren, die die Probe geschafft haben. Und anschließend verpasst du nur diesen Helden eine Variable. Dann abfragen, ob jeder Held in der Gruppe die Variable hat. Falls ja, haben auch alle die Probe bestanden. Falls nein, hat mindestens ein Held sie nicht geschafft (und du kannst dann ja auch nach wie vor den Helden, der die Probe am besten geschafft hat, selektieren).
Benutzeravatar
Pergor
Oberleutnant
Oberleutnant
 
Beiträge: 1112
Registriert: Do 07 Jun, 2007 18:45
Wohnort: Turm des Magiers
Heldenname: inaktiv

Re: Wünsche für AOQML

Beitragvon cvk » So 22 Dez, 2013 02:08

Elegante Lösung, mag ich. Besser als meine: Via Schleife alle einzeln zu prüfen, eine Zählvariable mitlaufen zu lassen und sie anschließend auszuwerten. :)
"[T]he Land of Antamar, where freedom reigns for all."
Beatty, Susi; Gunter, Kery: Angie the Ant and the Bumblebee Tree. O.O., o.V., 2005.
Benutzeravatar
cvk
Oberst
Oberst
 
Beiträge: 3088
Registriert: Fr 13 Jul, 2012 16:10
Heldenname: Lunarias Mondenweh

Re: Wünsche für AOQML

Beitragvon cvk » Mi 01 Jan, 2014 17:11

Spoiler:
Fehler in Zeile 28: cvc-enumeration-valid: Wert "${anzahl_probe}" ist nicht Facet-gültig in Bezug auf Enumeration "[1, 2, 3, 4, all]". Er muss ein Wert aus der Enumeration sein.
Fehler in Zeile 28: cvc-attribute.3: Wert "${anzahl_probe}" des Attributs "hero-quantity" bei Element "challenge" hat keinen gültigen Typ "heroQuantityValues".
Fehler in Zeile 47: cvc-enumeration-valid: Wert "${anzahl_probe}" ist nicht Facet-gültig in Bezug auf Enumeration "[1, 2, 3, 4, all]". Er muss ein Wert aus der Enumeration sein.
Fehler in Zeile 47: cvc-attribute.3: Wert "${anzahl_probe}" des Attributs "hero-quantity" bei Element "challenge" hat keinen gültigen Typ "heroQuantityValues".
Fehler in Zeile 65: cvc-enumeration-valid: Wert "${anzahl_probe}" ist nicht Facet-gültig in Bezug auf Enumeration "[1, 2, 3, 4, all]". Er muss ein Wert aus der Enumeration sein.
Fehler in Zeile 65: cvc-attribute.3: Wert "${anzahl_probe}" des Attributs "hero-quantity" bei Element "challenge" hat keinen gültigen Typ "heroQuantityValues".
Fehler in Zeile 83: cvc-enumeration-valid: Wert "${anzahl_probe}" ist nicht Facet-gültig in Bezug auf Enumeration "[1, 2, 3, 4, all]". Er muss ein Wert aus der Enumeration sein.
Fehler in Zeile 83: cvc-attribute.3: Wert "${anzahl_probe}" des Attributs "hero-quantity" bei Element "challenge" hat keinen gültigen Typ "heroQuantityValues".
Fehler in Zeile 102: cvc-enumeration-valid: Wert "${anzahl_probe}" ist nicht Facet-gültig in Bezug auf Enumeration "[1, 2, 3, 4, all]". Er muss ein Wert aus der Enumeration sein.
Fehler in Zeile 102: cvc-attribute.3: Wert "${anzahl_probe}" des Attributs "hero-quantity" bei Element "challenge" hat keinen gültigen Typ "heroQuantityValues".
Fehler in Zeile 119: cvc-enumeration-valid: Wert "${anzahl_probe}" ist nicht Facet-gültig in Bezug auf Enumeration "[1, 2, 3, 4, all]". Er muss ein Wert aus der Enumeration sein.
Fehler in Zeile 119: cvc-attribute.3: Wert "${anzahl_probe}" des Attributs "hero-quantity" bei Element "challenge" hat keinen gültigen Typ "heroQuantityValues".
Fehler in Zeile 138: cvc-enumeration-valid: Wert "${anzahl_probe}" ist nicht Facet-gültig in Bezug auf Enumeration "[1, 2, 3, 4, all]". Er muss ein Wert aus der Enumeration sein.
Fehler in Zeile 138: cvc-attribute.3: Wert "${anzahl_probe}" des Attributs "hero-quantity" bei Element "challenge" hat keinen gültigen Typ "heroQuantityValues".
Fehler in Zeile 161: cvc-enumeration-valid: Wert "${anzahl_probe}" ist nicht Facet-gültig in Bezug auf Enumeration "[1, 2, 3, 4, all]". Er muss ein Wert aus der Enumeration sein.
Fehler in Zeile 161: cvc-attribute.3: Wert "${anzahl_probe}" des Attributs "hero-quantity" bei Element "challenge" hat keinen gültigen Typ "heroQuantityValues".


Hintergrund: Eine Szene mit vielen Fallunterscheidungen, jeweils mit einer Probe, die mindestens die Hälfte der Gruppenmitglieder bestehen soll. Da man vorher nicht weiß, wie viele Gruppenmitglieder in der Gruppe sind, Werte ich es per Switch aus und speichere mir die Anzahl derer, die bestehen müssen (1,2,2)

Meine Bitte: Entweder die xsd anpassen - oder zusätzlich zu 1,2,3,4,all noch "half" einführen.
"[T]he Land of Antamar, where freedom reigns for all."
Beatty, Susi; Gunter, Kery: Angie the Ant and the Bumblebee Tree. O.O., o.V., 2005.
Benutzeravatar
cvk
Oberst
Oberst
 
Beiträge: 3088
Registriert: Fr 13 Jul, 2012 16:10
Heldenname: Lunarias Mondenweh

VorherigeNächste

Zurück zu Questen, Abenteuer und Zufallsbegegnungen (inkl. AOQML)



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste