teichmann@7255: ========= teichmann@7255: Datenkorb teichmann@7255: ========= teichmann@7255: teichmann@7255: teichmann@7255: .. contents:: Inhalt teichmann@7255: teichmann@7255: Übersicht teichmann@7255: --------- teichmann@7255: teichmann@7314: Daten teichmann@7314: ----- teichmann@7314: Im Datenkorb stehen zwei Arten von Daten zur Auswertung zur Verfügung. teichmann@7314: teichmann@7314: ``Datensätze`` teichmann@7314: ~~~~~~~~~~~~~~ teichmann@7314: Datensätze sind Tabellen mit benannten Spalten. Sie werden von Datenquellen teichmann@7314: erzeugt und in einem Stapel verwaltet. Die konkreten Werte stehen erst durch teichmann@7314: Auffaltung als Variablen zur Verfügung. teichmann@7314: teichmann@7314: teichmann@7314: ``Variablen`` teichmann@7314: ~~~~~~~~~~~~~ teichmann@7314: Variablen sind die Werte, die aktuell zur Auswertung zur Verfügung stehen. Sie haben teichmann@7314: einen Namen und einen Typ (String, Zahl, durch Datenquelle bestimmt). teichmann@7314: teichmann@7314: Textersatz teichmann@7314: ---------- teichmann@7314: Um die Wertebelegungen in das Ausgabedokument schreiben zu kann an entsprechenden teichmann@7314: Stellen eine String-Interpolation durchgeführt werden. teichmann@7314: Hier finden zwei Arten von Textersatz ihren Einsatz. teichmann@7314: teichmann@7314: ``${}-Ersetzungen`` teichmann@7314: ~~~~~~~~~~~~~~~~~~~ teichmann@7314: Die ältere Variante. Innerhalb von Strings werden hier nur Variablen aufgelöst. teichmann@7314: Beispiel: "**Hallo, ${planet}!**" wird bei planet = 'Welt' zu "**Hallo, Welt!**". teichmann@7314: teichmann@7314: ``{$}-Ersetzungen`` teichmann@7314: ~~~~~~~~~~~~~~~~~~~ teichmann@7314: Die neuere Variante, allerdings noch nicht komplett an allen Stellen einsatzfähig. teichmann@7314: Innerhalb der geschweiften Klammern können beliebige XPath-Ausdrück stehen, die teichmann@7314: zu Strings evaluiert werden. Dies orientiert sich an den String-Auswertungen in XSLT. teichmann@7314: "**{ concat($greet, ', ', $planet, '!') }**" wird bei gesetzten Variablen greet = Hallo teichmann@7314: und planet = "Welt" zu **Hallo, Welt!** ausgewertet. teichmann@7314: teichmann@7255: Datenkorb-Elemente teichmann@7255: ------------------ teichmann@7255: teichmann@7314: Datensätze erzeugen teichmann@7314: ~~~~~~~~~~~~~~~~~~~ teichmann@7255: teichmann@7255: ``dc:context`` **TODO** teichmann@7255: teichmann@7255: ``dc:statement`` **TODO** teichmann@7255: teichmann@7255: ``dc:container-context`` **TODO** teichmann@7255: teichmann@7255: ``dc:properties`` **TODO** teichmann@7255: teichmann@7314: ``dc:virtual-column`` **TODO** teichmann@7314: teichmann@7314: Datensätze einschränken teichmann@7314: ~~~~~~~~~~~~~~~~~~~~~~~ teichmann@7314: teichmann@7314: ``dc:filter`` **TODO** teichmann@7314: teichmann@7314: ``dc:group`` **TODO** teichmann@7314: teichmann@7314: Datensätze auffalten teichmann@7314: ~~~~~~~~~~~~~~~~~~~~ teichmann@7314: teichmann@7255: ``dc:for-each`` **TODO** teichmann@7255: teichmann@7255: ``dc:iterate`` **TODO** teichmann@7255: teichmann@7314: Makros teichmann@7314: ~~~~~~ teichmann@7255: teichmann@7255: ``dc:macro`` **TODO** teichmann@7255: teichmann@7255: ``dc:macro-body`` **TODO** teichmann@7255: teichmann@7255: ``dc:call-macro`` **TODO** teichmann@7255: teichmann@7314: Sonstige Elemente teichmann@7314: ~~~~~~~~~~~~~~~~~ teichmann@7255: teichmann@7314: ``dc:element`` Hinzufügen neuer Elemente in der Ausgabe teichmann@7314: ....................................................... teichmann@7255: teichmann@7314: .. code:: xml teichmann@7314: teichmann@7314: teichmann@7314: ... teichmann@7314: teichmann@7314: teichmann@7314: Erzeugt ein Element namens Name. Für den Namen gelten die `${}-Ersetzungen`_. teichmann@7314: teichmann@7314: teichmann@7314: ``dc:attribute`` Hinzufügen neuer Attribute zum umgebenden Ausgabeelement teichmann@7314: ......................................................................... teichmann@7314: teichmann@7314: .. code:: xml teichmann@7314: teichmann@7314: teichmann@7314: teichmann@7314: Fügt dem umgebenden Ausgabeelement ein weiteres Attribut namens Name mit dem teichmann@7314: Wert von Wert hinzu. Für Namen und Wert gelten die `${}-Ersetzungen`_. teichmann@7314: Der Einsatz dieses Konstrukts findet häufig im Zusammenhang mit dc:element teichmann@7314: seinen Einsatz, wenn es ein Ausgabeelement vollständig aus Variablenbelegungen teichmann@7314: erstellt werden soll. teichmann@7314: teichmann@7314: teichmann@7314: teichmann@7314: teichmann@7314: ``dc:comment`` **TODO** teichmann@7255: teichmann@7255: ``dc:message`` **TODO** teichmann@7255: teichmann@7255: ``dc:variable`` **TODO** teichmann@7255: teichmann@7255: ``dc:convert`` **TODO** teichmann@7255: teichmann@7255: teichmann@7255: Bedingte Ausführung teichmann@7255: ~~~~~~~~~~~~~~~~~~~ teichmann@7255: teichmann@7255: ```` Einfaches Wenn-Dann ohne Sonst-Fall teichmann@7255: ............................................... teichmann@7255: teichmann@7255: .. code:: xml teichmann@7255: teichmann@7255: teichmann@7255: ... teichmann@7255: teichmann@7255: teichmann@7255: Der innere Teil wird nur dann betreten, wenn der XPath-Ausdruck zu teichmann@7255: logisch wahr evaluiert wird. Dieses Konstrukt kennt keinen alternativen teichmann@7255: Pfad, der betreten wird, falls der Ausdruck zu logisch falsch ausgewertet teichmann@7255: wird. Wird dies benötigt, muss man ```` benutzen. teichmann@7255: ```` ist in Symmetrie zu ```` von XSLT entworfen worden. teichmann@7255: teichmann@7255: ```` Ketten von Wenn-Dann-Ausdrücken teichmann@7255: ............................................... teichmann@7255: teichmann@7255: .. code:: xml teichmann@7255: teichmann@7255: teichmann@7255: ... teichmann@7255: ... teichmann@7255: ... teichmann@7255: ... teichmann@7255: teichmann@7255: teichmann@7255: Es werden der Reihe nach von oben nach unter die ``test``-XPath-Ausdrücke der ``dc:when``-Elemente ausgewertet. Evaluiert ein Ausdruck zu logisch wahr, wird der innere Teil des entsprechenden ````-Elements betreten. Die verbliebenen teichmann@7255: ````- und ````-Elemente werden dann ignoriert. Evaluiert teichmann@7255: keiner der ``test``-Ausdrücke zu wahr, wird der innere Teil des teichmann@7255: ````-Elements betreten. teichmann@7255: ```` ist in Symmetrie zu ```` von XSLT entworfen worden. teichmann@7255: teichmann@7255: teichmann@7255: teichmann@7255: Datenkorb-Funktionen teichmann@7255: -------------------- teichmann@7255: teichmann@7255: ``dc:contains`` **TODO** teichmann@7255: teichmann@7255: ``dc:fromValue`` **TODO** teichmann@7255: teichmann@7255: ``dc:toValue`` **TODO** teichmann@7255: teichmann@7255: ``dc:replace`` **TODO** teichmann@7255: teichmann@7255: ``dc:replace-all`` **TODO** teichmann@7255: teichmann@7255: ``dc:has-result`` **TODO** teichmann@7255: teichmann@7255: ``dc:group-key`` **TODO** teichmann@7255: teichmann@7255: ``dc:date-format`` **TODO** teichmann@7255: teichmann@7255: ``dc:dump-variables`` **TODO** teichmann@7255: teichmann@7255: ``dc:get`` **TODO** teichmann@7255: teichmann@7255: teichmann@7255: