ASCII - XML Konverter
Thomas
- xml
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
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
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
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
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
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
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