XML Format

Aus Eressea
Zur Navigation springenZur Suche springen

Anstatt sofort einen DTD zu definieren (die Dinger kann eh kaum jemand lesen) arbeiten wir hier ein Beispiel-Dokument aus, und diskutieren darüber.

Beispiel Report

Header und Serverinfos

<!DOCTYPE atlantis PUBLIC "-//PBEM//DTD Atlantis 1.0//EN" 
  "http://eressea.de/atlantis-report.dtd">
<?xml version="1.0" encoding="UTF-8"?>
<atlantis rules="eressea">

<server>
  <uri>mailto:eressea-server@eressea.kn-bremen.de</uri>
  <subject>ERESSEA BEFEHLE</subject>
</server>
  • DTD - machen wir eine DTD für alle Spiele oder gibt es eine Grundlagen-DTD und dann spielspezifische DTD?
  • Version und Encoding
  • Benutztes Regelset

Allianzen

<alliance/>

Parteien

<faction id="faction_Lotr">
  <name>xxxxx</name>
  <descr>dsfsf sdf sdf</descr>
  <race>aquarians</race>
  <magic>Gwyrrd</magic>
  <age>60</age>
  12345

Messages

  <message id="message_123456" type="messagetype_23423546">
    <rendered>
      Irgendwer (1234) segelt von Irgendwo (1,2) nach Nirgendwo (99,99). 
      Dabei wurden Ozean (1,3), Ozean (1,4) ... und Ozean (98,99) durchquert.
    </rendered>
    <attribute name="unit"><unitref ref="unit_1234"/></attribute>
    <attribute name="from"><regionref ref="region_653456"/></attribute>
    <attribute name="to"><regionref ref="region_653567"/></attribute>
    <attribute name="through">
      <regionref ref="region_953456"/>
      <regionref ref="region_68656"/>
      ...
      <regionref ref="region_114562"/>
    </attribute>

Regionen

<region id="region_126788>
  <coordinate x="14" y="27"/>
  <name>xxxxx</name>
  <descr>dsfsf sdf sdf</descr>
  <terrain>plain</terrain>
Regionen, hier versehen mit einer Koordinate. Wie wir verschiedene Ebenen Kennzeichen müssen wir noch diskutieren.

Regionsresourcen

  <resources>
    <resource type="mallorntrees">50</resource>
    <resource type="mallornsaplings">10</resource>
    <resource type="laen" level="33">10</resource>
    <resource type="silver" entertain="500">10000</resource>
    <resource type="peasant" recruit="25">1000</resource>
    <resource type="elvendear quantity="many"/>
  </resources>
  • Menge im Element codieren, oder als Attribut?
  • Stufenabhängigkeit als Attribut oder als Subelement?
  • Weitere Zusätzliche Attribute je nach Resourcentyp?

Marktplatz

  <marketplace amount="10">
    <buy type="balm">5</buyitem>
    <sell type="spice">35</sellitem>
    <offer>
      <get><item>balm</item><amount>1</amount></get>
      <give><item>silver</item><amount>5</amount></give>
    </offer>
  </marketplace>
  • Soll die (Grund)Menge beim Marktplatz oder bei den items stehen?
  • Brauchen wir <sell> und <buy> oder reicht <offer>?
  • Wie würde ein globaler Marktplatz funktionieren?
  • Wie könnte man Dienstleistungen anbieten?

Einheiten

  <unit id="unit_mag3" faction="faction_Lotr"/>
    <item/>
    <skill/>
  </unit>

Gebäude

  <building id="building_h0us"/>

Schiffe

  <ship id="ship_ttnc"/>
  </region>

Messagetypen

<messagetype id="msgtype_5673456873">
  <section>travel</section>
  <pattern locale="de">
    <attribute name="unit"/> segelt von <attribute name="from"/> nach 
    <attribute name="to"/>. Dabei wurden 
    <function type="regions"><attribute name="through"></function> durchquert.
  </pattern>
</messagetype>
So richtig gefällt mir das hier noch nicht. Man sollte anhand der Pattern bereits

den Typ des jeweiligen Attributs erkennen. Vermutlich müsste jede $xyz() die es derzeit gibt, als extra Elementtyp in der (Eressea)-DTD definiert werden.

</atlantis>

Regelset

Und noch ein Dokument fuer eine Spiel-Definition

<!DOCTYPE atlantis PUBLIC "-//PBEM//DTD Atlantis 1.0//EN" "http://eressea.de/atlantis-ruleset.dtd">
<?xml version="1.0" encoding="UTF-8"?>
<atlantis>

<item/>
<race/>
<plane/>
<terrain/>
<skill/>
<building/>
<ship/>
<command/>
 
</atlantis>

External Links