Du definierst eine Prozedur mit Übergabeparameter z.B. der DS.
Deiner Serviceprozedur übergibst du einen Prozedurpointer.
Diese bearbeitet deine XML und ruft je "Datensatz" über den Prozedurpointer wieder das rufende Programm.
Dies nennt man CALLBACK.

Somit benötigst du keinen endlosen Speicher.

Das ist i.Ü. das selbe Prinzip wie die XML-Schnittstelle. Die ruft auch über Callbacks deine diversen Prozeduren auf.