Zum Inhalt springen

„XML User Interface Language“ – Versionsunterschied

aus Wikipedia, der freien Enzyklopädie
[gesichtete Version][gesichtete Version]
Inhalt gelöscht Inhalt hinzugefügt
K wikilinks
Vorlagenfehler korrigiert: Linktext ungültig[ WSTM / aF ]
Zeile 1: Zeile 1:
'''XML User Interface Language''' ('''XUL''') ist eine auf [[Extensible Markup Language|XML]]-basierende [[Auszeichnungssprache|Beschreibungssprache]] für [[grafische Benutzeroberfläche]]n (GUIs). Sie wurde ursprünglich für das [[Mozilla]]-Projekt entwickelt, aber auch von anderer Software genutzt. In Mozilla-[[Anwendungssoftware|Anwendungen]], wie [[Mozilla Firefox|Firefox]], [[Mozilla Thunderbird|Thunderbird]], [[SeaMonkey]] oder [[Netscape Navigator|Netscape]], wird bzw. wurde die Benutzeroberfläche mit Hilfe von XUL erzeugt, wobei die [[Gecko (Software)|Gecko]]-Rendering-Engine genutzt wird, die auch für die Darstellung von [[Webseite]]n verwendet wird.
'''XML User Interface Language''' ('''XUL''') ist eine auf [[Extensible Markup Language|XML]]-basierende [[Auszeichnungssprache|Beschreibungssprache]] für [[grafische Benutzeroberfläche]]n (GUIs). Sie wurde ursprünglich für das [[Mozilla]]-Projekt entwickelt, aber auch von anderer Software genutzt. In Mozilla-[[Anwendungssoftware|Anwendungen]], wie [[Mozilla Firefox|Firefox]], [[Mozilla Thunderbird|Thunderbird]], [[SeaMonkey]] oder [[Netscape Navigator|Netscape]], wird bzw. wurde die Benutzeroberfläche mit Hilfe von XUL erzeugt, wobei die [[Gecko (Software)|Gecko]]-Rendering-Engine genutzt wird, die auch für die Darstellung von [[Webseite]]n verwendet wird.


XUL gilt inzwischen als veraltet.<ref>{{Internetquelle |url=https://web.archive.org/web/20191022105730/https://developer.mozilla.org/en-US/docs/Archive/Mozilla/XUL |titel=XUL - Archive of obsolete content {{!}} MDN |datum=2019-10-22 |abruf=2021-08-22}}</ref> Im Firefox-Browser können seit Ende 2017 keine XUL-basierten Erweiterungen mehr installiert werden.<ref>{{Internetquelle |url=https://developer.mozilla.org/de/docs/Mozilla/Add-ons/WebExtensions/What_are_WebExtensions |titel=Was sind WebExtensions? - Mozilla {{!}} MDN |sprache=en-US |abruf=2021-08-22}}</ref> 2019 begannen Mozilla-Entwickler, XUL-Elemente der Benutzeroberfläche weitgehend durch gewöhnliche [[Hypertext Markup Language|HTML]]-Elemente zu ersetzen, wie sie auch von Webseiten verwendet werden.<ref>{{Internetquelle |url=https://bugzilla.mozilla.org/show_bug.cgi?id=1563415 |titel=1563415 - (de-xul-elements) [meta] Start using HTML elements to replace XUL elements |sprache=en |abruf=2021-08-22}}</ref>
XUL gilt inzwischen als veraltet.<ref>{{Internetquelle |url=https://web.archive.org/web/20191022105730/https://developer.mozilla.org/en-US/docs/Archive/Mozilla/XUL |titel=XUL Archive of obsolete content {{!}} MDN |datum=2019-10-22 |abruf=2021-08-22}}</ref> Im Firefox-Browser können seit Ende 2017 keine XUL-basierten Erweiterungen mehr installiert werden.<ref>{{Internetquelle |url=https://developer.mozilla.org/de/docs/Mozilla/Add-ons/WebExtensions/What_are_WebExtensions |titel=Was sind WebExtensions? - Mozilla {{!}} MDN |sprache=en-US |abruf=2021-08-22}}</ref> 2019 begannen Mozilla-Entwickler, XUL-Elemente der Benutzeroberfläche weitgehend durch gewöhnliche [[Hypertext Markup Language|HTML]]-Elemente zu ersetzen, wie sie auch von Webseiten verwendet werden.<ref>{{Internetquelle |url=https://bugzilla.mozilla.org/show_bug.cgi?id=1563415 |titel=1563415 (de-xul-elements) &lsqb;meta&rsqb; Start using HTML elements to replace XUL elements |sprache=en |abruf=2021-08-22}}</ref>


== Eigenschaften ==
== Eigenschaften ==
XUL erlaubt die [[Lose Kopplung|Trennung]] von [[Layout]], [[Design]] und [[Programmcode]] einer Benutzeroberfläche. Das Layout und damit der grobe Aufbau der Benutzeroberfläche (wie [[Schaltfläche]]n, [[Textfeld|Eingabefelder]] und andere [[Steuerelement]]e) wird in XUL festgelegt, während die Darstellung (konkrete Schriftarten, Farben, Linienstile usw.) mit [[Cascading Style Sheets|CSS]] definiert wird. Unterschiedliche Themes ([[Skin (Computer)|Skins]]), auch zum Nachempfinden des Aussehens unterschiedlicher Betriebssysteme, können dann relativ einfach durch Auswechseln der CSS-Stile erzeugt werden.
XUL erlaubt die [[Lose Kopplung|Trennung]] von [[Layout]], [[Design]] und [[Programmcode]] einer Benutzeroberfläche. Das Layout und damit der grobe Aufbau der Benutzeroberfläche (wie [[Schaltfläche]]n, [[Textfeld|Eingabefelder]] und andere [[Steuerelement]]e) wird in XUL festgelegt, während die Darstellung (konkrete Schriftarten, Farben, Linienstile usw.) mit [[Cascading Style Sheets|CSS]] definiert wird. Unterschiedliche Themes ([[Skin (Computer)|Skins]]), auch zum Nachempfinden des Aussehens unterschiedlicher Betriebssysteme, können dann relativ einfach durch Auswechseln der CSS-Stile erzeugt werden.


Dadurch, dass XUL-Dateien nicht kompiliert, sondern zur Laufzeit interpretiert werden, ist es auch möglich, als Anwender die Benutzeroberfläche nach eigenen Wünschen zu bearbeiten und zu erweitern, was in Mozilla-Programmen prinzipiell auch automatisiert durch installierbare [[Add-on]]s erfolgen kann. Dies war zum Beispiel im Firefox-Browser bis zur Version 56 möglich,<ref>{{Internetquelle |url=https://developer.mozilla.org/en-US/docs/Archive/Add-ons/Overlay_Extensions |titel=Overlay extensions |zugriff=2019-08-30 |sprache=en}}</ref> seitdem funktionieren nur noch Erweiterungen, die das modernere, aber restriktivere [[WebExtensions]]-Format nutzen.
Dadurch, dass XUL-Dateien nicht kompiliert, sondern zur Laufzeit interpretiert werden, ist es auch möglich, als Anwender die Benutzeroberfläche nach eigenen Wünschen zu bearbeiten und zu erweitern, was in Mozilla-Programmen prinzipiell auch automatisiert durch installierbare [[Add-on]]s erfolgen kann. Dies war zum Beispiel im Firefox-Browser bis zur Version 56 möglich,<ref>{{Internetquelle |url=https://developer.mozilla.org/en-US/docs/Archive/Add-ons/Overlay_Extensions |titel=Overlay extensions |sprache=en |abruf=2019-08-30}}</ref> seitdem funktionieren nur noch Erweiterungen, die das modernere, aber restriktivere [[WebExtensions]]-Format nutzen.


Die Erstellung neuer Oberflächen in XUL ist einfacher und weniger zeitaufwendig als bei vielen Programmiersprachen. Bei einer [[Portierung (Software)|Portierung]] auf eine bestimmte [[Betriebssystem]]-[[Plattform (Computer)|Plattform]] muss das gesamte Mozilla-XUL-Toolkit auf die neue Plattform portiert werden. Im Gegenzug benötigen nach einer derartigen Portierung XUL-basierte Programme keine speziellen Anpassungen mehr, was die Entwicklung von betriebssystemunabhängigen Anwendungen stark vereinfacht.
Die Erstellung neuer Oberflächen in XUL ist einfacher und weniger zeitaufwendig als bei vielen Programmiersprachen. Bei einer [[Portierung (Software)|Portierung]] auf eine bestimmte [[Betriebssystem]]-[[Plattform (Computer)|Plattform]] muss das gesamte Mozilla-XUL-Toolkit auf die neue Plattform portiert werden. Im Gegenzug benötigen nach einer derartigen Portierung XUL-basierte Programme keine speziellen Anpassungen mehr, was die Entwicklung von betriebssystemunabhängigen Anwendungen stark vereinfacht.
Zeile 76: Zeile 76:
* [[AUIML]]
* [[AUIML]]
* [[eNode]]
* [[eNode]]
* [[JavaFX]] besitzt mit [[JavaFX#FXML|FXML]] eine XML-Sprache zur Beschreibung der GUI.<ref>{{Internetquelle |url=https://docs.oracle.com/javafx/2/get_started/fxml_tutorial.htm |titel=Getting Started with JavaFX: Using FXML to Create a User Interface {{!}} JavaFX 2 Tutorials and Documentation |zugriff=2018-01-26 |sprache=en}}</ref>
* [[JavaFX]] besitzt mit [[JavaFX#FXML|FXML]] eine XML-Sprache zur Beschreibung der GUI.<ref>{{Internetquelle |url=https://docs.oracle.com/javafx/2/get_started/fxml_tutorial.htm |titel=Getting Started with JavaFX: Using FXML to Create a User Interface {{!}} JavaFX 2 Tutorials and Documentation |sprache=en |abruf=2018-01-26}}</ref>
* [[Microsoft]] verfolgt ein ähnliches Konzept mit seiner Beschreibungssprache [[Extensible Application Markup Language|XAML]]. XAML ist ein grundlegendes Konzept in der [[Windows Presentation Foundation]] sowie von [[Microsoft Silverlight|Silverlight]] und kann auch mit der [[Windows Runtime]] genutzt werden.
* [[Microsoft]] verfolgt ein ähnliches Konzept mit seiner Beschreibungssprache [[Extensible Application Markup Language|XAML]]. XAML ist ein grundlegendes Konzept in der [[Windows Presentation Foundation]] sowie von [[Microsoft Silverlight|Silverlight]] und kann auch mit der [[Windows Runtime]] genutzt werden.
* [[NeXT]]s Implementierung des [[Model View Controller|MVC]]-Modells hat die Beschreibung der [[Grafische Benutzeroberfläche|GUI]] in [[Interface Builder|NIB]]-Dateien gespeichert, aus denen die Anwendung die Oberfläche zur Laufzeit initialisierte. Allerdings wurden darin sowohl die grafischen Eigenschaften, als auch die Logik der GUI beschrieben. Das Konzept wurde in [[Apple]]s [[macOS]] fortgeführt und verwendet seit [[Xcode#Xcode 3.0 bis 3.2|XCode 3.0]] XML-Dateien.
* [[NeXT]]s Implementierung des [[Model View Controller|MVC]]-Modells hat die Beschreibung der [[Grafische Benutzeroberfläche|GUI]] in [[Interface Builder|NIB]]-Dateien gespeichert, aus denen die Anwendung die Oberfläche zur Laufzeit initialisierte. Allerdings wurden darin sowohl die grafischen Eigenschaften, als auch die Logik der GUI beschrieben. Das Konzept wurde in [[Apple]]s [[macOS]] fortgeführt und verwendet seit [[Xcode#Xcode 3.0 bis 3.2|XCode 3.0]] XML-Dateien.
Zeile 98: Zeile 98:
'''Artikel'''
'''Artikel'''
* Sebastian Kortemeyer, Frank Thiesing: ''Gute Beschreibung: Webanwendung mit XUL und SVG gestalten.'' In: ''[[c’t]]'', 5/2008, S. 202
* Sebastian Kortemeyer, Frank Thiesing: ''Gute Beschreibung: Webanwendung mit XUL und SVG gestalten.'' In: ''[[c’t]]'', 5/2008, S. 202
* Karsten Düsterloh: {{Webarchiv | url=http://www.heise.de/ix/artikel/2005/07/124/ | wayback=20050618023529 | text=''XUL-Tutorial I: Basiselemente der Browsererweiterung''.}} In: ''[[iX – Magazin für professionelle Informationstechnik|iX]]'', 7/2005, S. 124
* Karsten Düsterloh: {{Webarchiv |url=http://www.heise.de/ix/artikel/2005/07/124/ |text=''XUL-Tutorial I: Basiselemente der Browsererweiterung''. |wayback=20050618023529}} In: ''[[iX – Magazin für professionelle Informationstechnik|iX]]'', 7/2005, S. 124
* Karsten Düsterloh: {{Webarchiv | url=http://www.heise.de/ix/artikel/2005/08/148/ | wayback=20050715025122 | text=''XUL-Tutorial II: Bäume und Templates''.}} In: ''[[iX – Magazin für professionelle Informationstechnik|iX]]'', 8/2005, S. 148
* Karsten Düsterloh: {{Webarchiv |url=http://www.heise.de/ix/artikel/2005/08/148/ |text=''XUL-Tutorial II: Bäume und Templates''. |wayback=20050715025122}} In: ''[[iX – Magazin für professionelle Informationstechnik|iX]]'', 8/2005, S. 148
* Karsten Düsterloh: {{Webarchiv | url=http://www.heise.de/ix/artikel/2005/09/154/ | wayback=20060204121917 | text=''XUL-Tutorial III: Mail-Erweiterung Mistory''.}} In: ''[[iX – Magazin für professionelle Informationstechnik|iX]]'', 9/2005, S. 154
* Karsten Düsterloh: {{Webarchiv |url=http://www.heise.de/ix/artikel/2005/09/154/ |text=''XUL-Tutorial III: Mail-Erweiterung Mistory''. |wayback=20060204121917}} In: ''[[iX – Magazin für professionelle Informationstechnik|iX]]'', 9/2005, S. 154
* Karsten Violka, Andreas Otte: ''Das Monster aus XUL.'' In: ''[[c’t]]'', 20/2002, S. 232
* Karsten Violka, Andreas Otte: ''Das Monster aus XUL.'' In: ''[[c’t]]'', 20/2002, S. 232


Zeile 110: Zeile 110:
<references />
<references />


{{SORTIERUNG:Xml User Interface Language}}
[[Kategorie:GUI-Toolkit]]
[[Kategorie:GUI-Toolkit]]
[[Kategorie:Mozilla]]
[[Kategorie:Mozilla]]

Version vom 1. September 2021, 09:43 Uhr

XML User Interface Language (XUL) ist eine auf XML-basierende Beschreibungssprache für grafische Benutzeroberflächen (GUIs). Sie wurde ursprünglich für das Mozilla-Projekt entwickelt, aber auch von anderer Software genutzt. In Mozilla-Anwendungen, wie Firefox, Thunderbird, SeaMonkey oder Netscape, wird bzw. wurde die Benutzeroberfläche mit Hilfe von XUL erzeugt, wobei die Gecko-Rendering-Engine genutzt wird, die auch für die Darstellung von Webseiten verwendet wird.

XUL gilt inzwischen als veraltet.[1] Im Firefox-Browser können seit Ende 2017 keine XUL-basierten Erweiterungen mehr installiert werden.[2] 2019 begannen Mozilla-Entwickler, XUL-Elemente der Benutzeroberfläche weitgehend durch gewöhnliche HTML-Elemente zu ersetzen, wie sie auch von Webseiten verwendet werden.[3]

Eigenschaften

XUL erlaubt die Trennung von Layout, Design und Programmcode einer Benutzeroberfläche. Das Layout und damit der grobe Aufbau der Benutzeroberfläche (wie Schaltflächen, Eingabefelder und andere Steuerelemente) wird in XUL festgelegt, während die Darstellung (konkrete Schriftarten, Farben, Linienstile usw.) mit CSS definiert wird. Unterschiedliche Themes (Skins), auch zum Nachempfinden des Aussehens unterschiedlicher Betriebssysteme, können dann relativ einfach durch Auswechseln der CSS-Stile erzeugt werden.

Dadurch, dass XUL-Dateien nicht kompiliert, sondern zur Laufzeit interpretiert werden, ist es auch möglich, als Anwender die Benutzeroberfläche nach eigenen Wünschen zu bearbeiten und zu erweitern, was in Mozilla-Programmen prinzipiell auch automatisiert durch installierbare Add-ons erfolgen kann. Dies war zum Beispiel im Firefox-Browser bis zur Version 56 möglich,[4] seitdem funktionieren nur noch Erweiterungen, die das modernere, aber restriktivere WebExtensions-Format nutzen.

Die Erstellung neuer Oberflächen in XUL ist einfacher und weniger zeitaufwendig als bei vielen Programmiersprachen. Bei einer Portierung auf eine bestimmte Betriebssystem-Plattform muss das gesamte Mozilla-XUL-Toolkit auf die neue Plattform portiert werden. Im Gegenzug benötigen nach einer derartigen Portierung XUL-basierte Programme keine speziellen Anpassungen mehr, was die Entwicklung von betriebssystemunabhängigen Anwendungen stark vereinfacht.

Nachteilig ist, dass durch den zusätzlichen Aufwand des Verarbeitens der XUL-Dateien und die notwendigen Berechnungen des Layouts und des Erscheinungsbildes die Verarbeitungs- und Darstellungsgeschwindigkeit häufig langsamer ist als bei nativen Benutzeroberflächen. Da die Betriebssystem-spezifischen Steuerelemente per CSS nachgebildet werden müssen, kann es Unterschiede in Aussehen und Verhalten der Benutzeroberfläche gegenüber nativen Programmen geben.

Aufbau einer XUL-Datei

Eine einfache XUL-Datei könnte so aussehen:

<?xml version="1.0"?>
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
<window id="sample-window"
        title="Beispiel"
        xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
    <vbox>
        <checkbox label="CheckBox"/>
        <hbox>
            <spacer flex="1"/>
            <button label="OK"/>
            <button label="Abbrechen"/>
        </hbox>
    </vbox>
</window>
Darstellung in Mozilla Firefox

XUL-basierte Anwendungen

Referenzen auf Ghostbusters

Die Abkürzung XUL hat den Ursprung aus dem Film Ghostbusters, in dem der Geist des Halbgottes Zuul, der Dana Barrett in Besitz genommen hat, behauptet: There is no Dana, there is only Zuul. Die Entwickler von XUL übernahmen diesen Satz leicht modifiziert als There is no data, there is only XUL. und wiesen damit auf die (damals) ungewöhnliche Eigenschaft von XUL als XML-Sprache hin, keine Daten oder Dokumente zu enthalten, sondern eine Benutzeroberfläche zu beschreiben.

Weitere Referenzen auf den Film Ghostbusters kann man an der XML-Namespace-URI http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul ablesen, die sich am Anfang von jeder XUL-Datei befindet. Keymaster und Gatekeeper beziehen sich hier auch auf Charaktere aus dem Film. Ruft man die Adresse im Webbrowser auf, erscheint der zuvor genannte Satz There is no data, there is only XUL.

In Mozilla-Software befinden sich nicht nur in XUL Hinweise auf „Ghostbusters“. Auch Venkman, der JavaScript-Debugger des Projektes, ist nach einer Figur aus Ghostbusters benannt.

Techniken mit ähnlichem Konzept

Inzwischen gibt es auch andere XML-basierte Formate, die eine Benutzeroberfläche beschreiben, wodurch die namenstehende XUL-Eigenschaft heute nicht mehr so ungewöhnlich ist (vgl. vorheriges Kapitel):

Siehe auch

Literatur

Bücher

Artikel

Einzelnachweise

  1. XUL – Archive of obsolete content | MDN. 22. Oktober 2019, abgerufen am 22. August 2021.
  2. Was sind WebExtensions? - Mozilla | MDN. Abgerufen am 22. August 2021 (amerikanisches Englisch).
  3. 1563415 – (de-xul-elements) [meta] Start using HTML elements to replace XUL elements. Abgerufen am 22. August 2021 (englisch).
  4. Overlay extensions. Abgerufen am 30. August 2019 (englisch).
  5. Getting Started with JavaFX: Using FXML to Create a User Interface | JavaFX 2 Tutorials and Documentation. Abgerufen am 26. Januar 2018 (englisch).