Menu

XAML Conformance

aappddeevv

XIML is designed to be close in spirit to XAML. The XAML 2009 specification is freely available here. XAML is no longer just XML based, although that is the primary storage mechanism.

Instead, XIML should be thought of a node stream protocol. Interpreting that node stream can lead to the creation of object graphs. It is not a dependency injection container model, but instead, designed to be read mostly in stream forward format. The node implementation is similar to the recent versions of XAML. Other XML-to-UI implementations skip this node-level processing layer. Without a node level processing layer, it is very difficult to implement templates. I wanted to be able to implement templates so the toolkit is conceived of as using nodes as the underlying glue between layers in the XIML framework.

Many people intermix the capabilities of WPF with XAML. These are entirely 2 separate concepts. For example binding, is a WPF concept. XAML makes binding easier by having a short-hand syntax for binding (using "{}") escape strings, but binding specifications attach to a property on the WPF object and are actually WPF objects to begin with.

XIML is designed to be drop-in replacement or add-on to existing GUI toolkits or other places where you need to specify, relatively compactly, an object graph.

Generally, even though XIML's primary storage mechanism is XML, it is still relatively easy to author object graphs in XIML XML. Since its also relatively easy to extend, a framework could extend XIML for its needs and jump start the process of declarative UI programming. Because XIML is based on the node stream protocol with an API, you can more easily create other front-ends, for example, using JSON syntax.

The wiki uses Markdown syntax.


MongoDB Logo MongoDB