====== XML Notation für Konstruktoren ======
Der Datentyp 'node' ist ein XML-Knoten, er ist entweder Wurzel, Knoten oder Blatt. Um ihn zu konstruieren sollte ein Parent übergeben werden; Nodes, die unterhalb eines anderen Nodes konstruiert werden sind automatisch Kinder des Nodes.
body is node
contains
{
background as string;
color as string;
construct( node Parent, background = "black", color = string("white") ) // optionaler, benennbarer Parameter. Darf auch body( null, color="green" ) aufgerufen werden.
{
}
}
body as body( "body", background = "FFFFFF" ); // Benannte Zuweisung
h1 as node(body, "h1");
h1 +: "Ueberschrift"; // erzeugt eine Textnode.
body +: "Text";
Das ganze lässt sich auch kürzer formulieren:
body as
Ueberschrift
Text
Die XML-Beschreibung wird als Aufforderung verstanden, Klassen zu erzeugen. Die eingeschachtelten Elemente erhalten grundsätzlich als ersten Parameter den ParentParameter.
Verlangt eine Klasse als ersten Parameter etwas anderes als Node, so muss dies von Node abgeleitet sein. Entsprechend darf ein ein Element, nicht unter beliebigen Nodes eingebettet werden, sondern verlangt den entsprechenden Typ als Parent.