The Cover PagesThe OASIS Cover Pages: The Online Resource for Markup Language Technologies
Advanced Search
Site Map
CP RSS Channel
Contact Us
Sponsoring CP
About Our Sponsors

Cover Stories
Articles & Papers
Press Releases

XML Query

XML Applications
General Apps
Government Apps
Academic Apps

Technology and Society
Tech Topics
Related Standards
Last modified: December 02, 2003
Extensible User Interface Language (XUL)

XUL: "XML-Based User Interface Language," or "XML User Interface Language," or "Extensible User Interface Language" -- depending upon the authority. The version 1.0 draft attests "XML User Interface Language."

XUL Project principals wrote in about 1999: "XUL stands for 'extensible user interface language'. It is an XML-based language for describing the contents of windows and dialogs. XUL has language constructs for all of the typical dialog controls, as well as for widgets like toolbars, trees, progress bars, and menus. Where HTML describes the contents of a single document, XUL describes the contents of an entire window (which could itself contain multiple HTML documents)."

"XUL is an XML based grammer for specifying the the static GUI. An Application Service is the code that both has access to the GUI elements and the code for for doing the specificed work. The definition of an cross-platform (XP) application is a small kernel that is able to load the static definition of the UI, the XUL or mulitple XUL files, and the Application Service(s), the code for processing the XUL. The AppRunner is available today for this purpose." [from 'Application Services / Application Core']

[March 29, 2002] "XUL Tutorial." By Neil Deakin. March 18, 2002 or later. "This tutorial describes XUL, the XML-based User-interface Language. This language was created for the Mozilla application and is used to define its user interface. The XUL implementation and the Mozilla browser are ever-changing. Some of the information contained within this tutorial may be outdated. The default skin has changed since some of the screen shots were taken, so the images may not match up to recent builds... XUL (pronounced zool and it rhymes with cool) was created to make development of the Mozilla browser easier and faster. It is an XML language so all features available to XML are also available to XUL. Most applications need to be developed using features of a specific platform making building cross-platform software time-consuming and costly. This may not be important for some, but when you consider that users may want to use an application on other devices such as handheld devices or set-top boxes, it is quite useful to allow users to. A number of cross-platform solutions have been developed in the past. Java, for example, has portability as a main selling point. XUL is one such language designed specifically for building portable user interfaces. It takes a long time to build an application even for only one platform. The time required to compile and debug can be lengthy. With XUL, an interface can be implemented and modified quicky and easily. XUL has all the advantages of other XML languages. For example XHTML or other XML languages such as MathML or SVG can be inserted within it. Also, XUL is easily localizable, which means that it can be translated into other languages easily. Style sheets can be applied to modify the appearance of the user interface (much like the skins or themes feature in WinAmp or some window managers)..." See also the "Mozilla XUL and Script Reference."


  • "XML Markup Languages for User Interface Definition"

  • XML User Interface Language (XUL). Home page for Mozilla's XUL documentation.

  • The Joy of XUL

  • XML User Interface Language (XUL) 1.0

  • XRE (XUL Runtime Environment)

  • XUL Tutorial. By Neil Deakin.

  • XUL Developer Central

  • Rapid Application Development with Mozilla. By Nigel McFarlane. Bruce Perens' Open Source Series. Prentice Hall PTR. ISBN: 0131423436. Published November 2003. See also the book's web site.

  • "Getting Started." Sample Chapter 2 online. Introduction to XUL. In Creating Applications with Mozilla. By David Boswell, Brian King, Ian Oeschger, Pete Collins, and Eric Murphy. O'Reilly, September 2002.

  • XULUX project (Apache) will "create an Object Model for the XUL language, so that we can process it easily with tools such as Betwixt or others; will create a XUL Jelly Tag Library, to transform a native XUL file into whatever..."

  • XUL Programmer's Reference Manual

  • [March 31, 2000] XUL Web site

  • XUL Language Specification; [cache]

  • XUL Window Language

  • XUL Coding Style Guidelines; [cache]

  • XULNotes

  • "Introduction to a XUL Document"

  • "XUL Genealogy: What Does XUL Have To Do With XML?" By Ian Oeschger.

  • "What Does XUL Have To Do With XML?" By Ian Oeschger. [From The Mozilla Organization, XULNotes]

  • XUL localizability issues

  • [November 21, 2003] "An Introductory Tour of Mozilla's XUL." By Nigel McFarlane. In (November 21, 2003). "XUL is an XML-based technology for expressing the GUI part of a software application. It has been used to express GUIs for applications as diverse as web browsers, email clients, calendars, calculators, spreadsheet editors, HTML editors, debuggers, and whole desktop environments. The free Mozilla platform -- that is, the executable engine and libraries that accompany every Mozilla-based product -- provides a fully-featured implementation of XUL. This article is a quick look at the main tags that Mozilla's XUL provides... XUL is a language for expressing forms away from the hypertext environment. Stripped of the underlying hypertext requirement, XUL is able to offer more flexible form-construction options, as well as everything that HTML offers the form builder... Just like XHTML-based applications, XUL applications are part of a multi-technology environment. The features of CSS2, JavaScript, and the DOM standards are all available to a XUL programmer. Some standards components aren't there, such as the HTML part of the DOM 1 standard, because it's XUL and not XHTML. In general terms, however, the environment is the same..."

  • [October 21, 2003] "Create Web Applets with Mozilla and XML. Mozilla's Simple and Flexible XUL Saves Time When Building Java-less Applets." By Nigel McFarlane. From IBM developerWorks, Web architecture. ['To go beyond simple HTML, historically the only options have been to use Java technology or plug-ins. Now, you have a new way -- write and display applications natively in XML. The Mozilla platform provides such a mechanism. In this article, Nigel McFarlane introduces XUL (the XML User-interface Language). XUL is set of GUI widgets with extensive cross-platform support that are designed for building GUI elements for applications that have traditional, non-HTML GUIs.'] "The Mozilla platform is a bundle of freely available open source technology that underlies many user-oriented software applications. Some of these applications are desktops and some are development tools, but the most famous ones are Web browsers, including Mozilla, AOL for the Macintosh, Galeon on Linux, and Netscape. Although these browsers are mostly used to display HTML, the platform beneath them offers much more. In particular, the Mozilla platform's extensive support for XML provides an alternative to Java technology for the creation of applets and applications. In this article, I'll demonstrate how to create such applets using XML tags instead of Java classes. It is a refreshingly simple, yet powerful approach. Although the Mozilla platform has its share of object classes (more than a thousand at last count), it is best known for its deep use of XML. For some flavors of XML (like XHTML), the platform provides full rendering support while for other flavors (like RDF), it provides support for data processing only. Rendering support is required if an XML document is to have a visual representation. The platform has rendering support for HTML/XHTML, MathML, optionally SVG, and also its own XUL, covered in this article..."

  • [June 30, 2003] "The Future of Mozilla Application Development." By David Boswell and Brian King. From O'Reilly Mozilla DevCenter (June 27, 2003). ['Recently, announced a major update to its development roadmap. Some of the changes in the new document represent a fundamental shift in the direction and goals of the Mozilla community. In this article, David Boswell and Brian King analyze the new roadmap, and demonstrate how to convert an existing XPFE-based application into an application that uses the new XUL toolkit. David and Brian are the authors of O'Reilly's Creating Applications with Mozilla.'] "The biggest news in the roadmap update is that intends to stop development of the application suite it currently produces in favor of stand-alone applications. When Netscape created the Mozilla open source community, it released the code for its Communicator browser suite, which included a web browser, a mail and news client, an HTML editor, and an address book. Over the past five years the community has rewritten the code base and has added many new features and other applications to the suite. The community itself has changed over this time and producing a single monolithic set of applications is no longer its main goal. In place of the browser suite, development will focus on a stand-alone Mozilla Browser (based on the Mozilla Firebird project, formerly called 'Project Phoenix') and a Mozilla Mail application (based on the Thunderbird project, formerly called 'Project Minotaur'). Both of these applications represent a second generation of Mozilla application development... Developers who have been using Mozilla as a platform for creating their own XUL-based applications or add-ons will also have some changes to get used to. Although there will most likely be some pain in the transition, the changes in the roadmap represent positive steps that is taking to encourage Mozilla application development. The new roadmap is a strong endorsement of the concept of XUL and of Mozilla application development in general. There is a possibility for confusion when you take a closer look at what exactly the roadmap is talking about changing. In the transition from Mozilla as an application suite to Mozilla as a platform for application development, the specific XUL-based toolkit that has been in use to date is being replaced with a new XUL-based toolkit taken from the Phoenix project. XUL itself is not being replaced though, just upgraded... [This article] provides details about how the xFly application has been converted from the old toolkit to the new one. There is good news and there is bad news about the work involved in the transition from a Mozilla package to a Firebird extension. The good news is that the basic architecture of the application does not change -- XUL is still used in conjunction with other technologies such as JavaScript, CSS and XBL. The bad news is that there are some changes to be aware of -- there are minimal changes in XUL and XBL, but the biggest changes involve how things are packaged, registered and launched..."

  • [May 27, 2003] "Introducing XUL - The Net's Biggest Secret: Part 1." By Harry Fuecks. From SitePoint (May 21, 2003). Part 1 of a 3-part series. ['What if I was to tell you that you can write your own version of Word using something like HTML and JavaScript? What if I added that you could run on your hard disk or launch it directly from your Web server and use it to update your site's content? It sounds a little far fetched, I know, but it's right here, right now -- and it calls itself "Zool".'] " In one of the Internet's quieter corners,, a revolution has been taking place. A new XML format, called XUL (Extensible User Interface Language), pronounced Zool is on the way to re-shaping what we know about both the Internet, and desktop applications. A bold claim perhaps -- but once you've finished reading this, you may just find yourself agreeing. The conceptual leap that's taken place at Mozilla is to think beyond the Web browser as simply being a tool for viewing Web pages, and instead, to look at it as a framework -- a runtime environment for executing applications, just as you might run programs in the Java and .NET runtime environments... What's fascinating about XUL and its sister technology, XPCom (Cross Platform Component Object Model), is that they have all the hallmarks of .NET and Java: (1) a library of 'widgets' for building applications -- as with .NET WinForms and Java's Swing; (2) separation of presentation logic from application logic, the presentation logic being handled by JavaScript; (3) support for XML messaging protocols like SOAP and XML-RPC; (4) support multiple languages for building 'code behind' components including C++, Python and Ruby, with Perl in progress -- though, sadly, no PHP yet; (5) truly cross platform; anywhere you can run Mozilla, you can run your XUL/XPCom applications. But it doesn't stop there -- writing an application in XUL is like writing a Web page with DHTML, except that your XUL application will work, while your DHTML might.... XUL provides a markup that will be easy for anyone with HTML experience to pick up, and has all the advantages of a text-based markup language, such as being able to generate it 'on the fly' with PHP. Better yet, XUL allows for the use of existing technologies, such as CSS, to modify the look and feel of your XUL applications, and SVG, to add some visual flair. You can also mix HTML with XUL -- you can put together hybrid pages, to, for example, bring a boring HTML page to life with some XUL widgets... All you need in order to run XUL applications, is to have Mozilla installed, right? Well, almost. There are a number of projects that aim to bring XUL to other runtimes and environments, such as Mozilla's Blackwood Project, Luxor XUL, jXUL and XULUX, all of which bring XUL to Java in some manner. It's also possible to Embed Gecko, which could bring XUL to devices like mobile phones and PDAs..." With source code. See also Part 2.

  • [October 31, 2002] "XUL Defines New User Interface Options." By Nigel McFarlane. From DevX WebDev zone. October 2002. ['XUL is a new Netscape/Mozilla XML dialect that describes the elements of a traditional user interface. Faster and cleaner than HTML, it might just be the quickest way yet to code a UI.'] "Mozilla 1.0 and Netscape 7.0, the re-write and upgrade to Netscape's 4.x Communicator suite, is more than just standards support and new code. During the re-write, the Netscape (now engineers decided to emphasize XML as the foundation of (nearly) everything in the new browser code. One important result is the XML-based XUL language. In this article I'll show you how kick XUL's tires a bit and explore how it works. I've used Mozilla here rather than Netscape 7.0, because of the availability of friendly development tools such as the DOM Inspector and the debugger. Otherwise, the two browsers are the same. Most XML standards describe some kind of document, but XUL is the 'not a document' XML standard. Before document-centric architectures we had plain ol' user-interfaces (GUIs), coded using Visual Basic, HyperCard or C/C++, to name just a few. When the Web came along, focus shifted strongly toward displaying documents in HTML. In the XML world, XUL is a hybrid solution that provides a way to describe scrollbars, toolbars, tabbed interfaces, and other standard UI controls. However, because XUL files consist of plain-text XML, XUL avoids the problem of 3GL code tortuously exploiting some low-level library like Win32, Swing or GTK... Mozilla is a big product and there are many different technologies to explore. You can get a little done quickly with XUL as shown here, but XUL used systematically can produce a flexible and bulletproof application. XUL is a very fast GUI language, highly portable and the basis for a look-and-feel that is more application-centered than document-centered. XUL makes Mozilla-based browsers completely customizable..."

  • [May 28, 2002]   W3C Receives Proposal for an Extensible User Interface Protocol (XUP).    The W3C has acknowledged receipt of a submission from MartSoft Corporation for a proposed Extensible User Interface Protocol (XUP). XUP is "a SOAP-based protocol for communicating user interface events and updates on the web. Once a session has been established between a client and server, user interface events can be passed to server-side handlers; these in turn, pass back updates to the user interface. XUP provides a foundation for developing and consuming highly interactive web applications and services. XUP is independent of the actual UI or event model: it places no restriction on the UI component set, or the attributes or events associated with each component. Furthermore, it supports both delegation and capturing/bubbling event models. XUP can work with any UI models with XML-based representations. A UI model is described by a tree of XML elements, with UI components (e.g., panels, buttons) mapping to elements and the properties (e.g., color, size) of the components mapping to attributes. Examples of XML-based UI models include XUL, Proto, XHTML, and WML." According to the W3C comment, the XUP submission "has a direct relationship to the goals of the W3C Multimodal Interaction Activity to develop markup specifications for synchronization across multiple modalities and devices with a wide range of capabilities." [Full context]

  • [August 04, 2000] "Digital Play Dough. Designing Applications with XUL." By Shelley Powers. In WebTechniques Volume 5, Issue 7 (July 2000). ['The XUL specification promises to make Web application development and design a whole lot easier. Shelley Powers shows you how to get started.'] "The XML-Based User Interface Language (XUL) made its first appearance with the release of Mozilla, the Open Source browser used as the foundation for Netscape 6. Pronounced "zool," the language gives developers and designers an easy way to describe the design and layout of application windows in Web browsers. By modifying a few files, you can change the entire look of your Web browser or of the windows that pop open while a visitor browses your site. Prior to XUL, this was only possible by modifying and re-compiling the browser's underlying source code. And in that case, you would have to distribute the modified browser to all your site's visitors -- an unlikely event. Fortunately, all you need to change the look and feel of a Web browser today is an understanding of the XML and CSS specifications and a little ingenuity. XUL applications consist of XML files created with .xul extensions. The files define the content of the application. Additional application data is located in Resource Description Framework (RDF) files. CSS files provide formatting, style, and some behavior, for the application. JavaScript files provide scripting support. Multimedia files, such as PNG images and other audio/visual files, might also be needed for additional user interface information. All of the file types are specifications recommended by the W3C, and collectively are referred to as the XUL application's "chrome" -- the contents, behavior, and appearance of the application's user interface. The Mozilla browser is itself designed as an XUL application. To manage the chrome for your browser, both Mozilla and Navigator have subdirectories labeled chrome, located off each browser's main directory. Within the chrome directory, separate XUL applications are packaged into separate subdirectories. Within each application directory, subdirectories further divide the application into content (containing the XUL, JS, and RDF files), skin (CSS files), and locale (DTD files). To deploy your own XUL application on the Web, you can either place all of the files within the same subdirectory on a Web server, or use the suggested chrome directory structure on the server. Note though that you may lose some functionality, such as localization, when your application is not using the chrome directory structure. Also, all files should be local to the URL of the main XUL file, otherwise the application may not work due to violations of built-in security... You'll find the complete application with all necessary files in the file. With just a few changes of the XML file associated with the XUL application -- adding a meter and using a tree instead of buttons -- I changed application functionality and provided better user feedback and a better design. With a few adjustments to the CSS file for the application, I was able to create a new and different look to go with my application's functionality. XUL promises to be a powerful tool for Web application development and deployment. I look forward to seeing future iterations and refinements of the technology in future browser versions."

  • [March 16, 2000] "Fooling with XUL." By Edd Dumbill. From March 15, 2000. ['With the mounting excitement about Mozilla, we decided to check out the promise of the XML, DOM, and CSS in combination with the XUL user interface language.'] "For a while now we have heard and seen presentations of XUL, the Extensible User Interface Language, which forms an integral part of Mozilla. Delegates at XTech 2000 were clearly excited by the project and its promise for delivering a richer user interface on the Web. As far as buzzword-compliance goes, Mozilla boasts a host of W3C specifications, including XML, DOM, CSS, and RDF. I wanted to find out how all these bits fit together in reality, and how practical client-side development with Mozilla actually is. I attacked the problem in my favorite way, by just jumping in with an idea I wanted to implement. One of the fun parts of the Mozilla browser is the sidebar. Working in a similar way to the so-called 'Explorer' bars in Microsoft's browser, the sidebar allows for handy access to components such as bookmarks, search, and 'What's Related?'..."

  • "XUL and RDF: The Implementation of the Application Object Model." By Dave Hyatt. "The purpose of this document is two-fold. The first section of the document describes the motivation and reasoning behind using RDF as the foundation of XUL. This section makes a technical argument both for having XUL in the first place and for using RDF as the underlying implementation of XUL's content model. The second section describes the XUL/RDF architecture itself and outlines enhancements to the XUL language in order to allow the markup language to reference local data and to indicate how and when it would like to be annotatable with local data." [local archive copy]

  • "XUL (pronounced /zool/) is an XML description of a package. . ."

  • XUL Command Specification

  • XUI Language Specification aka XUL. November 1998. "The XUI Language is a syntax description for the "resource files" used to describe such a UI. Since the Language is an application of XML, XUI Language documents will eventually detail an XML DTD used to construct interfaces from subcomponents." [local archive copy]

  • XUI Window Language November 30, 1998. [local archive copy]

  • Application Services / Application Core - XUL is an XML based grammer... [local archive copy]

  • XPToolkit Menu Facilities Draft 1.6 or later. With 'XUL Spec for Menus'.

Hosted By
OASIS - Organization for the Advancement of Structured Information Standards

Sponsored By

IBM Corporation
ISIS Papyrus
Microsoft Corporation
Oracle Corporation


XML Daily Newslink
Receive daily news updates from Managing Editor, Robin Cover.

 Newsletter Subscription
 Newsletter Archives
Globe Image

Document URI:  —  Legal stuff
Robin Cover, Editor: