Function DE Version 10.01

@XMLAddChild

XML

Syntax

@XMLAddChild(XMLN;Name);
@XMLAddChild(XMLN;Name;Content);
@XMLAddChild(XMLN;Name;Content;Namespace);

Beschreibung

Diese @Function erzeugt ein neues direkt untergeordnetes XML-Element unterhalb eines vorhandenen XML-Knotens.
Optional kann dem neuen Element direkt ein Inhalt zugewiesen werden. Zusätzlich kann eine Namespace-URI angegeben werden. In diesem Fall muss der Namespace bereits im XML-Dokument definiert sein.
Der Elementname, der optionale Inhalt und die optionale Namespace-URI werden entsprechend den für das XML-Handle gesetzten Zeichensatz-Flags nach UTF-8 konvertiert.
Die vom Parent-Node geerbten Flags werden auf das zurückgegebene XML-Node-Handle übernommen.

VSPECHXMLNODE XMLN:
Handle des Parent-Knotens, unterhalb dessen das neue XML-Element erzeugt werden soll.
XMLN muss ein gültiges VSPECHXMLNODE (XMLN) Handle enthalten, das auf einen XML-Knoten verweist.

TEXT Name:
Name des neu zu erzeugenden XML-Elements.
Der Name darf nicht leer sein und muss ein gültiger XML-NCName sein.

TEXT/VSPECBINBUFFER Content (Optional):
Inhalt des neu erzeugten XML-Elements.
Der Inhalt kann als TEXT oder VSPECBINBUFFER übergeben werden.
Die maximale Größe des Inhalts beträgt 100 MB.
Wird kein Inhalt angegeben oder ist der Inhalt leer, wird ein leeres XML-Element erzeugt.

TEXT Namespace (Optional):
Namespace-URI, die dem neuen XML-Element zugeordnet werden soll.
Die angegebene Namespace-URI muss bereits im XML-Dokument definiert und vom Parent-Knoten aus erreichbar sein.
Wird ein leerer Text ("") als Namespace angegeben, wird ausdrücklich ein Element ohne Namespace erzeugt.
Ist am Parent-Knoten ein Default-Namespace aktiv, wird dieser für das neue Element in diesem Fall ausdrücklich aufgehoben.

Return-Wert:
Bei erfolgreicher Ausführung liefert die @Function ein VSPECHXMLNODE (XMLN) Handle auf das neu erzeugte Child-Element zurück.
Ist das Parent-Handle ungültig, der Elementname leer oder ungültig, der angegebene Namespace nicht definiert,
überschreitet der Inhalt die maximal zulässige Größe oder tritt ein anderer Fehler beim Erzeugen des Elements auf, liefert die @Function @ERROR.

Beispiel: @XMLAddChild(XMLN;Name);

Flags := 7;
hXMLD := @XMLCreate(Flags);
hXMLRoot := @XMLCreateRoot(hXMLD;"customer");
hXMLName := @XMLAddChild(hXMLRoot;"name");
@XMLRelease(hXMLD);

Das Beispiel erzeugt unterhalb des Root-Elements ein leeres "<name>"-Element.

Beispiel: @XMLAddChild(XMLN;Name;Content);

Flags := 7;
hXMLD := @XMLCreate(Flags);
hXMLRoot := @XMLCreateRoot(hXMLD;"customer");
hXMLName := @XMLAddChild(hXMLRoot;"name";"Example GmbH");
@XMLRelease(hXMLD);

Das Beispiel erzeugt das Element "<name>" mit dem Inhalt "Example GmbH".

Beispiel: @XMLAddChild(XMLN;Name;Content;Namespace);

Flags := 7;
hXMLD := @XMLCreate(Flags);
hXMLRoot := @XMLCreateRoot(
hXMLD;
"customers";
"c";
"https://example.com/customer"
);
hXMLCustomer := @XMLAddChild(
hXMLRoot;
"customer";
"";
"https://example.com/customer"
);

@XMLRelease(hXMLD);

Das Beispiel erzeugt ein neues "<c:customer>"-Element im bereits definierten Namespace "https://example.com/customer".