Weil ich das Rad nicht neu erfinden möchte, werde ich keine ausführliche Dokumentation des XUL-Sprachfundus’ anbieten.
Nützliche und insgesamt erschöpfende XUL-Quellen sind diese:
• MDC
Die aktuellste Adresse in Sachen XUL, das MDC (Mozilla Developer Center).
Hier klicken!
• XUL Planet
Das ausführliche und viel besser strukturierte, aber z.T. veraltete Tutorial von Neil Deakin (90% davon sind gar nicht veraltet, sondern so aktuell wie eh und je) finden Sie da:
Hier klicken!
• Open XUL Alliance
Auf der Webseite der "Open XUL Alliance" finden Sie viele Informationen und Links zum Thema XUL. Das meiste davon ist leider, wie üblich beim Thema Mozilla und XUL, ziemlich veraltet.
Aber nichtsdestotrotz bietet die Downloadsektion dieser Seite mindestens 1 Schmankerl an, das Sie sich unbedingt herunterladen sollten!
Sie finden das "Leckerchen" im Downloadbereich als Zip-Archiv namens "xul-periodic-table".
Es handelt sich um ein außerordentlich gelungenes Archiv, welches ich regelmäßg selbst benutze.
Das Studium dieses Archivs steigert das Verständnis von XUL ganz enorm. Alle maßgeblichen XUL-Elemente werden mit ihren Attributen dargestellt.
Das Programm schaut so aus:

Das Goldstück kostet kein Geld, denn es ist wahrlich unbezahlbar – greifen Sie zu!
Da geht es zur "Open XUL Alliance": Hier klicken!
• Bücher
Sie finden bei der "Open XUL Alliance" auch ein komplettes, aber inhaltlich z.T. veraltetes, größtenteils jedoch immer noch gültiges "mozilla-xul-book" namens "Rapid Application Development with Mozilla".
Da jedoch das Buch leider als Ansammlung von pdf-Dokumenten vorliegt, ist es, so man es nicht ausdrucken möchte, so gut wie nutzlos.
Besagtes Buch besitze ich übrigens selbst. Es ist zwar durchaus gelungen und wirklich sehr fundiert. Aber es ist so umfangreich, daß der Inhalt teilweise bereits veraltet war, bevor ich auch nur die Hälfte der komplizierteren Konzepte verinnerlicht hatte. Wozu Dinge lernen, die sowieso keinen Bestand haben?
Sogar als gelegentliche Quelle zum schnellen Nachschlagen benutze ich das Buch kaum einmal.
Dazu benutze ich die oben abgebildete Datei, das Tutorial oder die online-Quellen.
Es existieren wohl noch aktuellere Bücher zum Thema XUL, zu denen ich keine Stellung beziehen kann, weil ich mir aus rein persönlichen Gründen garantiert kein Buch über Mozilla oder XUL mehr kaufen werde.
Machen Sie es von Ihren eigenen Ambitionen abhängig, ob sich der Buchkauf lohnt oder nicht.
Für meine Ambitionen lohnt es sich nicht.
• Mozilla-Quelltexte
Im Artikel über Seamonkey habe ich beschrieben, wie Sie an die Mozilla-Quelltexte herankommen können.
Hier klicken!
Leider ist es aber so, daß Sie eine Fehlermeldung erhalten, wenn Sie eine entzippte Quelldatei öffnen.
Der Grund dafür ist Mozillas Unfähigkeit, außerhalb seines eigenen Installationsverzeichnisses Dokumenttypdefinitionen (DTDs) verarbeiten zu können.
Anders als in meinen Quelltexten zum Archivator steht im Mozilla-Quelltext nicht:
<menuitem label="Öffnen"/>
sondern so seltsame Zeichenketten wie diese:
<menuitem label="&openCmd.label;" />
Zeichenketten mit vorangestelltem Kaufmännischem Und (&) plus abschließendem Semikolon nennt man Entities. Wir kennen dieses Konzept schon aus HTML.
Sonderzeichen werden auf diese Weise kodiert, damit sie in aller Herren Länder korrekt dargestellt werden, unabhängig davon, daß fast alle PC-Nutzer dieser Welt auf ihrer Tastatur gar keine Umlaute besitzen:
ä = ä
Ö = Ö
etc.
Solche Entities muß man dem Browser nicht weiter erklären – er kann sie alle auswendig.
Anders jedoch die Entities, die er selbst benutzt. Scheinbar absurderweise benötigt er dafür eine Vorlage, in welcher alle diese Entities mitsamt ihren Bedeutungen aufgeführt werden.
Im Programmarchiv toolkit befindet sich im Verzeichnis global eine Vorlage namens build.dtd.
Darin ist nur dieser eine Eintrag verzeichnet (Die ID habe ich aus Datenschutzgründen verändert
:
<!ENTITY buildId.label "Build ID: 200431923">
Imgrunde ist eine DTD eine wirklich feine Sache.
Anstatt den Quelltext zu verändern – z.B. wenn man eine andere Sprache benutzen möchte – verändert man einfach die Werte der Entities in der DTD bzw. verlinkt eine alternative DTD. Schon steht auf dem betreffendem Button nicht mehr Save, sondern Speichern.
Aber ach! Dieses praktische Konzept begreift Mozilla nicht mehr, sobald die DTD außerhalb seiner eigenen Unterordner liegt.
Und weil er die DTD nicht begreift, begreift er auch deren Entities nicht mehr und produziert Fehlermeldungen.
Es hat auch keinen Sinn, die Verweise zu den DTDs entsprechend anzugleichen – es funktioniert nicht!
Sie müssen infolgedessen die Quelldatei, die Sie anzeigen möchten, verändern.
1. Löschen Sie diese Passage:
<!DOCTYPE window [ <!ENTITY % brandDTD SYSTEM "chrome://branding/locale/brand.dtd"> %brandDTD; ...bla,bla,bla... ]>
2. Öffnen Sie im Editor das Menü Suchen und ersetzen.
Suchen Sie dieses Zeichen: &
Ersetzen Sie es im gesamten Dokument durch nichts, indem Sie das Ersetzenfeld leer lassen.
Speichern Sie die Datei unter einem anderen Namen.
3. Führen Sie die Schritte 1 und 2 auch bei allen mit dem Dokument verbundenen Overlays durch.
4. Ersparen Sie sich die Anpassung der Links zu den betreffenden Javascript-Dateien.
Keine einzige darin befindliche Funktion funktioniert jetzt noch.
Erwarten Sie besser nicht zu viel von den Ergebnissen!
Ich selbst habe damals aus dem Studium der XUL-Quelltexte viel weniger gelernt, als ich erhofft hatte. Gelernt habe ich nicht etwa, wie und wieso die Dinge funktionieren, sondern meistens nur, warum sie bei mir nicht funktionieren.
Noch viel weniger, nämlich rein gar nichts, habe ich aus den Javascript-Quelltexten lernen können. Sie sind zur Weiterverwendung oder Erkenntnisgewinnung allesamt völlig unbrauchbar – für mich zumindest.
Wirklichen Nutzen haben mir tatsächlich nur die Archive Classic bzw. Modern gebracht.
Dort befinden sich nämlich alle CSS-Dateien zu den Themes und somit auch die nötigen Hinweise, wie XUL-Elemente zu stylen sind.
