Erweiterungsobjekt Grundgerüst
Beispiel

Ein Erweiterungsobjekt kann als Visual Studio Projekt für eine Klassenbibliothek (DLL) erstellt werden. Im nachfolgenden Beispiel wurde eine Klasse erstellt, welche eine Funktion zur Konvertierung einer Zeichenfolge anbietet (Beispiel aus einem Kundenprojekt). Sowohl Klasse als auch Methode müssen public sein, damit sie von aussen aufgerufen werden können. 

Ist die Dll gebaut, muss sie in das bin-Verzeichnis von cardo gelegt werden, damit die Klasse gefunden wird:

cardoSystem\coreWeb3\IIS\net3\bin

Beispielklasse:

using System;
using System.Text;
 
namespace FirmaXY.Test
{
    public sealed class EOTest
    {
		/// <summary>
		/// Ersetzt alle Sonderzeichen im String für die Ausgabe in vCard/iCalendar.
		/// </summary>
		/// <param name="str"></param>
		/// <returns></returns>
		public String QuotedPrintable(String str)
		{
			// Alle nicht im Ascii-Zeichnsatz enthaltenen Zeichen werden ersetzt durch die hexadezimale 
			// Darstellung mit einem vorangestellten =
			// Bsp.: aus "ü" wird "=FC"
 
			StringBuilder sb = new StringBuilder();
			foreach (char s in str)
			{
				if (s == 9 || (s >= 32 && s <= 126 && s != 61))
					sb.Append(s);
				else if (s < 256)
					sb.AppendFormat("={0:X2}", (int)s);
			}
 
			return sb.ToString();
		}
	}
}

 Wurde das Erweiterungsobjekt dann korrekt registriert in unserem Beispiel mit:

  • Namespace: eo:EOTest
  • .net-Type: FirmaXY.Test.EOTest

dann kann in der Transformationsdatei auf das Erweiterungsobjekt zugegriffen werden.

Zuerst muss ein eigenes Kürzel für den Namespace eingeführt werden:

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  xmlns:testEO="eo:EOTest"
  >

 Dann kann die Funktion genutzt werden:

  <p>
      <xsl:value-of select="testEO:QuotedPrintable('Testzeichenfolge mit ü')"/>
  </p>