Oh, ich hatte den Rückgabewert der Funktion bei einem Fehler auf die Laufvariable i gesetzt - um zu sehen, wieviele Objekte er wirklich erstellt. Nun, es ist kein einzigstes.
(Code oben jetzt berichtigt...)
Der Unterschied des Variablentyps mit der Klasse des Konstruktors sollte eigentlich funktionieren - ich hab mich hier mal ganz an das
XML-Tutorial aus der
DP gehalten.