Jan Huss: Was kann ich denn nun wirklich mit XSL machen?

Hallo,

ich beginne an der Stelle noch einmal einen neuen Zweig, da der andere sicherlich nicht mehr beachtet wird.

Ersteinmal herzlichen dank für Eure Antworten zu meiner grundlegenden Frage, diese haben aber bei mir ein neues Bild über XSL entstehen lassen.

Der Aussage von Thomas entnehme ich das die ganzen fo-Tags in der W3C-Doku eher dazu dienen pdf-Dateien zu generieren, was mir durchaus verständlich ist, da ich mich schon gefragt habe wie all diese Feinformatierungen überhaupt in html umgesetzt werden sollen.

Somit sieht es für mich nun so aus, als wenn XSL nix anderes macht als die XML-Bereiche auszulesen und sie mir als Variablen zur Verfügung stellt, wobei ich diese einfach mit dem gewünschten html-Gerüst formatiere. (Mal abgesehen von evtl. Schleifeninstrumenten u.ä.)

Ist das wirklich alles was mir XSL im Bezug auf die Gernerierung von XSL-Code bietet? Wozu brauche ich dann aber xsl:apply-templates/ um Formatierungen auf die child-Bereiche zu übertragen?

Liege ich mit dieser Beschreibung richtig? Gebt mir bitte hierzu noch ein Feedback.

Danke für Eure Hilfe und einen erfolgreichen Donnerstag.

Gruß Jan

  1. XSL isch ein größe von t-shirts, weisch.

    isch größere nummer nach XS, also M.

    viel gruß

    tarkan

    1. XSL isch ein größe von t-shirts, weisch.
      isch größere nummer nach XS, also M.

      Danke,

      bin froh das mir denlich mal jemand die Antwort so klar dargestellt hat... :o(

  2. hi,

    schau' doch mal unter:

    http://www.heise.de/newsticker/data/hb-18.08.98-001/

    da findest du eine recht gute antwort.

    grüße

    chris

  3. Hallo Jan,

    XSL gliedert sich in eine Transformationssprache (XSLT) sowie eine Formatsprache (XSL-FO). Im Prinzip läuft es so: Der Quellbaum des XML-Dokuments wird erstellt, mit Hilfe des "match template" wird nach passenden Templates in einem verbundenen XSL(T)-Stylesheet gesucht. Die Templates werden dann in der Regel vom Rootelement ausgehend rekursiv abgearbeitet. Hierbei können starke Veränderungen des XML-Baums vorgenommen werden (Sichten über Dokumente u.ä.). Das Ergebnis ist ein XML-Zielbaum, auf den dann XSL-FO Objekte angewendet werden können.

    Der Aussage von Thomas entnehme ich das die ganzen fo-Tags in der W3C-Doku eher dazu dienen pdf-Dateien zu generieren, was mir durchaus verständlich ist, da ich mich schon gefragt habe wie all diese Feinformatierungen überhaupt in html umgesetzt werden sollen.

    Ich hab das eher so verstanden, daß XSL-FO allgemeine Formatanweisungen liefern, die dann von Applikationen interpretiert werden, welche für die Ausgabe auf "beliebigen" Medien (HTML, XML, PDF, Sprache) sorgen. (Die tatsächliche Prozeß vom Zielbaum zur Darstellungen ist freilich deutlich komplexer. Auch sollte man sich das ganze wohl eher als inneinander greifenden Phasen denn als disjukte Schritte vorstellen.

    Somit sieht es für mich nun so aus, als wenn XSL nix anderes macht als die XML-Bereiche auszulesen und sie mir als Variablen zur Verfügung stellt, wobei ich diese einfach mit dem gewünschten html-Gerüst formatiere. (Mal abgesehen von evtl. Schleifeninstrumenten u.ä.)

    Jein, mit XSL veränderst du XML Daten zum Teil drastisch: So kannst du mit dem Konstrukt <match template select = "//para[position = not(last())]"> Transformationen nur auf das letzte para Element anwenden.

    Ist das wirklich alles was mir XSL im Bezug auf die Gernerierung von XSL-Code bietet? Wozu brauche ich dann aber xsl:apply-templates/ um Formatierungen auf die child-Bereiche zu übertragen?

    Wie gesagt, apply templates sorgt für die rekursive Bearbeitung der Kindelemente, die du mit dem Attribut "select" noch einschränken kannst.

    Danke für Eure Hilfe und einen erfolgreichen Donnerstag.

    ;-) gleichfalls

    Gruss

    Oli

    P.S.: Unter http://www.pms.informatik.uni-muenchen.de/lehre/markupsemistrukt/01ss/unterlagen/markup-skript/markup-skript.zip ist eine relativ kompakte einführung in die technologien um XML erhältlich.

    1. Hallo,

      danke, hast mir echt weiter geholfen!

      Gruß Jan

  4. Hallo Jan,

    ich beginne an der Stelle noch einmal einen neuen Zweig, da der andere sicherlich nicht mehr beachtet wird.

    nett gemeint, falsch gedacht. ich z.B. lese (noch immer) von unten nach oben (ob ich dann auch so antworte ist was anderes)
    und thematisch wäre es auch besser gewesen den thrad beisammen zu halten: würde dem suchenden im archiv seine suche auch erleichtern, wenn es mit weniger treffer mehr informationen bekommt.

    Der Aussage von Thomas entnehme ich das die ganzen fo-Tags in der W3C-Doku eher dazu dienen pdf-Dateien zu generieren, was mir durchaus verständlich ist, da ich mich schon gefragt habe wie all diese Feinformatierungen überhaupt in html umgesetzt werden sollen.

    ich habe gesagt "zur zeit hauptsächlich für pdf"
    z.B. der browser von antennhouse (franz hat dir den link gegeben) kann xsl-fo dateien darstellen ohne sie vorher in pdf umzuwandeln.
    und vielleich können das die "normalen" browser in ein oder 2 jahren. dann kannst du wirklich das "wirte once, publish everywhere" verwirklichen.

    Somit sieht es für mich nun so aus, als wenn XSL nix anderes macht als die XML-Bereiche auszulesen und sie mir als Variablen zur Verfügung stellt, wobei ich diese einfach mit dem gewünschten html-Gerüst formatiere. (Mal abgesehen von evtl. Schleifeninstrumenten u.ä.)

    nein. es kommt darauf an was du machen möchtest:
    zur zeit (ich betone "zur zeit" *g* ) ist es so, das xslt hauptsächlich für die xml -> html tranformation verwendet wird.
    xslt stellt dir nicht nur "ausgelesen bereiche als variable zur verfügung", das kann xslt natürlich auch, aber das ein sehr kleiner teil der möglichen anwendung.

    Ist das wirklich alles was mir XSL im Bezug auf die Gernerierung von XSL-Code bietet? Wozu brauche ich dann aber xsl:apply-templates/ um Formatierungen auf die child-Bereiche zu übertragen?

    wiedermal, es kommt darauf an was du machen möchtest. es wurde dir schon gesagt, dass du mit apply-templates z.B. rekursiv arbeiten kanns, da würdest du mit einem for-each ziemlich schnell an die grenzen stoßen.

    sinn und zweck von xslt ist, die informationen die in der xml datei stehen, in einer, auf die jeweilige bedürfnisse angepasste form zu transformieren.
    dabei kannst du auch xml -> xml machen. das passiert z.B. bei den sogenannten b2b anwendugen, wo der eine seine xml sendet und ein xslt sheet diese in dem xml-format des anderen umwandelt.
    du kannst wirklich alles mögliche machen: angefangen von TOC (topic of content) Seiten, automatische navigationen, personalisierte seiten und und und mit xslt machen. eben wie gesagt: informationen an die bedürfnisse angepasst auszugeben. tja ... sogar musik und gesang kann man mittels xml und xslt wiedergeben.

    grüße
    thomas