The XUL schema.

Download the package [updated May 15th, 2005].

About

This is an informal schema for XUL, it isn't normative in any way. The intention is to create a schema which can be used in XUL or generic XML editors to provide elements/attributes autocompletion and document validation.

The schema is written in W3C XML Schema language. The schema and XSLTs were tested using an evaluation version of <oXygen/> XML Editor.

This is work in progress. The schema is not complete and is incorrect in certain places. However it should be useful enough in its current state. If you find an error, please contact me (see below).

The schema is meant to be a bit restrictive in what it allows. While Gecko often accepts very weird input, like "<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <tab><button><button/></button></tab> </window>", it doesn't make sense to allow that in most XUL documents.

The schema aims to represent XUL as used in Mozilla Firefox 1.0 and other Toolkit applications. XPFE dialect, currently used by Mozilla Suite 1.7 is slightly different and is not what the schema describes. The schema doesn't include new elements introduced in later toolkit versions.

Generating the schema

Because of licensing problems the full schema has to be generated from several XML files - the downloadable version doesn't contain the documentation from XUL Planet.

Detailed descriptions for generating the full schema were moved to a separate page.

Licensing and copyrights

Various files used here are created by different people and are subject to different restrictions.

This means the schema cannot be freely redistributed as well, as it includes large chunks of the XUL Elements Reference.

To-do

  1. Figure out what's missing (XUL templates-related elements and new Firefox 1.5 elements, at least).
  2. Fix the comments marked "XXX" in various files in the package.
  3. Check the schema accuracy, fix the errors (as the current version is more like a proof of concept)
  4. Get rid of the custom XML format used, switch to RNG.

Contact

If you have any questions or suggestions, please contact me.

I'm also interested as to what other XML tools this works with. If you get generation / autocomplete to work with a certain tool, please let me know.