Der Aufbau von Namen

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.

Präfix-Sequenzen

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>