Frage

Ich beschäftige mich häufig mit der Systemprogrammierung, bei der meine Apps keine Chance haben, über das Web zu kommunizieren oder über einen Browser angezeigt zu werden.Es gab jedoch einige Bestrebungen seitens des Managements, XML zu verwenden.Wenn ich beispielsweise ein Zeitprotokoll führen möchte, könnte ich eine Textdatei wie diese verwenden:

Befehl Datum Uhrzeit Projekt
im 23.09.2008 08:00:00 PROJ1
Änderung 23.09.2008 09:00:00 PROJ2
raus 23.09.2008 12:00:00 PROJ2
im 23.09.2008 01:00:00 PROJ3
raus 23.09.2008 05:00:00 PROJ3

Das XML würde etwa so aussehen:

<timelog> <timecommand cmd=in date=2008/09/23 time=8:00:00 proj=PROJ1/>
...
<timecommand cmd=out date=2008/09/23 time=5:00:00 proj=PROJ3/>
</timelog>

Zu den anfänglichen Vorteilen der Textversion, die ich sehe, gehört, dass sie mit Regex leicht lesbar und analysierbar ist.Welche Vorteile bietet die Verwendung von XML in diesem Fall?

War es hilfreich?

Lösung

Es gibt absolut nichts falsch mit der Verwendung von textbasierten Datenformatierung. Es ist seit Jahrzehnten der de-facto-Standard. Big großen Mainframe-Finanzsysteme noch es heute verwenden. Die Vorteile sind, dass es trivial ist, zu produzieren, trivial zu konsumieren und unglaublich leicht. Und wie Log-Dateien? Kennen Sie eine Produktionsplattform, die nicht seine Protokolldatei in einem begrenzten Textformat erzeugen (Web, App, DB-Server)?

Der Nachteil von Textdateien ist, dass, wenn du das Format ändert, dann müssen Sie sowohl die Hersteller ändern und die Verbraucher enden nicht-triviale Weise die Formatänderung unterstützen zu können. Natürlich, wenn es das Ergebnis raubend, nur ein Mensch ist, dann müssen Sie nur den Hersteller geändert werden.

Die Schönheit von XML ist, dass die Analyse der Daten nicht nur von den Daten unabhängig, aber das Format der Daten. übergeben Sie es Logischer sowohl die Daten und das Datenformat, und presto! Funktioniert alles. Es ist nicht gerade so einfach, aber das ist die Prämisse. Sie können das Format der Daten ändern, und Ihre Produzenten und Konsumenten nur trivialen ändern müssen (wenn überhaupt).

Die hässliche von XML ist, dass es eine große Leistung Hund (SOAP anyone?) Sein kann und sehr schweres Gewicht. Sie zahlen auf jeden Fall einen Preis für seine Erweiterbarkeit. Es gibt Fälle, in denen es absolut die optimierte technische Lösung für eine bestimmte Problemdomäne, und es gibt andere Fälle, in denen es nicht ist.

Also, wenn es ein einfaches Protokoll ist, dass ein Mensch lesen, hält es flach Datei. Wenn es eine einfache Anwendung ist mit einer anderen einzigen App Kommunikation und die Kommunikation wird nicht dramatisch im Laufe der Zeit ändern, Flatfile ist auf jeden Fall schneller und leichter zu implementieren, aber XML ist keine schlechte Wahl. Wenn mehrere Anwendungen, die Daten, die Sie anbieten oder wenn das Volumen der Kommunikation Wechsel verbrauchen müssen wird hoch sein, dann mit XML gehen. Die Wartung der Schnittstelle leichtes aufrechterhalten im Laufe der Zeit, wenn Sie tun.

Andere Tipps

Ein paar Vorteile in den Sinn kommen:

  • Es ist einfacher zu analysieren, in andere Anwendungen
  • Es ist einfacher zu verstehen, was das Dokument auf einen Blick
  • hält
  • Erleichtert Daten in ein Führungs Armaturenbrett ziehen
  • Macht das Management zufrieden mit wenig Schmerzen für Sie

Die Nachteile, wie ich sehe sie:

  • Die Mittel bestehenden Code zu ändern, wahrscheinlich unnötig
  • Mögliche geringfügige Leistungsverschlechterung, je nachdem, wie Sie die Dokumente bauen im Vergleich zu, wie Sie die aktuellen docs bauen
  • Es ist XML für XML willen, das effin dumm ist

Und zu schließen, ein Zitat als Ironie gedacht: XML ist wie Gewalt. Wenn es nicht Ihre Probleme zu lösen, werden Sie es nicht genug mit

XML Hauptmerkmal in einem Fall wie diesem ist, dass XML validiert werden kann und gesteuert. In der Textversion, wie würden Sie in der Lage sein, programmatisch zu überprüfen, ob die Datei korrekt formatiert ist? XML ist so konzipiert, strukturiert, gültige Dokumente zu erstellen, und der daraus resultierende Vorteil ist ein Format streng kontrolliert wird, und zuverlässig strukturiert. Die Aufrechterhaltung Code, der von XML-Knoten liest auch viel einfacher und logisch aufgebaut sein würde aus als eine Reihe von regulären Ausdrücken für die Pflege von Textdateien zu lesen.

Wenn Sie XML verwenden, wären die Daten in gewisser Weise „portabler“.In den meisten Umgebungen stehen Ihnen grundsätzlich Parser für Ihre Daten zur Verfügung, sodass das Schreiben eines Tools zum Analysieren der Daten möglicherweise einfacher ist.Wenn es im XML-Format vorliegt, können Sie außerdem ein XSLT schreiben, um es in verschiedene andere Formate umzuwandeln und so das Lesen zu erleichtern.

Wenn Sie jedoch auf die Verwendung von XML umsteigen, sogar auf ein einfaches Format wie das von Ihnen angegebene Beispiel, werden Ihre Protokolldateien viel größer.

Es gibt einige andere Optionen als XML, die Sie verwenden können.Jeffs Winkelklammersteuer Der Blogbeitrag spricht ein wenig darüber.

Was Sie wirklich tun sollten, ist herauszufinden, wie diese Protokolle verwendet werden sollen, und dann zu bestimmen, welches Format diese Verwendung am einfachsten zu implementieren macht.

Es ist leicht parsable regex und XML- und XSL verwenden.

Die Wahrheit zu sagen, es ist nicht wirklich ein „Vorteil“ zu verwenden XML, wenn Sie die Daten auf ein anderes System sind zu senden.

XML ist ein Meta-Format, was bedeutet, es macht es einfacher, ein Format für Ihre Daten zu definieren. Dies macht es einfacher für mehrere Programme, darunter auch solche, die von verschiedenen Unternehmen, lesen und Daten im selben Format zu schreiben. Es ist besonders geeignet als Beschreibung für komplexe, hierarchische Daten.

Im Beispiel Sie oben skizziert, sieht die Datensätze in einem festen Format isoliert werden, ohne Struktur oder Hierarchie - in dem Fall, dass ich keinen Vorteil bei der Verwendung von XML sehen. Jedoch kann das Beispiel nicht repräsentativ -. Ihre andere Dateien mehr strukturierte Daten enthalten

Ist das eine laufende Protokolldatei?

Wie werden Sie jemals schreiben die ein gültiges Dokument zu erstellen? Oder wollen Sie es in lesen, fügen Sie den neuen Eintrag, und schreiben Sie es jedes Mal aus?

Log-Dateien sind perfekt Kandidaten für gut Klartextzeilen strukturiert, dass man einfach anhängen.

ich den meisten Fällen (nicht immer), XML macht es einfacher, die Daten zu verstehen, denn ganz plötzlich haben Sie die Meta-Daten um Ihr Vermögen zu beschreiben, was es vor Ihnen (für Menschen lesbare).

XML ist auch sehr zugänglich. Was ich damit meine ist, dass - da Sie es erwähnt - Sie nicht reguläre Ausdrücke auf XML verwenden möchten. Es gibt Werkzeuge, wie XPATH (XML Path Language), die Abfrage von XML Spaß machen. Keine Notwendigkeit zücken etwas sonst niemand lesen kann, wenn man einfach über XML mit so etwas wie XPATH travers kann.

Es gibt Fälle, in denen XML macht das Gegenteil (in Bezug auf Lesbarkeit) und manchmal XML ist Overhead auch. Es ist nicht immer die beste Wahl, wenn Sie etwas von Daten zwischen Systemen (zB zu sehen, wirklich leichtgewichtig wie austauschen JSON ). Und diese Art von Austausch muss nicht entweder auf dem Netz sein.

Während für Datendateien mit Hilfe von XML würde bedeuten, dass Ihre Daten sein können, selbst zu beschreiben und vielleicht besser organisiert, das Endergebnis ist oft Datendateien, die weit größer als bisher sind.

Fragen Sie sich, was sind die für Dateien verwendet? Sind sie geändert werden? Wenn ja, wer zahlt und wer für sie Budget?

Ich liebe XML in einigen Fällen und in anderen, die ich hasse es!

Im Fall von Systemen Batch-Programmierung wie Sie sprechen, ein wichtiges Merkmal von XML ist, dass es fast überall unterstützt wird. So können Sie ein Programm schreiben, einige Daten, die heute mit Hilfe von XML zu handhaben, und in 10 Jahren, wenn Sie brauchen, um dieses Programm überarbeiten und eine ganz andere Plattform verwenden möchten, können Sie XML-Daten werden nach wie vor gut unterstützt werden.

Wenn Ihr in .NET (insbesondere .NET 3.5 mit LINQ to XML) entwickeln werden Sie weniger Code schreiben, die XML als lesen / schreiben, wenn Sie nur eine einfache Textdatei verwendet. Außerdem macht XML einfach es einfacher für jede Person auf der ganzen Linie, die Datei zu lesen und genau wissen, was drin ist und was es für. Und, keine Sorge über die XML ein wenig mehr Speicherplatz belegen, Speicherplatz ist billig.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top