Gut, das ist irgendwie peinlich, aber ich bin mir nicht sicher, was der beabsichtigte Einsatz von XML ist. Das ist richtig, wofür XML gedacht ist, und NICHT was ist XML. Ich habe XML im Laufe der Jahre hauptsächlich für Konfigurationsdateien verwendet, aber das scheint eine triviale Verwendung zu sein. Ich habe es auch als interoperatives Format für Datendateien verwendet, aber es sieht für mich nicht besonders effizient aus. Ich habe minimale Erfahrung mit Web-Entwicklung, so dass ich denke, es ist nützlich für die Kommunikation, aber die Mehrheit der Artikel, die ich über XML gelesen habe, waren tatsächlich Vergleich zwischen XML und JSON und nicht XML per se.
Update: So weit mein Gefühl (Basierend auf diesem Kommentar ) ist, dass XML für die generische Datenübertragung gedacht war, aber nach anfänglicher Euphorie ist es wegen seiner ineffizienten Natur gefallen (und es ist ineffizient, weil es generisch ist). Weitere Gedanken sind willkommen.
Ich versuche eine Zusammenfassung meiner Erfahrungen mit XML zu erstellen:
Jeder kann seinen Inhalt überprüfen, indem er es einfach liest. Dies macht es zu einer einfach zu bedienenden und verständlichen Form der Kommunikation. Auch Geschäftsleute mögen es (soweit ich seit Jahren mit Finanzinstituten Erfahrung habe), da sie es verstehen und sie die Nachrichten beispielsweise in Messaging-Systemen leicht überprüfen können. Sie allein können entscheiden, welches System falsch ist. Macht sie glücklich :) Vergleichen Sie es mit JSON . JSON ist bei weitem nicht leserfreundlich Ich denke, da schließende Klammern schwieriger zu verfolgen sind als das Schließen von Elementen in XML. Sie müssen zurückblättern, um zu sehen, was der Start war. Sie benötigen keine Programmierkenntnisse, um XML zu verstehen. Selbst deine Großmutter kann es nach einer halben Stunde verstehen.
Es spielt keine Rolle, welche Art von Sprache und Plattform Sie verwenden, Sie werden definitiv einen Parser haben, um es zu lesen. Dies macht es wahrscheinlich die beste Form der Kommunikation zwischen heterogenen Systemen. Beachten Sie, dass Benutzer normalerweise XMLs über JMS-Warteschlangen übertragen, XML-Dateien an Webdienste senden, Objekte vor dem Transport XML-Dokumenten zuordnen. XML ist so grundlegend, dass es bei verschiedenen Parsern keine großen Probleme gibt. Sie alle verstehen XML.
Sie können XSL und XSL-FO verwenden, um Ihr XML-Dokument in fast alles umzuwandeln. HTML, PDF, TXT, CSV, einige andere XML-Datei und so weiter. XSL ist ziemlich mächtig, da es an die Denkweise von XML angepasst ist. Es lässt dich rekursiv denken, was mir nach der objektorientierten Programmierung immer Spaß gemacht hat. XSL ist für fast jede Plattform verfügbar. Sie können Berichte und Dokumente aus reinen Daten mit XSL erstellen. Mit Technologien wie JAXB können Sie XML-Dokumenten problemlos Programmierobjekten zuordnen.
XSD ermöglicht es Ihnen, Grammatik für Ihre XML-Dokumente zu definieren. Das Schema selbst ist weniger benutzerfreundlich als XML, aber einfachste Konstruktionen wie occourance, Elternschaft, Attribute usw. sind leicht zu verstehen und zu verwenden. Das ist also auch ein Werkzeug, das für Geschäftsleute ok sein könnte. XSD ist für fast jede Plattform verfügbar.
Mit beiden Technologien können Sie XML durchsuchen und abfragen. Der Vorteil ist wie bei XSL und XSD, dass sie plattformunabhängig sind. XPath ist so effektiv, dass sogar für Objektbäume Apache das Äquivalent dazu erzeugt: JXPath .
Es kann Speicherplatz auf der Festplatte belegen. XML macht große und schwer lesbare Logs möglich. Auf der anderen Seite können Sie die Protokolle komprimieren. Sogar Web-Services oder JMS-Nachrichten können komprimiert werden, um die Belastung des Kanals zu reduzieren. Aber auch in diesem Fall ist die Komprimierung der CPU- und Arbeitsspeicher-Overhead. Auf der anderen Seite können XML und verwandte Technologien meiner Erfahrung nach die Entwicklung verkürzen, und was Sie in MDAys sparen, ist weit genug, um eine weitere CPU zu kaufen. CPUs sind billiger als der Mensch.
Es ist bei weitem nicht trivial, welche Art von Objekten (XPath-Ausdrücke, XSL-Vorlagen, XSD-Schemas, XML-Parser usw.) welche Art von Lebenszyklus haben. Was kann zwischengespeichert werden? Viele Menschen tun es nicht richtig, um Probleme mit der Fadensicherheit zu vermeiden. Und das wird dich zu schrecklicher Langsamkeit führen. Und ich möchte betonen, dass das nicht das Problem der Technologie ist, sondern ein Missbrauch . Viele Leute sind am alten DOM-Parser hängen geblieben, was eine hässliche Sache ist. Sie abstrahierten eine darüber liegende Schicht und erstellten proprietäre APIs für die XML-Behandlung, was schlecht ist. Mach weiter, benutze DOM4j oder STAX oder JAXB oder irgendeinen Standard.
Viele Unternehmen haben domänenspezifische Sprachen oder schreckliche Konfigurationsdateien mit XML erstellt. Da es leicht zu analysieren und zu durchqueren ist, wurden sogar Dolmetscher für die brandneue Sprache erstellt. Die Sprache ist blockiert, und die geplanten Entwicklungswerkzeuge wurden nie erstellt. Verwenden Sie niemals XML, um Programme zu erstellen. Es ist nicht für verwendet werden. Programmieren Sie nicht in XPath, da es keine Entwurfszeit ist. Dinge an Ort und Stelle halten. XML dient hauptsächlich dazu, Daten in einer Standardform zu transportieren. Erfinden Sie das Rad nicht in XML neu. Dies wäre ein programmatischer Rollstuhl für Sie und kein Auto.
Die besten Tutorials zu XML finden Sie unter ZVON . Verwenden Sie sie, wenn Sie möchten.
Als gängige Form für die Weitergabe von Daten. Es war die 1990er Jahre und Markierungen waren der letzte Schrei!
Es gibt viel Flexibilität und Leistung, einschließlich der Möglichkeit, eine XML-Datei zu validieren; aber ich finde es interessant, dass in den letzten Jahren eine Reihe viel leichterer Alternativen aufgetaucht sind (zB JSON). Ie. in der Lage zu sein, Daten in einer für Menschen lesbaren Form leicht zu lesen / schreiben, scheint für die meisten Anwendungen wichtiger zu sein als all diese Validierungskram.
Xml ist menschlich lesbar und standardisiert. Jede Sprache hat eine Art von XML-Parser.
XML ist als Format zur Darstellung von Daten gedacht - ein Format, das Menschen lesen und Maschinen verarbeiten können.
Wirklich, das ist es.
Was seinen "Verwendungszweck" angeht: Nun, das ist ein bisschen subjektiv. Es kann für Serialisierung, Datenaustausch, Dokumentenmarkierung oder was auch immer verwendet werden. Wirklich kann es für fast jeden möglichen Zweck verwendet werden, der digitale Daten miteinbezieht.
XML ist eigentlich ein Container, in dem Sie strukturierte Textdaten ablegen können und der viele verschiedene Verwendungsmöglichkeiten umfasst, wie zum Beispiel Text mit semantischer Struktur. Die Struktur kann auch als ein Baum gesehen werden, so dass Sie Dinge hierarchisch organisieren können.
Es kann gegen formale Grammatikregeln (DTD, XSD ...) validiert werden, in eine andere Baumstruktur (XSLT) transformiert werden, Daten können mit verschiedenen Mitteln extrahiert werden, wie zB Abfragesprachen (XQuery), XML kann aus a erstellt werden Baum (DOM) und vieles mehr.
Diese technischen Möglichkeiten eröffnen sich für viele Funktionen in verschiedenen Bereichen wie Datenspeicherung, Netzwerkkommunikation, Prozessorganisation (hier finden Sie Ihre Konfigurationsdateien) und so weiter.
Die Stärke von XML liegt in der menschlichen Lesbarkeit. Daten, die ein strukturiertes, menschenlesbares Layout benötigen, sind das, wofür es wirklich ist. Die Verwendung für Konfigurationsdateien kann auf diese Weise sehr sinnvoll sein. Auch UI-Layout (Flex MXML, etc) ist eine beliebte legitime Verwendung meiner Meinung nach.
Es ist jedoch sehr ausführlich, wie Sie erwähnt haben. Dies macht es sehr ineffizient, in einer unkomprimierten Form zu übertragen.
Wie bereits erwähnt, ist XML ein guter Standard für den Austausch von Informationen zwischen verschiedenen Anwendungen. Es ist im Grunde Esperanto für den Datenaustausch.
Eine Sache, die niemand an XML mag, ist seine Ausführlichkeit. Ein Mensch wird in all diesen Tags verloren gehen, wenn es mehr als 2-3 Ebenen der Einrückung gibt. Und nein, du hörst nicht auf, all diese Tags nach einiger Zeit zu sehen, wie es Leute mit Lisp's Klammern tun.
XML hat auch ein sehr "Enterprise" -Gefühl. Das heißt, große Unternehmen lieben es, weil es ein Standard ist. Aber das bedeutet nicht, dass es für jede Situation gut ist. Und denken Sie nicht, dass das Parsen schnell ist, weil Hardware existiert, um XML schneller zu parsen als nur mit Software ...
Ich möchte hinzufügen, dass es abfragbar ist. Wir erhalten jede Stunde XML-Dateien, die Preise für über 100 Standorte enthalten. Ich musste alle Preise von diesen Dateien für einen einzigen Ort bekommen.
Ich lud die Dateien in eine Tabelle in SQL Server und dann konnte ich die Preise für den Standort auswählen, an dem ich interessiert war. Ich habe darüber gebloggt HERE.
Ein weiterer Vorteil ist, dass es einfacher ist, mit Dateien mit fester Breite umzugehen, mit denen wir früher zu tun hatten. Bevor Sie eine Spalte am Ende Ihrer Datendatei hinzufügen, würde dies normalerweise den Prozess unterbrechen, der diese Datei liest. Wenn Sie 10 verschiedene Firmen hatten, die die Datei lesen, müssten alle 10 am selben Tag geändert werden. Jetzt können Sie ein neues Element hinzufügen und die Clients können bei Bedarf aktualisieren, wenn sie an diesem Element interessiert sind.
XML ist eine Standardisierung für die Kommunikation. Während es zum Beispiel etwas ausführlicher ist als Textdateien oder Binärdateien, überwiegen die Vorteile die Nachteile. XML ist sehr erweiterbar und alles, was Sie brauchen, ist ein XML-Parser auf jeder Plattform, und Sie können XML-Daten lesen, die von allem erzeugt werden.
Was die XML-Daten bedeuten, ist eine andere Geschichte, da XML Ihnen erlaubt, Tags und Attribute zu erstellen, die zu Ihren Daten passen. Die Alternative ist, dass Sie ein eigenes Format für diese Daten erstellen und dann alles, was Ihre Daten konsumieren müsste, wissen müsste, wie Sie diese Daten analysieren können.
Tags und Links xml