Welche Probleme wurde XML erfunden, um zu lösen? Von dem, was ich sagen kann, scheint es, als ob es eine einheitliche Syntax für Dinge spezifiziert, die eine sehr unterschiedliche Semantik haben können. Anders als beispielsweise eine HTML-Datei, eine Java-Quelldatei oder ein DOCX-Dokument kann man kein Programm schreiben, um irgendeine Art von höherwertiger Bedeutung aus einer XML-Datei ohne viele zusätzliche Informationen zu extrahieren. Welchen Wert hat es, wenn die Syntax von einigen Normengremien starr vorgegeben wird, auch wenn die semantische Bedeutung völlig unspezifiziert ist? Welche Vorteile bietet XML, wenn Sie nur Ihr eigenes Ad-hoc-Format erstellen, das genau das tut, was Sie brauchen, und nicht mehr? Kurz gesagt, was leistet XML und warum ist es so weit verbreitet?
XML zwingt Ihre Daten dazu, gut strukturiert zu sein, so dass ein Programm, das die Semantik Ihrer Daten nicht versteht, trotzdem seine Syntax verstehen kann. Dies ermöglicht Dinge wie XSLT, die ein wohlgeformtes XML-Dokument in ein anderes verwandeln. Das bedeutet, dass Sie Daten manipulieren können, ohne sie interpretieren zu müssen. Sie können sehen, dass das Dokument gemäß seiner DTD wohlgeformt und gültig ist, ohne dass der Inhalt verstanden werden muss.
Dies war ein großer Schritt vorwärts für Datenspeicherung, Interoperabilität und Maschinenlesbarkeit im Allgemeinen.
Ich finde persönlich, dass XML nützlich ist, weil ich finde, dass das Schreiben von Parsern ein Schmerz ist. Wenn Sie Ihr eigenes Datenformat erfinden, dann schreiben Sie viel Zeit für das Schreiben von Parsing-Code - und prüfen, ob die Daten in einer Menge Benutzerdaten korrekt eingegeben wurden. Dann, nachdem Sie alle Eingabe- und Gültigkeitsprüfungscodes für Ihren Parser fertiggestellt haben, haben Sie die Freude, die Dokumentation für Ihr Dateiformat für alle anderen zu entwickeln, die es verwenden möchten, sowie die weitere Freude, Fehler in Ihrem Eingabe-Validierungscode zu finden Ihr Parser, nachdem sie anfangen, Daten auf Ihre Art zu senden.
Mit XML sind die Mechanismen zum Parsen gut definiert, und mit XML-Schema oder DTDs können Sie die Formate angeben, die Sie akzeptieren möchten. XML-Parser sind für fast jede wichtige Programmiersprache verfügbar, so dass Sie die Menge an Code, die Sie schreiben, pflegen und dokumentieren müssen, erheblich reduzieren können.
xml können Sie standardmäßig nicht standardmäßig sein :). Es ist hässlich, es ist ausführlich, es braucht viel Platz und es ist absolut unschätzbar für die Interoperabilität. Grundsätzlich ist xml schön, weil es Ihnen eine Standardmethode zur Beschreibung Ihrer Daten gibt, so dass ein einzelner Typ von Parser Daten aus verschiedenen Quellen verarbeiten kann.
Um ein konkreteres Beispiel zu verwenden, habe ich in den Tagen vor xml in der Halbleiterwerkzeugindustrie gearbeitet. Jedes Werkzeug verwendete ein Rezept, um zu beschreiben, wie ein bestimmter Wafer zu bearbeiten ist. Jedes dieser Werkzeuge verwendete ein anderes Format für ihre Rezepte. Nun, bemitleide die arme Person (mich!), Die mehrere dieser Werkzeuge nehmen und in ein einziges Verarbeitungssystem integrieren musste. Ich musste für jeden Rezepttyp einen anderen Parser schreiben, Rezepte aus einem gemeinsamen Laden in das für ein bestimmtes Werkzeug passende Format umwandeln, das war nur ein Albtraum. Wenn xml verfügbar gewesen wäre, könnten all diese Rezepte über xml und alle Konvertierungen oder Transformationen definiert worden sein, die mit einfachen xlst-Skripten behandelt werden. Es hätte mir monatelang Entwicklungsaufwand für diesen Teil des Integrationscodes erspart.
Ad-hoc-Lösungen funktionieren gut innerhalb der Grenzen Ihres eigenen Systems, aber wenn Sie die Fähigkeit benötigen, mit 1 ... N anderen Systemen zu kommunizieren, ist dies eine gute Grundlage, auf die sich alle Parteien verlassen können, um in einem Minimum zu arbeiten bestimmte Weise. Ja, die Daten haben keine semantische Bedeutung, aber Sie sind sicher, dass die Übertragung und Konvertierung von Daten weiterhin erfolgreich ist. Es gibt viele weitere Gründe, aber das ist einer der wichtigsten, die ich immer gedacht habe.
Dies ist ein sehr primitives Beispiel, aber denken Sie darüber nach, wann Systeme mit Flatfile-Daten kommunizieren. Du hättest eine Zeichenfolge verwenden können, für die andere Parteien eine Kommunikation aufgebaut haben, z. B. AAABBBCCCDDD . Andere Systeme wussten, dass sie AAA "Daten" in den ersten 3 Zeichen usw. bekommen würden ... Jetzt ändert jemand etwas auf Ihrer Seite und beginnt versehentlich, BBB AAA CCC DDD zu senden. Boom, alles ist kaputt.
Mit XML könnten Sie beide haben:
%Vor%AND
%Vor%ohne jemandes System zu brechen.
Die Antwort liegt in Ihrer eigenen Frage. "Von dem, was ich sagen kann, scheint es, dass es eine einheitliche Syntax für Dinge spezifiziert, die sehr unterschiedliche Semantiken haben können." Eine einheitliche Syntax löst einen Teil des Problems für Dinge, die eine sehr unterschiedliche Semantik haben, und es ist im geringsten kein triviales Problem.
Ähnlich wird die Textcodierung in Markup (einschließlich XML), Computerprogrammen, dem Schreiben von lesbaren Dokumenten und vielen anderen Aufgaben mit stark unterschiedlicher Semantik verwendet. Möchten Sie Unicode jedes Mal neu erfinden? Würdest du überhaupt genug über all die Probleme wissen, um eine Chance zu haben (oder sogar eine Chance, ein passables ASCII neu zu erfinden?), Scheint ASCII heutzutage einfach zu sein, weil so viele der komplizierten Merkmale seiner Steuercodes nicht länger sind verwendet, Old-School-ASCII-Anwendungen sind oft viel komplizierter als Unicode).
Zahlen werden überall im Computer verwendet, und wir haben immer noch vier verschiedene interne Syntaxen (zwei Endian-Stile, zwei Komplement-Stile), obwohl die Details in diesen Tagen im Allgemeinen verborgen sind.
Neben einem Teil der Arbeit des Erstellers des Formats für sie zu tun, und einen Teil der Arbeit für den Produzenten oder Verbraucher zu demonstrieren, ist einer, mit dem sie bereits vertraut sind (und daher möglicherweise bereits Werkzeuge dafür haben), Es eliminiert einen Teil der Arbeit für einen Produzenten-Verbraucher, der in einem Format liest und in einem anderen schreibt.
Tags und Links xml history file-format