Thomas: ASCII - XML Konverter

Hallo,
im Forum habe ich zwar einmal eine Gesprächsrunde zur Konvertierung eines Excelfile in das XML-Format gefunden. Das angesprochene Programm aber nicht. Kennt zufällig hier jemand einen einfach Konverter der einen ASCII-File (Datenbankinhalte) in eine XML-Datei konvertiert. Es sollte sowohl eine flache als auch eine hierarchiche Struktur unterstützt werden. Im Voraus besten Dank für Tipps.

Thomas

  1. Moin

    [...] Kennt zufällig hier jemand einen einfach Konverter der einen ASCII-File (Datenbankinhalte) in eine XML-Datei konvertiert. Es sollte sowohl eine flache als auch eine hierarchiche Struktur unterstützt werden. Im Voraus besten Dank für Tipps.

    Konkrete Hilfe ist schwer, da dein Datenbankformat nicht erkennbar ist. ASCII zu XML als Topic hört sich wie Äpfel zu Birnen an :-)
    Die neuen Versionen von M$-Access und M$-Excel bieten XML-Exporte an. Ansonsten würde ich die Endung deines Datenbank Formates nehmem und nach dem Muster Endung2xml googeln.

    Viele Grüße

    Swen

    1. In http://www.-106.ibm.com/developerworks/xml/library/xml-matters1/index.html habe ich einen Beitrag gefunden, der in die Richtung geht. Bevor ich aber selbst anfange zu programmieren, wollte ich sehen ob es vielleicht ein fertiges Programm gibt. Wenn man den oben genannten Artikel einmal durchliest, sieht man schon, dass sich Programmierer mit diesem Thema beschäftigen. Es gibt ja auch Konverter z.B. von EDIFACT nach XML. Und da habe ich auch eine ASCII-Struktur nur mit dem Unterschied, dass in meinem File noch keine Strukturinformation enthalten ist (ähnlich CSV-Daten).

      Thomas

      Moin

      [...] Kennt zufällig hier jemand einen einfach Konverter der einen ASCII-File (Datenbankinhalte) in eine XML-Datei konvertiert. Es sollte sowohl eine flache als auch eine hierarchiche Struktur unterstützt werden. Im Voraus besten Dank für Tipps.

      Konkrete Hilfe ist schwer, da dein Datenbankformat nicht erkennbar ist. ASCII zu XML als Topic hört sich wie Äpfel zu Birnen an :-)
      Die neuen Versionen von M$-Access und M$-Excel bieten XML-Exporte an. Ansonsten würde ich die Endung deines Datenbank Formates nehmem und nach dem Muster Endung2xml googeln.

      Viele Grüße

      Swen

      1. Hi,

        Bevor ich aber selbst anfange zu programmieren, wollte ich sehen
        ob es vielleicht ein fertiges Programm gibt.

        Zu welchem Format? "ASCII" ist keine Strukturbeschreibung, sondern
        eine Definition einer Zeichenmenge.

        Es gibt ja auch Konverter z.B. von EDIFACT nach XML.

        Kein Wunder, weil Edifact und XML für relativ ähnliche Einsatzbereiche
        geschaffen wurden und deshalb grundsätzliche Ähnlichkeiten aufweisen -
        vor allem, was ihre Mächtigkeit angeht.

        Und da habe ich auch eine ASCII-Struktur nur mit dem Unterschied,
        dass in meinem File noch keine Strukturinformation enthalten ist

        Eben. Du hast eine "Struktur", die keine Struktur aufweist, also eben
        *keine* Struktur.
        Soll der gesuchte Konverter raten, welche Struktur Du gemeint haben
        könntest?

        (ähnlich CSV-Daten).

        Na, *die* enthalten immerhin eine Strukturinformationen, nämlich die
        sequentielle Anordnung von Elementen, die durch eine definiertes
        Trennzeichen voneinander abgegrenzt sind.
        (Und ob dabei ASCII oder EBCDIC oder whatever verwendet wird, ist sekundär.)

        Du versuchst, eine Syntax in eine Semantik zu "konvertieren" ... das
        sind die Äpfel und die Birnen. Momentan macht Deine Aufgabenstellung
        noch gar keinen Sinn.

        Viele Grüße
              Michael

        1. Richtig, ich habe eine Struktur oder eben auch keine wie z.B.

          material;Plant;materialEVG;MATERIAL_EXT;MATERIAL_VERS;MATERIAL_GUID
          BLT-P-200;;;;;

          und das ganze ist auf einem PC ein ASCII-File oder?

          Und nun brauche ich ein Programm, das mir die Daten ins XML-Format konvertiert. Natürlich muss ich im Programm sagen können, wie meine XML-Struktur nachher aussehen soll, woraus sich die Hierarchie ergibt, was für ein Header hinzugefügt werden soll und so weiter. Wenn Du, Michael, vielleicht ein Programm kennst wie den BusinessConnector von WebMethods bzw. SAP dann weisst Du auch, dass so etwas in einem Programm möglich ist. Nur nimmt der BC lediglich EDI-Files, X.12 oder IDOCs entgegen. Und dabei wird die Struktur die der Konverter zu erwarten hat im Programm als Java-Klasse hinterlegt.

          Wenn man meinen ersten Beitrag liest, dann sieht man das ich etwas ähnliches suche, wie es schon einmal im Forum behandelt wurde. Dort wollte jemand in VB so ein Programm schreiben, um eine Excel-Datei in eine XML-Datei zu konvertieren. Nur kommen meine Daten nicht aus Excel sondern sind wie oben in der Art von CSV-Daten haben also entweder einen bestimmten Feldtrenner oder eine feste Feldlänge und sind als ASCII-File (.txt) gespeichert.

          Thomas

          1. Hi,

            Richtig, ich habe eine Struktur oder eben auch keine wie z.B.
            material;Plant;materialEVG;MATERIAL_EXT;MATERIAL_VERS;MATERIAL_GUID
            BLT-P-200;;;;;

            Du hast also strukturierte Daten, okay.

            Hast Du aber auch eine (maschinenlesbare) Strukturbeschreibung?
            (Beispielsweise Namen für die einzelnen Felder, und eine Angabe darüber,
            welche Art von Einträgen innerhalb eines jeden dieser Felder auftreten
            können? Sind alle Einträge identisch formatiert, oder gibt es Zeilen
            unterschiedlichen Aufbaus? Kann der Inhalt der einzelnen Felder vom
            Inhalt anderer Felder abhängig sein? ...)

            Diese Beschreibungsdatei wäre das, was der Konverter einlesen möchte,
            um zu verstehen, in welchen XML-Strukturen er diese Felder ablegen muß.

            und das ganze ist auf einem PC ein ASCII-File oder?

            Wie gesagt: Du versuchst, Semantiken aufeinander abzubilden, hast aber
            keine vollständige Beschreibung der Semantik auf Deiner Ausgangsseite,
            sondern nur eine minimale Angabe über Feldbegrenzer.

            Und nun brauche ich ein Programm, das mir die Daten ins XML-Format
            konvertiert. Natürlich muss ich im Programm sagen können, wie meine
            XML-Struktur nachher aussehen soll, woraus sich die Hierarchie ergibt,
            was für ein Header hinzugefügt werden soll und so weiter.

            Eben - genau von dieser Beschreibung rede ich. Die ist wichtig - nicht
            Deine Daten. In der XML-Struktur muß sich vor allem der Inhalt dieser
            Beschreibung widerspiegeln.
            Wenn Du eine ASCII-Tabelle in ein HTML-Dokument abbilden willst, dann
            reicht die Struktur Deiner Daten aus, um Feldgrenzen zu erkennen - sie
            reicht aber nicht aus, um festzulegen, ob Du diese Feldgrenzen auf
            <td>..</td>-Strukturen abbilden willst oder ob Du einfach die ASCII-
            Tabelle in <pre>...</pre> einschließen möchtest.
            Diese Information braucht der Konverter - oder Du mußt einen selbst
            schreiben, in dem Du das fest verdrahtest.

            Wenn Du, Michael, vielleicht ein Programm kennst wie den
            BusinessConnector von WebMethods bzw. SAP dann weisst Du auch,
            dass so etwas in einem Programm möglich ist.

            Wenn Du ihm die entsprechenden Informationen gibst oder diese durch
            die Definition eines Standards (Edifact ist einer, der Strukturen
            beschreibt - ASCII nicht, CSV schon, aber zu wenig mächtig, um daraus
            sinnvolles XML zu generieren) implizit klar sind, dann schon.

            Excel-Datei in eine XML-Datei zu konvertieren. Nur kommen meine
            Daten nicht aus Excel sondern sind wie oben in der Art von CSV-Daten
            haben also entweder einen bestimmten Feldtrenner oder eine feste
            Feldlänge und sind als ASCII-File (.txt) gespeichert.

            Ich kann nur wiederholen, daß Du m. E. im falschen Universum denkst.
            ASCII und .txt *dürfen* kein Bestandteil der Diskussion sein - das
            führt Dich alles nur in die Irre.

            Es geht um Bedeutungen, nicht um Zeichen.

            Viele Grüße
                  Michael

          2. Hi Thomas!

            http://www.microsoft.com/biztalk löst deine Probleme ;-) Ich mache dazu gerade ein Praktikum auf der Uni (in Zusammenarbeit mit Microsoft) Wir mappen da flatfiles, edifact-nachrichten, csv-files, exec-tabellen nach xml und wieder zurück. Funktioniert alles wunderbar (einfach)!

            Allerdings ist es notwendig, dass deine CSV-Dateien alle nach einem bestimmten (einheitlichen) Schema aufgebaut sind, so wie die angesprochenen EDIFACT-Nachrichten ja auch eine eigene "Dokument-Typ-Definition" haben. Gilt für flatfiles genauso!

            Der Biztalk-Server ist ein Produkt, welches Dokumente in einem Format aufnimmt, in ein anderes konvertiert, und dann weiterverarbeitet (Stichwort Dokumentenaustausch zw. Unternehmen oder innerhalb eines einzelnen) Das Mapping selbst funktioniert denkbar einfach, und der Programmteil (Editor und Mapper) der dafür zuständig ist scheint mir ein ziemlich mächtiges Gerät zu sein.

            zusätzl. Voraussetzungen:
            Win2000 server (SP1)
            MS SQL Server 2000
            Visio 2000 (SR1)

            ... naja, ich sag nur M$

            Der Server ist als 120-Tage Demo zu haben (Download) Funktioniert auch mit einem SQL-Server-Trial!

            Du solltest dir das unbedingt mal ansehen. Kannst aber auch auf .NET warten, dort wirds buzileicht möglich sein, xml aus xls zu generieren, da ja sowieso alles auf XML laufen wird ;-)

            lg Bernhard