Philipp Hasenfratz: XSLT Tranformierung der Componenten-XML-Datei

Beitrag lesen

Halihallo Thomas

*erstmal sorry, dass ich nicht frequentierter antworten kann, entspricht normalerweise
nicht meine Art*

Ich lasse mich gerne vom Gegenteil überzeugen, wirklich. ;)

http://httpd.apache.org/docs-2.0/new_features_2_0.xml
Dann von da ausgehen die XSL-Dateien:
http://httpd.apache.org/docs-2.0/style/manual.en.xsl
http://httpd.apache.org/docs-2.0/style/xsl/common.xsl
http://httpd.apache.org/docs-2.0/style/xsl/sitemap.xsl etc.
die sind um einiges komplizierter, als z.B. welche die du brauchen würdest (jetzt mit deinem doc.xml)

(generell kannst du bei der doku vom Apche 2 die HTML-Endungen durch XML ersetzen und du hast due XML/XSLT Version der Doku: geht allerdings nur mit Browser die XML mit XSLT selbst darstellen können.)

Diese Dokumente haben keine (mir ersichtliche) "Rekursionswünsche", die sind relativ
einfach zu erstellen (das ist jetzt nicht überheblich gemeint, sondern leicht in dem
Sinne, dass der Output leicht über templates vom Input erstellen lassen können).

Sorry, aber du hat XSL gründlich missverstanden. XSL bzw. XML Parsen ist das auf und ab wandern in einer baumartigen hierarchischen Struktur.

Das glaube ich nicht (Tim/Thomas)...

Das ist schon OK, wenn du mir nicht glaubst, aber das ändert wenig daran, dass sowohl ein XML als auch ein XSL Prozessor mit "Bäumen" arbeitet. Als leichtverständliche Einführung ist <file:///D:/selfhtml/xml/darstellung/xslgrundlagen.htm#transformation> wirklich geeignet ;-)

... Klar arbeitet er mit Bäumen, aber das Traversieren derjenigen ist auf die Verwendung
von templates beschränkt und denen kann man keinen Zielknoten angeben (oder doch?
select mit einer Variable möglich?).

Das Prinzip, wie XSL(T) vorgeht ist mir bekannt;

OK, und wie ist das Prinzip vom XSLT? ;-)

...! - Höre ich mich wirklich so leienhaft an?

Ich weiss wirklich nicht was du meinst. Was sollte in einem Programm implementiert werden: Ich weiss nicht was du hier mit Algorithmen meinst.

Also entweder du verstehst mich überhaupt nicht, oder ich stelle eine so dumme Frage, das
du dir nicht vorstellen kannst, dass ich das nicht weiss. Ich versucht das in
[pref:t=35303&m=195253] nochmals zu erleutern; vielleicht sehe ich den Wald vor lauter
Bäumen nicht; wäre zumindest eine logische Erklärung für meine Verwirrung...

Das wollte ich u. a. damit sagen. Mit XSLT kann man den HTML Output an sich ändern,
mit meiner Version würde man nur über CSS noch Designänderungen vornehmen können.

Ja, das ist richtig, aber ich sehe das Problem dabei nicht.

Das hat auch nichts mit dem anderen Problem zu tun. Ich hatte nur selbstkritisch meine
Lösung analysiert und festgestellt, dass es nicht sinnvoll ist, wenn man die HTML-Ausgabe
über Perl realisiert, da bei einer Änderung am Perl-Code gearbeitet werden müsste, was
nicht Sinn der Sache sein kann.

Die Eingabe ist so, wie in Doc.xml. Das ist die Grundlage, von wo aus alles andere
transformiert werden soll. Jede Klasse in Doc.xml hat ein optinales Attribut extends,
welches diejenige Klasse "referenziert", von der geerbt werden soll. Bei grossen
Komponenten ergibt dies eine baumartige Vererbungshierarchie, die ich eben ausgeben
möchte. Nehmen wir als Beispiel eine kleine Teilmenge der Doc-Komponente:

XML::DOM::Node
   XML::DOM::Document
      DocComponent
   XML::DOM::Element
      DocClass
      DocMethod
XML::DOM::Parser
   DocParser

Ja, das wird mir jetzt klarer, aber sowas abzubilden in XSL wirklich kein so großes Problem.

Für einen Tipp wäre ich sehr dankbar, denn mir fällt wirklich nichts ein. Ein Stichwort,
oder ein Link, würde vielleicht schon reichen.

Erschwerend kommt hinzu, dass die einzelnen Klassen der gleichen Ebene "zusammengefasst"
werden, also _nicht_ sowas:

Du möchtest eine Doku, das wie eine JavaDoku aufgebaut ist?

Wäre eine gute Basis, ja.

Wie kann man das mit XSLT abbilden? - Geht das überhaupt? - Meiner Meinung nach braucht es dafür eben einen Algorighmus, der einen Baum erstellt; ich weiss derzeit nicht, wie
ich dies mit XSLT machen soll.

So langsam verstehe ich was du meinst: das geht auch mit XSLT, mit rekursiven templates etc. ist sowas möglich, kommt nur wirklich darauf was du genau haben möchtest.

OK, rekursive templates, nur müssten diese im Input-Stream herumspringen, wie ist das
realisierbar? - Ich hoffe, dass ich mein Anliegen in [pref:t=35303&m=195253] etwas
genauer beschreiben konnte?

Viele Grüsse und Danke!

Philipp

0 43

Klassenbeschreibungen

Philipp Hasenfratz
  • projektverwaltung
  1. 0

    Klassenbeschreibungen - Beispiele? - Vorlagen?

    Philipp Hasenfratz
    1. 0
      Simon Reinhardt
      1. 0
        Philipp Hasenfratz
  2. 0
    Andreas Korthaus
    1. 0
      Philipp Hasenfratz
  3. 0
    Philipp Hasenfratz
    1. 0
      Simon Reinhardt
      1. 0
        Martin Speiser
  4. 0
    Martin Speiser
    1. 0
      Philipp Hasenfratz
      1. 0
        Martin Speiser
        1. 0
          Philipp Hasenfratz
      2. 0
        Simon Reinhardt
        1. 0
          Philipp Hasenfratz
  5. 0

    Ein erster Prototyp zum testen - Komponenten-Beschreibungen

    Philipp Hasenfratz
    • perl
    1. 0
      Simon Reinhardt
      1. 0
        Philipp Hasenfratz
        1. 0

          Status

          Philipp Hasenfratz
          1. 0
            Simon Reinhardt
            1. 0
              Philipp Hasenfratz
              1. 0
                Simon Reinhardt
                1. 0
                  Philipp Hasenfratz
      2. 0

        XSLT Tranformierung der Componenten-XML-Datei

        Philipp Hasenfratz
        • xsl
        1. 0
          Thomas J.S.
          1. 0
            Philipp Hasenfratz
            1. 0
              Thomas J.S.
              1. 0
                Philipp Hasenfratz
                1. 0
                  Thomas J.S.
    2. 0
      Thomas J.S.
      1. 0
        Philipp Hasenfratz
      2. 0
        Simon Reinhardt
        1. 0
          Thomas J.S.
        2. 0
          Philipp Hasenfratz
          1. 0
            Thomas J.S.
            1. 0
              Philipp Hasenfratz
              1. 0
                Thomas J.S.
                1. 0
                  Philipp Hasenfratz
                  1. 0
                    Thomas J.S.
                    1. 0
                      Philipp Hasenfratz
                      1. 0
                        Thomas J.S.
                        1. 0
                          Philipp Hasenfratz
  6. 0
    Philipp Hasenfratz