Philipp Hasenfratz: XSLT Tranformierung der Componenten-XML-Datei

Beitrag lesen

Halihallo Thomas

Problemen kommen wird, wenn man komplexere Dinge transformieren will.

;-) Das ist kaum anzunehmen.

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

»»Nehmen wir z. B.

eine Übersicht der Klassenvererbung (in der ersten Stufe sind alle Klassen, die von
keiner anderen mehr erben, die zweite Stufe sind diejenigen, welche von diesen
"Super-Basis-Klassen" erben usw.), dies wäre IMHO mit XSLT nicht (bzw. nur sehr schlecht)
abbzubilden, da man für diese Anwendung bereits einen Alogithmus braucht, der einen Baum
der Vererbungshierarchie aufbaut.

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 Prinzip, wie XSL(T) vorgeht ist mir bekannt; ich gebe dir jedoch recht, dass ich den
Leistungsumfang nicht genau kenne, da ich wirklich nicht viel Erfahrung damit habe
(bzw. immer nur "einfache" Transformationen gemacht habe).

»»Wenn man dies mit XSLT abbilden möchte, bräuchte man

geeignete Eingabedaten (diese würden dann leider nicht mehr der
Componenten-Beschreibungs-XML-Datei entsprechen), dies würde bedeuten, dass man mit einem
Programm diese erst herstellt.

???? Das einzige was du brauchst is XML.

Ja, aber ich dachte (und du hast mich noch nicht vom Gegenteil überzeugt), dass man den
Algorithmus in einem Programm implementieren muss, sodass dieser einen entsprechend
erstellten XML-Output generiert, sodass man mit XSLT transformieren kann und dort keine
"Algorithmen zu implementieren" braucht. Den Umweg über das Programm deshalb, da ich mir
(noch) nicht vorstellen kann, dass man das gleich in XSLT umsetzen kann.

Das halte ich im Kontext für etwas übertrieben, da man

ja durch CSS schon einiges variabel Designen kann (klar, die Grundstruktur des HTML-
Outputs kann man nicht ändern, aber dessen Anzeigeformat).

Wenn du dein XML mit CSS formatieren willst, kannst du nur eine absolute flache Hierarchi bzw. fast keine haben.
Mit XSLT kannst du kreuz und quer über die verschiedensten Verwandschaftspfaden laufen, und noch eingies mehr in der Hierarchie machen.

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.

Sorry, aber ich habe das gefühl, dass du sehr wenig über die Möglichkeiten von XSLT weisst und das du noch gar nichts damit gemacht hast.

ersteres ja, letzteres nein.

Oder ist es Fakt, dass alles mit XSLT transformierbar wäre?

Alles sicher nicht. Du kannst auch mit XSLT blein nicht in Gold Transformieren.

Schade, dachte schon es wäre eine Möglichkeit für mich, als Alchimist ;-)

Wie siehr denn deine XML aus, was in etwa möchtest haben?

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

XML::DOM::Node und XML::DOM::Parser sind die "Lowest-Level-Klassen", vonwelchen nicht
mehr weiter vererbt wird. Danach kommen diejenigen Klassen, die von denen erben, etc.
Erschwerend kommt hinzu, dass die einzelnen Klassen der gleichen Ebene "zusammengefasst"
werden, also _nicht_ sowas:

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

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.

Viele Grüsse

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