Filter in hierarchischen Strukturen
Wenn Sie Filter für Ihre Inhalte einrichten, müssen Sie sich darüber im Klaren sein, wie Filter in hierarchischen Strukturen funktionieren, da es sonst zu unerwarteten Ergebnissen kommen kann. Eine „hierarchische Struktur“ ist jede Struktur, die aus einem „übergeordneten“ Element der obersten Ebene und „untergeordneten“ Elementen der unteren Ebene besteht. Dazu gehören Listen, Verfahren, Tabellen und Mahnungen.

Die wichtigsten Regeln bei Filtern auf hierarchischen Strukturen sind:
-
Wenn ein übergeordnetes Element von einer veröffentlichten Ausgabe ausgeschlossen werden soll, wird die gesamte Struktur ausgeschlossen.
Sie können Paligo beispielsweise nicht anweisen, ein procedure-Element auszuschließen, sondern einen Schritt innerhalb des Verfahrens aufzunehmen. Wenn Sie das Verfahren herausfiltern, wird das gesamte Verfahren ausgeschlossen, unabhängig von den Filtern auf den untergeordneten Elementen in der Struktur.
-
Wenn Sie Teile einer Struktur herausfiltern möchten, achten Sie darauf, Folgendes anzuwenden:
-
Die Filter, die Sie für jedes einzelne untergeordnete Element verwenden möchten, z. B. ein Listenelement oder eine Zeile in einer Tabelle.
-
Dieselben Filter für das übergeordnete Element, das die hierarchische Struktur als Ganzes darstellt, wie z. B.
procedure
oderinformaltable
. Stellen Sie das übergeordnete Element so ein, dass alle Filter und Filterwerte der untergeordneten Elemente vorhanden sind.
Wir haben ein Beispiel beigefügt, um zu zeigen, wie das funktioniert.
-
Wenn Sie die Regeln für die Verwendung von Filtern auf hierarchischen Strukturen verstehen, können Sie diese in Ihren Inhalten anwenden. Anweisungen zum Hinzufügen von Filtern finden Sie unter
Nehmen wir an, Sie haben eine Tabelle mit drei Zeilen und zwei Spalten, wie diese:
Modell |
anderes Betriebssystem |
---|---|
Acme 100 |
Android |
Acme 200 |
Android, iOS |
Acme 300 |
Android, iOS, Windows |
Der zugrunde liegende Code für die Tabelle sieht wie folgt aus:
<informaltable width="50%" xinfo:market="Europe"> <colgroup> <col></col> <col></col> </colgroup> <thead> <tr> <th> <para xinfo:text="260458">Model</para> </th> <th> <para xinfo:text="260459">Operating system</para> </th> </tr> </thead> <tbody> <tr xinfo:market="Europe"> <td> <para xinfo:text="260460">Acme 100</para> </td> <td> <para xinfo:text="260461">Android</para> </td> </tr> <tr> <td> <para xinfo:text="260462">Acme 200</para> </td> <td> <para xinfo:text="260463">Android, iOS</para> </td> </tr> <tr xinfo:market="USA"> <td> <para xinfo:text="260464">Acme 300</para> </td> <td> <para xinfo:text="260465">Android, iOS, Windows</para> </td> </tr> </tbody> </informaltable>
Schauen Sie sich das informaltable
-Element an, das das übergeordnete Element (Container für die gesamte Tabelle) ist. Es verfügt über diesen Marktfilter:
xinfo:market="Europe"
Schauen Sie sich die erste Zeile (tr
) in der Tabelle an. Er verfügt auch über diesen Marktfilter:
xinfo:market="Europe"
Schauen Sie sich nun die zweite Zeile (tr
) in der Tabelle an. Es gibt keinen Filter.
Schauen Sie sich abschließend den Code für die letzte Zeile in der Tabelle an. Die Zeile tr
hat einen Filter mit folgender Einstellung:
xinfo:market="USA"
Schauen wir uns nun an, wie diese Filter funktionieren, wenn Sie die Filter anwenden und veröffentlichen.
xinfo:market:Europe veröffentlichen und einbeziehen
Sie veröffentlichen das Topic, das die Tabelle enthält, und wählen in den Veröffentlichungseinstellungen aus, xinfo:market:Europe
einzubeziehen. Paligo veröffentlicht die Tabelle als:

Die dritte Reihe für Acme 300 ist nicht enthalten. Das liegt daran, dass:
-
Das Element
informaltable
hatxinfo:market:Europe
und ist somit enthalten. -
Die erste Zeile
tr
hatxinfo:market:Europe
und ist somit enthalten. -
Die zweite Zeile hat überhaupt keinen Filter
xinfo:market
und ist somit enthalten. -
Die dritte Zeile
tr
hatxinfo:market:USA
. Sie haben nicht festgelegt, dass diese Zeile einbezogen werden soll, daher erscheint diese Zeile nicht in der Ausgabe.
xinfo:market veröffentlichen und einbeziehen: USA
Sie veröffentlichen das Topic mit der Tabelle erneut. Diesmal schließen Sie xinfo:market:USA
ein. Paligo veröffentlicht das Topic, aber es enthält keine Tabelle.
Das liegt daran, dass:
-
Sie haben Paligo aufgefordert, Inhalte mit
xinfo:market:USA
aufzunehmen. -
Das Element
informaltable
hat den Filterxinfo:market:Europe
und somit wird der gesamte Tabellen-Container ausgeschlossen. -
Paligo kann ein untergeordnetes Element nicht veröffentlichen, wenn dessen übergeordnetes Element nicht enthalten ist.
So wie Sie keinen Absatz ohne übergeordnetes Topic veröffentlichen können, können Sie auch keine Tabellenzeile ohne übergeordnete Tabellenstruktur veröffentlichen. Dasselbe Prinzip gilt für alle hierarchischen Strukturen, einschließlich Listen und Mahnungen.
Wie würden Sie die Tabelle so veröffentlichen, dass nur die Zeile für den US-Markt erscheint? Schauen wir mal.
xinfo:market:USA zur Tabelle hinzufügen und erneut veröffentlichen
Die Tabellenstruktur muss angezeigt werden, wenn der Wert xinfo:market
Europa oder USA ist. Hierfür gibt es zwei Möglichkeiten:
-
Entfernen Sie den Filter
xinfo:market:Europe
aus dem Elementinformaltable
-
Fügen Sie den Filterwert USA zum Filter
xinfo:market
hinzu.
Hier fügen wir den USA-Filterwert hinzu.
Sie bearbeiten die Tabelle so, dass das informaltable
-Element zwei Filterwerte hat: xinfo:market:Europe;USA
.
Sie veröffentlichen die Tabelle und wählen erneut xinfo:market:USA
. Dies führt zu:

Das liegt daran, dass:
-
Das Element
informaltable
hatxinfo:market:Europe;USA
. Sie haben Paligo so eingestellt, dass alle Inhalte mitxinfo:market:USA
enthalten sind, sodass die Tabelle übereinstimmt. Sie hat einen der beiden angegebenen Werte. -
Die erste Zeile (Acme 100) aus der Originaltabelle wird ausgeschlossen. Es hatte
xinfo:market:Europe
und Sie haben Paligo angewiesen, nur Inhalte mitxinfo:market:USA
aufzunehmen. -
Die zweite Zeile aus der ursprünglichen Tabelle wird einbezogen, da sie keinen Filter
xinfo:market
hat. -
Die dritte Zeile aus der Originaltabelle hat
xinfo:market:USA
und ist somit enthalten.