dnode Besonderheiten |
Top Previous Next |
Skripte > Klassen-Elemente und C++-Befehle > interpretierte C++-Anweisungen > node / dnode > dnode Besonderheiten
node und dnode verfügen nahezu über die gleichen Schnittstellen und sind daher analog zu verwenden. Im Unterschied zu node gehört dnode zu einem xerces Dokument. Solche Dokumente eröffnen einen großen Spielraum zur Manipulation im erzeugten C++-Code und sie können leicht als XML-Dokumente geschrieben werden. Einige dieser Erweiterungen sind auch im Interpreter verfügbar. Bäume aus dnode-Knoten werden im Unterschied zu solchen aus nodes im Variablen-Inspektor auch noch angezeigt, nachdem eine Transformation beendet ist. Das liegt daran, dass das Dokument für die dnodes zum Plugin gehört, das auch außerhalb des Parsers existieren kann, während nodes nur lokal innerhalb des Parsers existieren. Dies ist auch der Grund, warum dnode Klassenelemente nicht vor Beginn des Parsens initialisiert werden können. Erst dann wird das Plugin in den Parser hinein gereicht, so dass die dnode Knoten vom DOMDocument des Plugins erzeugt werden können. Bei der Erzeugung von C++ Code, der dnodes verwendet, muss die Xerces-Bibliothek mit gelinkt werden. In den Projekt-Optionen für die Code-Erzeugung ist dann CTT_ParseStateDomPlugin als Plugin-Typ zu setzen. Die Auswertung mittels Funktionstabellen im exportierten Code ist noch nicht implementiert
Der Wurzelknoten eines dnode-Baums muss mit der Funktion GetDocumentElement erzeugt werden. Geschrieben werden kann das Dokument schließlich mit der Funktion WriteDocument
Die Art und Weise, wie das Dokument geschrieben wird, ist in den Projektoptionen festgelegt.
Während Label und Wert einer node aus beliebigen Zeichen bestehen können,.ist die Menge der Zeichen für die Label einer dnode auf Buchstaben, Ziffern und den Unterstrich eingeschränkt, wobei das Label nicht mit einer Ziffer oder dem Unterstrich beginnen darf. Sonderzeichen und Umlaute sind hier nicht erlaubt. Erlaubt sind genau die Zeichen, die auch für die Definition eines XML-tags erlaubt sind.
Als weiterer Unterschied von node und dnode sei nochmals darauf hingewiesen, dass dnode-Zweige im Unterschied zu Zweigen aus node's im Baum verschoben werden können.
|
Diese Seite gehört zur TextTransformer Dokumentation |
Home Inhalt English |