npsobj table

Syntax

npsobj_table ::=

  <npsobj table = "name"
  [ sortedby = "sortkey" ]
  [ sortkey1 = "sortKey1" 
    [ sortmodifier1 = sortModifier ]
    [ sortkey2 = "sortKey2"
      [ sortmodifier2 = sortModifier ]
      [ sortkey3 = "sortKey3"
        [ sortmodifier3 =  sortModifier ]]]]
  [ start = "startIndex" ]
  [ ( length = "length" ) | ( end = "end" ) ]
  [ reverse = "" ] 
  [ columns = "columns" ]
  [ direction = ( "horizontal" | "vertical" ) ]
  { other_attribute } >
  content
  </npsobj>

sortModifier ::=
  "alpha" | 
  "numeric" | 
  "ascending" | 
  "descending" |
  "alpha ascending" | 
  "alpha descending" |
  "numeric ascending" | 
  "numeric descending"

other_attribute ::= string = "string"

Aufgabe

Die Anweisung erzeugt eine Tabelle und füllt die einzelnen Zellen mit Texten. Die einzelnen Texte ergeben sich aus der Auswertung der Werte name, sortkey, startIndex, length und end sowie sortKey1, sortKey2, sortKey3, sortModifier1, sortModifier2, sortModifier3 und reverse wie im Abschnitt npsobj_list beschrieben. Enthält ein Text nur Leerraumzeichen (also Leerzeichen, Tabulator oder Zeilenumbrüche), so wird die Zelle mit dem Text &nbsp; gefüllt.

Die Tabelle enthält columns Spalten. Ist columns nicht angegeben, wird eine einzige Spalte erzeugt. Das erzeugte table-Tag erhält als Attribute alle als other_attribute angegebenen Attribute des NPSOBJ-Tags. Für alle Zeilen wird ein tr-Element mit einem öffnenden und einem schließenden Tag erzeugt. Für jede Zelle wird ein td-Element mit einem öffnenden und einem schließenden Tag erzeugt. Die erzeugten öffnenden tr- und td-Tags haben keine Attribute.

Die Zellen der Tabelle werden reihenweise von links nach rechts, beginnend in der obersten Zeile, mit den berechneten Texten gefüllt, wenn direction="horizontal" angegeben ist. Andernfalls werden die Zellen spaltenweise von oben nach unten, beginnend mit der ersten Spalte, gefüllt. Es wird eine Zahl von Zeilen bzw. Spalten erzeugt, die gerade ausreicht, um für alle Texte eine eigene Zelle erzeugen zu können. Zellen am Ende der letzten Zeile bzw. Spalte, für die kein Text mehr vorhanden ist, werden mit dem Text &nbsp; gefüllt.

Beispiel

<npsobj table="children" columns="2" direction="vertical" border="1">
  <npsobj insertvalue="var" name="title"/>
</npsobj>