Autor: Dr. Thorsten Fox, 15.02.2006
Für den Generierung einfacher überschaubarer XML-Strukturen bieten die Python-String Operationen und DTML eine Möglichkeit, dies ohne XSL-Transformationen und Filter zu generieren. Die dargestellte DTML-Methode "feed.xml" und weitere Skripte stellen ein Basiskonzept für die Generierung von XML-Daten aus ZMS dar.
|
||
Der XML-Export der Seite wird angestossen durch den Aufruf von |
Konzeptueller Ansatz ist die Re-Implementation der Rendering Routinen der ZMS-Objekte durch durch Zugriff auf die Basis-Attribute und Zusammenstellung in einer eigenen XML-Tag-Struktur.
Das Basis-Set des Codebeispiels besteht aus den folgenden DTML-Methoden:
feed.xml[?mode=recursive]
-> renderXMLHeader
-> renderPage
• renderZMSTextarea
• renderZMSGraphic
• renderZMSTable
• renderZMSCustom_flash-asset4
Die Hauptfunktion feed.xml ruft die beiden Methoden renderXMLHeader und renderPage auf, die wiederum rendert die einzelnen ZMSObjekte mit Hilfe von weiteren Methoden für jedes Objekt. Im Codebeispiel finden sich Methoden für ZMSTextarea, ZMSGraphic, ZMSTable sowie ein Special Object "Flash-Asset". renderPage verarbeitet auch Embedded Links zu diesen Objekten.
Der Parameter "?mode=recursive" listet alle Objekte unterhalb des aufrufenden Knotens rekursiv in einen XML-Strom.
Nutzung des Codebeispiels: XML Datei im ZMS auf ZOPE-Ebene importieren und Methodenset auf die oberste Ebene verschieben.
Voraussetzung: XHMTL-Konformität der Objekte und der Inhalte. Diese sollte vorher durch die Aktion "checkXHTMLconformity" geprüft werden.