XML Format: Unterschied zwischen den Versionen

Aus Eressea
Zur Navigation springenZur Suche springen
Zeile 131: Zeile 131:
     <descr>dsfsf sdf sdf</descr>
     <descr>dsfsf sdf sdf</descr>
     <size>25</size>
     <size>25</size>
|Name und Beschreibung sind klar #PCDATA. Typ und Grösse sind zumindest bei
|
Name und Beschreibung sind klar #PCDATA. Typ und Grösse sind zumindest bei
Eressea etwas das jedes Gebäude als Eigenschaft hat. Den Typ würde ich lieber als  
Eressea etwas das jedes Gebäude als Eigenschaft hat. Den Typ würde ich lieber als  
Attribut auslegen, da man dann ggf. auf einen Gebäudetyp referenzieren kann. In
Attribut auslegen, da man dann ggf. auf einen Gebäudetyp referenzieren kann. In

Version vom 21. April 2008, 12:03 Uhr

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" type="academy">
    <name>xxxxx</name>
    <descr>dsfsf sdf sdf</descr>
    <size>25</size>

Name und Beschreibung sind klar #PCDATA. Typ und Grösse sind zumindest bei Eressea etwas das jedes Gebäude als Eigenschaft hat. Den Typ würde ich lieber als Attribut auslegen, da man dann ggf. auf einen Gebäudetyp referenzieren kann. In dem Fall muss es aber wieder global eindeutig sein. Also doch wieder sowas wie type="buildingtype.academy". Leider kann man ja nicht klar stellen, dass type auf einen buildingtype referenziert.

Die Grösse hingegen würde ich als Element angeben - warum - keine Ahnung.

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