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: