Listen

Listen sind in WordML eine äußerst seltsame und oft schwer zu beherrschende Konstruktion. Für Word 2003 sind Listen Absätze mit der Eigenschaft einer Liste. Sie werden nicht wie sonst in XML-Strukturen üblich in einem Container mit mehreren Listenpunkten gebündelt, und es gibt auch keine Hilfs-Attribute und Elemente mit Hinweisen zu deren Aussehen und Position, wie z.B. bei den Tabulatoren.

Als problematisch erweisen sich Listen vor allem dann, wenn versucht wird, WordML vollautomatisch in andere Strukturen zu transferieren.

Es gibt grundsätzlich drei Möglichkeiten, Listen zu erzeugen:

  • Listen können Teil einer Absatzvorlage sein.

  • Sie können in den Listenvorlagen definiert werden und über eine ID aufgerufen werden.

  • Sie können in den Listenvorlagen definiert werden. Die Vorlage enthält eine ID, die wiederum von einem Element <w:list> aufgerufen wird und eine neue ID erhält. Diese ID kann nun ebenfalls für den Absatz als Ziel dienen. Es kann folglich sein, dass mehrere IDs für die gleiche Vorlage verwendet werden.

Im Folgenden werden anhand von Beispielen die Möglichkeiten vorgestellt:

<w:lists>                                             (1)
   <w:listDef w:listDefId="5">                        (2)
     <w:lsid w:val="42933BEE"/>
     <w:plt w:val="HybridMultilevel"/>
     <w:tmpl w:val="EF0C5E28"/>
     <w:lvl w:ilvl="0" w:tplc="BABAFAFC">             (3)
       <w:start w:val="1"/>
       <w:pStyle w:val="Normal"/>
       <w:lvlText w:val="%1."/>
       <w:lvlJc w:val="left"/>
       <w:pPr>
         <w:tabs>
           <w:tab w:val="list" w:pos="720"/>
         </w:tabs>
         <w:ind w:left="720" w:hanging="360"/>
       </w:pPr>
     </w:lvl>
     <w:lvl w:ilvl="1" w:tplc="04070019" w:tentative="on">
       <w:start w:val="1"/>
       <w:nfc w:val="4"/>
 ...
<w:p>
   <w:pPr>
     <w:listPr>                                       (4)
       <w:ilfo w:val="5">                             (5)
       <w:ilvl w:val="0"/>                            (6)
       <wx:t wx:val="1." wx:wTabBefore="360" wx:wTabAfter="135"/>  (7)
     </w:listPr>
   </w:pPr>
   <w:r>
     <w:t>nummerierte Liste</w:t>
   </w:r>
</w:p>

(1) Das Element <w:lists> ist ein Container-Element, das alle Listenvorlagen eines WordML-Dokumentes enthält.

(2) Das Element <w:listDef> enthält eine ID als Wert des Attributes w:listDefId. Auf diese ID kann verwiesen werden, um einen Absatz in einen Listenpunkt zu verwandeln.

(3) <w:lvl> legt für eine Ebene der Liste w:ilvl mit seinen Kindelementen die Formateigenschaften wie Nummerierung, Abstände und Einzüge fest (die Zählung beginnt bei 0).

(4) <w:listPr> ist ein Container-Element für die Zuweisung von Listeneigenschaften an einen Absatz und ist folglich ein Kindelement von <w:pPr>.

(5) <w:ilfo> referenziert mit dem Wert des Attributes w:val auf die ID einer Liste. Die Nummer korrespondiert hier mit dem Wert des Attributes w:listDefId im Element <w:listDef>.

(6) <w:ilvl> gibt mit seinem Attribut w:val die Ebene an, in der sich der Absatz innerhalb der Liste befindet. Es korrespondiert mit dem <w:lvl> der referenzierten Liste.

(7) <wx:t> enthält Hinweise zur Formatierung des Listenpunktes. Wichtig ist vor allem das Attribut wx:val, das bei nummerierten Listen die voranstehende Nummer liefert. Das Element wird von Word 2003 automatisch erzeugt und beim Einlesen nicht ausgewertet.

Meist werden Listen nicht direkt wie im obigen Beispiel referenziert. Vielmehr erhalten Listenvorlagen mit einem Element <w:list> eine neue ID, auf die wieder ein <w:list> verweisen kann, die wiederum eine neue ID zuweist oder auf einen Absatz verweist.

Beispielliste

Abb. Beispielliste

Eine Erweiterung des obigen Beispiels könnte wie folgt aussehen:

<w:lists>                          (1)
   <w:listDef w:listDefId="5">
     <w:lsid w:val="42933BEE"/>
 ...
   <w:list w:ilfo="5">             (1)
     <w:ilst w:val="7"/>           (2)
   </w:list>
   <w:list w:ilfo="7">
     <w:ilst w:val="8"/>
   </w:list>
   <w:list w:ilfo="8">
     <w:ilst w:val="9"/>
   </w:list>
 </w:lists>
 ...
<w:p>
   <w:pPr>
     <w:listPr>
       <w:ilfo w:val="9">          (3)
       <w:ilvl w:val="0"/>
 ...

(1) Das Element <w:list> verweist mit dem Attribut w:ilfo auf eine ID, die entweder zu einer Listendefinition gehört oder zu einem weiteren <w:list>-Element beziehungsweise dessen Kindelement <w:ilst>.

(2) <w:ilst> erzeugt mit dem Attribut w:val eine neue ID.

(3) <w:ilfo> verweist auf eine ID mit dem Attribut w:val. In diesem Beispiel auf die ID 9. Diese entspricht der ID 8, die wiederum der ID 7 entspricht, die gleichbedeutend mit der ID 5 ist, die letztlich die eigentlichen Listenformatinformationen enthält.

 

<< zurück vor >>

 

Tipp der data2type-Redaktion:
Zum Thema WordML bieten wir auch folgende Schulungen zur Vertiefung und professionellen Fortbildung an:

Copyright © dpunkt.verlag GmbH 2007
Für Ihren privaten Gebrauch dürfen Sie die Online-Version ausdrucken. Ansonsten unterliegt dieses Kapitel aus dem Buch "Professionelle XML-Verarbeitung mit Word" denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

dpunkt.verlag GmbH, Ringstraße 19B, 69115 Heidelberg, fon 06221-14830, fax 06221-148399, hallo(at)dpunkt.de