.xml - was bringt das?

Übersicht Sonstiges Smalltalk

Neue Antwort erstellen

 

CO2

ehemals "SirMO"

Betreff: .xml - was bringt das?

BeitragFr, Nov 26, 2010 17:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,

Ich hätte ein paar fragen zu .xml - dateien:

- Ich habe zwar ein Tutorial gefunden, aber trotzdem verstehe ich nicht, wieso es überhaupt .xml dateien gibt! Es gibt keine standartbefehle, das auslesen mit B3D ist kompliziert, weil man die daten von den tags trennen muss, etc.

- Kann man in .xml selbstgeschriebene tags verwenden, und wenn ja, wo werden diese deklariert? ich meine wenn ich eine xml datei folgendes reinschreibe:

Code: [AUSKLAPPEN]
<LoadFile FileName="C:\wichtige datei.txt">


woher soll der PC dann wissen, dass er die angegebene datei laden soll?

mfG,
CO2
mfG, CO²

Sprachen: BlitzMax, C, C++, C#, Java
Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti

Starwar

BeitragFr, Nov 26, 2010 17:06
Antworten mit Zitat
Benutzer-Profile anzeigen
XML ist lediglich eine Markup-Language.
Sie ermöglicht es Informationen maschinen- und menschenlesbar darzustellen.
Dabei braucht man ein XML-Parser um die Informationen nach Blitz zu bringen. Dabei geht es allerdings um Daten, nicht um Code.
Ein Beispiel für eine Anwendungsmöglichkeit (Auszug - Nicht valide!)
Code: [AUSKLAPPEN]
<quiz>
   <frage anspruch="leicht" satz="Was gibt 5 plus 7?">
      <antwort richtig="false">99</antwort>
      <antwort richtig="true">12</antwort>
   </frage>
   <!-- Wir brauchen mehr Fragen -->
</quiz>


EDIT: Unter C# macht XML mit LinqToXML richtig Spaß. (Microsoft spricht gar von einem "Abfrageerlebnis" Wink )

EDIT 2: Ich kann mich einfach nicht entscheiden^^

EDIT 3: Deine Zeile ist falsch. Es müsste <LoadFile FileName="C:\wichtige datei.txt"/> heißen. (Es sei denn du hast Unter-Tags und schließt später mit </LoadFile>.)
Aber als Scriptsprache ist XML so wie so nicht wirklich geeignet.

MFG
 

CO2

ehemals "SirMO"

BeitragFr, Nov 26, 2010 17:50
Antworten mit Zitat
Benutzer-Profile anzeigen
ok, vielen dank für die antwort.

Was heißt scriptsprache? ich wollte damit eigenschaften von 3d-modellen speichern, ungefähr so:

.xml:
Code: [AUSKLAPPEN]
<vehicle type="steerable">
     <3D File="data\tractor\Landmaster_4.102.x"/>
     <name>Landmaster 4.102</name>
     <ps>102</ps>
     <cylinder>4</cylinder>
     <fuelsize>105</fuelsize>
     <fueluse>0.002</fueluse>
     <storepic File="data\tractor\Landmaster_4.102_pic.jpg"/>
     <price>12000</price>
</vehicle>


.def:
Code: [AUSKLAPPEN]
steerable
data\tractor\Landmaster_4.102.x
Landmaster 4.102
102
4
105
0.002
data\tractor\Landmaster_4.102_pic.jpg
12000


und dabei finde ich die .xml version irgendwie besser. Oder gibt es da noch besser geeignete sprachen für (ausser .ini)?

mfG,
CO2
mfG, CO²

Sprachen: BlitzMax, C, C++, C#, Java
Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti

Starwar

BeitragFr, Nov 26, 2010 18:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Genau dafür ist XML Gedacht. Ist die Frage ob sich der Aufwand in deinem Kontreten Beispiel überhaupt lohnt, wenn du nur 2 Verschachtelungsebenen nutzt oder ob da eine INI (die ja wesentlich einfacher ist) reicht.
Ein XML-Tag kann ja beliebig viele Eigenschaften (test="Hallo" test2="LOL" ...) und Unterebenen besitzen.
Selber einen Parser zu bauen ist sehr aufwendig.
MFG

Hummelpups

BeitragFr, Nov 26, 2010 18:08
Antworten mit Zitat
Benutzer-Profile anzeigen
nein, XML bietet sich hierfür perfekt an.

nter BlitzMax gibts LibXML vom BaH, damit machts auch viel Spaß Smile
blucode - webdesign - Ressource - NetzwerkSim
BlitzBasic 2D - BlitzMax - MaxGUI - Monkey - BlitzPlus

Starwar

BeitragFr, Nov 26, 2010 18:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich sage XML ist, wenn sein Vorhaben so überschaubar bleibt, zu aufwendig. Aber natürlich ist es eine der besseren Möglichkeiten.
@CO2: Gucke dir die Wikipediaseite zu XML genau an! Es ist Standartisiert was in <...>XXX</...> und in <... yyy="XXX"/> kommt. Wichtig ist , dass du es einheitlich machst, denn XML bietet viele Möglichkeiten die Übersicht und Verständlichkeit die es herstellt durch Inkonsequenz wieder zu zerstören.
MFG
 

CO2

ehemals "SirMO"

BeitragFr, Nov 26, 2010 22:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Gut, habe mich jetzt durchs tutorial geackter, und dann kommt ein punkt namens "DTD", dazu hätte ich eine frage:

-müssen diese deklarationen in dem Dokument stehen, oder kann ich sie auch in ein anderes packen, und dann das eine mit dem anderen "verlinken"?

EDIT: hat sich selbst geklärt...

mfG;
CO2
mfG, CO²

Sprachen: BlitzMax, C, C++, C#, Java
Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti

Pummelie

BeitragFr, Nov 26, 2010 22:46
Antworten mit Zitat
Benutzer-Profile anzeigen
XML hat eben den Vorteil, das man es recht leicht überblicken kann, zb kann man xml Daten auch gut mit dem IE insehen, da dort die Ebenen dargestellt werden.

In ein paar größeren Projekten finden XML Daten auch Verwendung.
Zb:
- Age of Conan
- Bioshock
- Oblivon/Fallout 3
- usw....
It's done when it's done.

hectic

Sieger des IS Talentwettbewerb 2006

BeitragSa, Nov 27, 2010 2:01
Antworten mit Zitat
Benutzer-Profile anzeigen
DTD als Schema ist ''veraltet'', es wird empfohlen das für Menschen besser lesbare XSD zu verwenden. Dieses Schema hat den Vorteil, das es auch in einem XML gewohnten Format daher kommt.

Da am Anfang eben die Frage gestellt wurde. XML wird überall da verwendet, wo man eine undefinierbare Menge an Datensätzen speichern möchte. Durch die Schemata kann man dann auch eine XML für entsprechende Projekte gegen validieren. Wegen der Dynamik wird XML auch gerne als Translator-Sprache zum synchronisieren zweier Datenbanken verwendet.

Dennoch, zum speichern einer Hand voll Informationen bei wenigen Einheiten in einem Spiel würde ich XML nicht unbedingt als erste Wahl deklarieren. Ein modifiziertes ''INI-Format'' kann dem Programmierer die Arbeit deutlich erleichtern. Vor allem dann, wenn kein fertiger XML-Reader zur Verfügung steht. Das auswerten/parsen von Schemata (falls überhaupt notwendig) macht die Sache auch nicht unbedingt einfacher.
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D
 

CO2

ehemals "SirMO"

BeitragSa, Nov 27, 2010 10:58
Antworten mit Zitat
Benutzer-Profile anzeigen
erstmal danke für die antworten,

@hectic:
Das war ja nur ein beispiel, das ist noch nicht die spätere end-fassung.

nochmal zu den .dtd/.xsd dateien: Dort kann ich ja so deklarieren, das der tag "vehicle" einen untertag namens "name" habe muss:

Code: [AUSKLAPPEN]
<!ELEMENT vehicle(name)!>


JEtzt müsste die .xml datei ja wie folgt aussehen:

Code: [AUSKLAPPEN]
<vehicle>
     <name>bla</name>
</vehicle>


Wie deklariere ich jetzt, wenn die datei aber so aussehen soll:
Code: [AUSKLAPPEN]
<vehicle name="bla"/>


?

vielen dank für die antworten,
mfG,
CO2
mfG, CO²

Sprachen: BlitzMax, C, C++, C#, Java
Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti

Xeres

Moderator

BeitragSa, Nov 27, 2010 14:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Auf DTD kann man doch auch komplett verzichten - oder nicht?
Solange du dich an die XML Syntax hältst, damit der Parser damit klar kommt... Ich jedenfalls würde mir die Arbeit sparen.
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

Neue Antwort erstellen


Übersicht Sonstiges Smalltalk

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group