Um mit einer NPSOBJ-Anweisung in einem
Kontext nach einem Wert zu fragen,
gibt man den Namen des Wertes an. Im einfachsten Fall ist dies ein einfacher
Name (simple_name
) wie beispielsweise title
oder
lastChanged
:
<npsobj insertvalue="var" name="title" />
Der gelieferte Wert ist in diesen Fällen eine Zeichenkette. Bei anderen
Namen (wie parent
) ist der gelieferte Wert jedoch eine Datei.
Fügt man einen solchen Wert beim Export direkt in die Ausgabe ein, erhält man
eine Zeichenkettenrepräsentation der Datei, was in der Regel nicht das
gewünschte Ergebnis ist. Es ist daher möglich, auch diese Datei wiederum nach
einem Wert zu fragen. Hierfür hängt man den Namen des zu ermittelnden Wertes
als Komponente an den ersten Namen an, getrennt durch einen Punkt. Dies kann
auch mehrfach geschehen, um nach dem Wert eines aus mehreren Komponenten
bestehenden Namens zu fragen:
<npsobj insertvalue="var" name="parent.title" /><br /> <npsobj insertvalue="var" name="parent.next.title" />
Ein Name ist folgendendermaßen aufgebaut:
composite_name ::= [ exporter_prefix_sequence ] [ simple_name_sequence ] exporter_prefix_sequence ::= initial. | self. | export. | ( context. { context. } ) simple_name_sequence ::= [ simple_name . ] simple_name
Die Zahl der Komponenten in einem zusammengesetzten Namen ist
nicht begrenzt. Durch die Angabe einer Komponente wird während der
Wertbestimmung der aktuelle Kontext für die sich anschließende Komponente
temporär umgesetzt. Bei einem zusammengesetzten Namen wie
parent.title
wird demnach der parent
-Ordner des
aktuellen Dateikontexts zum aktuellen Kontext gemacht, in dem dann der Wert
von title
ermittelt wird. Abschließend wird der ursprünglich
aktuelle Kontext wieder zum aktuellen Kontext gemacht.
Mit einer Präfix-Sequenz kann der Kontext während des Exportvorgangs oder zwischen Geltungsbereichen von Namen gewechselt werden:
Präfix | Wirkung |
---|---|
context |
Der Kontext des umgebenden list -,
newslist - oder table -Elements verwendet wird.
Er kann mehrfach eingesetzt werden, um mehrere Ebenen aufzusteigen.Bitte beachten Sie: Die Anweisungen modifyvar="set" ,
switch ... casecond und
insertvalue="systemexecute"
erzeugen einen zusätzlichen aktuellen Kontext. Um zu dem Kontext zu gelangen, der eine solche
Anweisung umgibt, muss der Präfix context zweimal verwendet
werden.
|
initial |
Der initiale Kontext (der ursprünglich exportierten Datei) wird verwendet. |
export |
Der Namensraum wird temporär gewechselt: der auf
export folgende Name wird als Name einer
Export-Variablen
interpretiert. |
self |
Der aktuelle Kontext wird referenziert. |
Ein Präfix ist nur wirksam, während der Wert der auf den Präfix
folgenden Namenskomponente ermittelt wird. Im folgenden Beispiel bezieht sich
daher nur die erste insertvalue="var"
-Anweisung auf den Kontext,
in dem die list
-Anweisung ausgeführt wird. Die zweite
insertvalue="var"
-Anweisung bezieht sich dagegen auf den Kontext
des aktuellen toclist
-Elements:
<npsobj list="toclist"> <b><npsobj insertvalue="var" name="context.title" /></b> - <npsobj insertvalue="var" name="title" /><br /> </npsobj>