Desirable Properties
Ease of use: easy to understand and facilitate the development of applications.
Extensible: new components or properties can be easily added.
Flexible: can be used for a wide variety of applications.
Complete: coverage of the domain.