Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   XML (https://www.delphipraxis.net/46-xml/)
-   -   Vorteile/Nachteile von XML (https://www.delphipraxis.net/157624-vorteile-nachteile-von-xml.html)

Assarbad 18. Jan 2011 19:18

Vorteile/Nachteile von XML
 
Moin,

in den bisherigen Anwendungsgebieten wo ich XML benutzt (oder auch nur in meine Überlegungen eingeschlossen) habe war es meist nur um kurze strukturierte Nachrichten auszutauschen.

Ein Kollege wollte mich aber vor einiger Zeit überzeugen, daß XML absolut die erste Wahl bei sowas wie Zusammenfassungen eines Virenscans seien. Ich persönlich habe so meine Zweifel.

Es ist schließlich so, daß die meisten Parser einfach nicht damit klarkommen wenn ein XML-Element nicht geschlossen wurde. Stellt man sich nun vor, daß der Benutzer eine langwierige Aktion abbricht, kann man sicher dafür sorgen daß die Elemente geschlossen werden. Aber das klappt nicht immer, wenn bspw. etwas unvorhergesehenes passiert. Im Gegensatz zu SEH auf Win32 gibt es auf (den meisten) unixoiden Systemen keinerlei Möglichkeit einen Prozeß zu retten. Sogar longjmp ist dabei vielfach nicht hilfreich.

Im Zweifelsfall sitzt der Benutzer dann mit einer beschädigten XML-Datei da und weiß nicht wie weiter, weil das Anzeigeprogramm mit dem verkorksten XML nicht klarkommt. Dann sind all die tollen Vorteile (Maschinenlesbarkeit, Portabilität) auf einmal dahin ... :?

Selbst für IPC sehe ich - insofern es auf der gleichen Maschine passiert - keine wesentlichen Vorteile von XML gegenüber einem Record den ich über ne Pipe, MMF oder anderweitig übertrage. Zumindest die üblichen Probleme wie Bitreihenfolge und Bittigkeit sind schonmal nicht vorhanden.

Ein weiteres Problem welches ich mit XML sehe ist die Ambiguität. Es gibt keine verläßliche Konventionen wann ich besser ein Attribut und wann ich besser ein Kindelement einsetze. In einigen Notationen ist es sogar nicht unterscheidbar.

Das für mich eindringlichste Argument von XML aus der XML-Welt ist aber die Kompaktform von RELAX-NG, welche deutlich lesbarer (aber genauso maschinenlesbar) ist wie die XML-Form.

Also, nennt mir doch mal bitte eure persönlichen Argumente für XML (dagegen habe ich schon eigene ;)). Es geht hier also wirklich darum, vorzugsweise positive, Argumente für XML zu sammeln. Kurz: überzeugt mich mit Fakten :-D

NB: bitte auch das jeweilige Anwendungsgebiet mit benennen, denn logischerweise macht sowas nur im Zusammenhang Sinn ;)

rollstuhlfahrer 18. Jan 2011 19:27

AW: Vorteile/Nachteile von XML
 
XML macht beim Datenaustausch schon Sinn, also auch nur da, wo es nicht bessere Lösungen wie Records gibt. Mal ein Beispiel: Dynamische Webseiten laden meist irgendwas nach. Wenn sie dann besonders Flash-lastig sind, ist das meist XML, weil Flash eben dieses XML besonders gut handhabt. Hat man jetzt mehr mit JavaScript zu tun, ist XML auch vorne mit dabei (weil man nicht immer ein eigenes Format einführen muss und der Browser das eh lesen kann), aber JSON ist da bei mir an Stelle 1, weil IE und Firefox das XML unterschiedlich abarbeiten. Bei JSON ist das wenigstens einheitlich.

Noch ein Argument für XML: Man kann einfache Strukturen abspeichern und sie auch wieder auslesen, ohne gleich eine Datenbank nehmen zu müssen, weil eine Datenbank in etwa so wäre, als würde man mit Kanonen auf Spatzen schießen. Dies gilt nur, solange man keine komplexen Abfragen haben möchte oder gar die Datenmenge sortiert und nach einem bestimmten Kriterium ausgewertet haben möchte.

Außerdem lässt XML das zu, was bei Records neben dem Speichern von langen Strings nur sehr bedingt möglich ist: Unterschiedliche Informationen. Wenn man jetzt eine einzige Konfigurationsdatei hat und sehr verschiedene Parameter speichern will, geht das mit XML besonders einfach (ja, INI gibts auch, das ist aber schon älter).

Bernhard

Luckie 18. Jan 2011 19:31

AW: Vorteile/Nachteile von XML
 
Als Vorteil gegenüber was? Um Programmeinstellungen zu Speichern würde ich immer noch Ini-Dateien nehmen, weil man da meist eindimensionale Strukturen hat. So bald man aber mehrdimensionale oder sich wiederholende Strukturen hat bietet sich XML an. Konkretes Beispiel? Puh, fällt mir jetzt konkret nichts ein, kann ich dir aber sagen, wenn wir uns mal zu einem Bier treffen.

Als Nachteil sehe ich aber, dass XML meist recht viel Overhead hat und in einem Texteditor nicht immer einfach zu lesen ist im Gegensatz zu Ini-Dateien.

Dein Problem mit den kaputten XML-Dateien, wenn die Bearbeitung unterbrochen wurde, würde ich wie folgt lösen: Es wird eine Backup-Datei von der letzten heilen Datei angelegt. Ist die neue, editierte Datei fehlerhaft, wird auf das Backup zurückgegriffen. So greifen zwar nicht die Änderungen, aber das Programm funktioniert. Also ein ähnliches Vorgehen, wie bei Windows mit den ControlSets, wo man beim Booten die letzte funktionierende Konfiguration auswählen kann, wenn die aktuelle kaputt ist.

himitsu 18. Jan 2011 19:58

AW: Vorteile/Nachteile von XML
 
Es ist nicht so, daß die Parser damit nicht klar kommen, wenn ein Tag nicht geschlossen wird.
Vielmehr ist es so, daß es laut XML-Spezifikation verboten ist, daß es offene Tags gibt und es ist vorgeschrieben, daß ein Parser in soeinem Fall einen Fehler auslösen soll.

Selbst mein Parser wirft in soeinem Fall eine Exception, obwohl man dieses auch geziehlt deaktivieren kann ... z.B. kann, in Bezug auf eine teilweise Kompatibilität zum HTML, das <br>-Tag als offen deklariert werden, wobei es dann auch immer offen sein muß.
PS: Seit XHTML ist es auch in HTML vorgeschrieben, daß das <br> als offen markiert sein muß, also <br/> ... als kompatibilität zum XML.

Selbst wenn der Programmierer Mist baut und etwas beim Speichern schief geht oder diese Bearbeitung vorzeitig abgebrochen wurde, dann schließt eine ordentliche XML-Lib immer alle offenen Tags.

Wenn beim Speichern etwas Schwerwiegendes passiert, dann ist es doch egal, ob XML oder was Anderes ... in allen Fällen ist die Datei defekt.
Aber notfalls kann man viele XML-Parser auch so einstellen, daß sie dennoch die XML auslesen und zugänglich machen, bis zum ersten schweren Fehler.

Wozu soll es denn Konventionen geben?
Es ist deine Entscheidung, ob du lieber ein Attribut oder nicht nutzt.
Die Aufteilung der Daten ist nicht vorgeschrieben, sondern nur deren Format.
Grundsätzlich kann man aber sagen, daß bei vielen und/oder großen Daten-Einheiten lieber auf SubNodes, anstatt auf Attribute gesetzt werden sollte.



Auch wenn die Vorteile schon mehrfach/ständig genannt wurden.
Vorteile:
- es ist ein genormtes und weit verbreitetes Datenformat
- automatische Speicherverwaltung (der Programmierer muß sich um nix kümmern)
- viele Umgebungen (Delphi, PHP, JS, ...) haben schon passende DOM-Parser integriert, welche natürlich alle Kompatibel sind
- man kann die Stucktur erweitern/ändern, ohne die Datei extra konvertieren zu müssen und bei einer Erweiterung bleiben oftmals alte Programme weiterhin lauffähig
- die Datei ist vom Menschen lesbar/änderbar, ohne spezielle Anzeigeprogramme

Nachteile:
- die Datei ist oftmals größer, als eine Binärdatei
- die Datei ist ganz leicht vom Menschen lesbar (Grundsätlich erstmal keine Geheimnisse)


@Luckie:
Eine XML-Datei, mit entsprechenden Einrückungen und Zeilenumbrüchen kann sogar besser lesbar sein, als eine INI.

patti 18. Jan 2011 20:00

AW: Vorteile/Nachteile von XML
 
Wow, das passt ja wie die Faust aufs Auge zu der Vorlesung zu "XML", die ich heute gehört habe ;-)
Ich zitiere jetzt mal mehr oder weniger die Aussagen aus dieser Vorlesung:

XML eignet sich bei unstrukturierten, "semi-strukturierten" oder schemalosen Daten und eignet sich vor allem zum Austausch von Daten zwischen verschiedenen Anwendungen, da Meta-Daten zu den eigentlichen Daten immer mitgeliefert werden. Eine weitere Möglichkeit von XML ist die Darstellung/Präsentation der Daten in unterschiedlichen Formaten, was durch den Einsatz von XSL ("Stylesheets") ermöglicht wird. Als Hauptargumente für das XML-Format wurden in der Vorlseung angegeben:

Wiederverwendbarkeit
Zusammensetzung von XML-Dokumenten aus externen Entities, ohne diese zu replizieren
"Modularisierung" von Dokumenten
Verringerung des Datenvolumens und Vermeidung von Redundanz

Erweiterte Referenzierbarkeit
Wechselseitige Referenzierung zwischen Dokumenten
Zeiger auf mehrere Ziele möglich

Des Weiteren ist es durch den Einsatz von XPath möglich, Datenbank-ähnliche Abfragen zu erstellen und somit gezielt auf die gespeicherten Daten zuzugreifen.


Ich kann die einzelnen Punkte nicht bewerten, da ich mich leider bisher noch nie wirklich mit diesem Thema beschäftigt habe. Ich kann daher nicht sagen, was in der Praxis wirklich zutrifft.

mfg

BUG 18. Jan 2011 20:02

AW: Vorteile/Nachteile von XML
 
Wenn du eine einfache Struktur für deine XML-Dokumente wählst, sollte es doch machbar sein, ein Tool zu schreiben, dass die von dir erstellte XML-Datei "repariert" (Tags schließen, nötige Elemente anhängen).

Sir Rufo 18. Jan 2011 21:26

AW: Vorteile/Nachteile von XML
 
Also das Problem mit den nicht geschlossenen Tags würde ich ja mal nicht überbewerten.

Dafür kann man sich entsprechend sichere Speichermethoden schreiben (wie man das bei jedem Format machen sollte) und die Datei ist zu einem sehr hohen Prozentsatz konsistent.

Es gibt Fälle wo es nicht konsistent ist, aber wo man - ein entsprechendes Konzept vorausgesetzt - immer die letzte konsistente Version nehmen kann.

Vermutlich willst du (Assarbad) auf das serielle Schreiben der XML Datei raus, wo die Daten tatsächlich bei einem Absturz inkonsistent sind.
So sollte man das auch nicht machen.

Assarbad 18. Jan 2011 21:52

AW: Vorteile/Nachteile von XML
 
Danke erstmal für die rege Beteiligung.

Zitat:

Zitat von Sir Rufo (Beitrag 1075679)
Es gibt Fälle wo es nicht konsistent ist, aber wo man - ein entsprechendes Konzept vorausgesetzt - immer die letzte konsistente Version nehmen kann.

Bei Konfigurationsdateien könnte das in der Tat klappen.

Zitat:

Zitat von Sir Rufo (Beitrag 1075679)
Vermutlich willst du (Assarbad) auf das serielle Schreiben der XML Datei raus, wo die Daten tatsächlich bei einem Absturz inkonsistent sind.
So sollte man das auch nicht machen.

Was schlägst du stattdessen vor? Im Speicher halten geht schonmal nicht, wenn wir davon ausgehen daß durchaus mehrere GiB als Logdatei ("nur Text") herauskommen können. XML neigt ja eher dazu das gegenüber einfachem Text aufzublähen :mrgreen:

Zitat:

Zitat von BUG (Beitrag 1075640)
Wenn du eine einfache Struktur für deine XML-Dokumente wählst, sollte es doch machbar sein, ein Tool zu schreiben, dass die von dir erstellte XML-Datei "repariert" (Tags schließen, nötige Elemente anhängen).

Mmmhnja ... irgendwie dann auch frickelig.

Zitat:

Zitat von patti (Beitrag 1075639)
Wiederverwendbarkeit
Zusammensetzung von XML-Dokumenten aus externen Entities, ohne diese zu replizieren
"Modularisierung" von Dokumenten
Verringerung des Datenvolumens und Vermeidung von Redundanz

Solche kompletten Parser mit "Validation" sind aber relativ dick (Bsp. Xerces).

Zitat:

Zitat von patti (Beitrag 1075639)
Erweiterte Referenzierbarkeit
Wechselseitige Referenzierung zwischen Dokumenten
Zeiger auf mehrere Ziele möglich

Das ist mal ein interessanter Punkt. Daran habe ich noch nicht gedacht. Vielleicht läßt sich mit dem Ansatz das Problem so umformulieren, daß es wieder Sinn macht.

Zitat:

Zitat von himitsu (Beitrag 1075637)
Es ist nicht so, daß die Parser damit nicht klar kommen, wenn ein Tag nicht geschlossen wird.
Vielmehr ist es so, daß es laut XML-Spezifikation verboten ist, daß es offene Tags gibt und es ist vorgeschrieben, daß ein Parser in soeinem Fall einen Fehler auslösen soll.

Ja gut, Parser oder Spezifikation ist dem Endbenutzer eigentlich egal. Mir als Entwickler übrigens auch :stupid:

Zitat:

Zitat von himitsu (Beitrag 1075637)
Selbst wenn der Programmierer Mist baut und etwas beim Speichern schief geht oder diese Bearbeitung vorzeitig abgebrochen wurde, dann schließt eine ordentliche XML-Lib immer alle offenen Tags.

Nicht wenn das Betriebssystem den Prozeß beendet ;) ...

Zitat:

Zitat von himitsu (Beitrag 1075637)
Wenn beim Speichern etwas Schwerwiegendes passiert, dann ist es doch egal, ob XML oder was Anderes ... in allen Fällen ist die Datei defekt.

Transaktionsbasierte Datenbanken! :stupid:

Naaah gut, ab Vista geht das auch mit XML ;)

Zitat:

Zitat von himitsu (Beitrag 1075637)
Aber notfalls kann man viele XML-Parser auch so einstellen, daß sie dennoch die XML auslesen und zugänglich machen, bis zum ersten schweren Fehler.

Ich sehe, daß ich mich vermutlich mit derlei Alternativen auseinandersetzen muß.

Zitat:

Zitat von himitsu (Beitrag 1075637)
Wozu soll es denn Konventionen geben?

Der Eindeutigkeit halber.

Zitat:

Zitat von himitsu (Beitrag 1075637)
Es ist deine Entscheidung, ob du lieber ein Attribut oder nicht nutzt.
Die Aufteilung der Daten ist nicht vorgeschrieben, sondern nur deren Format.
Grundsätzlich kann man aber sagen, daß bei vielen und/oder großen Daten-Einheiten lieber auf SubNodes, anstatt auf Attribute gesetzt werden sollte.

Aha. Kann man das auch von einer Autorität außerhalb der DP haben? :zwinker:

Zitat:

Zitat von himitsu (Beitrag 1075637)
automatische Speicherverwaltung (der Programmierer muß sich um nix kümmern)

:shock: ... ist das dein Ernst?

Zitat:

Zitat von himitsu (Beitrag 1075637)
viele Umgebungen (Delphi, PHP, JS, ...) haben schon passende DOM-Parser integriert, welche natürlich alle Kompatibel sind

Das ist in der Tat ein Pluspunkt.

Zitat:

Zitat von himitsu (Beitrag 1075637)
man kann die Stucktur erweitern/ändern, ohne die Datei extra konvertieren zu müssen und bei einer Erweiterung bleiben oftmals alte Programme weiterhin lauffähig

Es sei denn sie sind dusselig programmiert :)

Zitat:

Zitat von Luckie (Beitrag 1075631)
Puh, fällt mir jetzt konkret nichts ein, kann ich dir aber sagen, wenn wir uns mal zu einem Bier treffen.

Ach ja? Ist das ne Einladung? :zwinker:

Zitat:

Zitat von rollstuhlfahrer (Beitrag 1075629)
Noch ein Argument für XML: Man kann einfache Strukturen abspeichern und sie auch wieder auslesen, ohne gleich eine Datenbank nehmen zu müssen, weil eine Datenbank in etwa so wäre, als würde man mit Kanonen auf Spatzen schießen. Dies gilt nur, solange man keine komplexen Abfragen haben möchte oder gar die Datenmenge sortiert und nach einem bestimmten Kriterium ausgewertet haben möchte.

Hmm, womit wir wieder bei relativ kleinen Datenmengen sind.

Zitat:

Zitat von rollstuhlfahrer (Beitrag 1075629)
Außerdem lässt XML das zu, was bei Records neben dem Speichern von langen Strings nur sehr bedingt möglich ist: Unterschiedliche Informationen. Wenn man jetzt eine einzige Konfigurationsdatei hat und sehr verschiedene Parameter speichern will, geht das mit XML besonders einfach (ja, INI gibts auch, das ist aber schon älter).

Du meinst weil man Typen wie Bool, Ganzzahl oder Text (oder deren Kombinationen) einfach gemeinsam abspeichern kann? Guter Punkt.

Luckie 18. Jan 2011 22:22

AW: Vorteile/Nachteile von XML
 
Zitat:

Zitat von Assarbad (Beitrag 1075686)
Zitat:

Zitat von Luckie (Beitrag 1075631)
Puh, fällt mir jetzt konkret nichts ein, kann ich dir aber sagen, wenn wir uns mal zu einem Bier treffen.

Ach ja? Ist das ne Einladung? :zwinker:

Ja, aber eigentlich wollte ich nur etwas Zeit schinden. ;)

stahli 18. Jan 2011 23:03

AW: Vorteile/Nachteile von XML
 
Mich hat XML zumindest zum speichern von komplexen Objekten nicht überzeugt. Ich fand zwar den Ansatz und die Möglichkeit, den XML-Experten zu nutzen, sehr interessant aber dann im Handling doch zu kompliziert und unflexibel.

Daher habe ich für meine Objekte eine eigene Dateistruktur festgelegt (ähnlich JSON). In dieser können sich die Objekte auch gegenseitig referenzieren.
Beim Laden einer Datei werden die Objekte dann wieder hergestellt. Dazu dienen ID´s, die in den Objekten und der Datei gespeichert sind.

Im Gegensatz zu XML können Knoten problemlos leer sein bzw. komplett fehlen. Die tatsächliche Struktur ist über die Objekte im Hauptspeicher definiert. Diese lesen dann (wenn vorhanden) ihre Daten aus der Datei.
Im Grunde wird die Datei etwa wie eine "mehrdimensionale Ini" genutzt. Dabei ist die Reihenfolge der Einträge nicht relevant, sondern lediglich die Struktur und "Feldnamen".

Binäre Daten (im Beispiel Picture) werden im Base64-Format abgelegt.

Nachteile des Konzepts sind, dass
- die Datei recht groß wird (allerdings dann auf Wunsch komprimiert wird)
- die Daten zur Laufzeit im Hauptspeicher gehalten werden
(wobei letzteres wie in meinem Fall natürlich auch explizit gewollt sein kann :))

...oh, ich schwiff ab...


Für den Datenaustausch mit feststehenden Strukturen halte ich XML jedoch durchaus für nützlich und praktikabel.

Code:
!ProgramName=Olympic
!ProgramVersion=(V. 0.2.1-)
<TournamentEvent=20100906211710810-20100906211711470-0000000006
  Name=Test
  <State=20100914105207021-20100914105207611-0000000008
  >
  <Sport=20100827212547328-20100827212547942-0000000002
    Name=Badminton
    SportPlaceName=Feld
    <NumeratorList=20100827212547328-20100827212547942-0000000003
      <Numerator=20100827212547328-20100827212702853-0000000005
        Activate=True
        Definition=0..19:21;20..28:+2;29:30
        Name=Rallypoint
        PlanDuration=30
        PointName=Bälle
        WinSetCount=2
      >
      <Numerator=20100827212547328-20100827212808350-0000000006
        Activate=True
        Definition=0..14:15;14..16:17
        Name=alte Zählweise bis 15
        PlanDuration=40
        PointName=Bälle
        WinSetCount=2
      >
      <Numerator=20100827212547328-20100827212845934-0000000007
        Activate=True
        Definition=0..10:11;10..12:13
        Name=alte Zählweise bis 11
        PlanDuration=25
        PointName=Bälle
        WinSetCount=2
      >
    >

...

            <Member=20101025203449672-20101025203508688-0000000203
              Activate=True
              <Person=20101025203449672-20101025203508688-0000000204
                Birthday=01.01.1901
                eMail=xxx@gmx.de
                FirstName=René
                Kind=m
                LastName=Preißler
                Picture=eJzt3edTFFu/L/B7/pP74t6qc8/z7GfvrUhO5iw5JxVzjtucA2IElSw55yQ554xIFA........
                <State=20101129225442228-20101129225526456-0000004171
                >
              >
            >
...


  >
>

Medium 19. Jan 2011 06:01

AW: Vorteile/Nachteile von XML
 
Vom Grundsatz her kann XML nun erstmal wirklich nichts, was ich nicht auch mit meinem eigenen hübschen kleinen Binärformat auch erreichen könnte - allem Geschwafel zum Trotz was XML so alles toll machen soll. Mit Binary XML ist sogar innerhalb dieser Rahmen eine solche Variante bereits geschaffen worden.

Der für mich EINZIG gültige Vorteil ist, dass es ein fix und fertig standardisiertes Format ist, dass extrem weit verbreitet ist. Endianess? Egal. Bits einer FPU? Egal. Und vor allem kann man fast sicher in nahezu jeder ernsthaften DV Umgebung etwas finden, um mit einem XML Dokument etwas sinnvolles anzustellen, und sei es nur schon, dass in praktisch jeder halbwegs wichtigen Programmierumgebung fertige Lösungen existieren.

Fazit: Das für mich einzig hervorhebbare Pro-Argument von XML ist fast rein kaufmännischer Natur, lässt man mal aussen vor, dass sich auch so mancher Codehacker über etwas abgenommene Arbeit freuen könnte ;). Aber rein vom "was kann es mehr, was ich nicht auch selbst erdenken könnte"-Standpunkt aus, nö. Fällt mir nix ein.

marabu 19. Jan 2011 07:41

AW: Vorteile/Nachteile von XML
 
Hallo Oliver,

ich empfand SGML in den achtziger Jahren als Offenbarung. Um so mehr freute ich mich, als XML mit IE5 zu einem mainstream concept wurde. Für den Informatiker sind die an vielen Stellen publizierten XML Benefits einfach nur sofort einsichtige und vor allem erreichte Design-Ziele. Da mit XML nicht nur ein Ziel, sondern gleich mehrere erreicht wurden, müssen Software-Entwickler nicht lange nach passenden Einsatzmöglichkeiten suchen. Oft folgt man dabei auch einfach dem professionellen Standard. Das ist so ähnlich, wie mit dem Tragen sauberer Unterwäsche.

An anderer Stelle hast Du nach Dokumentationsstandards für Daten gefragt: Braucht man soviel mehr als XML (und ASN.1)?

Zitat:

Zitat von Assarbad (Beitrag 1075627)
... Ein Kollege wollte mich aber vor einiger Zeit überzeugen, daß XML absolut die erste Wahl bei sowas wie Zusammenfassungen eines Virenscans seien. ...

Bei tabellarischen Daten im CSV-Format rümpft sicher keiner die Nase, der Scan-Report im XML-Format produziert aber im Gegenzug auch kein Kopschütteln.

Zitat:

Zitat von Assarbad (Beitrag 1075627)
... Es ist schließlich so, daß die meisten Parser einfach nicht damit klarkommen wenn ein XML-Element nicht geschlossen wurde. ...

Ein verstümmelter letzter Datensatz ist unbrauchbar, egal welches Datenformat vorliegt. Ärgerlich ist, wenn der XML-Parser deshalb die Arbeit verweigert, aber das liegt ja auch daran, dass oft ein DOM-Parser statt eines SAX-Parsers eingesetzt wird.

Zitat:

Zitat von Assarbad (Beitrag 1075627)
... Selbst für IPC sehe ich - insofern es auf der gleichen Maschine passiert - keine wesentlichen Vorteile von XML gegenüber einem Record den ich über ne Pipe, MMF oder anderweitig übertrage. ...

IPC ist ganz sicher kein bevorzugter Einsatzbereich für XML.

Zitat:

Zitat von Assarbad (Beitrag 1075627)
... Es gibt keine verläßliche Konventionen wann ich besser ein Attribut und wann ich besser ein Kindelement einsetze. ...

Eigentlich schon: Daten sind Inhalte von Elementen, Metadaten sind Werte von Attributen.

Der Einsatz von XML durch alle großen Software-Konzerne kommt einer Demokratisierung der Daten gleich. Im Vergleich zur Ära der durchgängig proprietären Datenformate sind das schon fast paradiesische Verhältnisse. Meinst Du nicht auch?

Freundliche Grüße

rollstuhlfahrer 19. Jan 2011 09:00

AW: Vorteile/Nachteile von XML
 
Übrigens:
Zitat:

Zitat von stahli (Beitrag 1075697)
Code:
!ProgramName=Olympic
!ProgramVersion=(V. 0.2.1-)
<TournamentEvent=20100906211710810-20100906211711470-0000000006
  Name=Test
  <State=20100914105207021-20100914105207611-0000000008
  >
  <Sport=20100827212547328-20100827212547942-0000000002
    Name=Badminton
    SportPlaceName=Feld
    <NumeratorList=20100827212547328-20100827212547942-0000000003
      <Numerator=20100827212547328-20100827212702853-0000000005
        Activate=True
        Definition=0..19:21;20..28:+2;29:30
        Name=Rallypoint
        PlanDuration=30
        PointName=Bälle
        WinSetCount=2
      >

In XML gibt es so was wie Empty-Tags. Das sind Tags ohne Kinder. Aber auch diese Empty-Tags haben einen Close-Tag. Entweder explizit oder indem man ein / vor das > stellt.

Bernhard

stahli 19. Jan 2011 09:46

AW: Vorteile/Nachteile von XML
 
Das stimmt, aber damit kommt nicht jede Zugriffsmöglichkeit zurecht.
Ganz genau kann ich es nicht mehr differenzieren, aber man musste unterscheiden, ob es sich um einen Textknoten oder normalen Knoten handelt und ob man über TNode oder INode, Text oder Value usw. zugreift.
Zumindest waren leere und/oder fehlende Knoten je nach Zugriffsart mit Delphi-Bordmitteln alles andere als unproblematisch.

p80286 19. Jan 2011 11:49

AW: Vorteile/Nachteile von XML
 
Der Vorteil gegüber CSV und ähnlichen Formaten, man kann seine Daten wild durcheinander rotzen, am Ende kommt trotzdem etwas Brauchbares heraus.
An jeder Staßenecke gibt es Programme,Bibliotheken die mehr oder weniger gut mit XML umgehen können.
Der Nachteil....
Ein DB-Abzug in XML ist beinahe so gut wie Bilder in RTF-Dateien.
Eine Erfahrung in Platzverbrauch.

Gruß
K-H

rollstuhlfahrer 19. Jan 2011 11:51

AW: Vorteile/Nachteile von XML
 
Zitat:

Zitat von marabu (Beitrag 1075727)
Der Einsatz von XML durch alle großen Software-Konzerne kommt einer Demokratisierung der Daten gleich. Im Vergleich zur Ära der durchgängig proprietären Datenformate sind das schon fast paradiesische Verhältnisse. Meinst Du nicht auch?

Ein weiterer Punkt, da das Format nicht nur maschinenlesbar ist, sondern auch teilweise menschenlesbar, kann man ganz einfach auf Konfigurationsdateien anderer Software aufbauen, die man selbst nicht beeinflussen kann. Hat die andere Software ein Update, bei dem neue Tags hinzukommen ist das meist kein Problem, die neuen Tags zu ignorieren. Hat man jetzt aber ein propitäres Format, so müsste man die komplette Anwendung neu schreiben, weil die eigene Anwendung nicht mehr mit dem ursprünglichen Format zurecht kommt.

Bernhard

Medium 19. Jan 2011 14:48

AW: Vorteile/Nachteile von XML
 
Was aber halt auch kein Alleinstellungsmerkmal ist. Sobald ich ein binäres Format mit Chunk-Headern nehme, ist die gleiche Flexibilität erreicht - und sehr viele Containerformate für digitale Medien machen auch genau dies. Auf binäre Daten kann man genau so aufbauen (Doku hilfreich, ja), aber viele XMLs in freier Wildbahn sind auch schon recht dokumentationswürdig. Das Format allein erzwingt nicht, dass man aus dem Inhalt allein "schlau genug" wird.
Es ist, auch nach nochmaligem Nachdenken, die Verbreitung und der prinzipiell gute Ausbau in der IT Welt dafür. Das Format an und für sich könnte auch ganz anders aussehen. (Was sicherlich zur Verbreitung verholfen hat ist, dass es im Internetboom aufkam, und eine Obermenge von HTML ist, worauf seinerzeit jeder und seine Oma scharf war.)

markusj 19. Jan 2011 16:38

AW: Vorteile/Nachteile von XML
 
IMHO ist der größte Vorteil von XML die oben schon angesprochene Portabilität. Es gibt unzählige XML-Parser für verschiedenste Programmiersprachen, wodurch man beliebige Daten relativ unkompliziert einlesen oder rausschreiben kann.
Man bekommt einfach einiges Arbeit abgenommen, XML hat für mich fast etwas von Plug&Play, ich muss mich nur noch um die Auswertung meiner eigenen Daten und die darüber liegenden Schichten kümmern.

mfG
Markus


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:50 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz