XMLTransformer - Plone-Produkt zur Transformation von XML in HTML

Das Produkt XMLTransformer ist eine von Dr. Christoph Hermann entwickelte Erweiterung des Content-Management Systems Plone, die es erlaubt XML-Inhalte aus einer lokalen oder über das Web abrufbaren Quelle mittels XSLT in eine ansprechende Darstellung zu transformieren.

Weitere Informationen

An der Universität Freiburg werden zur Bereitstellung diverser Webseiten (z.B. der Uni-Freiburg Seite selbst, aber auch Institutsseiten, wie die des IMTEK) bis zu 400 Portal-Instanzen des Content-Management-Systems Plone betrieben.

Da nicht alle Datenbanken dieser Systeme miteinander verknüpft sind wurde der Wunsch geäußert XML-Inhalte aus Dritt-Systemen einzubinden (z.B. der Forschungsdatenbank der Universität Freiburg, oder das von mir entwickelte TF-Infoportal) und ansprechend darzustellen.

Das ursprüngliche Konzept sah vor, die bereits existierende in-house entwickelte Erweiterung XSLTrans zu verwenden, um die Inhalte zu integrieren. Es stellte sich jedoch heraus, dass diese Erweiterungen den Ansprüchen der Transformation an die Geschwindigkeit nicht genügte (transformierte Inhalte brauchten teilweise über eine Minute bis sie angezeigt werden konnten) und auch einige gewünschte Funktionalitäten (u.a. Suche, Caching, Parameterübergabe) nicht realisierbar waren. Zwar konnte durch Nutzung von Plones Dynamic Documents vorübergehend eine kostengünstige Lösung realisiert werden, jedoch stellte sich diese aufgrund auftretender Performance-Probleme und zu komplexer Handhabung als nicht nachhaltig heraus.

Daher wurde das Produkt XMLTransformer entwickelt. Nach Abschluss einer Projektphase am IMTEK wurde das Produkt auf PyPI der Allgemeinheit zugänglich gemacht und wurde bis heute (Stand 15.11.2013) bereits über 500 Mal heruntergeladen.

Herausforderungen

  • Einbindung externer Inhalte in die Plone-Portale
  • Parameter-abhängige Darstellung der Inhalte
  • Verbesserung der Geschwindigkeit
  • Integration in die Plone-Suche

Lösungen

  • Realisierung einer effizienten und schnellen Transformation mittels XSLT
  • Indexierung der transformierten Inhalte
  • Caching der Inhalte
  • Administrationsfreundliche Konfiguration des Produkts

Produkteigenschaften

Das Produkt integriert die folgenden Eigenschaften und Funktionalitäten in das Content-Manangement-System Plone:

  • Abruf einer XML-Quelle via URL und Übergabe von Parametern
  • Speicherung einer lokalen XML-Quelle im Produkt selbst
  • Abruf einer XSL via URL
  • Speicherung eines lokalen XSL im Produkt selbst
  • Transformation der XML-Quelle (lokal oder auf Abruf) mit dem angegebenen XSL
  • Übergabe von Parametern an das XSL zur Beeinflussung der Darstellung
  • Die Parameter können entweder Strings sein, die direkt angegeben werden, oder GET-Parameter, die der aufzurufenden Seite übergeben werden, oder aber auch Python-Ausdrücke, um die volle Flexibilität zu haben und z.B. Datums oder Zeitangaben berechnen zu können.
  • Caching (Mit Unterstützung entsprechender Caching-Header)
  • Indexierung des transformierten Inhaltes für die Suche
  • Pre- und Post-Content
  • Möglichkeit zur Darstellung eines Ersatzinhaltes, falls die Transformation fehlschlägt (z.B. falls der remote Server nicht erreichbar ist)

Das transformierte Ergebnis (in der Regel HTML) kann eine bestimmte Zeit lokal gecached werden, um den Seitenabruf weiter zu beschleunigen. Zusätzlich wird das transformierte Ergebnis indexiert, um so die Inhalte über die Plone-Suche zugänglich zu machen.

Über den Autor

Dr. Christoph Hermann ist Ingenieur und Technologie-Experte für Web-Portalsysteme, IT-Beratung, IT-Analyse und Konzeption in Freiburg im Breisgau. Er studierte bis 2005 Wirtschaftsinformatik an der Technischen Universität Clausthal-Zellerfeld, Deutschland und promovierte von 2007 bis 2012 im Fachbereich Informatik an der Albert-Ludwigs-Universität Freiburg.

Er interessiert sich insbesondere für Webportal-Technologien, Prozessoptimierung, Softwareentwicklung, E-Learning, Suche in Vorlesungsaufzeichnungen, Empfehlungssysteme für Lernmaterialien und die Verbesserung des Lehren und Lernens durch Multimedia im Allgemeinen.

Auf seiner Google+-Profil-Seite veröffentlicht er interessante Artikel, Tipps und Tricks zu diesen Themen.