http://www.w3.org/1999/XSL/Transform

c.xmlCall ([target : xlink], method : string, [name : string, value : string]*) : nodeset

Die Methode xmlCall ermöglicht den Aufruf einer XML-Methode und liefert dessen Ergebnis als nodeset zurück. Der Parameter xlink kann dabei ein vollständiger Verweis sein, der über die Methode xlink erstellt wurde.

Als Parameter kann ein xlink oder ein Methodenname angegeben werden. Der Methodenname ist dann optional, wenn ein xlink ohne weitere Parameter (name, value) angegeben wurde.

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:onion="http://onionworks.net/2004/data" version="1.0">
<xsl:template match="/">
<xsl:copy-of select="c.xmlCall('onion://data/objects/100', 'meta')" />
<xsl:variable name="meta" select="c.xmlCall('onion://data/objects/100', 'meta', 'language', 'de')/meta" />
<xsl:if test="count($meta/info) > 0">
<xsl:copy-of select="c.xmlCall($meta/info[1]/@target)" />
</xsl:if>
</xsl:template>
</xsl:stylesheet>
Aufruf einer entfernten Methode

Das erste Beispiel ruft für das Onion-Objekt 100 die XML-Methode meta auf und schreibt das Ergebnis als XML in die Ausgabe. Das zweite Beispiel lädt das Ergebnis der Methode meta mit dem Parameter language in eine Variable. Wenn das Ergebnis unterhalb des Elements meta mindestens ein info-Element besitzt, wird das target-Attribut des ersten info-Elements für einen weiteren xmlCall verwendet. Angenommen wird, dass sich dort ein gültiger xlink auf eine weitere XML-Methode befindet.

<c.xmlCall id="onion://data/objects/100" method="teaser" mode="large" border="yes" />
<c.xmlCall xsl-variable="content" xsl-select="/content" method="content" />
<xsl:value-of select="$content/meta/@label" />
Aufruf einer entfernten Methode über ein XML-Tag

Die XML-Schreibweise dient der verbesserten Lesbarkeit. Die Attribute id und method sind reserviert für die Angabe des xlinks und der Zielmethode. Wenn keine Methode angegeben wird verwendet das System die Methode default. Das Gleiche gilt für den XLink, wird kein XLink angegeben, wird die eigene ID verwendet.
Jedoch kann die Funktion nicht ohne mindestens einen Parameter aufgerufen werden. Das bedeutet, sollte weder der XLink, noch die Methode angegen werden, so muss mindestens eine Variable (die an die Methode übergeben werden kann) übergeben werden.

Bei der Angabe des Parameters xsl-variable wird die Variable erstellt und mit dem Ergebnis der xml Methode befüllt. Die Angabe des Parameters xsl-select selektiert oder kopiert ein Fragment des Ergebnisses.

<xsl:variable name="longDescription" select="false()" />
<c.xmlCall id="onion://data/objects/100" method="meta">
<xsl:if test="$longDescription">
<xsl:attribute name="longDescription">yes</xsl:attribute>
</xsl:if>
</c.xmlCall>
Bedingte Übergabe eines Parameters