Die Möglichkeiten der XSLT-Transformation können über Erweiterungsfunktionen ergänzt werden. Cardo stellt einige Erweiterungsobjekte bereit, damit folgende Dinge umsetzbar sind:
Es können auch eigene Erweiterungsobjekte erstellt werden um in der Transformation auf eigene Funktionen zuzugreifen.
Erweiterungsfunktionen sind wiederum in Erweiterungsobjekten (extension objects) zusammengefasst, welche einen bestimmten Bereich abdecken.
Damit Erweiterungsobjekte in der Transformationsdatei angesprochen und damit genutzt werden können, muss diesen am Anfang der Transformationsdatei ein Namenskürzel (Namespace) zugewiesen werden. Jedes Erweiterungsobjekt hat eine eindeutig ID. Es erfolgt also ein Mapping eines frei definierbaren Namenskürzels zu einer vorgegebene ID eines Erweiterungsobjektes:
cardo stellt drei Erweiterungsobjekte mit den ID's eo:iduCore, eo:iduPdf und eo:iduDocX zur Verfügung. Mit obigen Zeilen wird diesen als Namenskürzel 'iduCore' bzw. 'iduPdf' zugewiesen. Mit diesen Namenskürzeln sind sie nachfolgend in der Transformationsdatei ansprechbar.
Eine detailierte Hilfe zu den Funktionen der Erweiterungsobjekte eo:iduCore, eo:iduDocX und eo:iduPdf finden Sie hier:
http://webs.idu.de/xsdschemas/cardo/docs/CardoXsltExtension.htm
Auch Microsoft stellt ein eigenes Erweiterungsobjekt zur Verfügung, welches oben mit eingebunden wird und über das Namenskürzel msxsl ansprechbar ist. Dieses wird u.a. häufig gebraucht um aus einem XML-Fragment eine Knotenmenge zu machen (Funktion: node-set()).
Über dieses Erweiterungsobjekt werden Funktionen angeboten, die u.a. folgende Möglichkeiten bieten:
Abfrage der Datensätze einer Ebene über einen Filter: MapQueryReturnXmlDocument
u.v.m.
Dieses Erweiterungsobjekt ist nur relevant, wenn als Zielformat PDF erzeugt werden soll und bietet viele Konfigurationsmöglichkeiten für das PDF-Dokument:
(im Moment nur für cardo.Button implementiert)
Die Beschreibung aller Funktionen für iduDocX finden Sie hier: http://webs.idu.de/xsdschemas/cardo/docs/CardoXsltExtension.htm.