Thema: Allgemeine Fragen zu XML

Hallo,

ich habe ein paar Fragen zu XML. Vielleicht könnt Ihr mir einige davon beantworten ?

1.
Brauche ich zur Entwicklung von XML einen eigenen Editor oder kann ich auch mit dem Notepad Seiten schreiben ?

2.
Muss der WebServer besondere Voraussetzungen erfüllen (muss es z. B. ein IIS sein ?) ?

3.
Ich möchte per WebForm Daten in ein Word-Template eintragen. Ist das mit XML möglich, obwohl kein MSOffice auf dem Server installiert ist ?

4.
Als Browser verwende ich den MS IE 5.0 . Ist diese Version ausreichend ?

cu
Chris

Re: Allgemeine Fragen zu XML

Hi Chris,

zu 1:
Ja, XML-Dateien kannst Du mit jedem beliebigen Editor schreiben (Wordpad, Editor, Word, StarOffice, UltraEdit, Phase5 etc pp)

zu 2/4:
Was genau hast Du vor?
Willst Du dass die XML-Datei in HTML umgewandelt wird? Dann brauchst Du ein paar spezielle Zusatz-Installationen auf Deinem Server.
Guck Dich am besten mal hier um:
http://xml.apache.org
(Stichworte: Xerces und Cocoon)
Wenn Du die XML-Dateien nur anzeigen lassen willst, so braucht Dein Server keine speziellen Erweiterungen.

zu 3:
Keine Ahnung, da muss ich passen, zumal mir auch nicht klar ist, was genau Du da vor hast.

HTH, tink

Re: Allgemeine Fragen zu XML

Vielen Dank für die schnelle Antwort !!

zu 3:
Es gibt bei uns Word-Dokumente die schon z. T. vorausgefüllt sind, so genannte Templates. Der User muss bestimmte Informationen, die noch fehlen eintragen.
Im Moment liegen diese Word-Templates auf einem File-Server (könnte aber auch einen Web- oder ApplicationServer dafür verwenden.. haben wir auch)
Die User klicken auf einen Link im Intranet, hinter dem das Word-Template liegt.
Word und das Template werden geöffnet. Der User kann dann die Daten eintragen und das File lokal abspeichern.

Die User wollen aber nicht, dass Sie die Daten direkt in ein Word-Dokument eintragen, sondern Sie wollen eine Weboberfläche (HTML-Formular) verwenden. Und die eingegebenen Daten sollen so in das Word-Template übertragen werden !

Hörte sich für mich lösbar an - aber das war es bisher nicht...
Zuerst wollte ich es über ASP versuchen, da VBA und VBSkript eine verwandte Syntax verwenden. Ich musste aber sehr schnell feststellen, dass es serverseitig nicht geht, da auf unserem Server kein Office installiert ist (um das Word-Objekt zu öffnen...). Clientseitig war es auch nicht möglich, da ein bestimmtes Programm auf dem Server installiert sein muss und das bei uns nicht erlaubt ist...

Jetzt habe ich ein Buch gesehen, das um den Datentransfer zwischen XML und VBA handelt. Daher bin ich auf die Möglichkeit gestossen, dieses Problem mit XML zu lösen...

Aber ich habe eben aus dem "Disaster mit ASP" gelernt und ehe ich mich auf XML versteife, möchte ich halt klären, ob für XML auch die Office-Produkte auf dem Server installiert sein müssen - oder wie XML sonst den Datentransfer zwischen den Office-Produkte löst... ?

cu
Chris

Re: Allgemeine Fragen zu XML

Hi Chris,

ich verstehe nun nicht so ganz, was das mit XML zu tun hat. Wenn ich dich richtig verstehe, dann geht es doch letztlich nur darum, eine Word-Datei (ein Word-Template), dass auf dem Server liegt zu manipulieren und temporär abzuspeichern, so dass der Benutzer dieses angepasste Dokument in sein lokal installiertes Word laden kann. Da M$ jedoch wahrscheinlich kaum seine Word-Templates XML-formatiert abspeichert, sondern eben in einem proprietären Format, wirst du das auf diesem Weg kaum bewerkstelligen können. Wenn du die Templates also nicht auf dem Sever anpassen kannst, dann musst du die Daten, die in das Template eingefügt werden sollen auf dem Server zwischenspeichern und dem Benutzer anstatt dem Template ein Skript anbieten, welches a) Word öffnet, b) das Template vom Server läd, c) die temporär gespeicherten Daten vom Server in dieses Template importiert.

Was Word hier für Möglichkeiten bereithält weiß ich nicht, aber ich denke schon, dass man dafür vielleicht ein Makro schreiben kann, welches automatisch gestartet wird und dass Word so Daten in ein Template aufnehmen kann (wahrscheinlich dann eher CSV-formatiert als als XML).

Noch ein Tipp:
OpenOffice.org speichert seine Files als XML. Ein OOo-Dokument bräuchtest du serverseitig also nur zu entpacken (ZIP), zu modifizieren und wieder gepackt dem Benutzer als Download anzubieten. Bei Star Office bin ich mir nicht sicher, könnte aber auch genauso laufen. Und zumindest mit letzterem endlich dieses grauslige Word aus eurer Firma zu verbannen wäre dann doch auch gleich ein netter Nebeneffekt, oder?

Liebe Grüße,
Basti

Re: Allgemeine Fragen zu XML

Danke für die Antwort ! Dann muss ich das doch irgendwie über ein Skript lösen...hmmm
Meine Firma hat Verträge mit Microsoft - das lassen die sich nicht wegnehmen... (leider!!)

Aber trotzdem interessiert mich dieses XML - ganz besonders in Verbindung mit VBA...
Nur - ich habe nicht verstanden, wie XML und VBA Daten austauschen wollen oder können ?

Ich würde mir folgendes Buch zu diesem Thema zulegen:
http://www.edv-buechershop.de/default3. … ndardSuche

Titel: XML und VBA lernen 
Autor: René Martin
Verlag: Addison Wesley
04-2002
Sprache: deutsch
unsere Artikel-Nr: 319524
EAN: 9783827319524
ISBN: 3827319528

Allerdings würde ich gern mehr über das Zusammenspiel von XML und VBA wissen.

Könnt Ihr mir den Zusammenhang erklären, wo und wie ich diese XML-VBA-Verbindung nutzen kann ?

cu
Chris

Re: Allgemeine Fragen zu XML

Hi Chris,

ich hab keine Ahnung von VBA, allerdings gehe ich davon aus, dass es XML-Parser in VBA gibt.

XML hat vor allem die Vorteile, dass es sowohl von Menschen, als auch von Maschinen gut lesbar ist, dass es komplexere Datenstrukturen abbilden kann, als z.B. eine Datenbank (oder zumindest komplexe Daten einfacher aufnehmen kann, als Datenbanken) und dass es viele Werkzeuge in allen möglichen Sprachen und Im- und Exportfunktionen in allen möglichen Applikationen gibt.

Was du jedoch vorhast ist doch lediglich einigen Variablen Werte zuzuweisen (Bools, Integer, Floats oder Strings). Diese Daten müssen dann von einem Skript, welches die Daten aus einem HTML- (oder Flash-) Formular entgegennimmt in ein VBA-Script wandern. Hier wird der Vorteil und Nutzen von XML aber nicht deutlich, was den Aufwand des Parsens kaum rechtfertigt.

Beispiel:
Das Word-Template sei ein Firmenbriefkopf und die Mitarbeiter sollen in einem HTML-Formular ihren Namen, ihre Durchwahl und ihr Sachbearbeiter-Kürzel eingeben. In XML würde dieser Datensatz dann z.B. so aussehen:

 <?xml version="1.0"?>
 <name>Klaus Müller</name>
 <durchwahl>203</durchwahl>
 <kuerzel>mue</kuerzel>
 

Das gleiche könnte man aber auch z.B. in ein CSV-Format packen:

 "name";"durchwahl";"kuerzel"
 "Klaus Müller";203;"mue"
 

...oder ganz frei:

 name:Klaus Müller
 durchwahl:203
 kuerzel:mue
 

..oder, falls die Reihenfolge der Felder in der Ziel-Applikation bekannt ist:

 Klaus Müller,203,mue
 

Wie genau die Lösung deines Problems nun aber aussehen könnte hängt von den Möglichkeiten und Grenzen von VBA ab (wovon ich, wie gesagt keine Ahnung hab), sowie natürlich von deinen konkreten Aufgaben und Möglichkeiten.

Ich kann mir folgendes vorstellen:
Auf jeden Benutzerrechner wird ein VBA-Skript gelegt, welches mit verschiedenen Parametern aufgerufen wird (was ja wohl möglich sein wird). Hier könnte z.B. der erste Parameter die Adresse des zu öffnenden Templates sein und der zweite der String eines serialisierten Arrays, dass eben jeder Template-Variable einen Wert zuweist (dazu ev. noch bestimmte Header-Parameter oder was weiß ich). Das Skript öffnet also MS-Word, läd das gewünschte Template und ersetzt die Template-Variablen durch die übergebenen Werte.

Und auf Serverseite musst du also nur die Eingaben des Benutzers entgegennehmen und dann von dort aus (und das sollte in einem Intranet doch gehen) das besagte Skript mit den entsprechenden Parametern starten.
 
Liebe Grüße,
Basti

Re: Allgemeine Fragen zu XML

Hi!

Zu 4. (ich hab nicht alles gelesen):
Grundsätzlich ist XML eine Clientseitige (Browserabhängige) Programmiersprache.
Das bedeutet, sie ist von Browserinterpreter zu Browserinterpreter verschieden interpretierbar.
Browser die XML "können":
Mozilla (sowie darauf basierende wie z.B. Netscape ab Version 6) und IE (ab 5.x). Opera tut's nicht, und auch sonst ist mir kein Windows-Browser bekannt der XML kann (zumindest fällt mir keiner ein). Wg Browser auf anderen Systemen bitte andere Fragen.

[zitat]Als Browser verwende ich den MS IE 5.0[/zitat]
Es ist weniger von Bedeutung, was du für einen Browser hast, sondern die Browser deiner Zielgruppe!

Liebe Grüsse
-- gi

Re: Allgemeine Fragen zu XML

XML - XSLT als optionales Webinterface ?

Ich experimentiere nun seit ein paar Tagen mit XML-XSLT Transformation zu HTML, um eine Art "Templatesprache" zu entwickeln.
Sprich alle HTML Elemente die in einer (Web)Anwendung benutzt werden werden in XML-tags ausgedrückt und dann bei ausliefern an eien Browser
in valides HTML umgwandelt.

Zum beispiel "input" - felder für Formulare - gerne genommen als immer wiederkehrendes Element in einer Anwendung.
Ich erfinde also einfach ein Tag namens <inputFieldText /> das z.B. die Attribute <i>name, label, description </i> enthält
und lasse meinen XSL - stylesheet eine Html Konstruktion daraus machen die das TExtfeld einen div-layer für das Label und einen unsichtbaren layer für
die description enthält und ausserdem, wenn eine description angegeben wurde gleich noch ein fragezeichen-gif hinter das textfeld das onmouseover
den description layer sichtbar macht.

Tolle sache sowas wenn ich einmal mein XSL template für das Tag definiert habe brauche ich nur noch dieses tag verwenden die Attribute angeben
und alles wird gut soweit. Das lässt sich ja jetzt beliebeig weiterspinnen bis man auf diese Art und weise seine gesamte Website oder Anwendung
gebastelt hat (fällt euch was auf ? ^^ ).

Jetzt tauchen die Fragen auf die man sich vor der umsetzung eines solchen Projektes stellen sollte, und ich weiss nicht recht eine Antwort zu finden.
Vielleicht kann mir jemand weiterhelfen und ausserdem ist dieser Disskussionssansatz meiner Meinung nach eigentlich für jeden Webdesigner interessant.

- Performance
Was passiert bei umfangreicheren XML - seiten die sagen wir von einem mit der Zeit recht Massiv gewachsenen XSLT sheet transformiert werden müssen.
Dauert das dann ewig gibts eine Faustregel wieviele Zeilen z.B. noch unterhalb der Schmerzgrenze (sagen wir 5sec.) sind ? Auf den Ersten Blick würde
ich dann auch behaupten: "ist ja super" ich liefere nur noch extrem schlankes XML aus und der Client. kann sich mit der Transfomation beschäftigen - heisst:
meine Serverlast geht runter - ist das so ?
Anderes Scenario - irgendjemand kommt mit einem Browser vorbei der XSLT nicht kann oder nicht will ^^ - sowas gibts ja - würde es dann Sinn machen das XML
Serverseitig zu Transformieren womit wir wieder bei der Frage der Serverauslastung wären. Was passiert wenn zum beispiel ca. 20.000 Leute gleichzeitig sagen wir
2,5 Seitenaufrufe pro Minute abfeuern und der Server jedes mal die evtl. sehr großen XML files vor der Auslieferung in html umwandeln muss ?

- Crossbrowser Kompatibilität
Ist XSLT - "Standart" in den meisten Browsern ? - Der IE 7 z.B. machts natürlich - fängt aber teilweise an über Active Steuerlemente zu meckern, was mich
doch eher nachdenklich stimmt neutral

- Barrierefreiheit
Last but not least Ist dieser Ansatz Barrierefrei ? Will heissen - wie "sieht" ein screenreader z.B. so eine Seite ? Wenn ich mir einfach mit rechtsklick quelltext anzeigen
lasse sehe ich nur das XML - das generierte HTML kann ich z.B. mit dem FF-Webdeveloper Plugin über show generated source anzeigen lassen.
Was von beidem findet der Screenreader eines Sehbehinderten menschen ? Das XML wäre miener meinung nach ja das beste weil es einfach strukturiert ist
und nichts außer attribute mit passenden Namen (bei mir zumindest ^^) und den dazugehörigen inhalten enthält.

Ich freue mich auf eine Angeregte Diskussion zu diesem Thema