Zum Inhalt springen

XML: Das Bestiarium


Rana

Empfohlene Beiträge

Ich experimentiere gerade etwas mit XML. Dabei habe ich mir vorgenommen, das Bestiarium in eine XML-Datei umzusetzen. Diese könnte man dann prima auslesen, auswerten ... wäre sie nur schon fertig :D

 

Doch es scheitert schon an der Unsicherheit: Ist die Struktur so in Ordnung? Lassen sich die Bestien alle in das Schema pressen?

 

Anbei meine Struktur, verbunden mit einer Frage an Wissende: Ist diese Struktur prinzipiell in Ordnung? Was sollte man anders/besser machen und warum?

 

<?xml version="1.0" encoding="iso-8859-1"?>
<Bestiarium>
<Wesen>
	<Name>Greif</Name>
	<Grad>8</Grad>
	<LP>4W6+4</LP>
	<AP>8W6+12</AP>
	<In>t50</In>
	<Gw>60</Gw>
	<St>90</St>
	<B>18/60</B>
	<Ruestung>LR</Ruestung>
	<Abwehr>16</Abwehr>
	<Resistenzen>14/16/14</Resistenzen>
	<Angriffe>
		<Angriff Art="Biss" Wert="10" Schaden="1W6+2"/>
		<Angriff Art="Tatze" Wert="10" Schaden="1W6+1"/>
		<Angriff Art="Raufen" Wert="7" Schaden="1W6"/>
	</Angriffe>
	<Besonderes>Sehen +15</Besonderes>
	<Vorkommen>
		<Landschaft>Gebirge</Landschaft>
		<Region>Vesterness</Region>
		<Region>Westsirao</Region>
		<Region>Nordsirao</Region>
		<Region>Nordlamaran</Region>
	</Vorkommen>
</Wesen>
<Wesen>
	...
</Wesen>
</Bestiarium>

 

Gruß

Rana

Link zu diesem Kommentar

Die Definition sollte über ein XML-Schema erfolgen. Dann kann man sich den Glue-Code/das Wrapper-Getöse für verschiedene Programmiersprachen (o.Ä.) generieren lassen. Teilweise kann man sich auch vollständige Editoren generieren lassen.

 

Ich mache sowas mit den Altova-Tools - die sind allerdings ziemlich teuer. Ich frag mal rum, ob es was aus dem Open Source/Freeware Bereich gibt.

Link zu diesem Kommentar

@Curilias: Das ist mir noch zu Komplex. Ich möchte es einfach halten. Stell dir vor, du hättest ein kleines Programm, das dir auf Knopfdruck ein Monster erstellt, Basis ist diese XML. Jetzt willst du* eine neue Bestie einfügen und sollst dessen Werte eintragen, damit sie im Programm zur Verfügung stehen. Da sollte es zwar Strukturiert, aber dennoch Einfach sein. Es muss simpel bleiben.

(*oder besser: nicht du, sondern derjenige deiner Mitspieler, der wenig Ahnung von diesen Dingen hat ;) )

 

Eine erweiterte Version:

<?xml version="1.0" encoding="iso-8859-1"?>

<Bestiarium>

<Wesen>
	<Name>Greif</Name>
	<Grad>8</Grad>
	<Buch Seite="88">Bestiarium</Buch>

	<LP>4W6+4</LP>
	<AP>8W6+12</AP>
	<MW></MW>
	<EP>7</EP>

	<In>t50</In>
	<Gw>60</Gw>
	<St>90</St>
	<B>18/60</B>
	<Ruestung>LR</Ruestung>
	<Abwehr>16</Abwehr>
	<Resistenzen>14/16/14</Resistenzen>

	<Angriffe>
		<Angriff Wert="10" Schaden="1W6+2">Biss</Angriff>
		<Angriff Wert="10" Schaden="1W6+1">Tatze</Angriff>
		<Angriff Wert="7" Schaden="1W6"/>Raufen</Angriff>
		<Sonderangriff>Ergreifen</Sonderangriff>
	</Angriffe>

	<Besonderes>
		<Fertigkeit Wert="15">Sehen</Fertigkeit>
	</Besonderes>

	<Vorkommen>
		<Landschaft>Gebirge</Landschaft>
		<Region>Vesterness</Region>
		<Region>Westsirao</Region>
		<Region>Nordsirao</Region>
		<Region>Nordlamaran</Region>
	</Vorkommen>
</Wesen>

<Wesen>
	<Name>Flammendrache, alter, 301-700 Jahre</Name>
	<Grad Groesse="riesig">13</Grad>
	<Buch Seite="63">Bestiarium</Buch>

	<LP>5W6+12</LP>
	<AP>13W6+50</AP>
	<MW></MW>
	<EP>35</EP>

	<In>m90</In>
	<Gw>70</Gw>
	<St>190</St>
	<B>24/60</B>
	<Ruestung>VR/LR</Ruestung>
	<Abwehr>17</Abwehr>
	<Resistenzen>20/20/20</Resistenzen>

	<Angriffe>
		<Angriff Wert="13" Schaden="3W6+2">Biss</Angriff>
		<Angriff Wert="15" Schaden="5W6">Feuerstoss</Angriff>
		<Angriff Wert="13" Schaden="1W6+1">2xKlaue</Angriff>
		<Angriff Wert="13" Schaden="1W6+3">Schwanzhieb</Angriff>
		<Angriff Wert="13" Schaden="2W6+2"/>Raufen</Angriff>
		<Sonderangriff>Ergreifen</Sonderangriff>
		<Sonderangriff>Flügelwind</Sonderangriff>
	</Angriffe>

	<Besonderes>
		<Eigenschaft>EW:Resistenz gegen Namenloses Grauen (bis 3. Grad) bzw. Angst (4.-6. Grad)</Eigenschaft>
		<Eigenschaft>immun gegen Hitze und Feuer (magisch & natürlich)</Eigenschaft>
		<Eigenschaft>nur mit magischen Waffen zu verletzen</Eigenschaft>
		<Eigenschaft>3W6+3 Schicksalsgunst</Eigenschaft>
		<Fertigkeit Wert="12">Sehen</Fertigkeit>
		<Fertigkeit Wert="12">Hören</Fertigkeit>
		<Fertigkeit Wert="8">Sechster Sinn</Fertigkeit>
	</Besonderes>

	<Zaubern>
		<Angeboren Wert="20">Verwandlung (sich selbst in Menschen und zurück)</Angeboren>
		<Arkan Wert="20">wie Magier von Grad 9</Arkan>
	</Zaubern>

	<Vorkommen>
		<Landschaft>Gebirge</Landschaft>
		<Region>Südsirao</Region>
	</Vorkommen>
</Wesen>

</Bestiarium>

Leere Werte sollten nicht aufgeführt werden. Der Greif kann nicht Zaubern, deshalb hat er diesen Punkt auch nicht drin. Der <MW>-Tag ist hier lediglich der Vollständigkeit halber aufgeführt.

 

Gruß

Rana

Link zu diesem Kommentar

Ach so, es soll nicht zu komplex werden ... aber XML solls schon sein. ;)

 

 

Wenn es ein einfaches Programm verarbeiten soll, dann würde ich mir Konstrukte wie "<B>18/60</B>" nochmal überlegen, sonst wird die Verarbeitung aber sehr komplex .

 

Generell ist mir (und ich glaube Du hast Dir darüber auch noch nicht so viel Gedanken gemacht) nicht klar, wann Du

a) Werte ins Tag ziehst (z.B. Angriffe)

b) Werte in einen String venmanscht (das B Beispiel)- hier wäre eine Aufschlüsselung der Bewegung in Land / Luft / Wasser / Empyräum wohl klarer, auch "für den der wenig Ahnung hat". Im Beispiel kann ein Mensch ja wohl leicht erkennen, das es am Boden / in der Luft bedeutet, daber ein Programm ?

c) Werte als eine Formel angibst (LP, AP)

d) Es konsequent hierarchisch auflöst.

und, wie das dann für ein Programm ersichtlich sein soll.

 

Mein Tipp: Lös es konsequent hierarchisch auf, und tu nur Metainformation (Datentyp, Pogramm für Formeln, etc.) in Tags, NICHT Attributswerte.

 

Außerdem. Entweder nicht zutreffende Tags weglassen, oder das ganze Schema jedesmal stur anlegen. Ich rate - schon wegen der Erweiterbarkeit - zu ersterem.

Es sollte aber konsequent durchgezogen sein. "Der Vollständigkeit halber" ist dann weder Fisch noch Fleisch.

 

Ansonsten ein ambitioniertes Projekt. :thumbs up:

Link zu diesem Kommentar
Ach so, es soll nicht zu komplex werden ... aber XML solls schon sein. ;)

Sag ich doch :D

 

Wenn es ein einfaches Programm verarbeiten soll, dann würde ich mir Konstrukte wie "<B>18/60</B>" nochmal überlegen, sonst wird die Verarbeitung aber sehr komplex .

Manche Werte, auch wenn sie Zahlen sind, wollte ich nur als String verarbeiten. Die B gehört dazu. Komplizierter wird es eher bei der Ruestung. Diese wollte ich schon auswerten, aber da ärgert mich der Drache.

Konsequenterweise sollte ich das alles Berücksichtigen, da gebe ich dir recht. Aber ich habe noch keine Vorstellung wie ich das machen soll. Also: her mit der Lösung! ;)

 

Generell ist mir (und ich glaube Du hast Dir darüber auch noch nicht so viel Gedanken gemacht) nicht klar, wann Du

a) Werte ins Tag ziehst (z.B. Angriffe)

b) Werte in einen String venmanscht (das B Beispiel)- hier wäre eine Aufschlüsselung der Bewegung in Land / Luft / Wasser / Empyräum wohl klarer, auch "für den der wenig Ahnung hat". Im Beispiel kann ein Mensch ja wohl leicht erkennen, das es am Boden / in der Luft bedeutet, daber ein Programm ?

c) Werte als eine Formel angibst (LP, AP)

d) Es konsequent hierarchisch auflöst.

und, wie das dann für ein Programm ersichtlich sein soll.

So ist es. Ich bin am Stochern in unbekanntem Gelände. Ich taste mich heran. Ich folge allein einer inneren Stimme. Wenn ich mir Sicher wäre, hätte ich auch nicht gefragt ;)

 

Doch ich versuche zu erklären, was mir meine Stimme so geflüster hat:

Generell Attribute zu nehmen fand ich unübersichtlich (<wesen name="Greif" grad="8" ...>), da erschien mir die Unterteilung in einzelne Tags sinnvoller. Und es gibt Eigenschaften, die mehrmals vorkommen können, so wie Angriffe - diese hätte ich nicht in Attribute packen können. Für diese nehme ich jetzt einen Elternknoten <Angriffe>, der beliebig viele Kindknoten <Angriff> haben kann. Im ersten File oben hatte ich hier alles in Attribute gepackt, das erschien mir aber später zu inkonsequent, also hab ich die Angriffsart als Tag-Value genommen und die Attribute dieser Angriffsart eben als Attribute gelassen.

 

Mein Tipp: Lös es konsequent hierarchisch auf, und tu nur Metainformation (Datentyp, Pogramm für Formeln, etc.) in Tags, NICHT Attributswerte.

Siehst du das große Fragezeichen über meinen Kopf? Bitte gib mir ein Beispiel!

 

Außerdem. Entweder nicht zutreffende Tags weglassen, oder das ganze Schema jedesmal stur anlegen. Ich rate - schon wegen der Erweiterbarkeit - zu ersterem.

Es sollte aber konsequent durchgezogen sein. "Der Vollständigkeit halber" ist dann weder Fisch noch Fleisch.

HarryB hat es schon erkannt ;)

 

Ansonsten ein ambitioniertes Projekt. :thumbs up:

Ich will etwas lernen. Da hilft ein Ziel ungemein. ;)

 

Gruß

Rana

Link zu diesem Kommentar
So etwas wie <B medium="Luft">60</B> wäre nett mit Default medium="Land"

Sie idee ist gar nicht so übel. Es wäre ohnehin keine schlechte Idee, den Lebensraum des Wesens (Wasser, Land, Luft bzw. eine Kombination davon) anzugeben. Wir wissen wo das Viech lebt, wenn wir draufgucken, der Computer aber nicht.

 

Viele Grüße

Harry

Link zu diesem Kommentar
Ist nicht ganz richtig. Es können ja mehrere B auftreten. Also müsste es dann, dem bisherigen Schema folgend, so aussehen:

 

<B>

<Land>18</Land>

<Luft>60</Luft>

</B>

 

Gut, jetzt zur Rüstung des Drachen:

<Ruestung>VR/LR</Ruestung>

 

Wie das nun?

 

Gruß

Rana

 

Das geht doch auch, wenn Du in DTD/Schema B+ hast und

<B medium="Land">18</B>

<B medium="Land">60</B>

analog geht

<Ruestung koerperteil="Bauch">LR</Ruestung>

<Ruestung>VR</Ruestung>

Link zu diesem Kommentar

Ja, das geht auch, widerspricht aber dem bisherigen Schema.

 

Meine aktuellste Version:

<?xml version="1.0" encoding="iso-8859-1"?>

<Bestiarium>

<Wesen>
	<Name>Greif</Name>
	<Grad>8</Grad>
	<Buch Seite="88">Bestiarium</Buch>

	<LP>4W6+4</LP>
	<AP>8W6+12</AP>
	<MW></MW>
	<EP>7</EP>

	<In>t50</In>
	<Gw>60</Gw>
	<St>90</St>
	<B>
		<Land>18</Land>
		<Luft>60</Luft>
	</B>
	<Ruestung>LR</Ruestung>
	<Abwehr>16</Abwehr>
	<Resistenzen>
		<Geist>14</Geist>
		<Koerper>16</Koerper>
		<Umgebung>14</Umgebung>
	</Resistenzen>

	<Angriffe>
		<Angriff Wert="10" Schaden="1W6+2">Biss</Angriff>
		<Angriff Wert="10" Schaden="1W6+1">Tatze</Angriff>
		<Angriff Wert="7" Schaden="1W6">Raufen</Angriff>
		<Sonderangriff>Ergreifen</Sonderangriff>
	</Angriffe>

	<Besonderes>
		<Fertigkeit Wert="15">Sehen</Fertigkeit>
	</Besonderes>

	<Vorkommen>
		<Landschaft>Gebirge</Landschaft>
		<Region>Vesterness</Region>
		<Region>Westsirao</Region>
		<Region>Nordsirao</Region>
		<Region>Nordlamaran</Region>
	</Vorkommen>
</Wesen>

<Wesen>
	<Name>Flammendrache, alter, 301-700 Jahre</Name>
	<Grad Groesse="riesig">13</Grad>
	<Buch Seite="63">Bestiarium</Buch>

	<LP>5W6+12</LP>
	<AP>13W6+50</AP>
	<MW></MW>
	<EP>35</EP>

	<In>m90</In>
	<Gw>70</Gw>
	<St>190</St>
	<B>
		<Land>24</Land>
		<Luft>60</Luft>
	</B>
	<Ruestung>VR</Ruestung>
	<Abwehr>17</Abwehr>
	<Resistenzen>
		<Geist>20</Geist>
		<Koerper>20</Koerper>
		<Umgebung>20</Umgebung>
	</Resistenzen>

	<Angriffe>
		<Angriff Wert="13" Schaden="3W6+2">Biss</Angriff>
		<Angriff Wert="15" Schaden="5W6">Feuerstoss</Angriff>
		<Angriff Wert="13" Schaden="1W6+1">2xKlaue</Angriff>
		<Angriff Wert="13" Schaden="1W6+3">Schwanzhieb</Angriff>
		<Angriff Wert="13" Schaden="2W6+2">Raufen</Angriff>
		<Sonderangriff>Ergreifen</Sonderangriff>
		<Sonderangriff>Flügelwind</Sonderangriff>
	</Angriffe>

	<Besonderes>
		<Eigenschaft>Am Bauch nur LR</Eigenschaft>
		<Eigenschaft>EW:Resistenz gegen Namenloses Grauen (bis 3. Grad) bzw. Angst (4.-6. Grad)</Eigenschaft>
		<Eigenschaft>immun gegen Hitze und Feuer (magisch & natürlich)</Eigenschaft>
		<Eigenschaft>nur mit magischen Waffen zu verletzen</Eigenschaft>
		<Eigenschaft>3W6+3 Schicksalsgunst</Eigenschaft>
		<Fertigkeit Wert="12">Sehen</Fertigkeit>
		<Fertigkeit Wert="12">Hören</Fertigkeit>
		<Fertigkeit Wert="8">Sechster Sinn</Fertigkeit>
	</Besonderes>

	<Zaubern>
		<Angeboren Wert="20">Verwandlung (sich selbst in Menschen und zurück)</Angeboren>
		<Arkan Wert="20">wie Magier von Grad 9</Arkan>
	</Zaubern>

	<Vorkommen>
		<Landschaft>Gebirge</Landschaft>
		<Region>Südsirao</Region>
	</Vorkommen>
</Wesen>

</Bestiarium>

 

Gruß

Rana

Link zu diesem Kommentar

Wenn ein Wesen eine natürliche Rüstung hat, schützt diese bei erfolgreicher Abwehr doch auch vor AP-Verlust, oder?

In diesem Fall müsste ich die Ruestung um ein Attribut erweitern:

 

<Ruestung Art="natürlich">LR</Ruestung>

 

Die Abwehr sollte ich auch erweitern, da es ja evtl. mehrere Abwehrmöglichkeiten gibt:

 

<Abwehr>

<normal>12</normal>

<kleinerSchild>14</kleinerSchild>

<grosserSchild>13</grosserSchild>

</Abwehr>

 

Gruß

Rana

Bearbeitet von Rana
Link zu diesem Kommentar
Die Abwehr sollte ich auch erweitern, da es ja evtl. mehrere Abwehrmöglichkeiten gibt:

 

<Abwehr>

<normal>12</normal>

<kleinerSchild>14</kleinerSchild>

<grosserSchild>13</grosserSchild>

</Abwehr>

Hm, ich würde ja eher den Universalwert der Abwehr belassen und Verteidigungswaffen bei den Waffen aufführen.

 

Viele Grüße

Harry

Link zu diesem Kommentar
Die Abwehr sollte ich auch erweitern, da es ja evtl. mehrere Abwehrmöglichkeiten gibt:

 

<Abwehr>

<normal>12</normal>

<kleinerSchild>14</kleinerSchild>

<grosserSchild>13</grosserSchild>

</Abwehr>

Hm, ich würde ja eher den Universalwert der Abwehr belassen und Verteidigungswaffen bei den Waffen aufführen.

 

Viele Grüße

Harry

Wir reden über Wesen aus dem Bestiarium, nicht über Charakter.
Link zu diesem Kommentar
Die Abwehr sollte ich auch erweitern, da es ja evtl. mehrere Abwehrmöglichkeiten gibt:

 

<Abwehr>

<normal>12</normal>

<kleinerSchild>14</kleinerSchild>

<grosserSchild>13</grosserSchild>

</Abwehr>

Hm, ich würde ja eher den Universalwert der Abwehr belassen und Verteidigungswaffen bei den Waffen aufführen.

 

Viele Grüße

Harry

Wir reden über Wesen aus dem Bestiarium, nicht über Charakter.

Soll das Schema nur Wesen aus dem Bestiarium abbilden? Oder sollen später ganz allgemein NSC hinzu kommen? Davon ab stehen auch Menschen, Zwerge, Arracht usw. im Bestiarium, die Verteidigungswaffen haben können.

 

Viele Grüße

Harry

Link zu diesem Kommentar
Wenn ein Wesen eine natürliche Rüstung hat, schützt diese bei erfolgreicher Abwehr doch auch vor AP-Verlust, oder?

In diesem Fall müsste ich die Ruestung um ein Attribut erweitern:

 

<Ruestung Art="natürlich">LR</Ruestung>

Nein, dem ist nicht so: http://www.midgard-forum.de/forum/showthread.php?t=1169&page=3

Bearbeitet von Hornack Lingess
Link zu diesem Kommentar
Wenn ein Wesen eine natürliche Rüstung hat, schützt diese bei erfolgreicher Abwehr doch auch vor AP-Verlust, oder?

In diesem Fall müsste ich die Ruestung um ein Attribut erweitern:

 

<Ruestung Art="natürlich">LR</Ruestung>

Nein, dem ist nicht so: http://www.midgard-forum.de/forum/showthread.php?t=1169&page=3

 

Prima. Vielen Dank! Ich hatte es anders im Kopf, war mir aber - berechtigterweise, wie man sieht - über die Richtigkeit unschlüssig.

 

Gruß

Rana

Link zu diesem Kommentar

Soweit ich weiß, werden von die Charakterdaten von MAGUS auch in einem XML-Format abgelegt.

Ich würde erwarten, dass es hier einen teilweisen Überlapp gibt. Ich schlage vors, dass du dir dieses Format mal anguckst. Es wäre doch wünschenswert, wenn die gleichartigen Daten auch in gleicher Form abgelegt werden. Dann könnten hinter eventuell sogar Programme auf beiden Datensätzen arbeiten (sehr visionär gedacht).

Zumindest wäre aber der Aufwand die Formate zu verstehen einfacher, falls jemand sich wirklich mal mit beidem beschäftigen will.

Link zu diesem Kommentar

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...