Sven: XML auf dem (Apache)Server in HTML wandeln

Hi!

Da die XML Integration nicht wirklich in jedem Browser ideal gelungen und alles andere als identisch ist, würde ich gern die Umwandlung von XML Dokumenten (DTD validiert) mit XSL in HTML auf dem Server erledigen lassen, so dass dieser nur noch die reine HTML übermittelt. Das ist in SelfHTML mal angerissen, mehr leider nicht. Ich weiss nicht vielleicht ist das auch gar nicht so einfach wie ich mir denke. Der Server ist ein Apache Server, auf dem ich NICHT Admin bin, somit diesen nur nutze für meine Seite.

Es wäre auch schon i.o. wenn jemand einen Link posten könnte, wo ich mir das dann selbst durchlesen kann...

Danke

Sven

  1. morgens,

    Da die XML Integration nicht wirklich in jedem Browser ideal gelungen und alles andere als identisch ist, würde ich gern die Umwandlung von XML Dokumenten (DTD validiert) mit XSL in HTML auf dem Server erledigen lassen

    interessante Idee. Richtig ist erstmal deine Begründung, daß "die XML Integration nicht wirklich in jedem Browser ideal gelungen", außerdem ist das sehr freundlich formuliert.

    so dass dieser nur noch die reine HTML übermittelt.

    Das tut der Apache nicht unbedingt  -  er übermittelt mit Hilfe des auf dem IP aufgesetzten HTTP-Protokolls "Datenströme", die das "Empfangsgerät" (in der Regel ein Browser) verstehen und umsetzen können muß. Ob diese "Datenströme" dann HTML- oder XML-Daten enthalten/liefern (beides ist plain-text) ist relativ wurscht, es muß eben nur über HTTP vermittelbar sein.
    Was die Browser damit anfangen können, ist allerdings alles andre als wurscht. Sie brauchen einen "Parser", der die Auftrennung der übermittelten Daten in darstellbare Zeichen übernimmt, und da krankt es tatsächlich.

    vielleicht ist das auch gar nicht so einfach wie ich mir denke.

    Nein, ist es nicht. Weil die "Umwandlung" von XML in HTML nicht auf dem Sever geschieht, sondern auf dem Client  -  und mir ist nicht bekannt, wie man das (ohne Zugriffsmöglichkeit auf den Server) ändern könnte. Bei der Apache Group gibt es umfangreiches Material zu diversen XML-Projekten, siehe http://xml.apache.org/, aber so weit ich das bisher kenne, haben alle diese Projekte mit dem, was du möchtest, nichts zu tun (ich wäre ganz glücklich, wenn ich mich da irren und mich jemand korrigieren könnte)

    Der Server ist ein Apache Server, auf dem ich NICHT Admin bin

    du mußt nicht auf dem ganzen Rechner, auf dem der Apache läuft, Administrator-Rechte haben. Wichtig ist, daß der Server-Admin dir die Möglichkeit eigener .htaccess-Dateien einräumt, da kannst du für _deinen_ Webspace fast alles das auch festlegen, was der Administrator für den gesamten Server konfigurieren kann.

    eine, wenn auch nicht sehr feine, Möglichkeit besteht darin, die Browser einfach zu "überlisten", indem du deine XML-Dateien einfach nicht "datei.xml", sondern "datei.htm" nennst. Damit lassen sich mindestens in mozilla/Netscape ein paar "parsing-Fehler" umgehen, dem IE ist es egal.

    Grüße aus Berlin

    Christoph S.

    1. vielleicht ist das auch gar nicht so einfach wie ich mir denke.
      Nein, ist es nicht. Weil die "Umwandlung" von XML in HTML nicht auf dem Sever geschieht, sondern auf dem Client  -  und mir ist nicht bekannt, wie man das (ohne Zugriffsmöglichkeit auf den Server) ändern könnte. Bei der Apache Group gibt es umfangreiches Material zu diversen XML-Projekten, siehe http://xml.apache.org/, aber so weit ich das bisher kenne, haben alle diese Projekte mit dem, was du möchtest, nichts zu tun (ich wäre ganz glücklich, wenn ich mich da irren und mich jemand korrigieren könnte)

      Der Server ist ein Apache Server, auf dem ich NICHT Admin bin
      du mußt nicht auf dem ganzen Rechner, auf dem der Apache läuft, Administrator-Rechte haben. Wichtig ist, daß der Server-Admin dir die Möglichkeit eigener .htaccess-Dateien einräumt, da kannst du für _deinen_ Webspace fast alles das auch festlegen, was der Administrator für den gesamten Server konfigurieren kann.

      eine, wenn auch nicht sehr feine, Möglichkeit besteht darin, die Browser einfach zu "überlisten", indem du deine XML-Dateien einfach nicht "datei.xml", sondern "datei.htm" nennst. Damit lassen sich mindestens in mozilla/Netscape ein paar "parsing-Fehler" umgehen, dem IE ist es egal.

      Grüße aus Berlin

      Christoph S.

      Hi!

      Zitat aus SelfHTML:

      Die andere und derzeit häufig eingesetzte Möglichkeit bei Webseiten im Internet ist daher, das Software-Modul für den XSLT-Parser in den Webserver zu integrieren. Der Vorteil dabei ist, dass die XML-Daten nach HTML transformiert werden, bevor sie überhaupt mit HTTP an den aufrufenden Browser übertragen werden. Dies hat den wunderbaren Effekt, dass die XML-Daten auf jedem noch so alten und schlichten Browser präsentiert werden können. Denn der Browser bekommt beim Anfordern der Daten überhaupt nichts von XML mit. Stattdessen bekommt er vom Server nur HTML geliefert. Für Apache, das heute im Web am weitesten verbreitetste Webserver-Produkt, gibt es ein solches XSLT-Modul mit dem Namen Xalan - geschrieben in Java oder in C++.

      Die Umbenennung in .xml brachte irgendwie gar nix, da wird nicht nach XSL geparst sondern einfach der Inhalt der Tags in der XML ausgegeben.

      Wie gesagt muß dieses Paket installiert sein. Nur muß ich eben irgendwie festlegen, das jedes XML Dokument umgewandelt wird und nicht erst der Browser des Clienten "gefragt" wird ob er XML kann, da dort ja quasi jeder Browser behauptet das er kann.
      .htaccess Dateien kann ich verwenden, aber ich glaub da gibt es auch verschiedene Beschränkungen was man dort einstellen kann.

      Dazu hät ich auch noch ne kurze Frage: Kann ich irgendwie selbst den Dateisystem Pfad herausfinden auf dem meine Webseite liegt, da in der .htaccess Datei der absolute Pfad der .htusers Datei angegeben werden muß?

      Gut das wars erstmal, ist schon leicht spät...

      Also nochmals vielen Dank für jede Hilfe...

      Grüsse aus Dresden und Gute Nacht
      Sven

      1. hallo Sven,

        Zitat aus SelfHTML:
        [...]

        ich sollte auch diese Bestandteile von SELFHTML gründlich zur Kenntnis genommen haben.
        Nur: das gilt dann, wenn du selbst Administratorrechte für den Server hast und somit die entsprechende Software installieren und/oder warten kannst. Diese Hinweise helfen dir nicht weiter, wenn du nicht selbst Server-Administrator bist.

        Die Umbenennung in .xml brachte irgendwie gar nix, da wird nicht nach XSL geparst

        das habe ich auch nicht behauptet

        sondern einfach der Inhalt der Tags in der XML ausgegeben

        im Prinzip ja, und das ist auch schon der gesamte "Trick" daran. Der Rest ist davon abhängig, welche tags du in deiner XML stehen hast. Beim lokalen Test mit mozilla hilft dieser kleine Trick gelegentlich, aber er ist, wie ich bereits geschrieben habe, durchaus nicht "fein" und für Dauerbetrieb keineswegs zu empfehlen

        Dazu hät ich auch noch ne kurze Frage: Kann ich irgendwie selbst den Dateisystem Pfad herausfinden auf dem meine Webseite liegt, da in der .htaccess Datei der absolute Pfad der .htusers Datei angegeben werden muß?

        Diesen Pfad sollte dir dein Provider mitteilen, wie du dich überhaupt mit dieser Nachfrage an deinen Provider wenden solltest. Es gibt auch sonst noch ein paar kleine Möglichkeiten, den Pfad gezeigt zu bekommen  -  zum Beispiel mit "phpinfo"

        Grüße zurück nach Dresden

        Christoph S.

  2. Hi,

    Ich denke da ist [linkhttp://xml.apache.org/] eine gute adresse, ich weiß allerdings nicht, wie du da etwas ohne admin rechte machen kannst.
    Andernfalls könntest du eventuell etwas über Perl realisieren.

    mfg Andres freund

  3. Hallo,

    Da die XML Integration nicht wirklich in jedem Browser ideal gelungen und alles andere als identisch ist, würde ich gern die Umwandlung von XML Dokumenten (DTD validiert) mit XSL in HTML auf dem Server erledigen lassen, so dass dieser nur noch die reine HTML übermittelt. Das ist in SelfHTML mal angerissen, mehr leider nicht. Ich weiss nicht vielleicht ist das auch gar nicht so einfach wie ich mir denke. Der Server ist ein Apache Server, auf dem ich NICHT Admin bin, somit diesen nur nutze für meine Seite.

    Du hast 3 einfache Möglichkeiten (alle anderen sind ziemlich "exotisch")

    1. Perl und XML (ohne XSLT) zu HTML.
    2. PHP und XML mit oder ohne XSLT
    3. Cocoon.

    ad 1: keine Ahnung welche Module du dafür brauchst, aber das es geht ,haben wir ja hier scho mal bewieder, die vorige Forumsoftware war eine XML-Perl Lösung.

    ad 2: wenn XML supprot eingeschaltet ist, kannst du damit XML Dateien einlesen und auch ausgeben, aber dabei gibt es keine XSL-Transformation
    Wenn dein Provider zusätzlich Sablotron installiert hat (glaube ich aber nicht) könntest du die Transformation mit PHP machen.

    ad 3: Wenn dein Provider keinen Sablotron installiert hat, wird er vom Cocoon schon gar nichts wissen.

    Sucher kannst du zum Thema generell bei den genannten Sprachen (Perl, PHP), Cocoon findet du beim Apache (xml.apache.org).
    Aber wenn du nichts am Server installieren kannst hast du praktisch gesehen keine Chancen für eine serverseitige XML-XSLT Umsetzung.

    Grüße
    Thomas

  4. Hi Sven,

    wenn Du nix auf dem Server installieren kannst, gibt es oft noch die Möglichkeit auf Deinem PC lokal die Transformation zu machen, und das fertige HTMl auf den Server zu legen. Das lässt sich auch voll automatisieren.
    Macht natürlich nur in den Fällen Sinn, wo nicht verschiedene Ausgaben abhängig von irgendwelchen userspezifischen Daten gemacht werden.
    Vorteil ist, dass Du irgendwann später das alles auch auf den Server verlagern kannst, wenn Du mal nen eigenen hast.

    Gruss

    Marko