XUL
„XML
User Interface Language“
„eXtensible Userinterface Language“
XML im Mozilla Projekt
Gruppe 4
WS 2005/06
VU Semistrukturierte Daten 1
181.135
Agenda
•
Was ist XUL?
•
Anwendung von XUL
•
Weitere Informationen über XUL
•
Beispiele….
•
Ausblick
2
Was ist XUL?
•
„eXtensible Userinterface Language“ oder auch „Xml Userinterface
Language“
•
eine XML basierte Beschreibungssprache für die Implementation von
GUIs
•
aus dem Mozilla-Projekt
•
stark an (W3C-)Standards orientiert
•
plattform-neutral, zumindest theoretisch denn für die jeweilige
Zielplattform muss der Mozilla-XUL-Toolkit dementsprechend portiert
werden
3
Anwendung von XUL
•
Mozilla und seine Geschwister
(Netscape, FireFox, ...)
•
Als „Chrome“ und als „Content“ verwendbar.
 Web-Applikationen
 Client in Client-Server-Systemen
 Stand-alone-Applikationen
 (XRE: „XUL Runtime Environment“)
4
Weitere Informationen über XUL
•
XUL wird von allen Mozilla basierten Anwendungen unterstützt
•
Im Grunde besteht eine Mozilla Anwendung (z.B. ein Browser) „nur“
aus einer Menge XUL-Dateien, JavaScripts und Style Sheets
•
XUL ist case-sensitive (im Gegensatz zu z.B. HTML)
•
Attribute (auch numerische Werte) müssen in Anführungszeichen
stehen (value=“5“ statt value=5)
5
XUL enthält keine Programmlogik
•
Ein XUL-Interface ist erstmal „nur“ eine Sammlung loser Widgets
ohne Funktionalitäten.
•
Funktionalität kann z.B. durch JavaScript eingebracht werden.
•
Komplexe Hochsprachen wie C++ können natürlich auch verwendet
werden, sind aber oft übertrieben.
•
JavaScript kann im Quelltext der XUL-Datei eingebunden sein,
sollte aber zur besseren Übersicht ausgelagert werden:
<html:script language=“javascript“ src=“meinjavascript.js“ />
6
Chrome
•
Komponenten werden üblicherweise im Unterverzeichnis chrome
der Mozilla-Installation abgelegt.
•
Chrome bezeichnet die UI-Teile des Anwendungsfensters ohne den
Inhaltsbereich, also
 Toolbars
 Menüleisten
 Statusleisten usw.
•
Für jede Komponente wird entweder eine Unterverzeichnis-Struktur
angelegt oder diese in eine .jar - Datei komprimiert.
7
XUL – Basic Schema eines XUL-Dokuments
<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
<window title="Meine XUL-Anwendung"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<groupbox orient="horizontal">
<caption label="Meine erste XUL-Anwendung"/>
<description>
Das ist ein XUL-Dokument. Leider ist es noch nicht interaktiver als eine HTML-Seite.
</description>
</groupbox>
</window>
8
XUL – Beispiel
•
XUL – Demo - Browser
•
XUL – Demo Stand Alone

z.B.: firefox -chrome file:///D:/Daten/Studium/WS2005/SemiStrukt1/XUL/bsp_basic/extended.xul
9
XUL – Grundlegende Komponenten (XPFE - Framework)
•
Struktur und Beschreibung von UI-Elementen mit XUL, XHTML, …
•
Look & Feel: mittels CSS und Images
•
Applikationslogik durch Skriptsprachen (z.B.: JavaScript)
•
DTD‘s (und .properties-Dateien)
• zur Lokalisierung für verschiedene Sprachen
10
Weitere Komponenten
 XPInstall (Cross-Platform Installation)
 XBL (eXtensible Binding Language)
• Zum Erstellen von wiederverwendbare Widgets aus bestehend aus XUL und JavaScript
 XPCOM/XPConnect
• Interfac für den Zugriff von ScriptSprachen aus auf C und C++ Libraries
 Resource Description Framework (RDF)
• „Manifest“ Dateien der XUL Applikationen
•
<RDF:RDF xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:chrome="http://www.mozilla.org/rdf/chrome#">
 XUL Templates
• Laden Daten aus einer Kombination von RDF und XUL in die Applikation
11
Ausblick
•
Zukunftstrend:
XUL UI Beschreibung in einer einzelner Datei ausliefern
 package als root Element, statt window
 main window durch parsen finden und starten
Package *package =
LoadPackage("http://xxx/package.xul");
InstantiateWindow(package, GetNodeWithID("main");
12
Ausblick
•
MDA
 Emerging Technologies Toolkit – IBM‘s Compound XML Document Editor
• (XUL) Metamodell Plugin für Eclipse
13
Ausblick
•
Demo - Compound XML Document Editor
14
Ausblick
•
MDA - wünschenswert:
 Graphischer Editor für das XUL Metamodell statt Baumstruktur
• zB in Kombination mit UML Metamodell
•
Luxor: XUL-Implementation in Java
(Kompatibilität aber nicht angestrebt)
15
Ressourcen zu XUL
•
http://www.mozilla.org/projects/xul/
•
http://www.mozilla.org/xpfe/
•
http://www.xulplanet.com/
 Umfangreich mit gutem Tutorial und XUL Referenz
•
http://www.hevanet.com/acorbin/xul/top.xul
 XUL Elemente Grundelemente Source + Demo‘s
•
XUL - Anwendungen:
•
https://addons.mozilla.org/extensions/showlist.php?application=firefox
&category=XUL%20Applications
16

Gruppe 4