XML und XSD Datei - und nu?
-
Hi,
ich hab da jetzt ne XML und XSD Datei mit Vertragsdaten geschickt bekommen, die Daten sollen nu in eine Oracle-Datenbank.
Man findet ja nur extrem viel wenn man nach den Begriffen in google sucht, und ich kapiert so gut wie nix davon
die XSD beschreibt die (Daten der) XML in etwa wie eine Klasse eine Instanz beschreibt, hab ich irgendwo gelesen. Schön, aber was hab ich davon?
DOM, SAX ?!? XMLParser - öh jo.. und was stell ich damit an?
XML soll doch soo die Revolution für den Datenaustausch sein, was muss ich nun aber machen damit ich im Programm ähnlich wie in einer Datenbank durch die Daten wandern und diese auslesen/ändern kann.
Oder versteh ich da was falsch? Wenn ich es einfach Zeichen für zeichen auslese, könnte ich ja auch ne csv-datei nehmen.Gibt es irgendwo etwas leicht verstänliches zu dem Thema? Alles was ich bisher gefunden habe, hat mich irgendwie nciht weiter gebracht..
-
Tow-B.de schrieb:
die XSD beschreibt die (Daten der) XML in etwa wie eine Klasse eine Instanz beschreibt, hab ich irgendwo gelesen. Schön, aber was hab ich davon?
so kannst du die das XML mit dem XSD validieren, also prüfen ob die XML der XSD entspricht. Dies kannst du z.B. gebrauchen wenn verschiedene Programme, von verschiedenen Personen, die Daten in diesem XML benutzen sollen - so das das XML eine Art Interprogram File ist (also das nicht jedes Programm einen eigenen Datentyp hat). So gibt die XSD z.B. an das an der und der Stelle der und der Inhalt vorkommen soll/muss, welcher z.B. eine mz spektrum darstellt (nur so als Beispiel mir is jetzt nichts besseres eingfallen - weil ich damit arbeite).
Tow-B.de schrieb:
DOM, SAX ?!? XMLParser - öh jo.. und was stell ich damit an?
Öhmm was meinst du jetzt damit?
DOM und SAX sind meines Wissens nach verschiedene Methoden eine XML zu Parsen bzw. zu erstellen. Mit dem Parser kannst du die XML einlesen,schreiben und modifizieren (zumindest mit den meisten) - aber ich glaub das weißt du. Da du ins MFC forum schreibst nehme ich an das du ne Windows Kiste mit VC++irgendwas fährst - daher wär der Parser von MS vielleicht nicht schlecht. Dauert eventuell ein bisserle bis du den verstanden hast, aber dann ist er nicht schlecht.
Ich hoffe ich konnte dir weiterhelfen bzw. habe deine Fragen richtig verstanden.
Gruß,
Heimwerkerking
-
tja da brauchst du einen xmlparser
du includierst die .h und .cpp in dein project und benutzt die funktionen
damit kannst du ganz einfach suchen und durchitarieren
-
Also XML bringt schon seine Vorteile gegenüber einer einfachen CSV-Datei. Parsen mußt du nicht Zeichen für Zeichen, das machen doch XML-Parser für dich.
Du solltest dir vielleicht einfach mal ein XML-Dokument anschauen. Was sieht man da? Genau, Informationen die in einer Baumstruktur dargestellt werden. Jeder Baumknoten hat Attribute und Values, nicht mehr und nicht weniger.
Baumstruktur...? Hem, gibts sowas nicht auch zu Hauf in OO-Programmen?
Also, schnapp dir einen XML-Parser und mach ein dazugehöriges Tutorial durch. Und dann wirst du auch feststellen, wie du deine XML-Dokumente zu verarbeiten hast.
Im Prinzip öffnest du mit dem Parser ein XML-Document, holst die den Root-Node und hangelst dich so durch die darunter hängenden Nodes. Das war es auch schon.
Mußt das halt nur programmatisch in C++ machen, weil du ja die Daten in den Nodes verarbeiten willst.
MSXML SDK XML SDK von MS.
Xerces-C von Apache, müsste alles können.
TinyXML Kleiner kostenloser XML-Partser, kann keine DTDs.DOM und SAX sind wie oben gesagt zwei verschieden Verfahren wie man XML-Docus durchforstet. DOM ist dabei eigentlich die einsteigerfreundlichste.
-
Hallo nochmal, ihr habt mir schon sehr weiter geholfen und mir ist schon einiges klarer geworden. Mein Problem ist/war irgendwie, das ich ständig auf die xml-klassen von C# und .NET (xmlDocument, xmlReader etc.)gestoßen bin (google, msdn) - obwohl ich eigentlich explizit nach C++ bzw. auch nach VC++ gesucht habe.
so kannst du die das XML mit dem XSD validieren, also prüfen ob die XML der XSD entspricht. Dies kannst du z.B. gebrauchen wenn verschiedene Programme, von verschiedenen Personen, die Daten in diesem XML benutzen sollen - so das das XML eine Art Interprogram File ist (also das nicht jedes Programm einen eigenen Datentyp hat). So gibt die XSD z.B. an das an der und der Stelle der und der Inhalt vorkommen soll/muss, welcher z.B. eine mz spektrum darstellt (nur so als Beispiel mir is jetzt nichts besseres eingfallen - weil ich damit arbeite).
Jupp, das hab ich inzwischen auch schon verstanden, habe mit nen XML-Viewer geschnappt und selber man angefangen ne XSD und dazu (nicht) passende XML-Daten geschrieben - da wurde mir das schnell klar
Mit dem Parser kannst du die XML einlesen,schreiben und modifizieren (zumindest mit den meisten) - aber ich glaub das weißt du.
Das habe ich zumindest gehofft, aber nachdem ich zu xml-parser einiger scheinbar eher merkwürdige (oder extrem komplizierte) Klassen und Programme gefunden hatte war ich da schon am zweifeln *g* - werde aber jetzt die genannten mal testen..
Ich hoffe ich konnte dir weiterhelfen bzw. habe deine Fragen richtig verstanden.
Auf jeden Fall - DANKE
Du solltest dir vielleicht einfach mal ein XML-Dokument anschauen. Was sieht man da? Genau, Informationen die in einer Baumstruktur dargestellt werden. Jeder Baumknoten hat Attribute und Values, nicht mehr und nicht weniger.
Hab ich getan, und natürlich die Baumstruktur auch erkannt, nur von "Hand" auslesen (also ohne Parser) hätte mich irgendwie nicht so ganz befriedigt
MSXML SDK XML SDK von MS.
Xerces-C von Apache, müsste alles können.
TinyXML Kleiner kostenloser XML-Partser, kann keine DTDs.Cool, thx, werde die mal durchtesten..