Wenn Sie Abfragen verschachteln möchten, ordnen Sie sie untergeordneten Elementen zu.
Vorgehensweise
- Öffnen Sie in Document Studio die Sicht Datenquellenschemas.
- Ziehen Sie ein Element aus der Sicht Datenquellenschemas in das Vorlagenelement. Wenn eine Abfrage auf ein Element mit einem übergeordneten Element gezogen wird, wird überprüft, ob diese Abfrage im Kontext einer Abfrage für
ein übergeordnetes Element durchgeführt werden kann. Alle Abfragen, die als Kontext dienen können, werden im Fenster Kontext auswählen angezeigt. Die Liste zeigt die ID und ihre Textdarstellung an.
- Wählen Sie den Abfragekontext aus der Liste aus. Wenn Sie den Wert "Ohne" für den Kontext auswählen, entstehen zwei nicht miteinander verbundene verschachtelte Abfragen.
- Klicken Sie auf OK.
Beispiel
Das folgende Beispiel
zeigt eine verschachtelte Abfrage, die einem Vorlagenelement von Rational DOORS
zugeordnet ist.
Paragraph DOORS 1 $1 Module/Object
Text
Module/Object/Object/Heading
Paragraph DOORS 1 $2 Module/Object/Attribute
Text
Module/Object/Attribute/Name
In diesem Beispiel dient die Abfrage
Module/Object als Kontext für
Module/Object/Attribute.
Im Beispiel
wird durch das Festlegen des Kontextes für die zweite Abfrage auf $1 die folgende Ausgabe erzeugt:
- Eine Gruppe von Absätzen, die die Überschrift jedes Objekts im Modul enthält.
- Eine Liste von Absätzen mit den Attributnamen für das aktuelle Objekt in Abfrage
$1.
Wenn Sie den Kontext für die zweite Abfrage auf none festlegen, wird die folgende Ausgabe
erzeugt:
- Eine Gruppe von Absätzen, die die Überschrift jedes Objekts im Modul enthält.
- Eine Liste von Absätzen mit den Attributnamen für alle Objekte.
Das folgende Beispiel
zeigt die verschachtelte Abfrage, die einem Vorlagenelement von IBM® Rational Tau
zugeordnet ist.
Die erste Abfrage, model/root(Package),
wird im Kontext des Rational-Tau-Modells durchgeführt.
Die zweite Abfrage, model/root(Package)/ownedMember,
wird für jedes von der ersten Abfrage zurückgegebene Paket durchgeführt.
Wenn eine Liste aller Klassen der Pakete der Ausgangsebene im Modell benötigt wird, ist die Abfrage
model/root(Package)/ownedMember(Class).
In diesem Formular enthält das Ausgabedokument nicht mehr den Namen jedes Pakets. Eine Klassenliste wird auf dieselbe Weise erstellt wie im ersten Fall. Die Abfrage
wird in ihre Komponentenabfragen aufgeteilt, und jede Abfrage wird in dem von den vorherigen Abfragen definierten Kontext ausgeführt:
Tabelle 1. Untergeordnete AbfragenUntergeordnete Abfrage |
Kontext |
Ergebnis |
model |
Nicht zutreffend |
Modell |
model/root(Package) |
Modell |
Paketliste |
ownedMember(Class) |
Paketliste |
Klassenliste |
Jede untergeordnete Abfrage wird für jedes Element zweimal durchgeführt, und die Ergebnisse
der einzelnen Ausführungen sind miteinander verknüpft. Diese Ergebnisse werden zum Kontext der nächsten untergeordneten Abfrage bzw. zur Ergebnisliste,
wenn die untergeordnete Abfrage die letzte ist.