Einleitung

Für die Darstellung von Interfaceanpassungen(Buttons, Balken, etc.) verwendet World of Warcraft das XML-Format. Die XML-Dateien ähneln dem HTML-System da auch XML Elemente verwendet, die aus sogenannten Tags bestehen. Die Elemente für der XML-Datei sind allerdings von Blizzard vorgegeben und haben bestimmte Attribute, welche man optional einstellen kann. Die Attribute werden in den Anfangs-Tags eingebunden
Folgende Möglichkeiten von Elementen gibt es:

Element mit Start- und EndTag
StartTag Attribut1=”Wert” Attribut2=”Wert”…/EndTag !– zwischen den Tags können andere Elemente oder Inhalte stehen —

Element das in sich geschlossen ist
StartTag Attribut1=”Wert” Attribut2=”Wert” / !– das Zeichen “/” beendet das Tag —

Grundsätzlich kann jedes Element mit Start- und Ende-Tag zu einem Single-Tag werden, sofern es keine Kindelemente besitzt.

Innerhalb von XML-Dateien soll das Grundgerüst des AddOns im Aussehen definiert werden. Für die Verwendung von XML-Elementen ist eine vordefinierte Struktur gegeben, welche eingehalten werden muss, um von World of Warcraft verstanden zu werden. Zu diesem Zweck werden hier die verschiedenen XML-Elemente in Ihren Eigenschaften und Verwendungsmöglichkeiten beschrieben.
Zum besseren Verständis des Aufbaus einer XML-Datei, werden die Elemente in ihrer Anordnung und Abhängigkeit aufgezeigt. Es ist nicht immer notwendig alle Kindelemente einzubauen, einige Elemente können sich auch gegenseitig ausschließen (siehe AbsDimension und RelDimension).

Wer sich noch nie mit den XML-Dateien in AddOns auseinander gesetzt hat sollte sich bei den HowTos umsehen bezüglich einer Einführung in diese Materie.

Es kann nicht für die Vollständigkeit der Liste garantiert werden.

Elemente und Struktur

Die folgende Struktur, soll grob den Aufbau einer XML-Datei für WoW verdeutlichen. Erklärungen und Kommentare werden nach dem Standard XML-Kommentar abgebildet mittels !– … —

  Ui !-- Rootelement einer XML-Datei für WoW --  Script / !-- Angabe der Datei in der die Skripte(Funktionen, Variablen etc.) liegen --  Frame !-- Standardelement --  Size !-- Element für Definition der Größe --  AbsDimension !-- absolute Angaben -- !-- oder --  RelDimension !-- relative Angaben -- /Size 
Anchors !-- Positionierungen -- Anchor !-- Positionierungselement -- !-- optionale Angabe start -- Offset !-- Verschiebungselement -- AbsDimension / !-- absolute Angaben -- !-- oder -- RelDimension / !-- relative Angaben -- /Offset !-- optionale Angabe ende -- /Anchor /Anchors
!-- optionale Angabe start -- Backdrop !-- Hintergrund und Rahmen -- EdgeSize !-- Kanten-- AbsValue / !-- Rahmengröße -- /EdgeSize TileSize !-- Kachelung -- AbsValue / !-- Kachelgröße -- /TileSize BackgroundInsets !-- Hintergrundeinsatz-- AbsInset / !-- oder -- RelInset / /BackgroundInsets /Backdrop !-- optionale Angabe ende --
!-- optionale Angabe start -- Layers !-- Container für Layer-Elemente -- Layer !-- Layer-Element -- FontString / !-- Text-Element -- Texture / !-- Bild/Farb-Element -- /Layer ... !-- beliebige Wiederholung von Layer-Elementen möglich -- /Layers !-- optionale Angabe ende --
!-- optionale Angabe start -- Frames !-- Container für Frame-Elemente -- Frame !-- Frame-Element, siehe Abschnitt Frame-Derivate -- ... !-- Verschachtelung möglich -- /Frame ... !-- beliebige Wiederholung von Frame-Elementen möglich -- /Frames !-- optionale Angabe ende --
!-- optionale Angabe start -- Scripts !-- Container für Script-Elemente -- !-- siehe Abschnitt Script-Elemente -- /Scripts !-- optionale Angabe ende --
/Frame ... !-- beliebige Wiederholung von Frame möglich -- /Ui

Frame-Derivate

Es gibt Elemente, die vom Standardelement Frame abgeitet sind und dementsprechend die gleichen Eigenschaften und Attribute besitzen. Sie sind meistens für spezielle Aufgaben zu gebrauchen. Die folgende Liste zeigt abgeleitete Elemente die als Frame-Elemente gelten und behandelt werden.

  • EditBox .. /EditBox
    Eingabefeld für einzeilige oder mehrzeilige Texte.
  • Button .. /Button
    Button-Element.


Scripts-Elemente

Damit das AddOn auch auf bestimmte Ereignisse reagiert, werden die sogenannten Scripts-Elemente benötigt, welche auch als Handler bezeichnet werden. Innerhalb der Scripts-Elemente wird der auszuführende Teil geschrieben. Dies kann ein Funktionsaufruf sein, welche in einer seperaten (aber gelinkten) lua-Datei definiert ist, oder direkt auszuführender lua-code.

Es darf nur innerhalb von Scripts-Elementen lua-Code in der XML-Datei eingebunden werden!

Die folgenden Script-Elemente können verwendet werden:

  • OnLoad…/OnLoad
    Wird aufgerufen, wenn das Element geladen wird.
  • OnEvent…/OnEvent
    Wird aufgerufen, wenn ein vorher registriertes Ereignis eintritt. siehe API-Ereignisse
  • OnShow…/OnShow
    Wird aufgerufen, wenn das Element sichtbar wird.
  • OnHide…/OnHide
    Wird aufgerufen, wenn das Element für den Benutzer unsichtbar wird.

zurück zur AddOn-Materie
zurück zur Übersicht der Skript-Sektion