UIML authors are free to extend these vocabularies with new UI widgets. There must be a way for a renderer to quickly tell if it can render the vocabulary specified in the UIML document. Every UIML document uses a vocabulary . The vocabulary defines the legal class and property names that can be used for parts in a UIML document. We will call these base vocabularies.
Custom vocabularies that individuals, companies, or other organizations define.
These may or may not be not posted on uiml.org. Probably they are posted on web sites around the world of interest to specific communities, or posted in a company's internal network, or not posted at all. We will call these custom vocabularies. The highly unusual but possible exception is when someone creates a custom vocabulary from scratch that does not rely on any base vocabulary, but yet a renderer for some base vocabulary can render the custom vocabulary. For example, someone might create UI widget classes for Java from scratch that does not use AWT or Swing, but design the classes so that a renderer for UIML using the Java 1.3 or Swing base vocabulary can still render the custom classes.