Frage zu Sinn von Transformation XML - > XML via xslt

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Frage zu Sinn von Transformation XML - > XML via xslt

    Hallo,

    es tat sich bei uns folgende Frage auf:
    Die meisten Daten in XML - Format stammen in der Regel aus einer Datenbank über einen Select. Möchte man die Daten dann in einer anderen Datenbank importieren, so ist in der Regel eine Anpassung der XML-Daten über eine Transformation notwendig (wegen den unterschiedlichen Feldern usw. ). Hierfür kann man XSLT verwenden, wofür es in php eine Unterstüzung gibt.
    Jetzt meine Frage: Angenommen man kennt das Schema nach dem man die XML-Daten für die andere Datenbank transformieren möchte, wäre es dann nicht wesentlich schneller und effizienter die Daten gleich beim Select aus der eigenen Datenbank so entsprechend aufzubereiten und mit php auszugeben, dann könnte man sich die Transformation via XSLT ersparen - oder?
    Würde das nicht bedeuten, daß für eine XML-XML-Transformation aus einer Datenbank - Kenntnisstand des Ziel-Schemas vorausgesetzt - die XSLT-Transformation überflüssig wäre?

  • #2
    Re: Frage zu Sinn von Transformation XML - > XML via xslt

    Original geschrieben von Ralf
    Würde das nicht bedeuten, daß für eine XML-XML-Transformation aus einer Datenbank - Kenntnisstand des Ziel-Schemas vorausgesetzt - die XSLT-Transformation überflüssig wäre? [/B]
    Es stellt sich die Frage nach der Eleganz einer Lösung. Der Weg über die XSL-Transformation bietet ein paar Vorteile:[list=1][*]Du hast mehrere unterschiedliche Datenquellen: Dann kannst Du für jede Quelle ein eigenes XSLT-File anlegen und musst Deinem PHP-Code nur noch mitteilen, welche Quelle und welche zugehörige Transformation er durchführen soll. Der PHP-Code ist immer gleich. Kommt eine neue Datenquelle hinzu, einfach ein neues XSLT-File bauen und Du bist (fast) fertig.[*]Es ändert sich die Datenstruktur der Datensenke: Wenn Du Dein PHP-Skript universell programmiert hast, brauchst Du nur noch das XSLT-File anpassen und schon bist Du fertig.[*]...[/list=1]
    Reichen die zwei Argumente? Natürlich bringt das auch Probleme. Wenn es um sehr viele Daten geht und die Sache zeitkritisch ist, dann haben wir durch die Transformation natürlich einen Performanceverlust. Allerdings ist die Leistung von DOMXML nicht schlecht (wenn auch nicht überragend).
    Wenn Du weisst, dass Du nur eine Datenquelle und eine Datensenke hast, die sich garantiert nicht verändern werden (eher unwahrscheinlich), dann bietet der Umweg via XSLT natürlich keine Vorteile.

    cu
    CST
    Ich denke, also bin ich.
    Manche sind trotzdem!

    Kommentar


    • #3
      Hallo CST,

      danke für deine Antwort.

      ....Datenquelle und eine Datensenke hast, die sich garantiert nicht verändern werden (eher unwahrscheinlich),.....
      das kann man nicht mit Sicherheit sagen, ob und was sich verändert. Deshalb ist mir wichtig, daß man mit wenig Auwand auf Veränderungen (in Ursprungs-/Zieldatenbank) reagieren kann. Eine Trennung zwischen php und Transformation scheint mir hierbei sinnvoll, denn die XSLT-Datei kann ich notfalls zur Bearbeitung weiterreichen, die php-Datei nicht so gern, auch da man php-Kenntnisse benötigt.

      OffTopic:
      Du hast mehrere unterschiedliche Datenquellen: Dann kannst Du für jede Quelle ein eigenes XSLT-File anlegen und musst Deinem PHP-Code nur noch mitteilen, welche Quelle und welche zugehörige Transformation er durchführen soll. Der PHP-Code ist immer gleich. Kommt eine neue Datenquelle hinzu, einfach ein neues XSLT-File bauen und Du bist (fast) fertig.


      Dies verstehe ich als Argumente für XSLT nicht so ganz, was den Mehraufwand betrifft. Mache ich mit php sofort die Transformation, so habe ich eine einzige Datei für verschiedene Datenquellen (z.B. über PEAR). Kommt hier eine andere Datenquelle brauche ich keine weiteres Skript mit PHP. Oder habe ich hier was falsch verstanden?


      OffTopic:
      Es ändert sich die Datenstruktur der Datensenke: Wenn Du Dein PHP-Skript universell programmiert hast, brauchst Du nur noch das XSLT-File anpassen und schon bist Du fertig.


      Dasselbe würde doch auch für das php-Skript bedeuten, falls wiederum direkte Transformation - oder?


      Würdest du mir dies vielleicht nochmals näher erläutern, vielleicht habe ich hier was falsch verstanden

      Kommentar

      Lädt...
      X