[PATCH] Datacage doc ref: Explain dc:group

Wald Commits scm-commit at wald.intevation.org
Mon Oct 14 16:38:20 CEST 2013


# HG changeset patch
# User Sascha L. Teichmann <teichmann at intevation.de>
# Date 1381761496 -7200
# Node ID 7be4425eaca9caacafdaeacde46ad8811d2e9a4e
# Parent  b33a2a437ab8c087bc4dd54ef853264cee98be10
Datacage doc ref: Explain dc:group

diff -r b33a2a437ab8 -r 7be4425eaca9 artifacts/doc/datacage_ref_de.rst
--- a/artifacts/doc/datacage_ref_de.rst	Mon Oct 14 16:06:36 2013 +0200
+++ b/artifacts/doc/datacage_ref_de.rst	Mon Oct 14 16:38:16 2013 +0200
@@ -156,14 +156,14 @@
 
     <dc:filter expr="XPath-Ausdruck">
       ...
-    <dc:filter>
+    </dc:filter>
 
 Evaluiert pro Zeile des aktuellen Datensatzes den XPath-Ausdruck 'expr' und erzeugt
 einen neuen Datensatz, der nur die Zeilen des Originaldatensatzes enthält für den
 die Auswertung logisch wahr ergab. Im XPath-Ausdruck stehen die aufgefalteten Werte
 der jeweiligen Zeile zur Verfügung.
 
-Folgends Beipiel soll dies verdeutlichen:
+Folgends Beispiel soll dies verdeutlichen:
 
  +----+
  +Zahl+
@@ -199,7 +199,71 @@
 realisiert werden. Nach Verlassen des `dc:filter`-Elementes ist wieder der vormalige
 Datensatz aktuell.
 
-``dc:group`` **TODO**
+``dc:group`` Datensätzen in Gruppen ordnen
+..........................................
+
+.. code:: xml
+
+    <dc:group expr="XPath-Ausdruck">
+      ...
+    </dc:group>
+
+Pro Zeile der Originaldatensatzes wird der XPath-Ausdruck 'expr' ausgewertet.
+Wie bei `dc:filter` stehen hier die aufgefalteten Werte der einzelnen Spalten zur
+Verfügung. Das Resultat der XPath-Auswertung wird als Schlüssel für zu erzeugende
+Gruppen benutzt, denen dann die Zeilen zugeordnet werden.
+Nachdem alle Zeilen ihren entsprechenden Gruppen zugeordnet wurden, wir der
+Inhalt des `dc:group`-Elements für jede Gruppe durchlaufen. Innerhalb des
+`dc:group`-Elementes steht der jeweilige Schlüssel der aktuellen Gruppe über
+die Funktion `dc:group-key()` zur Auswertung zu Verfügung. Innerhalb der
+jeweiligen Gruppen kann mittel `dc:for-each` der jeweilige Unterdatensatz
+realisiert werden.
+
+Zur Verdeutlichung folgendes Beispiel:
+
+ +-------+-----------+
+ +Marke  +Bezeichnung+
+ +=======+===========+
+ +Ferrari+Testarossa +
+ +-------+-----------+
+ +Volvo  +V40        +
+ +-------+-----------+
+ +Volvo  +780        +
+ +-------+-----------+
+ +Ferrari+F40        +
+ +-------+-----------+
+ +VW     +Käfer      +
+ +-------+-----------+
+
+.. code:: xml
+
+    <marken>
+      <dc:group expr="$Marke">
+        <marke name="{dc:group-key()}">
+           <dc:for-each>
+              <bezeichnung name="$Bezeichnung"/>
+           </dc:for-each>
+        </marke>
+      </dc:group>
+    </marken>
+
+Dies führt zu folgender Ausgabe:
+
+.. code:: xml
+
+    <marken>
+      <marke name="Ferrari">
+        <bezeichnung name="F40"/>
+        <bezeichnung name="Testarossa"/>
+      </marke>
+      <marke name="Volvo">
+        <bezeichnung name="V40"/>
+        <bezeichnung name="780"/>
+      </marke>
+      <marke name="VW">
+        <bezeichnung name="Käfer"/>
+      </marke>
+    </marken>
 
 Datensätze auffalten
 ~~~~~~~~~~~~~~~~~~~~


More information about the Dive4elements-commits mailing list